From 1f3bc6baa6d318ad49bb3bc7f6106e014aaeb31a Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 15 Dec 2021 16:34:07 +0900 Subject: [PATCH] =?UTF-8?q?game:=20=EC=A0=80=EA=B2=A9=20=EB=B2=84=ED=94=84?= =?UTF-8?q?,=20=EA=B2=AC=EA=B3=A0=20=ED=9A=A8=EA=B3=BC=20=EC=A4=91=20?= =?UTF-8?q?=EC=A0=80=EA=B2=A9,=ED=95=84=EC=82=B4=20=EB=84=88=ED=94=84=20-?= =?UTF-8?q?=20=EC=A0=80=EA=B2=A9=20=EC=84=B1=EA=B3=B5=EC=8B=9C=20=EC=A6=9D?= =?UTF-8?q?=EA=B0=80=ED=95=98=EB=8A=94=20=EC=82=AC=EA=B8=B0=EB=9F=89=20?= =?UTF-8?q?=EC=A6=9D=EA=B0=80=20=20=20-=20=EC=A0=84=ED=8A=B9=EB=A7=8C,=20?= =?UTF-8?q?=EB=AA=87=EB=AA=87=20=EC=9C=A0=EB=8B=88=ED=81=AC=20=EC=A0=9C?= =?UTF-8?q?=EC=99=B8=20-=20=EC=A0=80=EA=B2=A9=EC=9D=B4=20=EC=84=B1?= =?UTF-8?q?=EB=B2=BD=EC=97=90=EB=8F=84=20=EB=B0=9C=EB=8F=99=20=20=20-=20?= =?UTF-8?q?=EC=82=AC=EA=B8=B0=20=EC=83=81=EC=8A=B9=EB=A7=8C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80,=20=EC=84=B1=EB=B2=BD=20=EB=84=88=ED=94=84=20?= =?UTF-8?q?=EC=97=86=EC=9D=8C=20-=20=EA=B2=AC=EA=B3=A0=20=ED=9A=A8?= =?UTF-8?q?=EA=B3=BC=20=EB=B3=80=EA=B2=BD=20=20=20-=20=ED=95=84=EC=82=B4?= =?UTF-8?q?=20=EB=AC=B4=ED=9A=A8=20->=20=ED=95=84=EC=82=B4=20=ED=99=95?= =?UTF-8?q?=EB=A5=A0=2020%=20=EA=B0=90=EC=86=8C=20=20=20-=20=EC=A0=80?= =?UTF-8?q?=EA=B2=A9=20=EB=AC=B4=ED=9A=A8=20->=20=EC=A0=80=EA=B2=A9?= =?UTF-8?q?=EC=9D=80=20=EB=B0=9B=EC=A7=80=EB=A7=8C=20=EB=B6=80=EC=83=81=20?= =?UTF-8?q?=EB=AC=B4=ED=9A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/ActionItem/che_무기_09_동호비궁.php | 4 +-- hwe/sammo/ActionItem/che_무기_11_이광궁.php | 2 +- hwe/sammo/ActionItem/che_무기_13_양유기궁.php | 2 +- hwe/sammo/ActionItem/che_저격_매화수전.php | 2 +- hwe/sammo/ActionItem/che_저격_비도.php | 2 +- hwe/sammo/ActionItem/event_전투특기_저격.php | 2 +- .../ActionSpecialDomestic/che_event_견고.php | 6 ++-- .../ActionSpecialDomestic/che_event_저격.php | 2 +- hwe/sammo/ActionSpecialWar/che_견고.php | 8 ++--- hwe/sammo/ActionSpecialWar/che_저격.php | 2 +- hwe/sammo/WarUnitTrigger/che_부상무효.php | 1 - hwe/sammo/WarUnitTrigger/che_저격발동.php | 35 +++++++++++++------ hwe/sammo/WarUnitTrigger/che_저격시도.php | 8 ++--- 13 files changed, 44 insertions(+), 32 deletions(-) diff --git a/hwe/sammo/ActionItem/che_무기_09_동호비궁.php b/hwe/sammo/ActionItem/che_무기_09_동호비궁.php index 3982e333..e262e1f3 100644 --- a/hwe/sammo/ActionItem/che_무기_09_동호비궁.php +++ b/hwe/sammo/ActionItem/che_무기_09_동호비궁.php @@ -14,12 +14,12 @@ class che_무기_09_동호비궁 extends \sammo\BaseStatItem{ public function __construct() { parent::__construct(); - $this->info .= "
[전투] 새로운 상대와 전투 시 20% 확률로 저격 발동, 성공 시 사기+10"; + $this->info .= "
[전투] 새로운 상대와 전투 시 20% 확률로 저격 발동, 성공 시 사기+20"; } public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 109, 0.2, 20, 40), + new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 109, 0.2, 20, 40, 20), new che_저격발동($unit, che_저격발동::TYPE_ITEM) ); } diff --git a/hwe/sammo/ActionItem/che_무기_11_이광궁.php b/hwe/sammo/ActionItem/che_무기_11_이광궁.php index 7bd69012..4afcb58b 100644 --- a/hwe/sammo/ActionItem/che_무기_11_이광궁.php +++ b/hwe/sammo/ActionItem/che_무기_11_이광궁.php @@ -19,7 +19,7 @@ class che_무기_11_이광궁 extends \sammo\BaseStatItem{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 111, 0.10, 20, 40), + new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 111, 0.10, 20, 40, 10), new che_저격발동($unit, che_저격발동::TYPE_ITEM) ); } diff --git a/hwe/sammo/ActionItem/che_무기_13_양유기궁.php b/hwe/sammo/ActionItem/che_무기_13_양유기궁.php index fa8f04e9..a5acbd6e 100644 --- a/hwe/sammo/ActionItem/che_무기_13_양유기궁.php +++ b/hwe/sammo/ActionItem/che_무기_13_양유기궁.php @@ -19,7 +19,7 @@ class che_무기_13_양유기궁 extends \sammo\BaseStatItem{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 113, 0.1, 20, 40), + new che_저격시도($unit, che_저격시도::TYPE_ITEM + che_저격시도::TYPE_DEDUP_TYPE_BASE * 113, 0.1, 20, 40, 10), new che_저격발동($unit, che_저격발동::TYPE_ITEM) ); } diff --git a/hwe/sammo/ActionItem/che_저격_매화수전.php b/hwe/sammo/ActionItem/che_저격_매화수전.php index 084a76cf..a72e9c55 100644 --- a/hwe/sammo/ActionItem/che_저격_매화수전.php +++ b/hwe/sammo/ActionItem/che_저격_매화수전.php @@ -15,7 +15,7 @@ class che_저격_매화수전 extends \sammo\BaseItem{ protected $id = 70; protected $rawName = '매화수전'; protected $name = '매화수전(저격)'; - protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+10'; + protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+20'; protected $cost = 200; protected $consumable = false; diff --git a/hwe/sammo/ActionItem/che_저격_비도.php b/hwe/sammo/ActionItem/che_저격_비도.php index 04e7e8c2..5ab2c493 100644 --- a/hwe/sammo/ActionItem/che_저격_비도.php +++ b/hwe/sammo/ActionItem/che_저격_비도.php @@ -15,7 +15,7 @@ class che_저격_비도 extends \sammo\BaseItem{ protected $id = 70; protected $rawName = '비도'; protected $name = '비도(저격)'; - protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+10'; + protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+20'; protected $cost = 200; protected $consumable = false; diff --git a/hwe/sammo/ActionItem/event_전투특기_저격.php b/hwe/sammo/ActionItem/event_전투특기_저격.php index 98b530ac..223f7a5f 100644 --- a/hwe/sammo/ActionItem/event_전투특기_저격.php +++ b/hwe/sammo/ActionItem/event_전투특기_저격.php @@ -13,7 +13,7 @@ class event_전투특기_저격 extends \sammo\BaseItem{ protected $id = 70; protected $rawName = '비급'; protected $name = '비급(저격)'; - protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+10'; + protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+20'; protected $cost = 100; protected $buyable = true; protected $consumable = false; diff --git a/hwe/sammo/ActionSpecialDomestic/che_event_견고.php b/hwe/sammo/ActionSpecialDomestic/che_event_견고.php index 1cd1131d..b1844b8d 100644 --- a/hwe/sammo/ActionSpecialDomestic/che_event_견고.php +++ b/hwe/sammo/ActionSpecialDomestic/che_event_견고.php @@ -13,7 +13,7 @@ class che_event_견고 extends \sammo\BaseSpecial{ protected $id = 62; protected $name = '견고'; - protected $info = '[전투] 상대 필살, 저격 불가, 상대 계략 시도시 성공 확률 -10%p, 부상 없음, 아군 피해 -10%'; + protected $info = '[전투] 상대 필살 확률 -20%p, 상대 계략 시도시 성공 확률 -10%p, 부상 없음, 아군 피해 -10%'; static $selectWeightType = SpecialityHelper::WEIGHT_NORM; static $selectWeight = 1; @@ -25,6 +25,7 @@ class che_event_견고 extends \sammo\BaseSpecial{ { $debuff = [ 'warMagicSuccessProb' => 0.1, + 'warCriticalRatio' => 0.20, ][$statName] ?? 0; return $value - $debuff; } @@ -32,13 +33,12 @@ class che_event_견고 extends \sammo\BaseSpecial{ public function getBattleInitSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM), - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*402, false, '저격불가') ); } public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*402, false, '필살불가', '저격불가') + new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM), ); } diff --git a/hwe/sammo/ActionSpecialDomestic/che_event_저격.php b/hwe/sammo/ActionSpecialDomestic/che_event_저격.php index 73098d24..b09e52c1 100644 --- a/hwe/sammo/ActionSpecialDomestic/che_event_저격.php +++ b/hwe/sammo/ActionSpecialDomestic/che_event_저격.php @@ -12,7 +12,7 @@ class che_event_저격 extends \sammo\BaseSpecial{ protected $id = 70; protected $name = '저격'; - protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+10'; + protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+20'; static $selectWeightType = SpecialityHelper::WEIGHT_NORM; static $selectWeight = 1; diff --git a/hwe/sammo/ActionSpecialWar/che_견고.php b/hwe/sammo/ActionSpecialWar/che_견고.php index ed8bd76c..d387f6d2 100644 --- a/hwe/sammo/ActionSpecialWar/che_견고.php +++ b/hwe/sammo/ActionSpecialWar/che_견고.php @@ -16,7 +16,7 @@ class che_견고 extends \sammo\BaseSpecial protected $id = 62; protected $name = '견고'; - protected $info = '[전투] 상대 필살, 저격 불가, 상대 계략 시도시 성공 확률 -10%p, 부상 없음, 아군 피해 -10%'; + protected $info = '[전투] 상대 필살 확률 -20%p, 상대 계략 시도시 성공 확률 -10%p, 부상 없음, 아군 피해 -10%'; static $selectWeightType = SpecialityHelper::WEIGHT_NORM; static $selectWeight = 1; @@ -28,6 +28,7 @@ class che_견고 extends \sammo\BaseSpecial { $debuff = [ 'warMagicSuccessProb' => 0.1, + 'warCriticalRatio' => 0.20, ][$statName] ?? 0; return $value - $debuff; } @@ -35,15 +36,14 @@ class che_견고 extends \sammo\BaseSpecial public function getBattleInitSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( - new che_부상무효($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404), - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404, false, '저격불가') + new che_부상무효($unit, BaseWarUnitTrigger::TYPE_NONE + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404), ); } public function getBattlePhaseSkillTriggerList(WarUnit $unit): ?WarUnitTriggerCaller { return new WarUnitTriggerCaller( - new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404, false, '필살불가', '저격불가') + new che_부상무효($unit, BaseWarUnitTrigger::TYPE_NONE + BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE * 404), ); } diff --git a/hwe/sammo/ActionSpecialWar/che_저격.php b/hwe/sammo/ActionSpecialWar/che_저격.php index b2ef90d7..c8a3140e 100644 --- a/hwe/sammo/ActionSpecialWar/che_저격.php +++ b/hwe/sammo/ActionSpecialWar/che_저격.php @@ -12,7 +12,7 @@ class che_저격 extends \sammo\BaseSpecial{ protected $id = 70; protected $name = '저격'; - protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+10'; + protected $info = '[전투] 새로운 상대와 전투 시 50% 확률로 저격 발동, 성공 시 사기+20'; static $selectWeightType = SpecialityHelper::WEIGHT_NORM; static $selectWeight = 1; diff --git a/hwe/sammo/WarUnitTrigger/che_부상무효.php b/hwe/sammo/WarUnitTrigger/che_부상무효.php index 3e4e3a11..0bcdc1f7 100644 --- a/hwe/sammo/WarUnitTrigger/che_부상무효.php +++ b/hwe/sammo/WarUnitTrigger/che_부상무효.php @@ -12,7 +12,6 @@ class che_부상무효 extends BaseWarUnitTrigger{ protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{ assert($self instanceof WarUnitGeneral, 'General만 발동 가능'); - $oppose->activateSkill('저격불가'); $self->activateSkill('부상무효'); return true; diff --git a/hwe/sammo/WarUnitTrigger/che_저격발동.php b/hwe/sammo/WarUnitTrigger/che_저격발동.php index db1e4928..f6b801e9 100644 --- a/hwe/sammo/WarUnitTrigger/che_저격발동.php +++ b/hwe/sammo/WarUnitTrigger/che_저격발동.php @@ -1,5 +1,7 @@ hasActivatedSkill('저격')){ + protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv): bool + { + if (!$self->hasActivatedSkill('저격')) { return true; } - if($selfEnv['저격발동']??false){ + if ($selfEnv['저격발동'] ?? false) { return true; } $selfEnv['저격발동'] = true; $general = $self->getGeneral(); - $self->getLogger()->pushGeneralActionLog("상대를 저격했다!", ActionLogger::PLAIN); - $self->getLogger()->pushGeneralBattleDetailLog("상대를 저격했다!", ActionLogger::PLAIN); - $oppose->getLogger()->pushGeneralActionLog("상대에게 저격당했다!", ActionLogger::PLAIN); - $oppose->getLogger()->pushGeneralBattleDetailLog("상대에게 저격당했다!", ActionLogger::PLAIN); + if ($oppose instanceof WarUnitGeneral) { + $self->getLogger()->pushGeneralActionLog("상대를 저격했다!", ActionLogger::PLAIN); + $self->getLogger()->pushGeneralBattleDetailLog("상대를 저격했다!", ActionLogger::PLAIN); + $oppose->getLogger()->pushGeneralActionLog("상대에게 저격당했다!", ActionLogger::PLAIN); + $oppose->getLogger()->pushGeneralBattleDetailLog("상대에게 저격당했다!", ActionLogger::PLAIN); + } + else{ + $self->getLogger()->pushGeneralActionLog("성벽 수비대장을 저격했다!", ActionLogger::PLAIN); + $self->getLogger()->pushGeneralBattleDetailLog("성벽 수비대장을 저격했다!", ActionLogger::PLAIN); + } - $general->increaseVarWithLimit('atmos', 10, 0, GameConst::$maxAtmosByWar); - $oppose->getGeneral()->increaseVarWithLimit('injury', Util::randRangeInt($selfEnv['woundMin'], $selfEnv['woundMax']), null, 80); + $general->increaseVarWithLimit('atmos', $selfEnv['addAtmos'], 0, GameConst::$maxAtmosByWar); + + if (!$oppose->hasActivatedSkill('부상무효') && $oppose instanceof WarUnitGeneral) { + $oppose->getGeneral()->increaseVarWithLimit('injury', Util::randRangeInt($selfEnv['woundMin'], $selfEnv['woundMax']), null, 80); + } $this->processConsumableItem(); return true; } -} \ No newline at end of file +} diff --git a/hwe/sammo/WarUnitTrigger/che_저격시도.php b/hwe/sammo/WarUnitTrigger/che_저격시도.php index 05e632fe..332e49b7 100644 --- a/hwe/sammo/WarUnitTrigger/che_저격시도.php +++ b/hwe/sammo/WarUnitTrigger/che_저격시도.php @@ -14,20 +14,19 @@ class che_저격시도 extends BaseWarUnitTrigger{ protected $woundMin; protected $woundMax; protected $ratio; + protected $addAtmos; - public function __construct(WarUnit $unit, int $raiseType, float $ratio, float $woundMin, float $woundMax){ + public function __construct(WarUnit $unit, int $raiseType, float $ratio, float $woundMin, float $woundMax, int $addAtmos = 20){ $this->object = $unit; $this->raiseType = $raiseType; $this->ratio = $ratio; $this->woundMin = $woundMin; $this->woundMax = $woundMax; + $this->addAtmos = $addAtmos; } protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{ assert($self instanceof WarUnitGeneral, 'General만 발동 가능'); - if(!$oppose instanceof WarUnitGeneral){ - return true; - } if($self->getPhase() !== 0 && $oppose->getPhase() !== 0){ return true; } @@ -44,6 +43,7 @@ class che_저격시도 extends BaseWarUnitTrigger{ $self->activateSkill('저격'); $selfEnv['woundMin'] = $this->woundMin; $selfEnv['woundMax'] = $this->woundMax; + $selfEnv['addAtmos'] = $this->addAtmos; return true; }