-
+ |
userGrade == 4){
내용 없이 '서신전달&갱신'을 누르면 메세지창이 갱신됩니다.
-=allButton()?>
+=allButton($gameStor->npcmode!=0)?>
@@ -356,7 +356,7 @@ else if($session->userGrade == 4){
-=allButton()?>=banner()?>
+=allButton($gameStor->npcmode!=0)?>=banner()?>
setReadOnly();
$userID = Session::getUserID();
-$generalInfo = DB::db()->queryFirstRow('SELECT `no`, `nation`, `level`, belong, penalty, permission from `general` where `owner`=%i', $userID);
+$generalInfo = DB::db()->queryFirstRow('SELECT `no`, `nation`, `officer_level`, belong, penalty, permission from `general` where `owner`=%i', $userID);
if(!$generalInfo){
Json::die($result);
}
@@ -22,8 +22,8 @@ $permission = checkSecretPermission($generalInfo);
$result['generalID'] = $generalInfo['no'];
$result['myNationID'] = $generalInfo['nation'];
-$result['isChief'] = ($generalInfo['level'] == 12);
-$result['generalLevel'] = $generalInfo['level'];
+$result['isChief'] = ($generalInfo['officer_level'] == 12);
+$result['officerLevel'] = $generalInfo['officer_level'];
$result['permission'] = $permission;
Json::die($result);
\ No newline at end of file
diff --git a/hwe/j_board_article_add.php b/hwe/j_board_article_add.php
index 96fb6d27..52a58ac6 100644
--- a/hwe/j_board_article_add.php
+++ b/hwe/j_board_article_add.php
@@ -15,7 +15,7 @@ $text = Util::getReq('text');
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, name, level, permission, con, turntime, belong, penalty, `picture`,`imgsvr` FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, name, officer_level, permission, con, turntime, belong, penalty, `picture`,`imgsvr` FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_board_comment_add.php b/hwe/j_board_comment_add.php
index fbb36eb0..dcae175a 100644
--- a/hwe/j_board_comment_add.php
+++ b/hwe/j_board_comment_add.php
@@ -14,7 +14,7 @@ $text = Util::getReq('text');
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, name, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, name, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_board_get_articles.php b/hwe/j_board_get_articles.php
index c8fb0f85..b827cf35 100644
--- a/hwe/j_board_get_articles.php
+++ b/hwe/j_board_get_articles.php
@@ -14,7 +14,7 @@ $isSecretBoard = Util::getReq('isSecret', 'bool', false);
increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
diff --git a/hwe/j_chief_turn.php b/hwe/j_chief_turn.php
index 2224d385..1ac30d8b 100644
--- a/hwe/j_chief_turn.php
+++ b/hwe/j_chief_turn.php
@@ -10,7 +10,7 @@ $userID = Session::getUserID();
$turnAmount = Util::getReq('amount', 'int');
$db = DB::db();
-$me = $db->queryFirstRow('SELECT no,nation,level FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no,nation,officer_level FROM general WHERE owner=%i', $userID);
if($me['nation'] == 0){
Json::die([
@@ -19,7 +19,7 @@ if($me['nation'] == 0){
]);
}
-if($me['level'] < 5){
+if($me['officer_level'] < 5){
Json::die([
'result'=>false,
'reason'=>'수뇌가 아닙니다.',
@@ -27,10 +27,10 @@ if($me['level'] < 5){
}
if($turnAmount > 0){
- pushNationCommand($me['nation'], $me['level']);
+ pushNationCommand($me['nation'], $me['officer_level']);
}
else{
- pullNationCommand($me['nation'], $me['level']);
+ pullNationCommand($me['nation'], $me['officer_level']);
}
Json::die([
diff --git a/hwe/j_diplomacy_destroy_letter.php b/hwe/j_diplomacy_destroy_letter.php
index 2f9f4529..39bb5071 100644
--- a/hwe/j_diplomacy_destroy_letter.php
+++ b/hwe/j_diplomacy_destroy_letter.php
@@ -13,7 +13,7 @@ $letterNo = Util::getReq('letterNo', 'int');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_diplomacy_get_letter.php b/hwe/j_diplomacy_get_letter.php
index b7fa163c..6ff0410a 100644
--- a/hwe/j_diplomacy_get_letter.php
+++ b/hwe/j_diplomacy_get_letter.php
@@ -14,7 +14,7 @@ $isSecretBoard = Util::getReq('isSecret', 'bool', false);
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
diff --git a/hwe/j_diplomacy_respond_letter.php b/hwe/j_diplomacy_respond_letter.php
index 294f3fc4..8f9ee5ed 100644
--- a/hwe/j_diplomacy_respond_letter.php
+++ b/hwe/j_diplomacy_respond_letter.php
@@ -18,7 +18,7 @@ $reason = Util::getReq('reason', 'string', '');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_diplomacy_rollback_letter.php b/hwe/j_diplomacy_rollback_letter.php
index eb915564..6a403e9f 100644
--- a/hwe/j_diplomacy_rollback_letter.php
+++ b/hwe/j_diplomacy_rollback_letter.php
@@ -13,7 +13,7 @@ $letterNo = Util::getReq('letterNo', 'int');
increaseRefresh("외교부", 1);
-$me = $db->queryFirstRow('SELECT no, name, nation, level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_diplomacy_send_letter.php b/hwe/j_diplomacy_send_letter.php
index 7bf4ec32..056d2578 100644
--- a/hwe/j_diplomacy_send_letter.php
+++ b/hwe/j_diplomacy_send_letter.php
@@ -20,7 +20,7 @@ if($prevNo < 1){
$prevNo = null;
}
-$me = $db->queryFirstRow('SELECT no, name, nation, level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, name, nation, officer_level, permission, con, turntime, belong, penalty, picture, imgsvr FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
diff --git a/hwe/j_general_set_permission.php b/hwe/j_general_set_permission.php
index 4de7a5b1..aeec3291 100644
--- a/hwe/j_general_set_permission.php
+++ b/hwe/j_general_set_permission.php
@@ -3,7 +3,6 @@ namespace sammo;
include "lib.php";
include "func.php";
-// $btn, $level, $genlist, $outlist
//TODO: 변경이 완료되면 항상 공지되어야함
@@ -17,9 +16,9 @@ $userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
-$me = $db->queryFirstRow('SELECT no, level, nation FROM general WHERE owner = %i', $userID);
+$me = $db->queryFirstRow('SELECT no, officer_level, nation FROM general WHERE owner = %i', $userID);
-if(!$me || $me['level'] != 12){
+if(!$me || $me['officer_level'] != 12){
Json::die([
'result'=>false,
'reason'=>'군주가 아닙니다',
@@ -55,7 +54,7 @@ if(!$genlist){
]);
}
$realCandidates = [];
-foreach($db->query('SELECT no, nation, level, penalty, permission FROM general WHERE nation = %i AND level != 12 AND permission = \'normal\' AND no IN %li', $nationID, $genlist) as $candidate){
+foreach($db->query('SELECT no, nation, officer_level, penalty, permission FROM general WHERE nation = %i AND officer_level != 12 AND permission = \'normal\' AND no IN %li', $nationID, $genlist) as $candidate){
$maxPermission = checkSecretMaxPermission($candidate);
if($maxPermission < $targetLevel){
continue;
diff --git a/hwe/j_getChiefTurn.php b/hwe/j_getChiefTurn.php
index 8d2fde62..e630df0a 100644
--- a/hwe/j_getChiefTurn.php
+++ b/hwe/j_getChiefTurn.php
@@ -12,7 +12,7 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("사령부", 1);
-$me = $db->queryFirstRow('SELECT no,nation,level,con,turntime,belong,penalty,permission FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no,nation,officer_level,con,turntime,belong,penalty,permission FROM general WHERE owner=%i', $userID);
$nationLevel = $db->queryFirstField('SELECT level FROM nation WHERE nation = %i', $me['nation']);
$nationID = $me['nation'];
@@ -49,34 +49,34 @@ $lv = getNationChiefLevel($nationLevel);
$turn = [];
$generals = [];
-foreach($db->query('SELECT no,name,turntime,npc,city,nation,level FROM general WHERE nation = %i AND level >= 5',$nationID) as $rawGeneral){
- $generals[$rawGeneral['level']] = new General($rawGeneral, null, $year, $month, false);
+foreach($db->query('SELECT no,name,turntime,npc,city,nation,officer_level FROM general WHERE nation = %i AND officer_level >= 5',$nationID) as $rawGeneral){
+ $generals[$rawGeneral['officer_level']] = new General($rawGeneral, null, $year, $month, false);
}
$nationTurnList = [];
foreach(
$db->queryAllLists(
- 'SELECT level, turn_idx, action, arg, brief FROM nation_turn WHERE nation_id = %i ORDER BY level DESC, turn_idx ASC',
+ 'SELECT officer_level, turn_idx, action, arg, brief FROM nation_turn WHERE nation_id = %i ORDER BY officer_level DESC, turn_idx ASC',
$me['nation']
- ) as [$level, $turn_idx, $action, $arg, $brief]
+ ) as [$officer_level, $turn_idx, $action, $arg, $brief]
){
- if(!key_exists($level, $nationTurnList)){
- $nationTurnList[$level] = [];
+ if(!key_exists($officer_level, $nationTurnList)){
+ $nationTurnList[$officer_level] = [];
}
- $nationTurnList[$level][$turn_idx] = $brief;
+ $nationTurnList[$officer_level][$turn_idx] = $brief;
}
$nationTurnBrief = [];
-foreach($nationTurnList as $level=>$turnBrief){
- if(!key_exists($level, $generals)){
+foreach($nationTurnList as $officer_level=>$turnBrief){
+ if(!key_exists($officer_level, $generals)){
continue;
}
- $general = $generals[$level];
- $nationTurnBrief[$level] = [
+ $general = $generals[$officer_level];
+ $nationTurnBrief[$officer_level] = [
'name'=>$general->getName(),
'turnTime'=>$general->getTurnTime($general::TURNTIME_FULL),
- 'levelText'=>getLevelText($general->getVar('level'), $nationLevel),
+ 'officerlevelText'=>getOfficerLevelText($general->getVar('officer_level'), $nationLevel),
'npcType'=>$general->getVar('npc'),
'turn'=>$turnBrief
];
@@ -89,6 +89,6 @@ Json::die([
'reason'=>'success',
'date'=>$date,
'nationTurnBrief'=>$nationTurnBrief,
- 'isChief'=>($me['level'] > 4),
+ 'isChief'=>($me['officer_level'] > 4),
'turnTerm'=>$turnterm
]);
\ No newline at end of file
diff --git a/hwe/j_get_general_list.php b/hwe/j_get_general_list.php
index e8d42d8b..61a8e44d 100644
--- a/hwe/j_get_general_list.php
+++ b/hwe/j_get_general_list.php
@@ -42,7 +42,7 @@ else{
$session->setReadOnly();
-$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,owner_name as ownerName,injury,leadership,strength,intel,experience,dedication,level,killturn,connect from general');
+$rawGeneralList = $db->queryAllLists('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,owner_name as ownerName,injury,leadership,strength,intel,experience,dedication,officer_level,killturn,connect from general');
$ownerNameList = [];
if($gameStor->isunited){
@@ -53,14 +53,14 @@ if($gameStor->isunited){
$generalList = [];
foreach($rawGeneralList as $rawGeneral){
- [$owner,$no,$picture,$imgsvr,$npc,$age,$nation,$special,$special2,$personal,$name,$ownerName,$injury,$leadership,$strength,$intel,$experience,$dedication,$level,$killturn,$connect] = $rawGeneral;
+ [$owner,$no,$picture,$imgsvr,$npc,$age,$nation,$special,$special2,$personal,$name,$ownerName,$injury,$leadership,$strength,$intel,$experience,$dedication,$officerLevel,$killturn,$connect] = $rawGeneral;
if(key_exists($owner, $ownerNameList)){
$ownerName = $ownerNameList[$owner];
}
$nationArr = getNationStaticInfo($nation);
- $lbonus = calcLeadershipBonus($level, $nationArr['level']);
+ $lbonus = calcLeadershipBonus($officerLevel, $nationArr['level']);
$generalList[] = [
$no,
@@ -82,7 +82,7 @@ foreach($rawGeneralList as $rawGeneral){
getExpLevel($experience),
getHonor($experience),
getDed($dedication),
- getLevelText($level, $nationArr['level']),
+ getOfficerLevelText($officerLevel, $nationArr['level']),
$killturn,
$connect
];
diff --git a/hwe/j_get_nation_general_list.php b/hwe/j_get_nation_general_list.php
index cf6528bc..7522d382 100644
--- a/hwe/j_get_nation_general_list.php
+++ b/hwe/j_get_nation_general_list.php
@@ -17,7 +17,7 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("세력장수", 1);
-$me = $db->queryFirstRow('SELECT con, turntime, nation, level, permission, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT con, turntime, nation, officer_level, permission, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
if ($con >= 2) {
Json::die([
@@ -42,7 +42,7 @@ $viewColumns = [
'owner_name'=>9,
'nation'=>1,
'city'=>1,
- 'level'=>1,
+ 'officer_level'=>9,
'npc'=>1,
'defence_train'=>2,
'troop'=>2,
@@ -76,14 +76,18 @@ $viewColumns = [
];
$customViewColumns = [
+ 'officerLevel'=>1,
+ 'officerlevelText'=>1,
'lbonus'=>1,
'ownerName'=>1,
- 'levelText'=>1,
'honorText'=>1,
'expLevelText'=>1,
];
$specialViewFilter = [
+ 'officerLevel'=>function($rawGeneral){
+ return $rawGeneral['officer_level'];
+ },
'special'=>function($rawGeneral){
return getGeneralSpecialDomesticName($rawGeneral['special']);
},
@@ -94,7 +98,7 @@ $specialViewFilter = [
return getGenChar($rawGeneral['personal']);
},
'lbonus'=>function($rawGeneral)use($nationArr){
- return calcLeadershipBonus($rawGeneral['level'], $nationArr['level']);
+ return calcLeadershipBonus($rawGeneral['officer_level'], $nationArr['level']);
},
'ownerName'=>function($rawGeneral){
if($rawGeneral['npc']!=1){
@@ -102,8 +106,8 @@ $specialViewFilter = [
}
return $rawGeneral['owner_name'];
},
- 'levelText'=>function($rawGeneral)use($nationArr){
- return getLevelText($rawGeneral['level'], $nationArr['level']);
+ 'officerlevelText'=>function($rawGeneral)use($nationArr){
+ return getOfficerLevelText($rawGeneral['officer_level'], $nationArr['level']);
},
'honorText'=>function($rawGeneral){
return getHonor($rawGeneral['experience']);
diff --git a/hwe/j_msg_decide_opt.php b/hwe/j_msg_decide_opt.php
index ccad9d53..097d6916 100644
--- a/hwe/j_msg_decide_opt.php
+++ b/hwe/j_msg_decide_opt.php
@@ -29,7 +29,7 @@ if ($msgID === null || !is_bool($msgResponse)) {
]);
}
-$general = DB::db()->queryFirstRow('select `no`, `name`, `nation`, `nations`, `level`, `npc`, `gold`, `rice`, `troop` from `general` where `no` = %i', $generalID);
+$general = DB::db()->queryFirstRow('select `no`, `name`, `nation`, `nations`, `officer_level`, `npc`, `gold`, `rice`, `troop` from `general` where `no` = %i', $generalID);
if(!$general){
Json::die([
'result'=>false,
diff --git a/hwe/j_msg_get_old.php b/hwe/j_msg_get_old.php
index f0662845..86208571 100644
--- a/hwe/j_msg_get_old.php
+++ b/hwe/j_msg_get_old.php
@@ -50,7 +50,7 @@ if($delayTime){
}
$session->setReadOnly();
-$me = DB::db()->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
+$me = DB::db()->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
if($me === null){
Json::die([
diff --git a/hwe/j_msg_get_recent.php b/hwe/j_msg_get_recent.php
index b98c5592..36c1f712 100644
--- a/hwe/j_msg_get_recent.php
+++ b/hwe/j_msg_get_recent.php
@@ -38,7 +38,7 @@ $session->setReadOnly();
$db = DB::db();
-$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
+$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission FROM general WHERE `owner`=%i', $userID);
if($me === null){
Json::die([
diff --git a/hwe/j_msg_submit.php b/hwe/j_msg_submit.php
index e5abb600..a13e8152 100644
--- a/hwe/j_msg_submit.php
+++ b/hwe/j_msg_submit.php
@@ -49,7 +49,7 @@ $now = new \DateTime();
$unlimited = new \DateTime('9999-12-31');
$db = DB::db();
-$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,penalty,permission,belong FROM general WHERE `owner`=%i', $userID);
+$me = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,penalty,permission,belong FROM general WHERE `owner`=%i', $userID);
if(!$me){
$session->logoutGame();
@@ -150,7 +150,7 @@ if($mailbox > 0) {
$session->lastMsg = $now->format('Y-m-d H:i:s');
- $destUser = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr`,permission,penalty FROM general WHERE `no`=%i',$mailbox);
+ $destUser = $db->queryFirstRow('SELECT `no`,`name`,`nation`,`officer_level`,`con`,`picture`,`imgsvr`,permission,penalty FROM general WHERE `no`=%i',$mailbox);
if(!$destUser){
Json::die([
diff --git a/hwe/j_myBossInfo.php b/hwe/j_myBossInfo.php
index b802a513..4c638b8b 100644
--- a/hwe/j_myBossInfo.php
+++ b/hwe/j_myBossInfo.php
@@ -3,10 +3,9 @@ namespace sammo;
include "lib.php";
include "func.php";
-// $action, $level, $genlist, $outlist
$action = Util::getReq('action');
-$level = Util::getReq('level', 'int');
+$officerLevel = Util::getReq('officerLevel', 'int');
$destGeneralID = Util::getReq('destGeneralID', 'int');
$destCityID = Util::getReq('destCityID', 'int');
@@ -18,12 +17,12 @@ $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->cacheValues(['startyear','year','month','scenario']);
-$me = $db->queryFirstRow('SELECT no,nation,level from general where owner=%i', $userID);
-$myLevel = $me['level'];
+$me = $db->queryFirstRow('SELECT no,nation,officer_level from general where owner=%i', $userID);
+$myOfficerLevel = $me['officer_level'];
$nationID = $nationID;
//수뇌가 아니면 아무것도 할 수 없음
-if($myLevel < 5){
+if($myOfficerLevel < 5){
Json::die([
'result'=>false,
'reason'=>'수뇌가 아닙니다.'
@@ -41,12 +40,12 @@ if($destGeneralID==0){
$general = new DummyGeneral(true);
}
else{
- $general = General::createGeneralObjFromDB($destGeneralID, ['name', 'leadership', 'strength', 'intel', 'gold','rice','troop','level','npc','picture','imgsvr','permission','penalty','belong'], 1);
+ $general = General::createGeneralObjFromDB($destGeneralID, ['name', 'leadership', 'strength', 'intel', 'gold','rice','troop','officer_level','npc','picture','imgsvr','permission','penalty','belong'], 1);
if($general instanceof DummyGeneral){
Json::die([
'result'=>false,
- 'reason'=>'올바릦 않은 장수입니다.'
+ 'reason'=>'올바르지 않은 장수입니다.'
]);
}
@@ -58,28 +57,28 @@ else{
}
}
-if($generalLevel == 12){
+if($officerLevel == 12){
Json::die([
'result'=>false,
'reason'=>'군주를 대상으로 할 수 없습니다.'
]);
}
-function do수뇌임명(General $general, int $targetLevel):?string{
- global $myLevel;
+function do수뇌임명(General $general, int $targetOfficerLevel):?string{
+ global $myOfficerLevel;
$generalID = $general->getID();
- $generalLevel = $general->getVar('level');
+ $officerLevel = $general->getVar('officer_level');
$generalName = $general->getVar('name');
$nationID = $general->getNationID();
$db = DB::db();
- [$levelSet, $nationLevel] = $db->queryFirstList('SELECT $b,level FROM nation WHERE nation = %i', "l{$targetLevel}set", $nationID);
+ [$levelSet, $nationLevel] = $db->queryFirstList('SELECT %b,level FROM nation WHERE nation = %i', "l{$targetOfficerLevel}set", $nationID);
// 임명가능 레벨
$lv = getNationChiefLevel($nationLevel);
- if($targetLevel < $lv){
+ if($targetOfficerLevel < $lv){
return '임명불가능한 관직입니다.';
}
@@ -89,13 +88,14 @@ function do수뇌임명(General $general, int $targetLevel):?string{
//기존 장수 일반으로
$db->update('general', [
- 'level'=>1,
- ], 'nation=%i AND level=%i', $nationID, $targetLevel);
+ 'officer_level'=>1,
+ 'officer_city'=>0,
+ ], 'nation=%i AND officer_level=%i', $nationID, $targetOfficerLevel);
- if($targetLevel === 11){
+ if($targetOfficerLevel === 11){
}
- else if($targetLevel % 2 == 0){
+ else if($targetOfficerLevel % 2 == 0){
if($general->getVar('strength') < GameConst::$chiefStatMin){
return '무력이 부족합니다.';
}
@@ -107,80 +107,58 @@ function do수뇌임명(General $general, int $targetLevel):?string{
}
}
- // 신임 장수의 원래 자리 해제
- if(2 <= $generalLevel && $generalLevel <= 4){
- $db->update('city', [
- 'officer'.$generalLevel=>0
- ], "officer{$generalLevel} = %i", $generalID);
- }
//신임 장수
- $general->setVar('level', $targetLevel);
+ $general->setVar('officer_level', $targetOfficerLevel);
+ $general->setVar('officer_city', 0);
$db->update('nation', [
- "l{$targetLevel}set"=>1,
+ "l{$targetOfficerLevel}set"=>1,
], 'nation=%i', $nationID);
return null;
}
-function do도시임명(General $general, int $cityID, int $targetLevel):?string{
- $generalID = $general->getID();
- $generalLevel = $general->getVar('level');
+function do도시임명(General $general, int $cityID, int $targetOfficerLevel):?string{
$nationID = $general->getNationID();
- $genlv = 'officer'.$targetLevel;
- $genlvset = 'officer'.$targetLevel.'set';
+ $genlvset = 'officer'.$targetOfficerLevel.'set';
$db = DB::db();
- $oldOfficerID = $db->queryFirstField('SELECT %b FROM city WHERE nation=%i AND city=%i', $genlv, $nationID, $cityID);
-
- if($oldOfficerID === null){
+ if(CityConst::byID($cityID) === null){
return '올바르지 않은 도시입니다';
}
- if($oldOfficerID !== 0) {
- //기존 장수 일반으로
- $db->update('general', [
- 'level'=>1
- ], 'no=%i', $oldOfficerID);
- //기존 자리 공석으로
- $db->update('city', [
- $genlv=>0
- ], 'city = %i AND nation = %i', $cityID , $nationID);
- }
+ //기존 장수 일반으로
+ $db->update('general', [
+ 'officer_level'=>1,
+ 'officer_city'=>0,
+ ], 'officer_level=%i AND officer_city=%i', $targetOfficerLevel, $cityID);
if($general instanceof DummyGeneral){
return null;
}
- if($targetLevel === 4 && $general->getVar('strength') < GameConst::$chiefStatMin){
+ if($targetOfficerLevel === 4 && $general->getVar('strength') < GameConst::$chiefStatMin){
return '무력이 부족합니다.';
}
- if($targetLevel === 3 && $general->getVar('intel') < GameConst::$chiefStatMin){
+ if($targetOfficerLevel === 3 && $general->getVar('intel') < GameConst::$chiefStatMin){
return '지력이 부족합니다.';
}
- // 신임 장수의 원래 자리 해제
- if(2 <= $generalLevel && $generalLevel <= 4){
- $db->update('city', [
- 'officer'.$generalLevel=>0
- ], "officer{$generalLevel} = %i", $generalID);
- }
-
//신임 장수
$db->update('city', [
- $genlv=>$generalID,
$genlvset=>1
], 'city=%i AND nation=%i', $cityID, $nationID);
- $general->setVar('level', $targetLevel);
+ $general->setVar('officer_level', $targetOfficerLevel);
+ $general->setVar('officer_city', $cityID);
return null;
}
-function do추방(General $general, int $myLevel):?string{
+function do추방(General $general, int $myOfficerLevel):?string{
$generalID = $general->getID();
- $generalLevel = $general->getVar('level');
+ $officerLevel = $general->getVar('officer_level');
$generalName = $general->getVar('name');
$nationID = $general->getNationID();
@@ -201,13 +179,13 @@ function do추방(General $general, int $myLevel):?string{
$gameStor = KVStorage::getStorage($db, 'game_env');
$env = $gameStor->getValues(['startyear','year','month','scenario']);
- $nation = $db->queryFirstRow('SELECT name,%b,color FROM nation WHERE nation=%i',"l{$myLevel}set", $nationID);
+ $nation = $db->queryFirstRow('SELECT name,%b,color FROM nation WHERE nation=%i',"l{$myOfficerLevel}set", $nationID);
$nationName = $nation['name'];
$logger = $general->getLogger();
//이미 지정했다면 무시
- if($nation["l{$myLevel}set"] == 1 || $generalLevel == 0 && $generalLevel == 12) {
+ if($nation["l{$myOfficerLevel}set"] == 1 || $officerLevel == 0 && $officerLevel == 12) {
header('location:b_myBossInfo.php', true, 303);
die();
}
@@ -227,7 +205,8 @@ function do추방(General $general, int $myLevel):?string{
}
$general->setVar('nation', 0);
- $general->setVar('level', 0);
+ $general->setVar('officer_level', 0);
+ $general->setVar('officer_city', 0);
$general->setVar('belong', 0);
$oldMakeLimit = $general->getVar('makelimit');
$general->setVar('makelimit', 12);
@@ -268,13 +247,6 @@ function do추방(General $general, int $myLevel):?string{
}
$general->setVar('troop', 0);
- // 도시관직해제
- if(2 <= $generalLevel && $generalLevel <= 4){
- $db->update('city', [
- 'officer'.$generalLevel=>0
- ], "officer{$generalLevel} = %i", $general->getID());
- }
-
if($general->getVar('npc') >= 2 && ($env['scenario'] < 100 || Util::randBool(0.01))) {
$str = Util::choiceRandom([
@@ -309,7 +281,7 @@ function do추방(General $general, int $myLevel):?string{
//초반엔 군주 부상 증가(엔장 임관지양)
$db->update('general', [
'injury'=>$db->sqleval('least(injury + 1, %i)', 80),
- ], 'nation=%i AND level=12', $nationID);
+ ], 'nation=%i AND officer_level=12', $nationID);
$db->update('nation', [
'gennum'=>$db->sqleval('gennum - 1'),
@@ -319,7 +291,7 @@ function do추방(General $general, int $myLevel):?string{
} else {
//이번분기는 추방불가(초반 제외)
$db->update('nation', [
- "l{$myLevel}set"=>1,
+ "l{$myOfficerLevel}set"=>1,
'gennum'=>$db->sqleval('gennum - 1'),
'gold'=>$db->sqleval('gold + %i', $gold),
'rice'=>$db->sqleval('rice + %i', $rice),
@@ -334,14 +306,14 @@ function do추방(General $general, int $myLevel):?string{
if($action == "임명") {
- if(2 <= $level && $level <= 4){
+ if(2 <= $officerLevel && $officerLevel <= 4){
if(!$destCityID){
Json::die([
'result'=>false,
'reason'=>'도시가 지정되지 않았습니다.'
]);
}
- $result = do도시임명($general, $destCityID, $level);
+ $result = do도시임명($general, $destCityID, $officerLevel);
if($result !== null){
Json::die([
'result'=>false,
@@ -354,8 +326,8 @@ if($action == "임명") {
]);
}
- if(5 <= $level && $level < 12){
- $result = do수뇌임명($general, $level);
+ if(5 <= $officerLevel && $officerLevel < 12){
+ $result = do수뇌임명($general, $officerLevel);
if($result !== null){
Json::die([
'result'=>false,
@@ -375,7 +347,7 @@ if($action == "임명") {
}
if($action == "추방") {
- $result = do추방($general, $myLevel);
+ $result = do추방($general, $myOfficerLevel);
if($result !== null){
Json::die([
'result'=>false,
diff --git a/hwe/j_simulate_battle.php b/hwe/j_simulate_battle.php
index 08078f91..dbb803ca 100644
--- a/hwe/j_simulate_battle.php
+++ b/hwe/j_simulate_battle.php
@@ -83,13 +83,13 @@ $generalCheck = [
'required'=>[
'no', 'name', 'nation', 'turntime', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
'intel', 'intel_exp', 'book', 'strength', 'strength_exp', 'weapon', 'injury', 'leadership', 'leadership_exp', 'horse', 'item',
- 'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
+ 'explevel', 'experience', 'dedication', 'officer_level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
'recent_war'
],
'integer'=>[
'no', 'nation', 'personal', 'special2', 'crew', 'crewtype', 'atmos', 'train',
'intel', 'intel_exp', 'book', 'strength', 'strength_exp', 'weapon', 'injury', 'leadership', 'leadership_exp', 'horse', 'item',
- 'explevel', 'experience', 'dedication', 'level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
+ 'explevel', 'experience', 'dedication', 'officer_level', 'gold', 'rice', 'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
],
'min'=>[
['no', 1],
@@ -112,7 +112,7 @@ $generalCheck = [
['atmos', [40, GameConst::$maxAtmosByWar]],
['explevel', [0, 300]],
['injury', [0, 80]],
- ['level', [1, 12]]
+ ['officer_level', [1, 12]]
],
'in'=>[
['personal', array_keys(getCharacterList())],
@@ -156,7 +156,7 @@ $cityCheck = [
'pop', 'agri', 'comm', 'secu', 'def', 'wall',
'trust', 'level',
'pop_max', 'agri_max', 'comm_max', 'secu_max', 'def_max', 'wall_max',
- 'dead', 'state', 'officer4', 'officer3', 'officer2', 'conflict',
+ 'dead', 'state', 'conflict',
],
'numeric'=>[
'pop', 'agri', 'comm', 'secu', 'def', 'wall', 'trust', 'dead'
@@ -164,7 +164,7 @@ $cityCheck = [
'integer'=>[
'city', 'nation', 'supply',
'pop_max', 'agri_max', 'comm_max', 'secu_max', 'def_max', 'wall_max',
- 'state', 'officer4', 'officer3', 'officer2'
+ 'state',
],
'min'=>[
['def', 0],
@@ -215,9 +215,6 @@ $nationCheck = [
['gold', 0],
['rice', 0],
['gennum', 1],
- ['officer4', 0],
- ['officer3', 0],
- ['officer2', 0],
],
'in'=>[
['type', array_keys(getNationTypeList())],
diff --git a/hwe/join_post.php b/hwe/join_post.php
index bba1be26..3cbf4d98 100644
--- a/hwe/join_post.php
+++ b/hwe/join_post.php
@@ -238,7 +238,7 @@ $db->insert('general', [
'crew' => 0,
'train' => 0,
'atmos' => 0,
- 'level' => 0,
+ 'officer_level' => 0,
'turntime' => $turntime,
'killturn' => 6,
'lastconnect' => $lastconnect,
diff --git a/hwe/js/battle_simulator.js b/hwe/js/battle_simulator.js
index e473cc5c..097bcb53 100644
--- a/hwe/js/battle_simulator.js
+++ b/hwe/js/battle_simulator.js
@@ -152,7 +152,7 @@ jQuery(function($){
setVal('.form_general_name', data.name);
- setVal('.form_general_level', data.level);
+ setVal('.form_officer_level', data.officer_level);
setVal('.form_exp_level', data.explevel);
setVal('.form_injury', data.injury);
@@ -200,7 +200,7 @@ jQuery(function($){
return {
no:getGeneralNo($general),
name:getVal('.form_general_name'),
- level:getInt('.form_general_level'),
+ officer_level:getInt('.form_officer_level'),
explevel:getInt('.form_exp_level'),
leadership:getInt('.form_leadership'),
@@ -602,9 +602,6 @@ jQuery(function($){
dead:0,
state:0,
- officer4:0,
- officer3:0,
- officer2:0,
conflict:'{}',
};
@@ -618,14 +615,8 @@ jQuery(function($){
attackerCity.city = 1;
var attackerGeneral = extendGeneralInfoForDB(allData.attackerGeneral);
- if(attackerGeneral.level == 4){
- attackerCity.officer4 = attackerGeneral.no;
- }
- if(attackerGeneral.level == 3){
- attackerCity.officer3 = attackerGeneral.no;
- }
- if(attackerGeneral.level == 2){
- attackerCity.officer2 = attackerGeneral.no;
+ if(2 <= attackerGeneral.officer_level && attackerGeneral.officer_level <= 4){
+ attackerCity.officer_city = 1;
}
var defenderNation = $.extend({}, defaultNation, allData.defenderNation);
@@ -641,14 +632,8 @@ jQuery(function($){
var defenderGenerals = [];
$.each(allData.defenderGenerals, function(){
var defenderGeneral = extendGeneralInfoForDB(this);
- if(defenderGeneral.level == 4){
- defenderCity.officer4 = defenderGeneral.no;
- }
- if(defenderGeneral.level == 3){
- defenderCity.officer3 = defenderGeneral.no;
- }
- if(defenderGeneral.level == 2){
- defenderCity.officer2 = defenderGeneral.no;
+ if(2 <= defenderGeneral.officer_level && defenderGeneral.officer_level <= 4){
+ defenderGeneral.officer_city = 3;
}
defenderGenerals.push(defenderGeneral);
diff --git a/hwe/js/bossInfo.js b/hwe/js/bossInfo.js
index 80f83fd7..d97a8a9d 100644
--- a/hwe/js/bossInfo.js
+++ b/hwe/js/bossInfo.js
@@ -114,31 +114,31 @@ $(function(){
$('.btn_appoint').click(function(){
var $btn = $(this);
- var level = $btn.data('level');
+ var officerLevel = $btn.data('officer_level');
+ var officerLevelText = $btn.data('officer_level_text');
var cityID = 0;
var cityName = '_';
- var $generalSelect = $('.genlist_{0} option:selected'.format(level));
- var $citySelect = $('.citylist_{0} option:selected'.format(level));
- var levelText = $btn.data('level-text');
+ var $generalSelect = $('.genlist_{0} option:selected'.format(officerLevel));
+ var $citySelect = $('.citylist_{0} option:selected'.format(officerLevel));
var generalID = $generalSelect.val();
var generalName = $generalSelect.data('name');
- var generalLevel = $generalSelect.data('level');
+ var generalOfficerLevel = $generalSelect.data('officer_level');
- if(level >= 5){
+ if(officerLevel >= 5){
if(generalID == 0){
- if(!confirm('{0}직을 비우시겠습니까?'.format(levelText))){
+ if(!confirm('{0}직을 비우시겠습니까?'.format(officerLevelText))){
return false;
}
}
- else if(generalLevel >= 5){
- if(!confirm('이미 수뇌인 {0}를 {1}직에 임명하시겠습니까?'.format(generalName, levelText))){
+ else if(generalOfficerLevel >= 5){
+ if(!confirm('이미 수뇌인 {0}를 {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))){
return false;
}
}
else{
- if(!confirm('{0}를 {1}직에 임명하시겠습니까?'.format(generalName, levelText))){
+ if(!confirm('{0}를 {1}직에 임명하시겠습니까?'.format(generalName, officerLevelText))){
return false;
}
}
@@ -152,17 +152,17 @@ $(function(){
cityName = $citySelect.find('option:selected .name_field').text();
if(generalID == 0){
- if(!confirm('{0} {1}직을 비우시겠습니까?'.format(cityName, levelText))){
+ if(!confirm('{0} {1}직을 비우시겠습니까?'.format(cityName, officerLevelText))){
return false;
}
}
- else if(generalLevel >= 5){
- if(!confirm('수뇌인 {0}를 {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, levelText))){
+ else if(generalOfficerLevel >= 5){
+ if(!confirm('수뇌인 {0}를 {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))){
return false;
}
}
else{
- if(!confirm('{0}를 {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, levelText))){
+ if(!confirm('{0}를 {1} {2}직에 임명하시겠습니까?'.format(generalName, cityName, officerLevelText))){
return false;
}
}
@@ -175,7 +175,7 @@ $(function(){
action:'임명',
destGeneralID:generalID,
destCityID:cityID,
- level:level
+ officerLevel:officerLevel
},
}).then(function(data){
if(!data){
diff --git a/hwe/js/chiefCenter.js b/hwe/js/chiefCenter.js
index 24c657fe..73d1499b 100644
--- a/hwe/js/chiefCenter.js
+++ b/hwe/js/chiefCenter.js
@@ -14,7 +14,7 @@ function genChiefTableObj(){
for(var chiefIdx = 5; chiefIdx <= 12; chiefIdx++){
var $plate = $('#chief_{0}'.format(chiefIdx));
- var $levelText = $plate.find('.chiefLevelText');
+ var $officerLevelText = $plate.find('.chiefLevelText');
var $name = $plate.find('.chiefName');
var turn = [];
for(var turnIdx=0;turnIdx<%nation%> | \
<%experience%> | \
<%dedication%> | \
- <%level%> | \
+ <%officerLevel%> | \
<%total%> | \
<%leadership%> | \
<%strength%> | \
@@ -188,7 +188,7 @@ function printGeneralList(value){
explevel:general[16],
experience:general[17],
dedication:general[18],
- level:general[19],
+ officerLevel:general[19],
killturn:general[20],
connect:general[21],
reserved:0
diff --git a/hwe/process_war.php b/hwe/process_war.php
index e1a49904..442387be 100644
--- a/hwe/process_war.php
+++ b/hwe/process_war.php
@@ -583,7 +583,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//아국 수뇌부에게 로그 전달
- $query = "select no,name,nation from general where nation='{$general['nation']}' and level>='9'";
+ $query = "select no,name,nation from general where nation='{$general['nation']}' and officer_level>='9'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
$genlog[0] = "●>{$losenation['name']}> 정복으로 금{$losenation['gold']}> 쌀{$losenation['rice']}>을 획득했습니다.";
@@ -600,10 +600,10 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
$query = "update general set dedication=dedication*0.5,experience=experience*0.9 where nation='{$city['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 전 도시 공백지로
- $query = "update city set nation='0',officer4='0',officer3='0',officer2='0',conflict='{}',term=0 where nation='{$city['nation']}'";
+ $query = "update city set nation='0',conflict='{}',term=0 where nation='{$city['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 전 장수 소속 무소속으로, 재야로, 부대 탈퇴
- $query = "update general set nation='0',belong='0',level='0',troop='0' where nation='{$city['nation']}'";
+ $query = "update general set nation='0',belong='0',officer_level='0',officer_city=0,troop='0' where nation='{$city['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
// 부대도 삭제
$query = "delete from troop where nation='{$city['nation']}'";
@@ -626,8 +626,9 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
} else {
// 태수,군사,종사은 일반으로...
$db->update('general',[
- 'level'=>1
- ], 'no IN %li',[$city['officer4'], $city['officer3'], $city['officer2']]);
+ 'officer_level'=>1,
+ 'officer_city'=>0,
+ ], 'officer_city = %i',$city['city']);
//수도였으면 긴급 천도
if(isset($destnation['capital']) && $destnation['capital'] == $city['city']) {
@@ -639,7 +640,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
$history[] = "●>{$year}년 {$month}월:【긴급천도】>{$destnation['name']}>{$josaYi} 수도가 함락되어 $minCityName>으로 긴급천도하였습니다.";
//아국 수뇌부에게 로그 전달
- $query = "select no,name,nation from general where nation='{$destnation['nation']}' and level>='5'";
+ $query = "select no,name,nation from general where nation='{$destnation['nation']}' and officer_level>='5'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
$genlog = ["●>수도가 함락되어 $minCityName>으로 긴급천도>합니다."];
@@ -654,7 +655,7 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
$query = "update city set supply=1 where city='$minCity'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//수뇌부 이동
- $query = "update general set city='$minCity' where nation='{$destnation['nation']}' and level>='5'";
+ $query = "update general set city='$minCity' where nation='{$destnation['nation']}' and officer_level>='5'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//장수 사기 감소
$query = "update general set atmos=atmos*0.8 where nation='{$destnation['nation']}'";
@@ -690,9 +691,6 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
'comm'=>$db->sqleval('comm*0.7'),
'secu'=>$db->sqleval('secu*0.7'),
'nation'=>$conquerNation,
- 'officer4'=>0,
- 'officer3'=>0,
- 'officer2'=>0,
'officer4set'=>0,
'officer3set'=>0,
'officer2set'=>0
diff --git a/hwe/sammo/CityConstBase.php b/hwe/sammo/CityConstBase.php
index 192cd17e..82753b51 100644
--- a/hwe/sammo/CityConstBase.php
+++ b/hwe/sammo/CityConstBase.php
@@ -242,9 +242,6 @@ class CityConstBase{
protected static $buildInitCommon = [
'trust'=>50,
'trade'=>100,
- 'officer4'=>0,
- 'officer3'=>0,
- 'officer2'=>0
];
protected static $buildInit = [
diff --git a/hwe/sammo/Command/BaseCommand.php b/hwe/sammo/Command/BaseCommand.php
index 2e0f96e2..4a59586e 100644
--- a/hwe/sammo/Command/BaseCommand.php
+++ b/hwe/sammo/Command/BaseCommand.php
@@ -226,8 +226,8 @@ abstract class BaseCommand{
return $this->generalObj->getNationID();
}
- public function getGeneralLevel(){
- return $this->generalObj->getVar('level');
+ public function getOfficerLevel(){
+ return $this->generalObj->getVar('officer_level');
}
public function getBrief():string{
diff --git a/hwe/sammo/Command/General/che_강행.php b/hwe/sammo/Command/General/che_강행.php
index 287b0b75..0ef7a30b 100644
--- a/hwe/sammo/Command/General/che_강행.php
+++ b/hwe/sammo/Command/General/che_강행.php
@@ -128,7 +128,7 @@ class che_강행 extends Command\GeneralCommand{
$exp = 100;
$general->setVar('city', $destCityID);
- if($general->getVar('level') == 12 && $this->nation['level'] == 0){
+ if($general->getVar('officer_level') == 12 && $this->nation['level'] == 0){
$generalList = $db->queryFirstColumn('SELECT no FROM general WHERE nation=%i AND no!=%i', $general->getNationID(), $general->getID());
if($generalList){
diff --git a/hwe/sammo/Command/General/che_거병.php b/hwe/sammo/Command/General/che_거병.php
index 1e6bc5da..9561ba21 100644
--- a/hwe/sammo/Command/General/che_거병.php
+++ b/hwe/sammo/Command/General/che_거병.php
@@ -135,7 +135,7 @@ class che_거병 extends Command\GeneralCommand{
foreach(Util::range(GameConst::$maxChiefTurn) as $turnIdx){
$turnRows[] = [
'nation_id'=>$nationID,
- 'level'=>$chiefLevel,
+ 'officer_level'=>$chiefLevel,
'turn_idx'=>$turnIdx,
'action'=>'휴식',
'arg'=>null,
@@ -161,7 +161,8 @@ class che_거병 extends Command\GeneralCommand{
$general->addExperience($exp);
$general->addDedication($ded);
$general->setVar('belong', 1);
- $general->setVar('level', 12);
+ $general->setVar('officer_level', 12);
+ $general->setVar('officer_city', 0);
$general->setVar('nation', $nationID);
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
diff --git a/hwe/sammo/Command/General/che_귀환.php b/hwe/sammo/Command/General/che_귀환.php
index 0c29bf0f..f2cbdd70 100644
--- a/hwe/sammo/Command/General/che_귀환.php
+++ b/hwe/sammo/Command/General/che_귀환.php
@@ -12,6 +12,7 @@ use \sammo\{
use function \sammo\{
+ function getNationStaticInfo,
tryUniqueItemLottery
};
@@ -71,32 +72,28 @@ class che_귀환 extends Command\GeneralCommand{
$env = $this->env;
$general = $this->generalObj;
- $generalID = $general->getID();
$date = $general->getTurnTime($general::TURNTIME_HM);
- $generalLevel = $general->getVar('level');
- $target = null;
- if(2 <= $generalLevel && $generalLevel <= 4){
- $target = $db->queryFirstList(
- 'SELECT city, name FROM city WHERE %b=%i AND nation = %i',
- 'officer'.$general->getVar('level'), $generalID, $general->getNationID()
- );
+ $officerLevel = $general->getVar('officer_level');
+ $destCityID = null;
+ if(2 <= $officerLevel && $officerLevel <= 4){
+ $destCityID = $general->getVar('officer_city');
}
- if(!$target){
- $target = $db->queryFirstList('SELECT city, name FROM city WHERE city=%i', $this->nation['capital']);
+ else{
+ $destCityID = $this->nation['capital'];
}
+ $destCityName = CityConst::byID($destCityID)->name;
- [$cityID, $cityName] = $target;
- $josaRo = JosaUtil::pick($cityName, '로');
+ $josaRo = JosaUtil::pick($destCityName, '로');
$logger = $general->getLogger();
- $logger->pushGeneralActionLog("{$cityName}>{$josaRo} 귀환했습니다. <1>$date>");
+ $logger->pushGeneralActionLog("{$destCityName}>{$josaRo} 귀환했습니다. <1>$date>");
$exp = 70;
$ded = 100;
- $general->setVar('city', $cityID);
+ $general->setVar('city', $destCityID);
$general->addExperience($exp);
$general->addDedication($ded);
diff --git a/hwe/sammo/Command/General/che_등용.php b/hwe/sammo/Command/General/che_등용.php
index bde8751c..29d5c9ad 100644
--- a/hwe/sammo/Command/General/che_등용.php
+++ b/hwe/sammo/Command/General/che_등용.php
@@ -78,7 +78,7 @@ class che_등용 extends Command\GeneralCommand{
ConstraintHelper::ReqGeneralRice($reqRice),
];
- if($this->destGeneralObj->getVar('level') == 12){
+ if($this->destGeneralObj->getVar('officer_level') == 12){
$this->runnableConstraints[] = ConstraintHelper::AlwaysFail('군주에게는 등용장을 보낼 수 없습니다.');
}
}
@@ -160,7 +160,7 @@ class che_등용 extends Command\GeneralCommand{
$db = DB::db();
$destGenerals = [];
- $destRawGenerals = $db->query('SELECT no,name,npc,nation FROM general WHERE npc < 2 AND no != %i AND level != 12 ORDER BY npc,binary(name)',$this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,npc,nation FROM general WHERE npc < 2 AND no != %i AND officer_level != 12 ORDER BY npc,binary(name)',$this->generalObj->getID());
foreach($destRawGenerals as $destGeneral){
$destNationID = $destGeneral['nation'];
if(!key_exists($destNationID, $destGenerals)){
diff --git a/hwe/sammo/Command/General/che_등용수락.php b/hwe/sammo/Command/General/che_등용수락.php
index 931b4fd8..da6e2e35 100644
--- a/hwe/sammo/Command/General/che_등용수락.php
+++ b/hwe/sammo/Command/General/che_등용수락.php
@@ -92,7 +92,7 @@ class che_등용수락 extends Command\GeneralCommand{
ConstraintHelper::AllowJoinDestNation($relYear),
ConstraintHelper::ReqDestNationValue('level', '국가규모', '>', 0, '방랑군에는 임관할 수 없습니다.'),
ConstraintHelper::DifferentDestNation(),
- ConstraintHelper::ReqGeneralValue('level', '직위', '!=', 12, '군주는 등용장을 수락할 수 없습니다')
+ ConstraintHelper::ReqGeneralValue('officer_level', '직위', '!=', 12, '군주는 등용장을 수락할 수 없습니다')
];
}
@@ -138,7 +138,6 @@ class che_등용수락 extends Command\GeneralCommand{
$destGeneral->addExperience(100);
$destGeneral->addDedication(100);
- $setOriginalCityValues = [];
$setOriginalNationValues = [
'gennum'=>$db->sqleval('gennum - 1')
];
@@ -159,12 +158,9 @@ class che_등용수락 extends Command\GeneralCommand{
$general->setVar('rice', GameConst::$defaultRice);
}
- $generalLevel = $general->getVar('level');
- if(5 <= $generalLevel && $generalLevel <= 11){
- $setOriginalNationValues["l{$generalLevel}set"] = 0;
- }
- else if(2 <= $generalLevel && $generalLevel <= 4){
- $setOriginalCityValues['officer'.$generalLevel] = 0;
+ $officerLevel = $general->getVar('officer_level');
+ if(5 <= $officerLevel && $officerLevel <= 11){
+ $setOriginalNationValues["l{$officerLevel}set"] = 0;
}
// 재야가 아니면 명성N*10% 공헌N*10%감소
@@ -201,14 +197,12 @@ class che_등용수락 extends Command\GeneralCommand{
$db->update('nation', $setOriginalNationValues, 'nation=%i', $nationID);
}
$db->update('nation', $setScoutNationValues, 'nation=%i', $destNationID);
- if($setOriginalCityValues){
- $db->update('city', $setOriginalCityValues, 'city=%i', $cityID);
- }
$general->setVar('permission', 'normal');
$general->setVar('belong', 1);
- $general->setVar('level', 1);
+ $general->setVar('officer_level', 1);
+ $general->setVar('officer_city', 0);
$general->setVar('nation', $destNationID);
$general->setVar('city', $this->destNation['capital']);
$general->setVar('troop', 0);
@@ -234,7 +228,7 @@ class che_등용수락 extends Command\GeneralCommand{
$db = DB::db();
$destGenerals = [];
- $destRawGenerals = $db->query('SELECT no,name,npc,nation FROM general WHERE npc < 2 AND no != %i AND level != 12 ORDER BY npc,binary(name)',$this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,npc,nation FROM general WHERE npc < 2 AND no != %i AND officer_level != 12 ORDER BY npc,binary(name)',$this->generalObj->getID());
foreach($destRawGenerals as $destGeneral){
$destNationID = $destGeneral['nation'];
if(!key_exists($destNationID, $destGenerals)){
diff --git a/hwe/sammo/Command/General/che_랜덤임관.php b/hwe/sammo/Command/General/che_랜덤임관.php
index 3aef59ed..767b2f77 100644
--- a/hwe/sammo/Command/General/che_랜덤임관.php
+++ b/hwe/sammo/Command/General/che_랜덤임관.php
@@ -110,14 +110,14 @@ class che_랜덤임관 extends Command\GeneralCommand{
if ($general->getVar('npc') >= 2 && !$env['fiction'] && 1000 <= $env['scenario'] && $env['scenario'] < 2000) {
if($notIn){
$nations = $db->query(
- 'SELECT nation.`name` as `name`,nation.nation as nation,scout,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE scout=0 and gennum<%i and nation.nation not in %li',
+ 'SELECT nation.`name` as `name`,nation.nation as nation,scout,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.officer_level = 12 WHERE scout=0 and gennum<%i and nation.nation not in %li',
$relYear<3?GameConst::$initialNationGenLimit:GameConst::$defaultMaxGeneral,
$notIn
);
}
else{
$nations = $db->query(
- 'SELECT nation.`name` as `name`,nation.nation as nation,scout,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE scout=0 and gennum<%i',
+ 'SELECT nation.`name` as `name`,nation.nation as nation,scout,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.officer_level = 12 WHERE scout=0 and gennum<%i',
$relYear<3?GameConst::$initialNationGenLimit:GameConst::$defaultMaxGeneral
);
}
@@ -239,14 +239,15 @@ class che_랜덤임관 extends Command\GeneralCommand{
}
$general->setVar('nation', $destNationID);
- $general->setVar('level', 1);
+ $general->setVar('officer_level', 1);
+ $general->setVar('officer_city', 0);
$general->setVar('belong', 1);
if($this->destGeneralObj !== null){
$general->setVar('city', $this->destGeneralObj->getCityID());
}
else{
- $targetCityID = $db->queryFirstField('SELECT city FROM general WHERE nation = %i AND level=12', $destNationID);
+ $targetCityID = $db->queryFirstField('SELECT city FROM general WHERE nation = %i AND officer_level=12', $destNationID);
$general->setVar('city', $targetCityID);
}
diff --git a/hwe/sammo/Command/General/che_모반시도.php b/hwe/sammo/Command/General/che_모반시도.php
index 7cb28e4b..092d2924 100644
--- a/hwe/sammo/Command/General/che_모반시도.php
+++ b/hwe/sammo/Command/General/che_모반시도.php
@@ -70,7 +70,7 @@ class che_모반시도 extends Command\GeneralCommand{
$nationID = $general->getNationID();
- $lordID = $db->queryFirstField('SELECT no FROM general WHERE nation = %i AND level = 12', $nationID);
+ $lordID = $db->queryFirstField('SELECT no FROM general WHERE nation = %i AND officer_level = 12', $nationID);
$lordGeneral = General::createGeneralObjFromDB($lordID);
@@ -82,16 +82,12 @@ class che_모반시도 extends Command\GeneralCommand{
$logger = $general->getLogger();
$lordLogger = $this->destGeneralObj->getLogger();
- $generalLevel = $general->getVar('level');
- $general->setVar('level', 12);
- $lordGeneral->setVar('level', 1);
+ $general->setVar('officer_level', 12);
+ $general->setVar('officer_city', 0);
+ $lordGeneral->setVar('officer_level', 1);
+ $lordGeneral->setVar('officer_city', 0);
$lordGeneral->multiplyVar('experience', 0.7);
-
- if(2 <= $generalLevel && $generalLevel <= 4){
- $db->update('city', [
- 'officer'.$generalLevel=>0
- ], "officer{$generalLevel}=%i", $general->getID());
- }
+
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("【모반】>{$generalName}>{$josaYi} {$nationName}>의 군주 자리를 찬탈했습니다.");
diff --git a/hwe/sammo/Command/General/che_방랑.php b/hwe/sammo/Command/General/che_방랑.php
index 3cf63e2b..848448ec 100644
--- a/hwe/sammo/Command/General/che_방랑.php
+++ b/hwe/sammo/Command/General/che_방랑.php
@@ -107,17 +107,16 @@ class che_방랑 extends Command\GeneralCommand{
'makelimit'=>12
], 'nation=%i', $nationID);
$general->setVar('makelimit', 12);
+ $general->setVar('officer_city', 0);
$db->update('general', [
- 'level'=>1,
- ], 'nation=%i AND level < 12', $nationID);
+ 'officer_level'=>1,
+ 'officer_city'=>0,
+ ], 'nation=%i AND officer_level < 12', $nationID);
$db->update('city', [
'nation'=>0,
'front'=>0,
- 'officer4'=>0,
- 'officer3'=>0,
- 'officer2'=>0,
'conflict'=>'{}'
], 'nation=%i', $nationID);
diff --git a/hwe/sammo/Command/General/che_선양.php b/hwe/sammo/Command/General/che_선양.php
index 2cce9abf..f0bae142 100644
--- a/hwe/sammo/Command/General/che_선양.php
+++ b/hwe/sammo/Command/General/che_선양.php
@@ -109,17 +109,12 @@ class che_선양 extends Command\GeneralCommand{
$logger = $general->getLogger();
$destLogger = $destGeneral->getLogger();
- $destGeneralLevel = $destGeneral->getVar('level');
- $destGeneral->setVar('level', 12);
- $general->setVar('level', 1);
+ $destGeneral->setVar('officer_level', 12);
+ $destGeneral->setVar('officer_city', 0);
+ $general->setVar('officer_level', 1);
+ $general->setVar('officer_city', 0);
$general->multiplyVar('experience', 0.7);
- if(2 <= $destGeneralLevel && $destGeneralLevel <= 4){
- $db->update('city', [
- 'officer'.$destGeneralLevel=>0
- ], "officer{$destGeneralLevel}=%i", $destGeneral->getID());
- }
-
$josaYi = JosaUtil::pick($generalName, '이');
$logger->pushGlobalHistoryLog("【선양】>{$generalName}>{$josaYi} {$nationName}>의 군주 자리를 {$destGeneralName}>에게 선양했습니다.");
$logger->pushNationalHistoryLog("{$generalName}>{$josaYi} {$destGeneralName}>에게 선양");
@@ -143,7 +138,7 @@ class che_선양 extends Command\GeneralCommand{
//TODO: 암행부처럼 보여야...
$db = DB::db();
- $destRawGenerals = $db->query('SELECT no,name,level,npc FROM general WHERE nation != 0 AND nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,officer_level,npc FROM general WHERE nation != 0 AND nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
ob_start();
?>
군주의 자리를 다른 장수에게 물려줍니다.
@@ -155,7 +150,7 @@ class che_선양 extends Command\GeneralCommand{
$color = " style='color:{$color}'";
}
$name = $destGeneral['name'];
- if($destGeneral['level'] >= 5){
+ if($destGeneral['officer_level'] >= 5){
$name = "*{$name}*";
}
?>
diff --git a/hwe/sammo/Command/General/che_이동.php b/hwe/sammo/Command/General/che_이동.php
index 6931be8d..bd1300ed 100644
--- a/hwe/sammo/Command/General/che_이동.php
+++ b/hwe/sammo/Command/General/che_이동.php
@@ -129,7 +129,7 @@ class che_이동 extends Command\GeneralCommand{
$general->setVar('city', $destCityID);
- if($general->getVar('level') == 12 && $this->nation['level'] == 0){
+ if($general->getVar('officer_level') == 12 && $this->nation['level'] == 0){
$generalList = $db->queryFirstColumn('SELECT no FROM general WHERE nation=%i AND no!=%i', $general->getNationID(), $general->getID());
if($generalList){
$db->update('general', [
diff --git a/hwe/sammo/Command/General/che_임관.php b/hwe/sammo/Command/General/che_임관.php
index 80707726..6cf80680 100644
--- a/hwe/sammo/Command/General/che_임관.php
+++ b/hwe/sammo/Command/General/che_임관.php
@@ -154,14 +154,15 @@ class che_임관 extends Command\GeneralCommand{
}
$general->setVar('nation', $destNationID);
- $general->setVar('level', 1);
+ $general->setVar('officer_level', 1);
+ $general->setVar('officer_city', 0);
$general->setVar('belong', 1);
if($this->destGeneralObj !== null){
$general->setVar('city', $this->destGeneralObj->getCityID());
}
else{
- $targetCityID = $db->queryFirstField('SELECT city FROM general WHERE nation = %i AND level=12', $destNationID);
+ $targetCityID = $db->queryFirstField('SELECT city FROM general WHERE nation = %i AND officer_level=12', $destNationID);
$general->setVar('city', $targetCityID);
}
diff --git a/hwe/sammo/Command/General/che_증여.php b/hwe/sammo/Command/General/che_증여.php
index 1b00dbd9..cde45b17 100644
--- a/hwe/sammo/Command/General/che_증여.php
+++ b/hwe/sammo/Command/General/che_증여.php
@@ -165,7 +165,7 @@ class che_증여 extends Command\GeneralCommand{
//TODO: 암행부처럼 보여야...
$db = DB::db();
- $destRawGenerals = $db->query('SELECT no,name,level,npc,gold,rice FROM general WHERE nation != 0 AND nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,officer_level,npc,gold,rice FROM general WHERE nation != 0 AND nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
ob_start();
?>
자신의 자금이나 군량을 다른 장수에게 증여합니다.
@@ -177,7 +177,7 @@ class che_증여 extends Command\GeneralCommand{
$color = " style='color:{$color}'";
}
$name = $destGeneral['name'];
- if($destGeneral['level'] >= 5){
+ if($destGeneral['officer_level'] >= 5){
$name = "*{$name}*";
}
?>
diff --git a/hwe/sammo/Command/General/che_하야.php b/hwe/sammo/Command/General/che_하야.php
index 5005953a..94f48a47 100644
--- a/hwe/sammo/Command/General/che_하야.php
+++ b/hwe/sammo/Command/General/che_하야.php
@@ -117,7 +117,8 @@ class che_하야 extends Command\GeneralCommand{
\sammo\refreshNationStaticInfo();
$general->setVar('nation', 0);
- $general->setVar('level', 0);
+ $general->setVar('officer_level', 0);
+ $general->setVar('officer_city', 0);
$general->setVar('belong', 0);
$general->setVar('makelimit', 12);
diff --git a/hwe/sammo/Command/General/che_화계.php b/hwe/sammo/Command/General/che_화계.php
index 9e6717f9..128e6727 100644
--- a/hwe/sammo/Command/General/che_화계.php
+++ b/hwe/sammo/Command/General/che_화계.php
@@ -246,7 +246,7 @@ class che_화계 extends Command\GeneralCommand{
[$year, $month] = [$env['year'], $env['month']];
foreach($db->query(
- 'SELECT `no`,name,city,nation,level,leadership,horse,strength,weapon,intel,book,item,last_turn,injury,special,special2,injury,crew,atmos,train FROM general WHERE city = %i',
+ 'SELECT `no`,name,city,nation,officer_level,leadership,horse,strength,weapon,intel,book,item,last_turn,injury,special,special2,injury,crew,atmos,train FROM general WHERE city = %i',
$destCityID,
$destNationID
) as $rawDestCityGeneral){
diff --git a/hwe/sammo/Command/Nation/che_몰수.php b/hwe/sammo/Command/Nation/che_몰수.php
index 802a4ac0..33d15f1b 100644
--- a/hwe/sammo/Command/Nation/che_몰수.php
+++ b/hwe/sammo/Command/Nation/che_몰수.php
@@ -193,7 +193,7 @@ class che_몰수 extends Command\NationCommand{
//TODO: 암행부처럼 보여야...
$db = DB::db();
- $destRawGenerals = $db->query('SELECT no,name,level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,officer_level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
$destGeneralList = [];
foreach($destRawGenerals as $destGeneral){
$nameColor = \sammo\getNameColor($destGeneral['npc']);
@@ -202,7 +202,7 @@ class che_몰수 extends Command\NationCommand{
}
$name = $destGeneral['name'];
- if($destGeneral['level'] >= 5){
+ if($destGeneral['officer_level'] >= 5){
$name = "*{$name}*";
}
diff --git a/hwe/sammo/Command/Nation/che_물자원조.php b/hwe/sammo/Command/Nation/che_물자원조.php
index 4f729b13..b59f6b6f 100644
--- a/hwe/sammo/Command/Nation/che_물자원조.php
+++ b/hwe/sammo/Command/Nation/che_물자원조.php
@@ -178,7 +178,7 @@ class che_물자원조 extends Command\NationCommand{
$broadcastMessage = "{$destNationName}>{$josaRo} 금{$goldAmountText}> 쌀{$riceAmountText}>을 지원했습니다.";
- $chiefList = $db->queryFirstColumn('SELECT no FROM general WHERE level >= 5 AND no != %i AND nation = %i', $generalID, $nationID);
+ $chiefList = $db->queryFirstColumn('SELECT no FROM general WHERE officer_level >= 5 AND no != %i AND nation = %i', $generalID, $nationID);
foreach($chiefList as $chiefID){
$chiefLogger = new ActionLogger($chiefID, $nationID, $year, $month);
$chiefLogger->pushGeneralActionLog($broadcastMessage, ActionLogger::PLAIN);
@@ -193,7 +193,7 @@ class che_물자원조 extends Command\NationCommand{
$logger->pushGeneralActionLog("{$destNationName}>{$josaRo} 물자를 지원합니다. <1>$date>", ActionLogger::PLAIN);
$destBroadcastMessage = $broadcastMessage = "{$nationName}>에서 금{$goldAmountText}> 쌀{$riceAmountText}>을 원조했습니다.";
- $destChiefList = $db->queryFirstColumn('SELECT no FROM general WHERE level >= 5 AND nation = %i', $destNationID);
+ $destChiefList = $db->queryFirstColumn('SELECT no FROM general WHERE officer_level >= 5 AND nation = %i', $destNationID);
foreach($destChiefList as $destChiefID){
$destChiefLogger = new ActionLogger($destChiefID, $nationID, $year, $month);
$destChiefLogger->pushGeneralActionLog($destBroadcastMessage, ActionLogger::PLAIN);
diff --git a/hwe/sammo/Command/Nation/che_발령.php b/hwe/sammo/Command/Nation/che_발령.php
index a9d3217b..b2a8d3fb 100644
--- a/hwe/sammo/Command/Nation/che_발령.php
+++ b/hwe/sammo/Command/Nation/che_발령.php
@@ -159,7 +159,7 @@ class che_발령 extends Command\NationCommand{
{
$db = DB::db();
- $destRawGenerals = $db->query('SELECT no,name,level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,officer_level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
$destGeneralList = [];
foreach($destRawGenerals as $destGeneral){
$nameColor = \sammo\getNameColor($destGeneral['npc']);
@@ -168,7 +168,7 @@ class che_발령 extends Command\NationCommand{
}
$name = $destGeneral['name'];
- if($destGeneral['level'] >= 5){
+ if($destGeneral['officer_level'] >= 5){
$name = "*{$name}*";
}
diff --git a/hwe/sammo/Command/Nation/che_천도.php b/hwe/sammo/Command/Nation/che_천도.php
index 7dad39ee..e79a2371 100644
--- a/hwe/sammo/Command/Nation/che_천도.php
+++ b/hwe/sammo/Command/Nation/che_천도.php
@@ -124,7 +124,7 @@ class che_천도 extends Command\NationCommand{
$nationStor = \sammo\KVStorage::getStorage(DB::db(), 'nation_env');
$general = $this->getGeneral();
$nationID = $general->getNationID();
- $nationStor->setValue("last천도Trial_{$nationID}", [$general->getVar('level'), $general->getTurnTime()]);
+ $nationStor->setValue("last천도Trial_{$nationID}", [$general->getVar('officer_level'), $general->getTurnTime()]);
if($lastTurn->getCommand() != $commandName && $lastTurn->getArg() !== $this->arg){
$this->setResultTurn(new LastTurn(
diff --git a/hwe/sammo/Command/Nation/che_포상.php b/hwe/sammo/Command/Nation/che_포상.php
index a35ba8bb..cd9f80da 100644
--- a/hwe/sammo/Command/Nation/che_포상.php
+++ b/hwe/sammo/Command/Nation/che_포상.php
@@ -162,7 +162,7 @@ class che_포상 extends Command\NationCommand{
//TODO: 암행부처럼 보여야...
$db = DB::db();
- $destRawGenerals = $db->query('SELECT no,name,level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
+ $destRawGenerals = $db->query('SELECT no,name,officer_level,npc,gold,rice FROM general WHERE nation = %i AND no != %i ORDER BY npc,binary(name)',$this->generalObj->getNationID(), $this->generalObj->getID());
$destGeneralList = [];
foreach($destRawGenerals as $destGeneral){
$nameColor = \sammo\getNameColor($destGeneral['npc']);
@@ -171,7 +171,7 @@ class che_포상 extends Command\NationCommand{
}
$name = $destGeneral['name'];
- if($destGeneral['level'] >= 5){
+ if($destGeneral['officer_level'] >= 5){
$name = "*{$name}*";
}
diff --git a/hwe/sammo/Constraint/AllowRebellion.php b/hwe/sammo/Constraint/AllowRebellion.php
index c654bf21..37de187e 100644
--- a/hwe/sammo/Constraint/AllowRebellion.php
+++ b/hwe/sammo/Constraint/AllowRebellion.php
@@ -35,7 +35,7 @@ class AllowRebellion extends Constraint{
}
$db = DB::db();
- $lord = $db->queryFirstRow('SELECT no, killturn, npc FROM general WHERE nation = %i AND level = 12', $nationID);
+ $lord = $db->queryFirstRow('SELECT no, killturn, npc FROM general WHERE nation = %i AND officer_level = 12', $nationID);
if(!$lord){
throw new MustNotBeReachedException('군주가 없음');
diff --git a/hwe/sammo/Constraint/BeChief.php b/hwe/sammo/Constraint/BeChief.php
index d23594e6..6474536e 100644
--- a/hwe/sammo/Constraint/BeChief.php
+++ b/hwe/sammo/Constraint/BeChief.php
@@ -10,9 +10,9 @@ class BeChief extends Constraint{
return false;
}
- if(!key_exists('level', $this->general)){
+ if(!key_exists('officer_level', $this->general)){
if(!$throwExeception){return false; }
- throw new \InvalidArgumentException("require level in general");
+ throw new \InvalidArgumentException("require officer_level in general");
}
return true;
@@ -22,7 +22,7 @@ class BeChief extends Constraint{
$this->checkInputValues();
$this->tested = true;
- if($this->general['level'] > 4){
+ if($this->general['officer_level'] > 4){
return true;
}
diff --git a/hwe/sammo/Constraint/BeLord.php b/hwe/sammo/Constraint/BeLord.php
index 8bee0b87..a6b333df 100644
--- a/hwe/sammo/Constraint/BeLord.php
+++ b/hwe/sammo/Constraint/BeLord.php
@@ -10,9 +10,9 @@ class BeLord extends Constraint{
return false;
}
- if(!key_exists('level', $this->general)){
+ if(!key_exists('officer_level', $this->general)){
if(!$throwExeception){return false; }
- throw new \InvalidArgumentException("require level in general");
+ throw new \InvalidArgumentException("require officer_level in general");
}
return true;
@@ -22,7 +22,7 @@ class BeLord extends Constraint{
$this->checkInputValues();
$this->tested = true;
- if($this->general['level'] == 12){
+ if($this->general['officer_level'] == 12){
return true;
}
diff --git a/hwe/sammo/Constraint/NotCapital.php b/hwe/sammo/Constraint/NotCapital.php
index b21e92d4..89ca1c3a 100644
--- a/hwe/sammo/Constraint/NotCapital.php
+++ b/hwe/sammo/Constraint/NotCapital.php
@@ -15,9 +15,9 @@ class NotCapital extends Constraint{
throw new \InvalidArgumentException("require city in general");
}
- if(!key_exists('level', $this->general)){
+ if(!key_exists('officer_level', $this->general)){
if(!$throwExeception){return false; }
- throw new \InvalidArgumentException("require level in general");
+ throw new \InvalidArgumentException("require officer_level in general");
}
if(!key_exists('capital', $this->nation)){
@@ -36,7 +36,7 @@ class NotCapital extends Constraint{
return true;
}
- if($this->arg && 2 <= $this->general['level'] && $this->general['level'] <= 4){
+ if($this->arg && 2 <= $this->general['officer_level'] && $this->general['officer_level'] <= 4){
return true;
}
diff --git a/hwe/sammo/Constraint/NotChief.php b/hwe/sammo/Constraint/NotChief.php
index 003abbd9..190ea564 100644
--- a/hwe/sammo/Constraint/NotChief.php
+++ b/hwe/sammo/Constraint/NotChief.php
@@ -10,9 +10,9 @@ class NotChief extends Constraint{
return false;
}
- if(!key_exists('level', $this->general)){
+ if(!key_exists('officer_level', $this->general)){
if(!$throwExeception){return false; }
- throw new \InvalidArgumentException("require level in general");
+ throw new \InvalidArgumentException("require officer_level in general");
}
return true;
@@ -22,7 +22,7 @@ class NotChief extends Constraint{
$this->checkInputValues();
$this->tested = true;
- if($this->general['level'] <= 4){
+ if($this->general['officer_level'] <= 4){
return true;
}
diff --git a/hwe/sammo/Constraint/NotLord.php b/hwe/sammo/Constraint/NotLord.php
index 91826102..2df7bc74 100644
--- a/hwe/sammo/Constraint/NotLord.php
+++ b/hwe/sammo/Constraint/NotLord.php
@@ -10,9 +10,9 @@ class NotLord extends Constraint{
return false;
}
- if(!key_exists('level', $this->general)){
+ if(!key_exists('officer_level', $this->general)){
if(!$throwExeception){return false; }
- throw new \InvalidArgumentException("require level in general");
+ throw new \InvalidArgumentException("require officer_level in general");
}
return true;
@@ -22,7 +22,7 @@ class NotLord extends Constraint{
$this->checkInputValues();
$this->tested = true;
- if($this->general['level'] != 12){
+ if($this->general['officer_level'] != 12){
return true;
}
diff --git a/hwe/sammo/Constraint/ReqGeneralCrewMargin.php b/hwe/sammo/Constraint/ReqGeneralCrewMargin.php
index b73b5568..3d45bd52 100644
--- a/hwe/sammo/Constraint/ReqGeneralCrewMargin.php
+++ b/hwe/sammo/Constraint/ReqGeneralCrewMargin.php
@@ -20,7 +20,7 @@ class ReqGeneralCrewMargin extends Constraint{
throw new \InvalidArgumentException("{$this->arg} is invalid crewtype");
}
- foreach(['leadership','strength','intel','crew','crewtype','nation','level'] as $key){
+ foreach(['leadership','strength','intel','crew','crewtype','nation','officer_level'] as $key){
if(!key_exists($key, $this->general)){
if(!$throwExeception){return false; }
throw new \InvalidArgumentException("require {$key} in general");
diff --git a/hwe/sammo/DiplomaticMessage.php b/hwe/sammo/DiplomaticMessage.php
index 462c01c7..f5d928a8 100644
--- a/hwe/sammo/DiplomaticMessage.php
+++ b/hwe/sammo/DiplomaticMessage.php
@@ -268,7 +268,7 @@ class DiplomaticMessage extends Message{
$gameStor = KVStorage::getStorage($db, 'game_env');
$general = $db->queryFirstRow(
- 'SELECT `name`, nation, `level`, `permission`, `penalty`,belong FROM general WHERE `no`=%i AND nation=%i',
+ 'SELECT `name`, nation, `officer_level`, `permission`, `penalty`,belong FROM general WHERE `no`=%i AND nation=%i',
$receiverID,
$this->dest->nationID
);
@@ -373,7 +373,7 @@ class DiplomaticMessage extends Message{
$db = DB::db();
$general = $db->queryFirstRow(
- 'SELECT `name`, nation, `level`, `permission`, `penalty`,belong FROM general WHERE `no`=%i AND nation=%i',
+ 'SELECT `name`, nation, `officer_level`, `permission`, `penalty`,belong FROM general WHERE `no`=%i AND nation=%i',
$receiverID,
$this->dest->nationID
);
diff --git a/hwe/sammo/DummyGeneral.php b/hwe/sammo/DummyGeneral.php
index 5db5198d..be35868c 100644
--- a/hwe/sammo/DummyGeneral.php
+++ b/hwe/sammo/DummyGeneral.php
@@ -8,7 +8,7 @@ class DummyGeneral extends General{
'name'=>'Dummy',
'city'=>0,
'nation'=>0,
- 'level'=>0,
+ 'officer_level'=>0,
'crewtype'=>-1,
'turntime'=>'2012-03-04 05:06:07.000000',
'experience'=>0,
diff --git a/hwe/sammo/Event/Action/RaiseInvader.php b/hwe/sammo/Event/Action/RaiseInvader.php
index f853481c..83564965 100644
--- a/hwe/sammo/Event/Action/RaiseInvader.php
+++ b/hwe/sammo/Event/Action/RaiseInvader.php
@@ -64,24 +64,13 @@ class RaiseInvader extends \sammo\Event\Action{
$db->update('general', ['city'=>$newCapital], 'nation=%i and city=%i', $nation, $oldCapital);
}
- $generals = [];
- 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;
- }
- if($generals){
- $db->update('general', [
- 'level'=>1
- ], 'no in %li', $generals);
- }
+ $db->update('general', [
+ 'officer_level'=>1,
+ 'officer_city'=>0
+ ], 'officer_city in %li', $cities);
$db->update('city', [
- 'officer4'=>0,
- 'officer3'=>0,
- 'officer2'=>0,
'nation'=>0
], 'city in %li', $cities);
}
diff --git a/hwe/sammo/General.php b/hwe/sammo/General.php
index 9fe79d92..1d64170b 100644
--- a/hwe/sammo/General.php
+++ b/hwe/sammo/General.php
@@ -10,7 +10,7 @@ class General implements iAction{
/**
* @var iAction $nationType
- * @var iAction $levelObj
+ * @var iAction $officerLevelObj
* @var iAction $specialDomesticObj
* @var iAction $specialWarObj
* @var iAction $personalityObj
@@ -33,7 +33,7 @@ class General implements iAction{
protected $isFinished = false;
protected $nationType = null;
- protected $levelObj = null;
+ protected $officerLevelObj = null;
protected $specialDomesticObj = null;
protected $specialWarObj = null;
protected $personalityObj = null;
@@ -62,8 +62,8 @@ class General implements iAction{
'power'=>1,
'intel'=>1,
'nation'=>2,
- 'level'=>1,
- //NOTE: levelObj로 인해 국가의 '레벨'이 바뀌는 것도 조심해야 하나, 국가 레벨의 변경은 월 초/말에만 일어남.
+ 'officer_level'=>1,
+ //NOTE: officerLevelObj로 인해 국가의 '레벨'이 바뀌는 것도 조심해야 하나, 국가 레벨의 변경은 월 초/말에만 일어남.
'special'=>1,
'special2'=>1,
'personal'=>1,
@@ -79,7 +79,7 @@ class General implements iAction{
* @param null|array $city DB city 테이블의 row값
* @param int $year 게임 연도
* @param int $month 게임 월
- * @param bool $fullConstruct iAction, 및 ActionLogger 초기화 여부, false인 경우 no, name, city, nation, level 정도로 초기화 가능
+ * @param bool $fullConstruct iAction, 및 ActionLogger 초기화 여부, false인 경우 no, name, city, nation, officer_level 정도로 초기화 가능
*/
public function __construct(array $raw, ?array $rawRank, ?array $city, ?int $year, ?int $month, bool $fullConstruct=true){
//TODO: 밖에서 가져오도록 하면 버그 확률이 높아짐. 필요한 raw 값을 직접 구해야함.
@@ -102,7 +102,7 @@ class General implements iAction{
}
$this->nationType = buildNationTypeClass($staticNation['type']);
- $this->levelObj = new TriggerGeneralLevel($this->raw, $staticNation['level'], $city);
+ $this->officerLevelObj = new TriggerOfficerLevel($this->raw, $staticNation['level']);
$this->specialDomesticObj = buildGeneralSpecialDomesticClass($raw['special']);
$this->specialWarObj = buildGeneralSpecialWarClass($raw['special2']);
@@ -260,8 +260,8 @@ class General implements iAction{
return $this->nationType;
}
- public function getGeneralLevelObj():iAction{
- return $this->levelObj;
+ public function getOfficerLevelObj():iAction{
+ return $this->officerLevelObj;
}
function getCrewTypeObj():GameUnitDetail{
@@ -379,7 +379,7 @@ class General implements iAction{
if($withIActionObj){
foreach([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj
@@ -516,18 +516,11 @@ class General implements iAction{
$generalName = $this->getName();
// 군주였으면 유지 이음
- $generalLevel = $this->getVar('level');
- if($generalLevel == 12) {
+ $officerLevel = $this->getVar('officer_level');
+ if($officerLevel == 12) {
nextRuler($this);
}
- //도시의 태수, 군사, 종사직도 초기화
- if(2 <= $generalLevel && $generalLevel <= 4){
- $db->update('city', [
- 'officer'.$generalLevel=>0
- ], "officer{$generalLevel} = %i", $generalID);
- }
-
// 부대 처리
$troopLeaderID = $this->getVar('troop');
if($troopLeaderID == $generalID){
@@ -713,7 +706,7 @@ class General implements iAction{
$caller = new GeneralTriggerCaller();
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -735,7 +728,7 @@ class General implements iAction{
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -754,7 +747,7 @@ class General implements iAction{
//xxx: $general?
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -772,7 +765,7 @@ class General implements iAction{
public function onCalcStrategic(string $turnType, string $varType, $value){
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -790,7 +783,7 @@ class General implements iAction{
public function onCalcNationalIncome(string $type, int $amount):int{
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -811,7 +804,7 @@ class General implements iAction{
$def = 1;
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -831,7 +824,7 @@ class General implements iAction{
$caller = new WarUnitTriggerCaller();
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -858,7 +851,7 @@ class General implements iAction{
);
foreach(array_merge([
$this->nationType,
- $this->levelObj,
+ $this->officerLevelObj,
$this->specialDomesticObj,
$this->specialWarObj,
$this->personalityObj,
@@ -875,16 +868,16 @@ class General implements iAction{
}
static public function mergeQueryColumn(?array $reqColumns=null, int $constructMode=2):array{
- $minimumColumn = ['no', 'name', 'city', 'nation', 'level'];
+ $minimumColumn = ['no', 'name', 'city', 'nation', 'officer_level', 'officer_city'];
$defaultEventColumn = [
- 'no', 'name', 'city', 'nation', 'level',
+ 'no', 'name', 'city', 'nation', 'officer_level', 'officer_city',
'special', 'special2', 'personal',
'horse', 'weapon', 'book', 'item', 'last_turn'
];
$fullColumn = [
'no', 'name', 'owner_name', 'picture', 'imgsvr', 'nation', 'city', 'troop', 'injury', 'affinity',
'leadership', 'leadership_exp', 'strength', 'strength_exp', 'intel', 'intel_exp', 'weapon', 'book', 'horse', 'item',
- 'experience', 'dedication', 'level', 'gold', 'rice', 'crew', 'crewtype', 'train', 'atmos', 'turntime',
+ 'experience', 'dedication', 'officer_level', 'officer_city', 'gold', 'rice', 'crew', 'crewtype', 'train', 'atmos', 'turntime',
'makelimit', 'killturn', 'block', 'dedlevel', 'explevel', 'age', 'startage', 'belong',
'personal', 'special', 'special2', 'defence_train', 'tnmt', 'npc', 'npc_org', 'deadyear', 'npcmsg',
'dex1', 'dex2', 'dex3', 'dex4', 'dex5',
diff --git a/hwe/sammo/GeneralAI.php b/hwe/sammo/GeneralAI.php
index 40f2b49d..0a52cc98 100644
--- a/hwe/sammo/GeneralAI.php
+++ b/hwe/sammo/GeneralAI.php
@@ -1437,7 +1437,7 @@ class GeneralAI
{
$general = $this->general;
- if($general->getVar('level') < 12){
+ if($general->getVar('officer_level') < 12){
return null;
}
@@ -1476,7 +1476,7 @@ class GeneralAI
if($lastTurn->getCommand() === 'che_천도'){
$cmd = buildNationCommandClass('che_천도', $general, $this->env, $lastTurn, $lastTurn->getArg());
if($cmd->isRunnable()){
- $nationStor->setValue("last천도Trial_{$this->nation['nation']}", [$general->getVar('level'), $general->getTurnTime()]);
+ $nationStor->setValue("last천도Trial_{$this->nation['nation']}", [$general->getVar('officer_level'), $general->getTurnTime()]);
return $cmd;
}
}
@@ -1489,7 +1489,7 @@ class GeneralAI
date_create_immutable($general->getTurnTime())
)
);
- if($timeDiffSeconds < $turnTerm * 30 && $lastTrialLevel !== $general->getVar('level')){ //0.5Turn
+ if($timeDiffSeconds < $turnTerm * 30 && $lastTrialLevel !== $general->getVar('officer_level')){ //0.5Turn
return null;
}
}
@@ -1597,7 +1597,7 @@ class GeneralAI
}
- $nationStor->setValue("last천도Trial_{$this->nation['nation']}", [$general->getVar('level'), $general->getTurnTime()]);
+ $nationStor->setValue("last천도Trial_{$this->nation['nation']}", [$general->getVar('officer_level'), $general->getTurnTime()]);
return $cmd;
}
@@ -2334,6 +2334,7 @@ class GeneralAI
}
$this->categorizeNationCities();
+ $this->categorizeNationGeneral();
$candidateCities = [];
@@ -2452,7 +2453,7 @@ class GeneralAI
$db = DB::db();
$general = $this->general;
- $lordCities = $db->queryFirstColumn('SELECT city.city as city FROM general LEFT JOIN city ON general.city = city.city WHERE general.level = 12 AND city.nation = 0');
+ $lordCities = $db->queryFirstColumn('SELECT city.city as city FROM general LEFT JOIN city ON general.city = city.city WHERE general.officer_level = 12 AND city.nation = 0');
$nationCities = $db->queryFirstColumn('SELECT city a FROM city WHERE nation != 0');+
$occupiedCities = [];
@@ -2580,7 +2581,7 @@ class GeneralAI
// 오랑캐는 바로 임관
if ($general->getVar('npc') == 9) {
$rulerNation = $db->queryFirstField(
- 'SELECT nation FROM general WHERE `level`=12 AND npc=9 and nation not in %li ORDER BY RAND() limit 1',
+ 'SELECT nation FROM general WHERE `officer_level`=12 AND npc=9 and nation not in %li ORDER BY RAND() limit 1',
$general->getAuxVar('joinedNations') ?? [0]
);
@@ -2711,20 +2712,7 @@ class GeneralAI
$nationCity['dev'] = $dev;
- $importantScore = 1;
- if ($nationCity['officer4']) {
- $importantScore += 1;
- }
-
- if ($nationCity['officer3']) {
- $importantScore += 1;
- }
-
- if ($nationCity['officer2']) {
- $importantScore += 1;
- }
-
- $nationCity['important'] = $importantScore;
+ $nationCity['important'] = 1;
if($nationCity['supply']){
$supplyCities[$cityID] = &$nationCity;
@@ -2785,10 +2773,14 @@ class GeneralAI
$generalID = $nationGeneral->getID();
$cityID = $nationGeneral->getCityID();
$npcType = $nationGeneral->getVar('npc');
- $generalLevel = $nationGeneral->getVar('level');
+ $officerLevel = $nationGeneral->getVar('officer_level');
+ $officerCity = $nationGeneral->getVar('officer_city');
- if($generalLevel > 4){
- $chiefGenerals[$generalLevel] = $nationGeneral;
+ if($officerLevel > 4){
+ $chiefGenerals[$officerLevel] = $nationGeneral;
+ }
+ else if($officerLevel > 2){
+ $nationCities[$officerCity]['important'] += 1;
}
if (key_exists($cityID, $nationCities)) {
@@ -2855,7 +2847,7 @@ class GeneralAI
$this->categorizeNationGeneral();
$this->categorizeNationCities();
- if($general->getVar('level') == 12){
+ if($general->getVar('officer_level') == 12){
$month = $this->env['month'];
if (in_array($month, [1, 4, 7, 10])) {
$this->choosePromotion();
@@ -2950,7 +2942,7 @@ class GeneralAI
$general->setVar('defence_train', 80);
}
- if($general->getVar('level') === 12 && $this->generalPolicy->can선양){
+ if($general->getVar('officer_level') === 12 && $this->generalPolicy->can선양){
$result = $this->do선양($reservedCommand);
if($result !== null){
return $result;
@@ -2984,7 +2976,7 @@ class GeneralAI
return $this->do중립($reservedCommand);
}
- if($npcType >= 2 && $general->getVar('level') == 12 && !$this->nation['capital']){
+ if($npcType >= 2 && $general->getVar('officer_level') == 12 && !$this->nation['capital']){
//방랑군 건국
$result = $this->do건국($reservedCommand);
if($result !== null){
@@ -3089,7 +3081,7 @@ class GeneralAI
foreach(Util::range(5) as $idx){
/** @var General */
$randGeneral = Util::choiceRandom($this->npcWarGenerals);
- if($randGeneral->getVar('level') != 1){
+ if($randGeneral->getVar('officer_level') != 1){
continue;
}
@@ -3116,7 +3108,8 @@ class GeneralAI
continue;
}
- $randGeneral->setVar('level', $chiefLevel);
+ $randGeneral->setVar('officer_level', $chiefLevel);
+ $randGeneral->setVar('officer_city', 0);
$randGeneral->applyDB($db);
}
}
@@ -3149,29 +3142,29 @@ class GeneralAI
$db->update('general', [
'permission' => 'ambassador',
- ], 'nation=%i AND npc < 2 AND level > 4', $nationID);
+ ], 'nation=%i AND npc < 2 AND officer_level > 4', $nationID);
foreach($db->query(
- 'SELECT no, npc, level, killturn FROM general WHERE nation = %i AND 12 > level AND level > 4',
+ 'SELECT no, npc, officer_level, killturn FROM general WHERE nation = %i AND 12 > officer_level AND officer_level > 4',
$nationID
) as $chief) {
if ($chief['npc'] < 2 && $chief['killturn'] < $minKillturn) {
- $chiefCandidate[$chief['level']] = $chief['no'];
- $userChief[$chief['no']] = $chief['level'];
+ $chiefCandidate[$chief['officer_level']] = $chief['no'];
+ $userChief[$chief['no']] = $chief['officer_level'];
}
}
$db->update('general', [
- 'level' => 1
- ], 'level < 12 AND level > 4 AND nation = %i', $nationID);
+ 'officer_level' => 1
+ ], 'officer_level < 12 AND officer_level > 4 AND nation = %i', $nationID);
$maxBelong = $db->queryFirstField('SELECT max(belong) FROM `general` WHERE nation=%i', $nationID);
$maxBelong = min($maxBelong - 1, 3);
if (!$userChief) {
$candUserChief = $db->queryFirstField(
- 'SELECT no FROM general WHERE nation = %i AND level = 1 AND killturn > %i AND npc < 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
+ 'SELECT no FROM general WHERE nation = %i AND officer_level = 1 AND killturn > %i AND npc < 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
$nationID,
$minKillturn,
$maxBelong
@@ -3186,7 +3179,7 @@ class GeneralAI
if (!key_exists(11, $chiefCandidate)) {
$candChiefHead = $db->queryFirstField(
- 'SELECT no FROM general WHERE nation = %i AND level = 1 AND npc >= 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
+ 'SELECT no FROM general WHERE nation = %i AND officer_level = 1 AND npc >= 2 AND belong >= %i ORDER BY leadership DESC LIMIT 1',
$nationID,
$maxBelong
);
@@ -3199,7 +3192,7 @@ class GeneralAI
if ($minChiefLevel < 11) {
//무장 수뇌 후보
$candChiefStrength = $db->queryFirstColumn(
- 'SELECT no FROM general WHERE nation = %i AND strength >= %i AND level = 1 AND belong >= %i ORDER BY strength DESC LIMIT %i',
+ 'SELECT no FROM general WHERE nation = %i AND strength >= %i AND officer_level = 1 AND belong >= %i ORDER BY strength DESC LIMIT %i',
$nationID,
GameConst::$chiefStatMin,
$maxBelong,
@@ -3207,7 +3200,7 @@ class GeneralAI
);
//지장 수뇌 후보
$candChiefIntel = $db->queryFirstColumn(
- 'SELECT no FROM general WHERE nation = %i AND intel >= %i AND level = 1 AND belong >= %i ORDER BY intel DESC LIMIT %i',
+ 'SELECT no FROM general WHERE nation = %i AND intel >= %i AND officer_level = 1 AND belong >= %i ORDER BY intel DESC LIMIT %i',
$nationID,
GameConst::$chiefStatMin,
$maxBelong,
@@ -3243,7 +3236,7 @@ class GeneralAI
foreach ($chiefCandidate as $chiefLevel => $chiefID) {
$db->update('general', [
- 'level' => $chiefLevel
+ 'officer_level' => $chiefLevel
], 'no=%i', $chiefID);
}
}
@@ -3298,7 +3291,7 @@ class GeneralAI
$dedicationList = array_map(function(General $general){
return $general->getRaw();
}, array_filter($this->nationGenerals, function(General $rawGeneral){
- return $rawGeneral->getVar('level') != 5;
+ return $rawGeneral->getVar('officer_level') != 5;
}));
$goldIncome = getGoldIncome($nation['nation'], $nation['level'], $nation['rate'], $nation['capital'], $nation['type'], $cityList);
@@ -3340,7 +3333,7 @@ class GeneralAI
$dedicationList = array_map(function(General $general){
return $general->getRaw();
}, array_filter($this->nationGenerals, function(General $rawGeneral){
- return $rawGeneral->getVar('level') != 5;
+ return $rawGeneral->getVar('officer_level') != 5;
}));
$riceIncome = getRiceIncome($nation['nation'], $nation['level'], $nation['rate'], $nation['capital'], $nation['type'], $cityList);
diff --git a/hwe/sammo/Message.php b/hwe/sammo/Message.php
index 22d9dc5f..143db1f5 100644
--- a/hwe/sammo/Message.php
+++ b/hwe/sammo/Message.php
@@ -406,7 +406,7 @@ class Message
//XXX: 알림을 이런식으로 보내는게 맞는가에 대한 의문 있음
DB::db()->update('general', [
'newmsg'=>1
- ], 'nation = %i AND (level = 12 OR permission IN (\'ambassador\', \'auditor\')) ',$this->dest->nationID);
+ ], 'nation = %i AND (officer_level = 12 OR permission IN (\'ambassador\', \'auditor\')) ',$this->dest->nationID);
}
return $this->sendRaw($this->dest->nationID + self::MAILBOX_NATIONAL);
}
diff --git a/hwe/sammo/Scenario.php b/hwe/sammo/Scenario.php
index 7c314c78..b1f40b32 100644
--- a/hwe/sammo/Scenario.php
+++ b/hwe/sammo/Scenario.php
@@ -79,7 +79,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
- $leadership, $strength, $intel, $level, $birth, $death, $ego,
+ $leadership, $strength, $intel, $officerLevel, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -104,7 +104,7 @@ class Scenario{
$leadership,
$strength,
$intel,
- $level,
+ $officerLevel,
$birth,
$death,
$ego,
@@ -120,7 +120,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
- $leadership, $strength, $intel, $level, $birth, $death, $ego,
+ $leadership, $strength, $intel, $officerLevel, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -145,7 +145,7 @@ class Scenario{
$leadership,
$strength,
$intel,
- $level,
+ $officerLevel,
$birth,
$death,
$ego,
@@ -162,7 +162,7 @@ class Scenario{
list(
$affinity, $name, $picturePath, $nationName, $locatedCity,
- $leadership, $strength, $intel, $level, $birth, $death, $ego,
+ $leadership, $strength, $intel, $officerLevel, $birth, $death, $ego,
$char, $text
) = $rawGeneral;
@@ -187,7 +187,7 @@ class Scenario{
$leadership,
$strength,
$intel,
- $level,
+ $officerLevel,
$birth,
$death,
$ego,
diff --git a/hwe/sammo/Scenario/NPC.php b/hwe/sammo/Scenario/NPC.php
index e57db89a..f9efe569 100644
--- a/hwe/sammo/Scenario/NPC.php
+++ b/hwe/sammo/Scenario/NPC.php
@@ -22,7 +22,7 @@ class NPC{
public $leadership;
public $strength;
public $intel;
- public $level;
+ public $officerLevel;
public $birth;
public $death;
public $ego;
@@ -67,7 +67,7 @@ class NPC{
int $leadership,
int $strength,
int $intel,
- int $level = 0,
+ int $officerLevel = 0,
int $birth = 160,
int $death = 300,
$ego = null,
@@ -82,7 +82,7 @@ class NPC{
$this->leadership = $leadership;
$this->strength = $strength;
$this->intel = $intel;
- $this->level = $level;
+ $this->officerLevel = $officerLevel;
$this->birth = $birth;
$this->death = $death;
$this->ego = $ego;
@@ -289,9 +289,9 @@ class NPC{
$experience = $this->experience?:$age * 100;
$dedication = $this->dedication?:$age * 100;
- $level = $this->level;
- if(!$level || $isNewGeneral){
- $level = $nationID?1:0;
+ $officerLevel = $this->officerLevel;
+ if(!$officerLevel || $isNewGeneral){
+ $officerLevel = $nationID?1:0;
}
$turntime = \sammo\getRandTurn($env['turnterm'], new \DateTimeImmutable($env['turntime']));
@@ -319,7 +319,7 @@ class NPC{
'intel'=>$this->intel,
'experience'=>$experience,
'dedication'=>$dedication,
- 'level'=>$level,
+ 'officer_level'=>$officerLevel,
'gold'=>$this->gold,
'rice'=>$this->rice,
'crew'=>0,
diff --git a/hwe/sammo/Scenario/Nation.php b/hwe/sammo/Scenario/Nation.php
index 66b34a3f..f556568a 100644
--- a/hwe/sammo/Scenario/Nation.php
+++ b/hwe/sammo/Scenario/Nation.php
@@ -144,10 +144,10 @@ class Nation{
], 'nation=%i', $this->id);
//군주가 없는지 확인
- $hasRuler = $db->queryFirstField('SELECT count(*) FROM general WHERE nation=%i AND level=12', $this->id);
+ $hasRuler = $db->queryFirstField('SELECT count(*) FROM general WHERE nation=%i AND officer_level=12', $this->id);
if(!$hasRuler){
$newRuler = $db->queryFirstField('SELECT `no` FROM general WHERE nation=%i ORDER BY leadership+strength+intel DESC LIMIT 1', $this->id);
- $db->update('general',['level'=>12], 'no=%i', $newRuler);
+ $db->update('general',['officer_level'=>12], 'no=%i', $newRuler);
}
$turnRows = [];
@@ -155,7 +155,7 @@ class Nation{
foreach(Util::range(GameConst::$maxChiefTurn) as $turnIdx){
$turnRows[] = [
'nation_id'=>$this->id,
- 'level'=>$chiefLevel,
+ 'officer_level'=>$chiefLevel,
'turn_idx'=>$turnIdx,
'action'=>'휴식',
'arg'=>'{}',
diff --git a/hwe/sammo/ScoutMessage.php b/hwe/sammo/ScoutMessage.php
index 23e341bc..17a9feb1 100644
--- a/hwe/sammo/ScoutMessage.php
+++ b/hwe/sammo/ScoutMessage.php
@@ -166,12 +166,12 @@ class ScoutMessage extends Message{
$db = DB::db();
$srcGeneral = $db->queryFirstRow('SELECT `name`, nation FROM general WHERE `no`=%i', $srcGeneralID);
- $destGeneral = $db->queryFirstRow('SELECT `name`, nation, `level` FROM general WHERE `no`=%i', $destGeneralID);
+ $destGeneral = $db->queryFirstRow('SELECT `name`, nation, `officer_level` FROM general WHERE `no`=%i', $destGeneralID);
if($date === null){
$date = new \DateTime();
}
- if($destGeneral['level'] == 12){
+ if($destGeneral['officer_level'] == 12){
if($reason !== null){
$reason = '군주에게 등용장을 보낼 수 없습니다';
}
diff --git a/hwe/sammo/TriggerGeneralLevel.php b/hwe/sammo/TriggerOfficerLevel.php
similarity index 59%
rename from hwe/sammo/TriggerGeneralLevel.php
rename to hwe/sammo/TriggerOfficerLevel.php
index 9173cbbb..21a7f6d5 100644
--- a/hwe/sammo/TriggerGeneralLevel.php
+++ b/hwe/sammo/TriggerOfficerLevel.php
@@ -1,30 +1,23 @@
generalLevel = $general['level'];
+ public function __construct(array $general, int $nationLevel){
+ $this->officerLevel = $general['officer_level'];
$this->nationLevel = $nationLevel;
- if($city === null){
- if(2 <= $this->generalLevel || $this->generalLevel <= 4){
- $this->generalLevel = 1;
- }
- }
- else{
- if(2 <= $this->generalLevel && $this->generalLevel <= 4 && $city['officer'.$this->generalLevel] != $general['no']){
- $this->generalLevel = 1;
- }
+ if(2 <= $this->officerLevel && $this->officerLevel <= 4 && $general['officer_city'] != $general['city']){
+ $this->officerLevel = 1;
}
- $this->lbonus = calcLeadershipBonus($this->generalLevel, $nationLevel);
+ $this->lbonus = calcLeadershipBonus($this->officerLevel, $nationLevel);
}
public function getLbonus():int{
@@ -33,22 +26,22 @@ class TriggerGeneralLevel implements iAction{
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux=null):float{
if($turnType == '농업' || $turnType == '상업'){
- if(in_array($this->generalLevel, [12, 11, 9, 7, 5, 3])){
+ if(in_array($this->officerLevel, [12, 11, 9, 7, 5, 3])){
return $value * 1.05;
}
}
else if($turnType == '기술'){
- if(in_array($this->generalLevel, [12, 11, 9, 7, 5])){
+ if(in_array($this->officerLevel, [12, 11, 9, 7, 5])){
return $value * 1.05;
}
}
else if($turnType == '민심' || $turnType == '인구'){
- if(in_array($this->generalLevel, [12, 11, 2])){
+ if(in_array($this->officerLevel, [12, 11, 2])){
return $value * 1.05;
}
}
else if($turnType == '수비' || $turnType == '성벽' || $turnType == '치안'){
- if(in_array($this->generalLevel, [12, 11, 10, 8, 6, 4])){
+ if(in_array($this->officerLevel, [12, 11, 10, 8, 6, 4])){
return $value * 1.05;
}
}
diff --git a/hwe/sammo/TurnExecutionHelper.php b/hwe/sammo/TurnExecutionHelper.php
index 8dd72b37..e2fed614 100644
--- a/hwe/sammo/TurnExecutionHelper.php
+++ b/hwe/sammo/TurnExecutionHelper.php
@@ -243,15 +243,15 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC',
$generalCommandObj = buildGeneralCommandClass($generalCommand, $general, $env, $generalArg);
$hasNationTurn = false;
- if($general->getVar('nation') != 0 && $general->getVar('level') >= 5){
+ if($general->getVar('nation') != 0 && $general->getVar('officer_level') >= 5){
$nationStor = KVStorage::getStorage($db, 'nation_env');
- $lastNationTurnKey = "turn_last_{$general->getVar('nation')}_{$general->getVar('level')}";
+ $lastNationTurnKey = "turn_last_{$general->getVar('nation')}_{$general->getVar('officer_level')}";
$lastNationTurn = $nationStor->getValue($lastNationTurnKey);
//수뇌 몇 없는데 매번 left join 하는건 낭비인것 같다.
$rawNationTurn = $db->queryFirstRow(
- 'SELECT action, arg FROM nation_turn WHERE nation_id = %i AND level = %i AND turn_idx =0',
+ 'SELECT action, arg FROM nation_turn WHERE nation_id = %i AND officer_level = %i AND turn_idx =0',
$general->getVar('nation'),
- $general->getVar('level')
+ $general->getVar('officer_level')
)??[];
$hasNationTurn = true;
$nationCommand = $rawNationTurn['action']??null;
@@ -281,7 +281,7 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC',
}
$turnObj->processCommand($generalCommandObj);
}
- pullNationCommand($general->getVar('nation'), $general->getVar('level'));
+ pullNationCommand($general->getVar('nation'), $general->getVar('officer_level'));
pullGeneralCommand($general->getID());
$currentTurn = $general->getTurnTime();
diff --git a/hwe/sammo/WarUnitGeneral.php b/hwe/sammo/WarUnitGeneral.php
index 21833978..4617167b 100644
--- a/hwe/sammo/WarUnitGeneral.php
+++ b/hwe/sammo/WarUnitGeneral.php
@@ -153,25 +153,26 @@ class WarUnitGeneral extends WarUnit{
[$warPower,$opposeWarPowerMultiply] = parent::computeWarPower();
$general = $this->general;
- $generalNo = $general->getVar('no');
- $genLevel = $general->getVar('level');
+ $cityID = $general->getCityID();
+ $officerLevel = $general->getVar('officer_level');
+ $officerCity = $general->getVar('officer_city');
if($this->isAttacker){
- if($genLevel == 12){
+ if($officerLevel == 12){
$warPower *= 1.10;
}
- else if($genLevel == 11 | $genLevel == 10 || $genLevel == 8 || $genLevel == 6){
+ else if($officerLevel == 11 | $officerLevel == 10 || $officerLevel == 8 || $officerLevel == 6){
$warPower *= 1.05;
}
}
else{
- if($genLevel == 12){
+ if($officerLevel == 12){
$opposeWarPowerMultiply *= 0.90;
}
- else if($genLevel == 11 || $genLevel == 9 || $genLevel == 7 || $genLevel == 5){
+ else if($officerLevel == 11 || $officerLevel == 9 || $officerLevel == 7 || $officerLevel == 5){
$opposeWarPowerMultiply *= 0.95;
}
- else if(2 <= $genLevel && $genLevel <= 4 && $generalNo == $this->getCityVar('officer'.$genLevel)){
+ else if(2 <= $officerLevel && $officerLevel <= 4 && $officerCity == $cityID){
$opposeWarPowerMultiply *= 0.95;
}
}
diff --git a/hwe/sql/schema.sql b/hwe/sql/schema.sql
index 0f4c0b1c..92a0f336 100644
--- a/hwe/sql/schema.sql
+++ b/hwe/sql/schema.sql
@@ -38,7 +38,8 @@ CREATE TABLE `general` (
`dex3` INT(8) NOT NULL DEFAULT '0',
`dex4` INT(8) NOT NULL DEFAULT '0',
`dex5` INT(8) NOT NULL DEFAULT '0',
- `level` INT(2) NOT NULL DEFAULT '0',
+ `officer_level` INT(2) NOT NULL DEFAULT '0',
+ `officer_city` INT(4) NOT NULL DEFAULT '0',
`permission` ENUM('normal','auditor','ambassador') NULL DEFAULT 'normal',
`gold` INT(6) NOT NULL DEFAULT '1000',
`rice` INT(6) NOT NULL DEFAULT '1000',
@@ -86,7 +87,8 @@ CREATE TABLE `general` (
INDEX `no_member` (`owner`),
INDEX `npc` (`npc`),
INDEX `troop` (`troop`, `turntime`),
- INDEX `level` (`nation`, `level`),
+ INDEX `officer_level` (`nation`, `officer_level`),
+ INDEX `officer_city` (`officer_city`, `officer_level`)
INDEX `name` (`name`)
)
DEFAULT CHARSET=utf8mb4
@@ -155,14 +157,14 @@ ENGINE=Aria DEFAULT CHARSET=utf8mb4;
CREATE TABLE `nation_turn` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`nation_id` INT(11) NOT NULL,
- `level` INT(4) NOT NULL,
+ `officer_level` INT(4) NOT NULL,
`turn_idx` INT(4) NOT NULL,
`action` VARCHAR(16) NOT NULL,
`arg` TEXT NULL DEFAULT NULL,
`brief` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
- UNIQUE INDEX `nation` (`nation_id`, `level`, `turn_idx`),
- INDEX `action` (`action`, `turn_idx`, `nation_id`, `level`)
+ UNIQUE INDEX `nation` (`nation_id`, `officer_level`, `turn_idx`),
+ INDEX `action` (`action`, `turn_idx`, `nation_id`, `officer_level`)
)
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
@@ -223,9 +225,6 @@ CREATE TABLE `city` (
`def_max` INT(5) NOT NULL,
`wall` INT(5) NOT NULL,
`wall_max` INT(5) NOT NULL,
- `officer4` INT(4) NOT NULL DEFAULT '0',
- `officer3` INT(4) NOT NULL DEFAULT '0',
- `officer2` INT(4) NOT NULL DEFAULT '0',
`officer4set` INT(1) NOT NULL DEFAULT '0',
`officer3set` INT(1) NOT NULL DEFAULT '0',
`officer2set` INT(1) NOT NULL DEFAULT '0',
diff --git a/hwe/t_board.php b/hwe/t_board.php
index 5ca5cd8a..3ff0fe3a 100644
--- a/hwe/t_board.php
+++ b/hwe/t_board.php
@@ -14,7 +14,7 @@ $isSecretBoard = Util::getReq('isSecret', 'bool', false);
//increaseRefresh("회의실", 1);
-$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
diff --git a/hwe/t_diplomacy.php b/hwe/t_diplomacy.php
index 3091cf4b..109b249f 100644
--- a/hwe/t_diplomacy.php
+++ b/hwe/t_diplomacy.php
@@ -12,7 +12,7 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("내무부", 1);
-$me = $db->queryFirstRow('SELECT no, nation, level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
+$me = $db->queryFirstRow('SELECT no, nation, officer_level, permission, con, turntime, belong, penalty FROM general WHERE owner=%i', $userID);
$con = checkLimit($me['con']);
diff --git a/hwe/templates/cityGeneral.php b/hwe/templates/cityGeneral.php
index be9f2768..2c04feb2 100644
--- a/hwe/templates/cityGeneral.php
+++ b/hwe/templates/cityGeneral.php
@@ -6,7 +6,7 @@
data-general-leadership="=$leadership?>"
data-general-strength="=$strength?>"
data-general-intel="=$intel?>"
- data-general-level="=$level?>"
+ data-general-officer-level="=$officerLevel?>"
data-general-leadership-bonus="=$leadershipBonus?>"
data-general-defence-train="=$defenceTrain?>"
@@ -25,7 +25,7 @@
=$leadershipText?>=$leadershipBonusText?> |
=$strengthText?> |
=$intelText?> |
- =$levelText?> |
+ =$officerLevelText?> |
=$defenceTrainText?> |
=$crewTypeText?> |
diff --git a/hwe/templates/generalList.php b/hwe/templates/generalList.php
index 5df178de..68ece9a2 100644
--- a/hwe/templates/generalList.php
+++ b/hwe/templates/generalList.php
@@ -27,7 +27,7 @@
data-general-leadership="=$general['leadership']?>"
data-general-strength="=$general['strength']?>"
data-general-intel="=$general['intel']?>"
- data-general-level="=$general['expLevelText']?>"
+ data-general-exp-level="=$general['expLevelText']?>"
data-general-leadership-bonus="=$general['lbonus']?>"
data-general-defence-train="=$general['defence_train']?>"
data-general-crew-type="=$general['crewtype']?>"