천지비급 시나리오를 설명에 맞게 수정

This commit is contained in:
2020-06-03 22:17:22 +09:00
parent 1500e8e54f
commit a38cb90cbf
20 changed files with 595 additions and 580 deletions
@@ -1,28 +1,29 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
use sammo\WarUnitTrigger\che_격노시도; use sammo\WarUnitTrigger\che_격노시도;
use sammo\WarUnitTrigger\che_격노발동; use sammo\WarUnitTrigger\che_격노발동;
class event_전투특기_격노 extends \sammo\BaseItem{ class event_전투특기_격노 extends \sammo\BaseItem{
protected $id = 74; protected $id = 74;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(격노)'; protected $name = '비급(격노)';
protected $info = '[전투] 상대방 필살 및 회피 시도시 일정 확률로 격노(필살) 발동, 공격 시 일정 확률로 진노(1페이즈 추가)'; protected $info = '[전투] 상대방 필살 및 회피 시도시 일정 확률로 격노(필살) 발동, 공격 시 일정 확률로 진노(1페이즈 추가)';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
new che_격노시도($unit), return new WarUnitTriggerCaller(
new che_격노발동($unit) new che_격노시도($unit),
); new che_격노발동($unit)
} );
}
} }
@@ -1,34 +1,35 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\GameUnitConst; use \sammo\GameUnitConst;
use \sammo\WarUnit; use \sammo\WarUnit;
use \sammo\WarUnitCity; use \sammo\WarUnitCity;
class event_전투특기_공성 extends \sammo\BaseItem{ class event_전투특기_공성 extends \sammo\BaseItem{
protected $id = 53; protected $id = 53;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(공성)'; protected $name = '비급(공성)';
protected $info = '[군사] 차병 계통 징·모병비 -10%<br>[전투] 성벽 공격 시 대미지 +100%'; protected $info = '[군사] 차병 계통 징·모병비 -10%<br>[전투] 성벽 공격 시 대미지 +100%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_SIEGE) return $value * 0.9; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_SIEGE) return $value * 0.9;
}
return $value;
} return $value;
}
public function getWarPowerMultiplier(WarUnit $unit):array{
if($unit->getOppose() instanceof WarUnitCity){ public function getWarPowerMultiplier(WarUnit $unit):array{
return [2, 1]; if($unit->getOppose() instanceof WarUnitCity){
} return [2, 1];
return [1, 1]; }
} return [1, 1];
}
} }
@@ -1,33 +1,34 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\GameUnitConst; use \sammo\GameUnitConst;
class event_전투특기_궁병 extends \sammo\BaseItem{ class event_전투특기_궁병 extends \sammo\BaseItem{
protected $id = 51; protected $id = 51;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(궁병)'; protected $name = '비급(궁병)';
protected $info = '[군사] 궁병 계통 징·모병비 -10%<br>[전투] 회피 확률 +20%p'; protected $info = '[군사] 궁병 계통 징·모병비 -10%<br>[전투] 회피 확률 +20%p';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_ARCHER) return $value * 0.9; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_ARCHER) return $value * 0.9;
}
return $value;
} return $value;
}
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warAvoidRatio'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.2; if($statName === 'warAvoidRatio'){
} return $value + 0.2;
return $value; }
} return $value;
}
} }
@@ -1,33 +1,34 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\GameUnitConst; use \sammo\GameUnitConst;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_귀병 extends \sammo\BaseItem{ class event_전투특기_귀병 extends \sammo\BaseItem{
protected $id = 40; protected $id = 40;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(귀병)'; protected $name = '비급(귀병)';
protected $info = '[군사] 귀병 계통 징·모병비 -10%<br>[전투] 계략 성공 확률 +20%p'; protected $info = '[군사] 귀병 계통 징·모병비 -10%<br>[전투] 계략 성공 확률 +20%p';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_WIZARD) return $value * 0.9; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_WIZARD) return $value * 0.9;
}
return $value;
} return $value;
}
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicSuccessProb'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.2; if($statName === 'warMagicSuccessProb'){
} return $value + 0.2;
return $value; }
} return $value;
}
} }
@@ -1,33 +1,34 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\GameUnitConst; use \sammo\GameUnitConst;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_기병 extends \sammo\BaseItem{ class event_전투특기_기병 extends \sammo\BaseItem{
protected $id = 52; protected $id = 52;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(기병)'; protected $name = '비급(기병)';
protected $info = '[군사] 기병 계통 징·모병비 -10%<br>[전투] 수비 시 대미지 +10%, 공격 시 대미지 +20%'; protected $info = '[군사] 기병 계통 징·모병비 -10%<br>[전투] 수비 시 대미지 +10%, 공격 시 대미지 +20%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_CAVALRY) return $value * 0.9; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_CAVALRY) return $value * 0.9;
}
return $value;
} return $value;
}
public function getWarPowerMultiplier(WarUnit $unit):array{
if($unit->isAttacker()){ public function getWarPowerMultiplier(WarUnit $unit):array{
return [1.2, 1]; if($unit->isAttacker()){
} return [1.2, 1];
return [1.1, 1]; }
} return [1.1, 1];
}
} }
@@ -1,40 +1,41 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use \sammo\BaseWarUnitTrigger; use \sammo\BaseWarUnitTrigger;
use \sammo\WarUnitTriggerCaller; use \sammo\WarUnitTriggerCaller;
use sammo\WarUnitTrigger\WarActivateSkills; use sammo\WarUnitTrigger\WarActivateSkills;
class event_전투특기_돌격 extends \sammo\BaseItem{ class event_전투특기_돌격 extends \sammo\BaseItem{
protected $id = 60; protected $id = 60;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(돌격)'; protected $name = '비급(돌격)';
protected $info = '[전투] 상대 회피 불가, 공격 시 전투 페이즈 +1, 공격 시 대미지 +10%'; protected $info = '[전투] 상대 회피 불가, 공격 시 전투 페이즈 +1, 공격 시 대미지 +10%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'initWarPhase'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 1; if($statName === 'initWarPhase'){
} return $value + 1;
return $value; }
} return $value;
}
public function getWarPowerMultiplier(WarUnit $unit):array{
if($unit->isAttacker()){ public function getWarPowerMultiplier(WarUnit $unit):array{
return [1.1, 1]; if($unit->isAttacker()){
} return [1.1, 1];
return [1, 1]; }
} return [1, 1];
}
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
(new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '회피불가'))->setPriority(BaseWarUnitTrigger::PRIORITY_BEGIN + 200) return new WarUnitTriggerCaller(
); (new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '회피불가'))->setPriority(BaseWarUnitTrigger::PRIORITY_BEGIN + 200)
} );
}
} }
@@ -1,28 +1,29 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_무쌍 extends \sammo\BaseItem{ class event_전투특기_무쌍 extends \sammo\BaseItem{
protected $id = 61; protected $id = 61;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(무쌍)'; protected $name = '비급(무쌍)';
protected $info = '[전투] 대미지 +10%, 공격 시 필살 확률 +10%p'; protected $info = '[전투] 대미지 +10%, 공격 시 필살 확률 +10%p';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warCriticalRatio' && $aux['isAttacker']??false){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value += 0.1; if($statName === 'warCriticalRatio' && $aux['isAttacker']??false){
} return $value += 0.1;
return $value; }
} return $value;
}
public function getWarPowerMultiplier(WarUnit $unit):array{
return [1.1, 1]; public function getWarPowerMultiplier(WarUnit $unit):array{
} return [1.1, 1];
}
} }
@@ -1,37 +1,38 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
use \sammo\BaseWarUnitTrigger; use \sammo\BaseWarUnitTrigger;
use \sammo\WarUnitTrigger\WarActivateSkills; use \sammo\WarUnitTrigger\WarActivateSkills;
use \sammo\WarUnitTrigger\che_반계시도; use \sammo\WarUnitTrigger\che_반계시도;
use \sammo\WarUnitTrigger\che_반계발동; use \sammo\WarUnitTrigger\che_반계발동;
class event_전투특기_반계 extends \sammo\BaseItem{ class event_전투특기_반계 extends \sammo\BaseItem{
protected $id = 45; protected $id = 45;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(반계)'; protected $name = '비급(반계)';
protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 40% 확률로 되돌림, 반목 성공시 대미지 추가(+60% → +100%)'; protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 40% 확률로 되돌림, 반목 성공시 대미지 추가(+60% → +100%)';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicSuccessDamage' && $aux === '반목'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.4; if($statName === 'warMagicSuccessDamage' && $aux === '반목'){
} return $value + 0.4;
return $value; }
} return $value;
}
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM, false, '계략약화'), return new WarUnitTriggerCaller(
new che_반계시도($unit, che_반계시도::TYPE_ITEM), new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_ITEM, false, '계략약화'),
new che_반계발동($unit) new che_반계시도($unit, che_반계시도::TYPE_ITEM),
); new che_반계발동($unit)
} );
}
} }
@@ -1,34 +1,35 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\GameUnitConst; use \sammo\GameUnitConst;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_보병 extends \sammo\BaseItem{ class event_전투특기_보병 extends \sammo\BaseItem{
protected $id = 50; protected $id = 50;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(보병)'; protected $name = '비급(보병)';
protected $info = '[군사] 보병 계통 징·모병비 -10%<br>[전투] 공격 시 아군 피해 -10%, 수비 시 아군 피해 -20%'; protected $info = '[군사] 보병 계통 징·모병비 -10%<br>[전투] 공격 시 아군 피해 -10%, 수비 시 아군 피해 -20%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_FOOTMAN) return $value * 0.9; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost' && $aux['armType'] == GameUnitConst::T_FOOTMAN) return $value * 0.9;
}
return $value;
} return $value;
}
public function getWarPowerMultiplier(WarUnit $unit):array{
if($unit->isAttacker()){ public function getWarPowerMultiplier(WarUnit $unit):array{
return [1, 0.9]; if($unit->isAttacker()){
} return [1, 0.9];
return [1, 0.8]; }
} return [1, 0.8];
}
} }
@@ -1,35 +1,36 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_신산 extends \sammo\BaseItem{ class event_전투특기_신산 extends \sammo\BaseItem{
protected $id = 41; protected $id = 41;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(신산)'; protected $name = '비급(신산)';
protected $info = '[계략] 화계·탈취·파괴·선동 : 성공률 +10%p<br>[전투] 계략 시도 확률 +20%p, 계략 성공 확률 +20%p'; protected $info = '[계략] 화계·탈취·파괴·선동 : 성공률 +10%p<br>[전투] 계략 시도 확률 +20%p, 계략 성공 확률 +20%p';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($turnType == '계략'){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'success') return $value + 0.1; if($turnType == '계략'){
} if($varType == 'success') return $value + 0.1;
}
return $value;
} return $value;
}
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicTrialProb'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.2; if($statName === 'warMagicTrialProb'){
} return $value + 0.2;
if($statName === 'warMagicSuccessProb'){ }
return $value + 0.2; if($statName === 'warMagicSuccessProb'){
} return $value + 0.2;
return $value; }
} return $value;
}
} }
@@ -1,24 +1,25 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_신중 extends \sammo\BaseItem{ class event_전투특기_신중 extends \sammo\BaseItem{
protected $id = 44; protected $id = 44;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(신중)'; protected $name = '비급(신중)';
protected $info = '[전투] 계략 성공 확률 100%'; protected $info = '[전투] 계략 성공 확률 100%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicSuccessProb'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 1; if($statName === 'warMagicSuccessProb'){
} return $value + 1;
return $value; }
} return $value;
}
} }
@@ -1,30 +1,31 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
use \sammo\WarUnitTrigger\che_위압시도; use \sammo\WarUnitTrigger\che_위압시도;
use \sammo\WarUnitTrigger\che_위압발동; use \sammo\WarUnitTrigger\che_위압발동;
class event_전투특기_위압 extends \sammo\BaseItem{ class event_전투특기_위압 extends \sammo\BaseItem{
protected $id = 63; protected $id = 63;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(위압)'; protected $name = '비급(위압)';
protected $info = '[전투] 훈련/사기≥90, 병력≥1,000 일 때 첫 페이즈 위압 발동(적 공격 불가)'; protected $info = '[전투] 훈련/사기≥90, 병력≥1,000 일 때 첫 페이즈 위압 발동(적 공격 불가)';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
if($unit->getPhase() != 0){ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return null; if($unit->getPhase() != 0){
} return null;
return new WarUnitTriggerCaller( }
new che_위압시도($unit), return new WarUnitTriggerCaller(
new che_위압발동($unit) new che_위압시도($unit),
); new che_위압발동($unit)
} );
}
} }
@@ -1,37 +1,38 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use sammo\BaseGeneralTrigger; use sammo\BaseGeneralTrigger;
use sammo\SpecialityHelper; use sammo\SpecialityHelper;
use \sammo\General; use \sammo\General;
use \sammo\GeneralTrigger; use \sammo\GeneralTrigger;
use \sammo\GeneralTriggerCaller; use \sammo\GeneralTriggerCaller;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTrigger\che_전투치료발동; use sammo\WarUnitTrigger\che_전투치료발동;
use sammo\WarUnitTrigger\che_전투치료시도; use sammo\WarUnitTrigger\che_전투치료시도;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
class event_전투특기_의술 extends \sammo\BaseItem{ class event_전투특기_의술 extends \sammo\BaseItem{
protected $id = 73; protected $id = 73;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(의술)'; protected $name = '비급(의술)';
protected $info = '[군사] 매 턴마다 자신(100%)과 소속 도시 장수(적 포함 50%) 부상 회복<br>[전투] 페이즈마다 20% 확률로 치료 발동(아군 피해 1/3 감소)'; protected $info = '[군사] 매 턴마다 자신(100%)과 소속 도시 장수(적 포함 50%) 부상 회복<br>[전투] 페이즈마다 20% 확률로 치료 발동(아군 피해 1/3 감소)';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function getPreTurnExecuteTriggerList(General $general):?GeneralTriggerCaller{
return new GeneralTriggerCaller( public function getPreTurnExecuteTriggerList(General $general):?GeneralTriggerCaller{
new GeneralTrigger\che_도시치료($general) return new GeneralTriggerCaller(
); new GeneralTrigger\che_도시치료($general)
} );
}
public function getBattlePhaseSkillTriggerList(\sammo\WarUnit $unit): ?WarUnitTriggerCaller
{ public function getBattlePhaseSkillTriggerList(\sammo\WarUnit $unit): ?WarUnitTriggerCaller
return new WarUnitTriggerCaller( {
new che_전투치료시도($unit, che_전투치료시도::TYPE_ITEM), return new WarUnitTriggerCaller(
new che_전투치료발동($unit) new che_전투치료시도($unit, che_전투치료시도::TYPE_ITEM),
); new che_전투치료발동($unit)
} );
} }
}
@@ -1,27 +1,28 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
use \sammo\WarUnitTrigger\che_저격시도; use \sammo\WarUnitTrigger\che_저격시도;
use \sammo\WarUnitTrigger\che_저격발동; use \sammo\WarUnitTrigger\che_저격발동;
class event_전투특기_저격 extends \sammo\BaseItem{ class event_전투특기_저격 extends \sammo\BaseItem{
protected $id = 70; protected $id = 70;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(저격)'; protected $name = '비급(저격)';
protected $info = '[전투] 새로운 상대와 전투 시 1/3 확률로 저격 발동, 성공 시 사기+10'; protected $info = '[전투] 새로운 상대와 전투 시 1/3 확률로 저격 발동, 성공 시 사기+10';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
new che_저격시도($unit, che_저격시도::TYPE_ITEM, 1/3, 20, 60), return new WarUnitTriggerCaller(
new che_저격발동($unit, che_저격발동::TYPE_ITEM) new che_저격시도($unit, che_저격시도::TYPE_ITEM, 1/3, 20, 60),
); new che_저격발동($unit, che_저격발동::TYPE_ITEM)
} );
}
} }
@@ -1,24 +1,25 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_집중 extends \sammo\BaseItem{ class event_전투특기_집중 extends \sammo\BaseItem{
protected $id = 43; protected $id = 43;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(집중)'; protected $name = '비급(집중)';
protected $info = '[전투] 계략 성공 시 대미지 +50%'; protected $info = '[전투] 계략 성공 시 대미지 +50%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicSuccessDamage'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value * 1.5; if($statName === 'warMagicSuccessDamage'){
} return $value * 1.5;
return $value; }
} return $value;
}
} }
@@ -1,32 +1,33 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_징병 extends \sammo\BaseItem{ class event_전투특기_징병 extends \sammo\BaseItem{
protected $id = 72; protected $id = 72;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(징병)'; protected $name = '비급(징병)';
protected $info = '[군사] 징·모병비 -50%, 통솔 순수 능력치 보정 +15%'; protected $info = '[군사] 징·모병비 -50%, 통솔 순수 능력치 보정 +15%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if(in_array($turnType, ['징병', '모병'])){ public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($varType == 'cost') return $value * 0.5; if(in_array($turnType, ['징병', '모병'])){
} if($varType == 'cost') return $value * 0.5;
}
return $value;
} return $value;
}
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'leadership'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value *= 1.15; if($statName === 'leadership'){
} return $value *= 1.15;
return $value; }
} return $value;
}
} }
@@ -1,25 +1,26 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_척사 extends \sammo\BaseItem{ class event_전투특기_척사 extends \sammo\BaseItem{
protected $id = 75; protected $id = 75;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(척사)'; protected $name = '비급(척사)';
protected $info = '[전투] 지역·도시 병종 상대로 대미지 +10%, 아군 피해 -10%'; protected $info = '[전투] 지역·도시 병종 상대로 대미지 +10%, 아군 피해 -10%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function getWarPowerMultiplier(WarUnit $unit):array{
$opposeCrewType = $unit->getOppose()->getCrewType(); public function getWarPowerMultiplier(WarUnit $unit):array{
if($opposeCrewType->reqCities || $opposeCrewType->reqRegions){ $opposeCrewType = $unit->getOppose()->getCrewType();
return [1.1, 0.9]; if($opposeCrewType->reqCities || $opposeCrewType->reqRegions){
} return [1.1, 0.9];
return [1, 1]; }
} return [1, 1];
}
} }
@@ -1,32 +1,33 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
use sammo\WarUnitTriggerCaller; use sammo\WarUnitTriggerCaller;
use sammo\WarUnitTrigger\che_필살강화_회피불가; use sammo\WarUnitTrigger\che_필살강화_회피불가;
class event_전투특기_필살 extends \sammo\BaseItem{ class event_전투특기_필살 extends \sammo\BaseItem{
protected $id = 71; protected $id = 71;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(필살)'; protected $name = '비급(필살)';
protected $info = '[전투] 필살 확률 +20%p, 필살 발동시 대상 회피 불가'; protected $info = '[전투] 필살 확률 +20%p, 필살 발동시 대상 회피 불가';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warCriticalRatio'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.2; if($statName === 'warCriticalRatio'){
} return $value + 0.2;
return $value; }
} return $value;
}
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
new che_필살강화_회피불가($unit) return new WarUnitTriggerCaller(
); new che_필살강화_회피불가($unit)
} );
}
} }
@@ -1,27 +1,28 @@
<?php <?php
namespace sammo\ActionItem; namespace sammo\ActionItem;
use \sammo\iAction; use \sammo\iAction;
use \sammo\General; use \sammo\General;
use \sammo\SpecialityHelper; use \sammo\SpecialityHelper;
use \sammo\WarUnit; use \sammo\WarUnit;
class event_전투특기_환술 extends \sammo\BaseItem{ class event_전투특기_환술 extends \sammo\BaseItem{
protected $id = 42; protected $id = 42;
protected $rawName = '비급'; protected $rawName = '비급';
protected $name = '비급(환술)'; protected $name = '비급(환술)';
protected $info = '[전투] 계략 성공 확률 +10%p, 계략 성공 시 대미지 +30%'; protected $info = '[전투] 계략 성공 확률 +10%p, 계략 성공 시 대미지 +30%';
protected $cost = 100; protected $cost = 100;
protected $buyable = true; protected $buyable = true;
protected $consumable = false; protected $consumable = false;
protected $reqSecu = 3000;
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === 'warMagicSuccessProb'){ public function onCalcStat(General $general, string $statName, $value, $aux=null){
return $value + 0.1; if($statName === 'warMagicSuccessProb'){
} return $value + 0.1;
if($statName === 'warMagicSuccessDamage'){ }
return $value * 1.3; if($statName === 'warMagicSuccessDamage'){
} return $value * 1.3;
return $value; }
} return $value;
}
} }
+1 -5
View File
@@ -2,15 +2,11 @@
"title":"【공백지】 천지비급", "title":"【공백지】 천지비급",
"startYear":180, "startYear":180,
"map":{ "map":{
"mapName":"miniche_b" "mapName":"miniche"
}, },
"history":[ "history":[
], ],
"const": { "const": {
"expandCityPopIncreaseAmount": 80000,
"expandCityDevelIncreaseAmount": 1350,
"expandCityWallIncreaseAmount": 1600,
"defaultMaxGeneral":300,
"joinRuinedNPCProp":0, "joinRuinedNPCProp":0,
"availableSpecialWar":[ "availableSpecialWar":[
"che_귀병", "che_신산", "che_환술", "che_집중", "che_신중", "che_반계", "che_귀병", "che_신산", "che_환술", "che_집중", "che_신중", "che_반계",