gen123 => officer432

This commit is contained in:
2019-10-05 02:45:20 +09:00
parent cd25aaaca6
commit 1e7e01b6b0
27 changed files with 299 additions and 486 deletions
+3 -3
View File
@@ -242,9 +242,9 @@ class CityConstBase{
protected static $buildInitCommon = [
'trust'=>50,
'trade'=>100,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0
'officer4'=>0,
'officer3'=>0,
'officer2'=>0
];
protected static $buildInit = [
+11 -5
View File
@@ -69,13 +69,19 @@ class che_귀환 extends Command\GeneralCommand{
$generalID = $general->getID();
$date = substr($general->getVar('turntime'),11,5);
switch($general->getVar('level')){
case 2: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen3=%i', $generalID); break;
case 3: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen2=%i', $generalID); break;
case 4: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE gen1=%i', $generalID); break;
default: [$cityID, $cityName] = $db->queryFirstList('SELECT city, name FROM city WHERE city=%i', $this->nation['capital']); break;
$generalLevel = $general->getVar('level');
$target = null;
if(2 <= $generalLevel && 4 <= $generalLevel){
$target = $db->queryFirstList(
'SELECT city, name FROM city WHERE %b=%i AND nation = %i',
'officer'.$general->getVar('level'), $generalID, $general->getNationID()
);
}
if(!$target){
$target = $db->queryFirstList('SELECT city, name FROM city WHERE city=%i', $this->nation['capital']);
}
[$cityID, $cityName] = $target;
$josaRo = JosaUtil::pick($cityName, '로');
$logger = $general->getLogger();
+8 -11
View File
@@ -81,20 +81,17 @@ class che_모반시도 extends Command\GeneralCommand{
$logger = $general->getLogger();
$lordLogger = $this->destGeneralObj->getLogger();
$generalLevel = $general->getVar('level');
$general->setVar('level', 12);
$lordGeneral->setVar('level', 1);
$lordGeneral->multiplyVar('experience', 0.7);
$db->update('city', [
'gen1'=>0
], 'gen1=%i', $general->getID());
$db->update('city', [
'gen2'=>0
], 'gen2=%i', $general->getID());
$db->update('city', [
'gen3'=>0
], 'gen3=%i', $general->getID());
if(2 <= $generalLevel && $generalLevel <= 4){
$db->update('city', [
'officer'.$generalLevel=>0
], "officer{$generalLevel}=%i", $general->getID());
}
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("<Y><b>【모반】</b></><Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>의 군주 자리를 찬탈했습니다.");
$logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <Y>{$lordName}</>에게서 군주자리를 찬탈");
+3 -3
View File
@@ -121,9 +121,9 @@ class che_방랑 extends Command\GeneralCommand{
$db->update('city', [
'nation'=>0,
'front'=>0,
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
'conflict'=>'{}'
], 'nation=%i', $nationID);
+6 -9
View File
@@ -102,19 +102,16 @@ class che_선양 extends Command\GeneralCommand{
$logger = $general->getLogger();
$destLogger = $destGeneral->getLogger();
$destGeneralLevel = $destGeneral->getVar('level');
$destGeneral->setVar('level', 12);
$general->setVar('level', 1);
$general->multiplyVar('experience', 0.7);
$db->update('city', [
'gen1'=>0
], 'gen1=%i', $destGeneral->getID());
$db->update('city', [
'gen2'=>0
], 'gen2=%i', $destGeneral->getID());
$db->update('city', [
'gen3'=>0
], 'gen3=%i', $destGeneral->getID());
if(2 <= $destGeneralLevel && $destGeneralLevel <= 4){
$db->update('city', [
'officer'.$destGeneralLevel=>0
], "officer{$destGeneralLevel}=%i", $destGeneral->getID());
}
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("<Y><b>【선양】</b></><Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>의 군주 자리를 <Y>{$destGeneralName}</>에게 선양했습니다.");
+2 -8
View File
@@ -139,14 +139,8 @@ class Personnel{
if(5 <= $general['level'] && $general['level'] <= 11){
$setOriginalNationValues["l{$general['level']}set"] = 0;
}
else if($general['level'] == 4){
$setOriginalCityValues['gen1'] = 0;
}
else if($general['level'] == 3){
$setOriginalCityValues['gen2'] = 0;
}
else if($general['level'] == 2){
$setOriginalCityValues['gen3'] = 0;
else if(2 <= $general['level'] && $general['level'] <= 4){
$setOriginalCityValues['officer'.$general['level']] = 0;
}
$setValues['experience'] = $db->sqleval('experience * (1 - 0.1 * betray)');//XXX: 상수
+13 -11
View File
@@ -65,21 +65,23 @@ class RaiseInvader extends \sammo\Event\Action{
}
$generals = [];
foreach($db->query('SELECT gen1, gen2, gen3 from city where city in %li', $cities) as $city){
list($gen1, $gen2, $gen3) = $city;
if($gen1 != 0) $generals[]=$gen1;
if($gen2 != 0) $generals[]=$gen2;
if($gen3 != 0) $generals[]=$gen3;
foreach($db->query('SELECT officer4, officer3, officer2 from city where city in %li', $cities) as $city){
list($officer4, $officer3, $officer2) = $city;
if($officer4 != 0) $generals[]=$officer4;
if($officer3 != 0) $generals[]=$officer3;
if($officer2 != 0) $generals[]=$officer2;
}
$db->update('general', [
'level'=>1
], 'no in %li', $generals);
if($generals){
$db->update('general', [
'level'=>1
], 'no in %li', $generals);
}
$db->update('city', [
'gen1'=>0,
'gen2'=>0,
'gen3'=>0,
'officer4'=>0,
'officer3'=>0,
'officer2'=>0,
'nation'=>0
], 'city in %li', $cities);
}
+7 -12
View File
@@ -313,22 +313,17 @@ class General implements iAction{
$generalName = $this->getName();
// 군주였으면 유지 이음
if($this->getVar('level') == 12) {
$generalLevel = $this->getVar('level');
if($generalLevel == 12) {
nextRuler($this);
}
//도시의 태수, 군사, 종사직도 초기화
$db->update('city', [
'gen1'=>0,
], 'gen1=%i', $generalID);
$db->update('city', [
'gen2'=>0,
], 'gen2=%i', $generalID);
$db->update('city', [
'gen3'=>0,
], 'gen3=%i', $generalID);
if(2 <= $generalLevel && $generalLevel <= 4){
$db->update('city', [
'officer'.$generalLevel=>0
], "officer{$generalLevel} = %i", $generalID);
}
// 부대 처리
$troopLeaderID = $this->getVar('troop');
+5 -5
View File
@@ -532,7 +532,7 @@ class GeneralAI{
$supplyCitiesID[] = $cityID;
if($nationCity['front']){
$frontCitiesID[] = $cityID;
if($nationCity['gen1']){
if($nationCity['officer4']){
$frontImportantCitiesID[] = $cityID;
}
}
@@ -1300,7 +1300,7 @@ class GeneralAI{
$developTurn = $this->chooseDevelopTurn($cityFull);
if($cityFull && Util::randBool(0.2)){
$moveRawCities = $db->query('SELECT city,front,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev, gen2 FROM city WHERE nation=%i', $nationID);
$moveRawCities = $db->query('SELECT city,front,(pop/10+agri+comm+secu+def+wall)/(pop2/10+agri2+comm2+secu2+def2+wall2)*100 as dev, officer3 FROM city WHERE nation=%i', $nationID);
$moveCities = [];
foreach($moveRawCities as $moveCity){
@@ -1309,7 +1309,7 @@ class GeneralAI{
continue;
}
$score = 1 / $moveCity['dev'];
if($moveCity['gen2']){
if($moveCity['officer3']){
$score *= 1.3;
}
$moveCities[$moveCityID] = $score;
@@ -1429,7 +1429,7 @@ class GeneralAI{
return null;
}
$frontCities = $db->query('SELECT city, front, gen1 FROM city WHERE nation=%i AND front > 0 AND supply = 1');
$frontCities = $db->query('SELECT city, front, officer4 FROM city WHERE nation=%i AND front > 0 AND supply = 1');
if(!$frontCities){
//접경이 아직 없음
@@ -1442,7 +1442,7 @@ class GeneralAI{
$frontCityID = $frontCity['city'];
$score = 0.2;
if($frontCity['front'] > 1 && $frontCity['gen1']){
if($frontCity['front'] > 1 && $frontCity['officer4']){
$score += 3;
}
$attackableCities[$frontCityID] = $score;
+2 -14
View File
@@ -19,20 +19,8 @@ class TriggerGeneralLevel implements iAction{
}
}
else{
if($this->generalLevel == 2){
if($city['gen3'] != $general['no']){
$this->generalLevel = 1;
}
}
else if($this->generalLevel == 3){
if($city['gen2'] != $general['no']){
$this->generalLevel = 1;
}
}
else if($this->generalLevel == 4){
if($city['gen1'] != $general['no']){
$this->generalLevel = 1;
}
if(2 <= $this->generalLevel && $this->generalLevel <= 4 && $city['officer'.$this->generalLevel] != $general['no']){
$this->generalLevel = 1;
}
}
+1 -7
View File
@@ -173,13 +173,7 @@ class WarUnitGeneral extends WarUnit{
else if($genLevel == 11 || $genLevel == 9 || $genLevel == 7 || $genLevel == 5){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 4 && $generalNo == $this->getCityVar('gen1')){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 3 && $generalNo == $this->getCityVar('gen2')){
$opposeWarPowerMultiply *= 0.95;
}
else if($genLevel == 2 && $generalNo == $this->getCityVar('gen3')){
else if(2 <= $genLevel && $genLevel <= 4 && $generalNo == $this->getCityVar('officer'.$genLevel)){
$opposeWarPowerMultiply *= 0.95;
}
}