From 232725329ad160abe07f6e2384951da025e85ca2 Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 21 Aug 2018 14:58:48 +0900 Subject: [PATCH] =?UTF-8?q?=ED=88=B4=ED=8C=81=20=EB=B3=80=EA=B2=BD.=20?= =?UTF-8?q?=EC=A0=80=EC=A7=80=EC=8B=9C=20=EC=88=99=EB=A0=A8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_converter.php | 4 ++-- hwe/sammo/GameUnitConstBase.php | 2 +- hwe/sammo/WarUnitGeneral.php | 40 ++++++++++++++++++++------------- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/hwe/func_converter.php b/hwe/func_converter.php index b5195e19..2cd2941d 100644 --- a/hwe/func_converter.php +++ b/hwe/func_converter.php @@ -236,12 +236,12 @@ function getSpecialInfo(?int $type):?string{ 60 => ['돌격', '[전투] 상대 회피 불가, 공격 시 전투 페이즈 +1, 공격 시 대미지 +10%'], 61 => ['무쌍', '[전투] 대미지 +10%, 공격 시 필살 확률 +10%p'], - 62 => ['견고', '[전투] 수비 시 대미지 +10%, 공격 시 아군 피해 -10%'], + 62 => ['견고', '[전투] 상대 필살 불가, 상대 계략 시도시 성공 확률 -10%p'], 63 => ['위압', '[전투] 훈련/사기≥90, 병력≥1,000 일 때 첫 페이즈 위압 발동(적 공격 불가)'], 70 => ['저격', '[전투] 전투 개시 시 1/3 확률로 저격 발동'], 71 => ['필살', '[전투] 필살 확률 +20%p'], - 72 => ['징병', '[군사] 징·모병비 -50%'], + 72 => ['징병', '[군사] 징·모병비 -50%, 통솔 순수 능력치 보정 +15%'], 73 => ['의술', '[군사] 매 턴마다 자신(100%)과 소속 도시 장수(적 포함 50%) 부상 회복
[전투] 페이즈마다 20% 확률로 치료 발동(아군 피해 1/3 감소)'], 74 => ['격노', '[전투] 상대방 필살 및 회피 시도시 일정 확률로 격노(필살) 발동, 공격 시 일정 확률로 진노(1페이즈 추가)'], 75 => ['척사', '[전투] 지역·도시 병종 상대로 대미지 +10%, 아군 피해 -10%'] diff --git a/hwe/sammo/GameUnitConstBase.php b/hwe/sammo/GameUnitConstBase.php index 2702aa2e..41cdfb33 100644 --- a/hwe/sammo/GameUnitConstBase.php +++ b/hwe/sammo/GameUnitConstBase.php @@ -48,7 +48,7 @@ class GameUnitConstBase{ 0, null, null, 0, [self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2], [self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8], - ['표준적인 보병입니다.','보병은 방어특화입니다.'] + ['표준적인 보병입니다.','보병은 방어특화이며, 상대가 회피하기 어렵습니다.'] ], [ 1, self::T_FOOTMAN, '청주병', diff --git a/hwe/sammo/WarUnitGeneral.php b/hwe/sammo/WarUnitGeneral.php index 2a242d87..b6fae297 100644 --- a/hwe/sammo/WarUnitGeneral.php +++ b/hwe/sammo/WarUnitGeneral.php @@ -500,19 +500,6 @@ class WarUnitGeneral extends WarUnit{ $item = $this->getItem(); $crewType = $this->getCrewType(); - if( - !$this->hasActivatedSkill('특수') && - !$this->isAttacker && - $crewType->name == '목우' - ){ - //XXX: 병종에 특수 스킬이 달려있도록 설정해야함 - $ratio = $this->getComputedAtmos() + $this->getComputedTrain(); - if(Util::randBool($ratio / 400)){ - $this->activateSkill('특수', '저지'); - $activated = true; - } - } - if( $specialWar == 63 && $this->getPhase() == 0 && @@ -530,6 +517,11 @@ class WarUnitGeneral extends WarUnit{ $activated = true; } + if($specialWar == 60){ + $oppose->activateSkill('회피불가'); + $oppose->activateSkill('저지불가'); + } + return $activated; } @@ -541,9 +533,18 @@ class WarUnitGeneral extends WarUnit{ $item = $this->getItem(); $crewType = $this->getCrewType(); - if ($specialWar == 60 && $oppose->hasActivatedSkill('저지')) { - $oppose->deactivateSkill('특수', '저지'); - $activated = true; + if( + !$this->hasActivatedSkill('특수') && + !$this->hasActivatedSkill('저지불가') && + !$this->isAttacker && + $crewType->name == '목우' + ){ + //XXX: 병종에 특수 스킬이 달려있도록 설정해야함 + $ratio = $this->getComputedAtmos() + $this->getComputedTrain(); + if(Util::randBool($ratio / 400)){ + $this->activateSkill('특수', '저지'); + $activated = true; + } } if( @@ -557,6 +558,7 @@ class WarUnitGeneral extends WarUnit{ if( !$this->hasActivatedSkill('특수') && + !$this->hasActivatedSkill('회피불가') && Util::randBool($this->getComputedAvoidRatio()) ){ $this->activateSkill('특수', '회피시도', '회피'); @@ -715,12 +717,18 @@ class WarUnitGeneral extends WarUnit{ $opposeLogger = $oppose->getLogger(); if($this->hasActivatedSkill('저지')){ + + $this->addDex($oppose->getCrewType(), $oppose->getWarPower() * 0.5); + $this->addDex($this->getCrewType(), $this->getWarPower() * 0.5); + $this->setWarPowerMultiply(0); $oppose->setWarPowerMultiply(0); $thisLogger->pushGeneralBattleDetailLog('상대를 저지했다!'); $opposeLogger->pushGeneralBattleDetailLog('저지당했다!'); //저지는 특수함. + + return; }