game: 수뇌/관직 전투력 보정을 조정

- 수비시, 공격시가 아니라 항시 작동
- 군주: 공격 5%, 피해 -5%
- 참모: 공격 3%, 피해 -3%
- 무장 수뇌: 공격 3%
- 지장 수뇌: 피해 -3%
- 도시 관직: 공격 1.5%, 피해 -1.5%
This commit is contained in:
2022-04-13 01:53:14 +09:00
parent f67fa5c764
commit fe4d095f21
2 changed files with 28 additions and 22 deletions
+28 -2
View File
@@ -47,8 +47,8 @@ class TriggerOfficerLevel implements iAction{
}
}
}
return $value;
}
@@ -58,4 +58,30 @@ class TriggerOfficerLevel implements iAction{
}
return $value;
}
public function getWarPowerMultiplier(WarUnit $unit): array
{
$officerLevel = $this->officerLevel;
$warPowerMultiply = 1;
$opposeWarPowerMultiply = 1;
if ($officerLevel == 12) {
$warPowerMultiply = 1.05;
$opposeWarPowerMultiply = 0.95;
}
else if($officerLevel == 11){
$warPowerMultiply = 1.03;
$opposeWarPowerMultiply = 0.97;
}
else if(in_array($officerLevel, [10, 8, 6])){
$warPowerMultiply = 1.03;
}
else if(in_array($officerLevel, [9, 7, 5])){
$opposeWarPowerMultiply = 0.97;
}
else if(in_array($officerLevel, [4, 3, 2])){
$warPowerMultiply = 1.015;
$opposeWarPowerMultiply = 0.985;
}
return [$warPowerMultiply, $opposeWarPowerMultiply];
}
}
-20
View File
@@ -209,25 +209,6 @@ class WarUnitGeneral extends WarUnit
[$warPower, $opposeWarPowerMultiply] = parent::computeWarPower();
$general = $this->general;
$cityID = $general->getCityID();
$officerLevel = $general->getVar('officer_level');
$officerCity = $general->getVar('officer_city');
if ($this->isAttacker) {
if ($officerLevel == 12) {
$warPower *= 1.10;
} else if ($officerLevel == 11 || $officerLevel == 10 || $officerLevel == 8 || $officerLevel == 6) {
$warPower *= 1.05;
}
} else {
if ($officerLevel == 12) {
$opposeWarPowerMultiply *= 0.90;
} else if ($officerLevel == 11 || $officerLevel == 9 || $officerLevel == 7 || $officerLevel == 5) {
$opposeWarPowerMultiply *= 0.95;
} else if (2 <= $officerLevel && $officerLevel <= 4 && $officerCity == $cityID) {
$opposeWarPowerMultiply *= 0.95;
}
}
$expLevel = $general->getVar('explevel');
@@ -238,7 +219,6 @@ class WarUnitGeneral extends WarUnit
$opposeWarPowerMultiply *= max(0.01, 1 - $expLevel / 300);
}
[$specialMyWarPowerMultiply, $specialOpposeWarPowerMultiply] = $this->general->getWarPowerMultiplier($this);
$warPower *= $specialMyWarPowerMultiply;
$opposeWarPowerMultiply *= $specialOpposeWarPowerMultiply;