forked from devsam/core
game: 도구 유니크 밸런스 수정
This commit is contained in:
@@ -7,13 +7,13 @@ class che_간파_노군입산부 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '노군입산부';
|
||||
protected $name = '노군입산부(간파)';
|
||||
protected $info = '[전투] 상대 회피 확률 -30%p, 상대 필살 확률 -10%p';
|
||||
protected $info = '[전투] 상대 회피 확률 -25%p, 상대 필살 확률 -10%p';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcOpposeStat(General $general, string $statName, $value, $aux=null){
|
||||
if($statName === 'warAvoidRatio'){
|
||||
return $value - 0.30;
|
||||
return $value - 0.25;
|
||||
}
|
||||
if($statName === 'warCriticalRatio'){
|
||||
return $value - 0.10;
|
||||
|
||||
@@ -12,10 +12,15 @@ class che_격노_구정신단경 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '구정신단경';
|
||||
protected $name = '구정신단경(격노)';
|
||||
protected $info = '[전투] 상대방 필살 시 격노(필살) 발동, 회피 시도시 25% 확률로 격노 발동, 공격 시 일정 확률로 진노(1페이즈 추가)';
|
||||
protected $info = '[전투] 상대방 필살 시 격노(필살) 발동, 회피 시도시 25% 확률로 격노 발동, 공격 시 일정 확률로 진노(1페이즈 추가), 격노마다 대미지 5% 추가 중첩';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function getWarPowerMultiplier(WarUnit $unit):array{
|
||||
$activatedCnt = $unit->hasActivatedSkillOnLog('격노');
|
||||
return [1 + 0.05*$activatedCnt, 1];
|
||||
}
|
||||
|
||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||
return new WarUnitTriggerCaller(
|
||||
new che_격노시도($unit, che_격노시도::TYPE_ITEM),
|
||||
|
||||
@@ -8,13 +8,13 @@ class che_내정_납금박산로 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '납금박산로';
|
||||
protected $name = '납금박산로(내정)';
|
||||
protected $info = '[내정] 내정 성공률 +20%p';
|
||||
protected $info = '[내정] 내정 성공률 +15%p';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcStrategic(string $turnType, string $varType, $value){
|
||||
if(in_array($turnType, ['상업', '농업', '기술', '성벽', '수비', '치안', '민심', '인구'])){
|
||||
if($varType == 'success') return $value + 0.2;
|
||||
if($varType == 'success') return $value + 0.15;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class che_능력치_무력_두강주 extends \sammo\BaseItem{
|
||||
$gameStor = KVStorage::getStorage(DB::db(), 'game_env');
|
||||
[$year, $startYear] = $gameStor->getValuesAsArray(['year', 'startyear']);
|
||||
$relYear = $year - $startYear;
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 5), 0, GameConst::$maxTechLevel);
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 4), 0, GameConst::$maxTechLevel);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class che_능력치_지력_이강주 extends \sammo\BaseItem{
|
||||
$gameStor = KVStorage::getStorage(DB::db(), 'game_env');
|
||||
[$year, $startYear] = $gameStor->getValuesAsArray(['year', 'startyear']);
|
||||
$relYear = $year - $startYear;
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 5), 0, GameConst::$maxTechLevel);
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 4), 0, GameConst::$maxTechLevel);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class che_능력치_통솔_보령압주 extends \sammo\BaseItem{
|
||||
$gameStor = KVStorage::getStorage(DB::db(), 'game_env');
|
||||
[$year, $startYear] = $gameStor->getValuesAsArray(['year', 'startyear']);
|
||||
$relYear = $year - $startYear;
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 5), 0, GameConst::$maxTechLevel);
|
||||
return $value + 5 + Util::valueFit(intdiv($relYear, 4), 0, GameConst::$maxTechLevel);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@ class che_명성_구석 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '구석';
|
||||
protected $name = '구석(명성)';
|
||||
protected $info = '명성 +15%';
|
||||
protected $info = '명성 +20%';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcStat(General $general, string $statName, $value, $aux=null){
|
||||
if($statName == 'experience'){
|
||||
return $value * 1.15;
|
||||
return $value * 1.20;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class che_불굴_상편 extends \sammo\BaseItem
|
||||
|
||||
protected $rawName = '상편';
|
||||
protected $name = '상편(불굴)';
|
||||
protected $info = '[전투] 남은 병력이 적을수록 공격력 증가. 최대 +50%';
|
||||
protected $info = '[전투] 남은 병력이 적을수록 공격력 증가. 최대 +60%';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
@@ -25,7 +25,7 @@ class che_불굴_상편 extends \sammo\BaseItem
|
||||
|
||||
$crewRatio = Util::valueFit($crew / ($leadership * 100), 0, 1);
|
||||
return new WarUnitTriggerCaller(
|
||||
new 전투력보정($unit, 1 + 0.5 * (1 - $crewRatio))
|
||||
new 전투력보정($unit, 1 + 0.6 * (1 - $crewRatio))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@ class che_숙련_동작 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '동작';
|
||||
protected $name = '동작(숙련)';
|
||||
protected $info = '숙련 +15%';
|
||||
protected $info = '숙련 +20%';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcStat(General $general, string $statName, $value, $aux=null){
|
||||
if($statName == 'addDex'){
|
||||
return $value * 1.15;
|
||||
return $value * 1.20;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ class che_전략_평만지장도 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '평만지장도';
|
||||
protected $name = '평만지장도(전략)';
|
||||
protected $info = '[전략] 국가전략 사용시 재사용 대기 기간 -15%';
|
||||
protected $info = '[전략] 국가전략 사용시 재사용 대기 기간 -20%';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcStrategic(string $turnType, string $varType, $value){
|
||||
if($varType == 'delay'){
|
||||
return Util::round($value * 0.85);
|
||||
return Util::round($value * 0.80);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -7,17 +7,17 @@ use sammo\WarUnitTrigger\che_저지발동;
|
||||
use sammo\WarUnitTrigger\WarActivateSkills;
|
||||
use sammo\WarUnitTriggerCaller;
|
||||
|
||||
class che_반계저지_박혁론 extends \sammo\BaseItem{
|
||||
class che_진압_박혁론 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '박혁론';
|
||||
protected $name = '박혁론(반계저지)';
|
||||
protected $info = '[전투] 상대의 계략 되돌림 불가';
|
||||
protected $name = '박혁론(진압)';
|
||||
protected $info = '[전투] 상대의 계략 되돌림, 격노 불가';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||
return new WarUnitTriggerCaller(
|
||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '반계불가'),
|
||||
new WarActivateSkills($unit, BaseWarUnitTrigger::TYPE_NONE, false, '반계불가', '격노불가'),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -9,13 +9,13 @@ class che_징병_낙주 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '낙주';
|
||||
protected $name = '낙주(징병)';
|
||||
protected $info = '[군사] 징·모병비 -50%, 통솔 순수 능력치 보정 +15%';
|
||||
protected $info = '[군사] 징·모병비 -30%, 통솔 순수 능력치 보정 +15%';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
|
||||
if(in_array($turnType, ['징병', '모병'])){
|
||||
if($varType == 'cost') return $value * 0.5;
|
||||
if($varType == 'cost') return $value * 0.7;
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
@@ -7,13 +7,13 @@ class che_필살_둔갑천서 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '둔갑천서';
|
||||
protected $name = '둔갑천서(필살)';
|
||||
protected $info = '[전투] 필살 확률 +25%p';
|
||||
protected $info = '[전투] 필살 확률 +20%p';
|
||||
protected $cost = 200;
|
||||
protected $consumable = false;
|
||||
|
||||
public function onCalcStat(General $general, string $statName, $value, $aux=null){
|
||||
if($statName === 'warCriticalRatio'){
|
||||
return $value + 0.25;
|
||||
return $value + 0.20;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ class GameConstBase
|
||||
'che_저격_매화수전' => 1, 'che_저격_비도'=>1, 'che_위압_조목삭' => 1, 'che_공성_묵자' => 1,
|
||||
'che_집중_전국책' => 1, 'che_환술_논어집해' => 1,
|
||||
|
||||
'che_반계저지_박혁론' => 1, 'che_부적_태현청생부' => 1, 'che_저지_삼황내문' => 1,
|
||||
'che_진압_박혁론' => 1, 'che_부적_태현청생부' => 1, 'che_저지_삼황내문' => 1,
|
||||
'che_행동_서촉지형도' => 1, 'che_간파_노군입산부' => 1, 'che_불굴_상편' => 1,
|
||||
'che_약탈_옥벽' => 1,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user