feat: 전투 상대방의 특정 수치를 접근할 수 있는 callback류 생성

This commit is contained in:
2021-09-15 19:06:15 +00:00
committed by Gitea
parent f2182c195b
commit c186f05dd3
7 changed files with 156 additions and 93 deletions
@@ -25,10 +25,12 @@ class che_계략발동 extends BaseWarUnitTrigger{
$general = $self->getGeneral();
[$magic, $damage] = $selfEnv['magic'];
$damage = $general->onCalcStat($general, 'warMagicFailDamage', $damage, $magic);
$damage = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicFailDamage', $damage, $magic);
$josaUl = \sammo\JosaUtil::pick($magic, '을');
$general->getLogger()->pushGeneralBattleDetailLog("<D>{$magic}</>{$josaUl} <C>성공</>했다!", ActionLogger::PLAIN);
$oppose->getLogger()->pushGeneralBattleDetailLog("<D>{$magic}</>에 당했다!", ActionLogger::PLAIN);
@@ -33,11 +33,13 @@ class che_계략시도 extends BaseWarUnitTrigger{
if($self->hasActivatedSkill('계략불가')){
return true;
}
$magicTrialProb = $general->getIntel(true, true, true, false) / 100;
$magicTrialProb *= $crewType->magicCoef;
$magicTrialProb = $general->onCalcStat($general, 'warMagicTrialProb', $magicTrialProb);
$magicTrialProb = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicTrialProb', $magicTrialProb);
if($magicTrialProb <= 0){
return true;
}
@@ -45,13 +47,14 @@ class che_계략시도 extends BaseWarUnitTrigger{
if($self->getPhase() == 0){
$magicTrialProb *= 3;
}
if(!Util::randBool($magicTrialProb)){
return true;
}
$magicSuccessProb = 0.7;
$magicSuccessProb = $general->onCalcStat($general, 'warMagicSuccessProb', $magicSuccessProb);
$magicSuccessProb = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicSuccessProb', $magicSuccessProb);
if($self->hasActivatedSkill('계략약화')){
$magicSuccessProb -= 0.1; //NOTE: 앞으로 이건 oppose의 onCalcStat에 들어가야하지 않을까?
}
@@ -66,6 +69,8 @@ class che_계략시도 extends BaseWarUnitTrigger{
}
$successDamage = $general->onCalcStat($general, 'warMagicSuccessDamage', $successDamage, $magic);
$successDamage = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicSuccessDamage', $successDamage, $magic);
$self->activateSkill('계략시도', $magic);
if(Util::randBool($magicSuccessProb)){
@@ -76,7 +81,7 @@ class che_계략시도 extends BaseWarUnitTrigger{
$self->activateSkill('계략실패');
$selfEnv['magic'] = [$magic, $failDamage];
}
return true;
}
}
@@ -27,11 +27,12 @@ class che_계략실패 extends BaseWarUnitTrigger{
[$magic, $damage] = $selfEnv['magic'];
$damage = $general->onCalcStat($general, 'warMagicFailDamage', $damage, $magic);
$damage = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicFailDamage', $damage, $magic);
$josaUl = \sammo\JosaUtil::pick($magic, '을');
$general->getLogger()->pushGeneralBattleDetailLog("<D>{$magic}</>{$josaUl} <R>실패</>했다!", ActionLogger::PLAIN);
$oppose->getLogger()->pushGeneralBattleDetailLog("<D>{$magic}</>{$josaUl} 간파했다!", ActionLogger::PLAIN);
$self->multiplyWarPowerMultiply(1/$damage);
$oppose->multiplyWarPowerMultiply($damage);