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;
}