feat: '계략약화' 특성을 onCalcOpposeStat으로 이동
This commit is contained in:
@@ -19,9 +19,16 @@ class che_반계_백우선 extends \sammo\BaseItem{
|
|||||||
protected $cost = 200;
|
protected $cost = 200;
|
||||||
protected $consumable = false;
|
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{
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new 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, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*301),
|
||||||
new che_반계발동($unit)
|
new che_반계발동($unit)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,9 +19,16 @@ class che_반계_파초선 extends \sammo\BaseItem{
|
|||||||
protected $cost = 200;
|
protected $cost = 200;
|
||||||
protected $consumable = false;
|
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{
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new 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, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*302),
|
||||||
new che_반계발동($unit)
|
new che_반계발동($unit)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -18,9 +18,11 @@ class che_서적_07_논어 extends \sammo\BaseStatItem{
|
|||||||
$this->info .= "<br>[전투] 상대의 계략 성공 확률 -10%p";
|
$this->info .= "<br>[전투] 상대의 계략 성공 확률 -10%p";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null)
|
||||||
return new WarUnitTriggerCaller(
|
{
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*207, false, '계략약화')
|
$debuff = [
|
||||||
);
|
'warMagicSuccessProb' => 0.1,
|
||||||
|
][$statName] ?? 0;
|
||||||
|
return $value - $debuff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,9 +18,11 @@ class che_서적_11_춘추전 extends \sammo\BaseStatItem{
|
|||||||
$this->info .= "<br>[전투] 상대의 계략 성공 확률 -10%p";
|
$this->info .= "<br>[전투] 상대의 계략 성공 확률 -10%p";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
public function onCalcOpposeStat(General $general, string $statName, $value, $aux = null)
|
||||||
return new WarUnitTriggerCaller(
|
{
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*211, false, '계략약화')
|
$debuff = [
|
||||||
);
|
'warMagicSuccessProb' => 0.1,
|
||||||
|
][$statName] ?? 0;
|
||||||
|
return $value - $debuff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace sammo\ActionItem;
|
namespace sammo\ActionItem;
|
||||||
|
|
||||||
use \sammo\iAction;
|
use \sammo\iAction;
|
||||||
use \sammo\General;
|
use \sammo\General;
|
||||||
use \sammo\GeneralTrigger;
|
use \sammo\GeneralTrigger;
|
||||||
@@ -17,7 +19,8 @@ use sammo\WarUnitTrigger\che_전멸시페이즈증가;
|
|||||||
use sammo\WarUnitTrigger\che_부상무효;
|
use sammo\WarUnitTrigger\che_부상무효;
|
||||||
use sammo\WarUnitTrigger\WarActivateSkills;
|
use sammo\WarUnitTrigger\WarActivateSkills;
|
||||||
|
|
||||||
class che_치트_HideD의_사인검 extends \sammo\BaseItem{
|
class che_치트_HideD의_사인검 extends \sammo\BaseItem
|
||||||
|
{
|
||||||
|
|
||||||
protected $rawName = 'HideD의 사인검';
|
protected $rawName = 'HideD의 사인검';
|
||||||
protected $name = 'HideD의 사인검(치트)';
|
protected $name = 'HideD의 사인검(치트)';
|
||||||
@@ -37,33 +40,45 @@ EOT;
|
|||||||
protected $consumable = false;
|
protected $consumable = false;
|
||||||
protected $buyable = false;
|
protected $buyable = false;
|
||||||
|
|
||||||
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
|
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux = null): float
|
||||||
if($turnType == '계략'){
|
{
|
||||||
if($varType == 'success') return $value + 2;
|
if ($turnType == '계략') {
|
||||||
|
if ($varType == 'success') return $value + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onCalcStat(General $general, string $statName, $value, $aux=null){
|
public function onCalcStat(General $general, string $statName, $value, $aux = null)
|
||||||
|
{
|
||||||
$bonus = [
|
$bonus = [
|
||||||
'bonusTrain'=>30,
|
'bonusTrain' => 30,
|
||||||
'bonusAtmos'=>30,
|
'bonusAtmos' => 30,
|
||||||
'leadership'=>100,
|
'leadership' => 100,
|
||||||
'strength'=>100,
|
'strength' => 100,
|
||||||
'intel'=>100,
|
'intel' => 100,
|
||||||
'warMagicSuccessProb'=>1,
|
'warMagicSuccessProb' => 1,
|
||||||
][$statName]??0;
|
][$statName] ?? 0;
|
||||||
return $bonus + $value;
|
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(
|
return new GeneralTriggerCaller(
|
||||||
new GeneralTrigger\che_도시치료($general)
|
new GeneralTrigger\che_도시치료($general)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBattleInitSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
public function getBattleInitSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller
|
||||||
|
{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
new che_부상무효($unit, BaseWarUnitTrigger::TYPE_NONE),
|
new che_부상무효($unit, BaseWarUnitTrigger::TYPE_NONE),
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '저격불가')
|
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '저격불가')
|
||||||
@@ -73,10 +88,10 @@ EOT;
|
|||||||
public function getBattlePhaseSkillTriggerList(\sammo\WarUnit $unit): ?WarUnitTriggerCaller
|
public function getBattlePhaseSkillTriggerList(\sammo\WarUnit $unit): ?WarUnitTriggerCaller
|
||||||
{
|
{
|
||||||
return new 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),
|
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),
|
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];
|
return [1, 0.95];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -28,9 +28,16 @@ class event_전투특기_반계 extends \sammo\BaseItem{
|
|||||||
return $value;
|
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{
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*401, false, '계략약화'),
|
|
||||||
new che_반계시도($unit),
|
new che_반계시도($unit),
|
||||||
new che_반계발동($unit)
|
new che_반계발동($unit)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -21,6 +21,14 @@ class che_event_견고 extends \sammo\BaseSpecial{
|
|||||||
SpecialityHelper::STAT_STRENGTH
|
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{
|
public function getBattleInitSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM),
|
new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM),
|
||||||
@@ -30,7 +38,7 @@ class che_event_견고 extends \sammo\BaseSpecial{
|
|||||||
|
|
||||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new 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, '필살불가', '저격불가')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,17 @@ class che_event_반계 extends \sammo\BaseSpecial
|
|||||||
return $value;
|
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
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller
|
||||||
{
|
{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 403, false, '계략약화'),
|
|
||||||
new che_반계시도($unit),
|
new che_반계시도($unit),
|
||||||
new che_반계발동($unit)
|
new che_반계발동($unit)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,6 +24,14 @@ class che_견고 extends \sammo\BaseSpecial
|
|||||||
SpecialityHelper::STAT_STRENGTH
|
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
|
public function getBattleInitSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller
|
||||||
{
|
{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
@@ -35,7 +43,7 @@ class che_견고 extends \sammo\BaseSpecial
|
|||||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller
|
||||||
{
|
{
|
||||||
return new 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, '필살불가', '저격불가')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,16 @@ class che_반계 extends \sammo\BaseSpecial{
|
|||||||
return $value;
|
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{
|
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||||
return new WarUnitTriggerCaller(
|
return new WarUnitTriggerCaller(
|
||||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 406, false, '계략약화'),
|
|
||||||
new che_반계시도($unit),
|
new che_반계시도($unit),
|
||||||
new che_반계발동($unit)
|
new che_반계발동($unit)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -55,9 +55,6 @@ class che_계략시도 extends BaseWarUnitTrigger{
|
|||||||
$magicSuccessProb = 0.7;
|
$magicSuccessProb = 0.7;
|
||||||
$magicSuccessProb = $general->onCalcStat($general, 'warMagicSuccessProb', $magicSuccessProb);
|
$magicSuccessProb = $general->onCalcStat($general, 'warMagicSuccessProb', $magicSuccessProb);
|
||||||
$magicSuccessProb = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicSuccessProb', $magicSuccessProb);
|
$magicSuccessProb = $oppose->getGeneral()->onCalcOpposeStat($general, 'warMagicSuccessProb', $magicSuccessProb);
|
||||||
if($self->hasActivatedSkill('계략약화')){
|
|
||||||
$magicSuccessProb -= 0.1; //NOTE: 앞으로 이건 oppose의 onCalcStat에 들어가야하지 않을까?
|
|
||||||
}
|
|
||||||
|
|
||||||
if($oppose instanceof WarUnitCity){
|
if($oppose instanceof WarUnitCity){
|
||||||
$magic = Util::choiceRandom(array_keys(static::$tableToCity));
|
$magic = Util::choiceRandom(array_keys(static::$tableToCity));
|
||||||
|
|||||||
Reference in New Issue
Block a user