gen123 => officer432
This commit is contained in:
@@ -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 = [
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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}</>에게서 군주자리를 찬탈");
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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}</>에게 선양했습니다.");
|
||||
|
||||
@@ -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: 상수
|
||||
|
||||
@@ -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
@@ -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');
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user