diff --git a/hwe/sammo/ActionItem/che_반계_백우선.php b/hwe/sammo/ActionItem/che_반계_백우선.php index 4e10f5c4..4a38e014 100644 --- a/hwe/sammo/ActionItem/che_반계_백우선.php +++ b/hwe/sammo/ActionItem/che_반계_백우선.php @@ -19,9 +19,16 @@ class che_반계_백우선 extends \sammo\BaseItem{ protected $cost = 200; protected $consumable = false; + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*301, false, '계략약화'), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*301), new che_반계발동($unit) ); diff --git a/hwe/sammo/ActionItem/che_반계_파초선.php b/hwe/sammo/ActionItem/che_반계_파초선.php index 5c19edfd..3a277e3e 100644 --- a/hwe/sammo/ActionItem/che_반계_파초선.php +++ b/hwe/sammo/ActionItem/che_반계_파초선.php @@ -19,9 +19,16 @@ class che_반계_파초선 extends \sammo\BaseItem{ protected $cost = 200; protected $consumable = false; + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*302, false, '계략약화'), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*302), new che_반계발동($unit) ); diff --git a/hwe/sammo/ActionItem/che_서적_07_논어.php b/hwe/sammo/ActionItem/che_서적_07_논어.php index c92a5bd8..0212b932 100644 --- a/hwe/sammo/ActionItem/che_서적_07_논어.php +++ b/hwe/sammo/ActionItem/che_서적_07_논어.php @@ -18,9 +18,11 @@ class che_서적_07_논어 extends \sammo\BaseStatItem{ $this->info .= "
[전투] 상대의 계략 성공 확률 -10%p"; } - public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ - return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*207, false, '계략약화') - ); + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; } } \ No newline at end of file diff --git a/hwe/sammo/ActionItem/che_서적_11_춘추전.php b/hwe/sammo/ActionItem/che_서적_11_춘추전.php index 0fa0ca84..7dc51ae5 100644 --- a/hwe/sammo/ActionItem/che_서적_11_춘추전.php +++ b/hwe/sammo/ActionItem/che_서적_11_춘추전.php @@ -18,9 +18,11 @@ class che_서적_11_춘추전 extends \sammo\BaseStatItem{ $this->info .= "
[전투] 상대의 계략 성공 확률 -10%p"; } - public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ - return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*211, false, '계략약화') - ); + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; } } \ No newline at end of file diff --git a/hwe/sammo/ActionItem/che_치트_HideD의_사인검.php b/hwe/sammo/ActionItem/che_치트_HideD의_사인검.php index e95310c9..820c372e 100644 --- a/hwe/sammo/ActionItem/che_치트_HideD의_사인검.php +++ b/hwe/sammo/ActionItem/che_치트_HideD의_사인검.php @@ -1,5 +1,7 @@ 30, - 'bonusAtmos'=>30, - 'leadership'=>100, - 'strength'=>100, - 'intel'=>100, - 'warMagicSuccessProb'=>1, - ][$statName]??0; + 'bonusTrain' => 30, + 'bonusAtmos' => 30, + 'leadership' => 100, + 'strength' => 100, + 'intel' => 100, + 'warMagicSuccessProb' => 1, + ][$statName] ?? 0; return $bonus + $value; } - public function getPreTurnExecuteTriggerList(General $general):?GeneralTriggerCaller{ + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + + public function getPreTurnExecuteTriggerList(General $general): ?GeneralTriggerCaller + { return new GeneralTriggerCaller( new GeneralTrigger\che_도시치료($general) ); } - public function getBattleInitSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ + public function getBattleInitSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller + { return new WarUnitTriggerCaller( new che_부상무효($unit, BaseWarUnitTrigger::TYPE_NONE), new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '저격불가') @@ -73,10 +88,10 @@ EOT; public function getBattlePhaseSkillTriggerList(\sammo\WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '필살불가', '위압불가', '격노불가', '계략약화', '저격불가'), + new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '필살불가', '위압불가', '격노불가', '저격불가'), new che_전투치료시도($unit), new che_전투치료발동($unit), - new che_저격시도($unit, che_저격시도::TYPE_NONE, 1/2, 20, 60), + new che_저격시도($unit, che_저격시도::TYPE_NONE, 1 / 2, 20, 60), new che_저격발동($unit), new che_격노시도($unit), new che_격노발동($unit), @@ -84,8 +99,8 @@ EOT; ); } - public function getWarPowerMultiplier(WarUnit $unit):array{ + public function getWarPowerMultiplier(WarUnit $unit): array + { return [1, 0.95]; } - -} \ No newline at end of file +} diff --git a/hwe/sammo/ActionItem/event_전투특기_반계.php b/hwe/sammo/ActionItem/event_전투특기_반계.php index 372d4de1..3e2da17a 100644 --- a/hwe/sammo/ActionItem/event_전투특기_반계.php +++ b/hwe/sammo/ActionItem/event_전투특기_반계.php @@ -28,9 +28,16 @@ class event_전투특기_반계 extends \sammo\BaseItem{ return $value; } + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*401, false, '계략약화'), new che_반계시도($unit), new che_반계발동($unit) ); diff --git a/hwe/sammo/ActionSpecialDomestic/che_event_견고.php b/hwe/sammo/ActionSpecialDomestic/che_event_견고.php index 902682da..1cd1131d 100644 --- a/hwe/sammo/ActionSpecialDomestic/che_event_견고.php +++ b/hwe/sammo/ActionSpecialDomestic/che_event_견고.php @@ -21,6 +21,14 @@ class che_event_견고 extends \sammo\BaseSpecial{ SpecialityHelper::STAT_STRENGTH ]; + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattleInitSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM), @@ -30,7 +38,7 @@ class che_event_견고 extends \sammo\BaseSpecial{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*402, false, '필살불가', '계략약화', '저격불가') + new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*402, false, '필살불가', '저격불가') ); } diff --git a/hwe/sammo/ActionSpecialDomestic/che_event_반계.php b/hwe/sammo/ActionSpecialDomestic/che_event_반계.php index ec5b6c28..4bf5256d 100644 --- a/hwe/sammo/ActionSpecialDomestic/che_event_반계.php +++ b/hwe/sammo/ActionSpecialDomestic/che_event_반계.php @@ -33,10 +33,17 @@ class che_event_반계 extends \sammo\BaseSpecial return $value; } + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 403, false, '계략약화'), new che_반계시도($unit), new che_반계발동($unit) ); diff --git a/hwe/sammo/ActionSpecialWar/che_견고.php b/hwe/sammo/ActionSpecialWar/che_견고.php index 3e3e0d5b..ed8bd76c 100644 --- a/hwe/sammo/ActionSpecialWar/che_견고.php +++ b/hwe/sammo/ActionSpecialWar/che_견고.php @@ -24,6 +24,14 @@ class che_견고 extends \sammo\BaseSpecial SpecialityHelper::STAT_STRENGTH ]; + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattleInitSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( @@ -35,7 +43,7 @@ class che_견고 extends \sammo\BaseSpecial public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404, false, '필살불가', '계략약화', '저격불가') + new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404, false, '필살불가', '저격불가') ); } diff --git a/hwe/sammo/ActionSpecialWar/che_반계.php b/hwe/sammo/ActionSpecialWar/che_반계.php index 4d2117d5..2239a6df 100644 --- a/hwe/sammo/ActionSpecialWar/che_반계.php +++ b/hwe/sammo/ActionSpecialWar/che_반계.php @@ -29,9 +29,16 @@ class che_반계 extends \sammo\BaseSpecial{ return $value; } + public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null) + { + $debuff = [ + 'warMagicSuccessProb' => 0.1, + ][$statName] ?? 0; + return $value - $debuff; + } + public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 406, false, '계략약화'), new che_반계시도($unit), new che_반계발동($unit) ); diff --git a/hwe/sammo/WarUnitTrigger/che_계략시도.php b/hwe/sammo/WarUnitTrigger/che_계략시도.php index f4c78f44..a348804d 100644 --- a/hwe/sammo/WarUnitTrigger/che_계략시도.php +++ b/hwe/sammo/WarUnitTrigger/che_계략시도.php @@ -55,9 +55,6 @@ class che_계략시도 extends BaseWarUnitTrigger{ $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에 들어가야하지 않을까? - } if($oppose instanceof WarUnitCity){ $magic = Util::choiceRandom(array_keys(static::$tableToCity));