커맨드 선택 form 구현 중
This commit is contained in:
@@ -12,7 +12,8 @@ use \sammo\{
|
|||||||
|
|
||||||
|
|
||||||
use function \sammo\{
|
use function \sammo\{
|
||||||
tryUniqueItemLottery
|
tryUniqueItemLottery,
|
||||||
|
printCitiesBasedOnDistance
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -135,5 +136,31 @@ class che_강행 extends Command\GeneralCommand{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getJSFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'js/defaultSelectCityByMap.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
선택된 도시로 강행합니다.<br>
|
||||||
|
최대 3칸내 도시로만 강행이 가능합니다.<br>
|
||||||
|
목록을 선택하거나 도시를 클릭하세요.<br>
|
||||||
|
<select class='formInput' name="destCityID" id="destCityID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$form[] = \sammo\optionsForCities();
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = '<input type=submit value="강행">';
|
||||||
|
$form[] = printCitiesBasedOnDistance($this->generalObj->getCityID(), 3);
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,8 @@ use \sammo\{
|
|||||||
|
|
||||||
|
|
||||||
use function \sammo\{
|
use function \sammo\{
|
||||||
tryUniqueItemLottery
|
tryUniqueItemLottery,
|
||||||
|
getAllNationStaticInfo
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -21,7 +22,7 @@ use sammo\CityConst;
|
|||||||
use function sammo\getNationTypeClass;
|
use function sammo\getNationTypeClass;
|
||||||
use function sammo\refreshNationStaticInfo;
|
use function sammo\refreshNationStaticInfo;
|
||||||
use function sammo\GetNationColors;
|
use function sammo\GetNationColors;
|
||||||
|
use function sammo\newColor;
|
||||||
|
|
||||||
|
|
||||||
class che_건국 extends Command\GeneralCommand{
|
class che_건국 extends Command\GeneralCommand{
|
||||||
@@ -172,5 +173,82 @@ class che_건국 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
|
||||||
|
if(count(getAllNationStaticInfo()) >= $this->env['maxnation']){
|
||||||
|
return '더 이상 건국은 불가능합니다.';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//NOTE: 새로운 방법이 생기기 전까진 아무색이나 선택 가능하도록 하자.
|
||||||
|
/*
|
||||||
|
foreach(GetNationColors() as $color){
|
||||||
|
$colorUsed[$color] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(getAllNationStaticInfo() as $nation){
|
||||||
|
if($nation['level'] <= 0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$colorUsed[$nation['color']]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$colorUsedCnt = 0;
|
||||||
|
foreach($colorUsed as $color=>$used){
|
||||||
|
if($used){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$colorUsedCnt += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//색깔이 다 쓰였으면 그냥 모두 허용
|
||||||
|
if($colorUsedCnt === count($colorUsed)){
|
||||||
|
foreach(array_keys($colorUsed) as $color){
|
||||||
|
$colorUsed[$color] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = '현재 도시에서 나라를 세웁니다. 중, 소도시에서만 가능합니다.<br><br>';
|
||||||
|
|
||||||
|
foreach(GameConst::$availableNationType as $nationType){
|
||||||
|
$nationClass = getNationTypeClass($nationType);
|
||||||
|
|
||||||
|
[$name, $pros, $cons] = [$nationClass::$name, $nationClass::$pros, $nationClass::$cons];
|
||||||
|
$form[] = "- $name : <span style='color:cyan;'>{$pros}</span> <span style='color:magenta;'>{$cons}</span><br>";
|
||||||
|
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
<br>
|
||||||
|
국명 : <input type='text' class='formInput' name="nationName" id="nationName" size='18' maxlength='18' style='color:white;background-color:black;'>
|
||||||
|
색깔 : <select class='formInput' name='nationColor' id='nationColor' size='1'>
|
||||||
|
EOT;
|
||||||
|
foreach(GetNationColors() as $idx=>$color) {
|
||||||
|
/*
|
||||||
|
if($colorUsed[$color] > 0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
$form[] = "<option value={$idx} style='background-color:{$color};color:".newColor($color)."';>국가명</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
성향 : <select class='formInput' name='nationType' id='nationType' size='1'>
|
||||||
|
EOT;
|
||||||
|
foreach(GameConst::$availableNationType as $nationType){
|
||||||
|
$nationClass = getNationTypeClass($nationType);
|
||||||
|
|
||||||
|
$name = $nationClass::$name;
|
||||||
|
$form[] = "<option value='{$nationType}' style=background-color:black;color:white;>{$name}</option>";
|
||||||
|
|
||||||
|
}
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = '<input type="submit" value="건국">';
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,9 @@ use function \sammo\{
|
|||||||
getDomesticExpLevelBonus,
|
getDomesticExpLevelBonus,
|
||||||
CriticalRatioDomestic,
|
CriticalRatioDomestic,
|
||||||
CriticalScoreEx,
|
CriticalScoreEx,
|
||||||
tryUniqueItemLottery
|
tryUniqueItemLottery,
|
||||||
|
getAllNationStaticInfo,
|
||||||
|
getNationStaticInfo
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -148,5 +150,47 @@ class che_등용 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$db = DB::db();
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
재야나 타국의 장수를 등용합니다.<br>
|
||||||
|
서신은 개인 메세지로 전달됩니다.<br>
|
||||||
|
등용할 장수를 목록에서 선택하세요.<br>
|
||||||
|
<select class='formInput' name="destGeneralID" id="destGeneralID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$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());
|
||||||
|
foreach($destRawGenerals as $destGeneral){
|
||||||
|
$destNationID = $destGeneral['nation'];
|
||||||
|
if(!key_exists($destNationID, $destGenerals)){
|
||||||
|
$destGenerals[$destNationID] = [];
|
||||||
|
}
|
||||||
|
$destGenerals[$destNationID] = [$destGeneral];
|
||||||
|
}
|
||||||
|
|
||||||
|
$nationList = array_merge([0=>getNationStaticInfo(0)], getAllNationStaticInfo());
|
||||||
|
foreach($nationList as $destNation){
|
||||||
|
$form[] = "<option style='color:{$destNation['color']}'>【 {$destNation['name']} 】</option>";
|
||||||
|
$destNationID = $destNation['nation'];
|
||||||
|
if(!key_exists($destNationID, $destGenerals)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($destGenerals[$destNationID] as $destGeneral){
|
||||||
|
$nameColor = \sammo\getNameColor($destGeneral['npc']);
|
||||||
|
if($nameColor){
|
||||||
|
$nameColor = " style='color:{$nameColor}'";
|
||||||
|
}
|
||||||
|
$form[] = "<option value='{$destGeneral['no']}' {$nameColor}>{$destGeneral['name']}</option>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = '<input type="submit" value="등용">';
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,8 @@ use \sammo\{
|
|||||||
|
|
||||||
|
|
||||||
use function \sammo\{
|
use function \sammo\{
|
||||||
tryUniqueItemLottery
|
tryUniqueItemLottery,
|
||||||
|
getInvitationList
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -176,5 +177,61 @@ class che_임관 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$db = DB::db();
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$generalObj = $this->generalObj;
|
||||||
|
|
||||||
|
$env = $this->env;
|
||||||
|
|
||||||
|
$joinedNations = Json::decode($db->queryFirstField('SELECT nations FROM general WHERE no = %i', $generalObj->getID()));
|
||||||
|
|
||||||
|
$nationList = $db->query('SELECT nation,`name`,color,scout,scoutmsg,gennum FROM nation');
|
||||||
|
shuffle($nationList);
|
||||||
|
|
||||||
|
$onlyRandom = $env['join_mode'] == 'onlyRandom';
|
||||||
|
|
||||||
|
foreach($nationList as &$nation){
|
||||||
|
if ($onlyRandom && TimeUtil::IsRangeMonth($env['init_year'], $env['init_month'], 1, $env['year'], $env['month']) && $nation['gennum'] >= GameConst::$initialNationGenLimitForRandInit) {
|
||||||
|
$nation['availableJoin'] = false;
|
||||||
|
}
|
||||||
|
else if($env['year'] < $env['startyear']+3 && $nation['gennum'] >= GameConst::$initialNationGenLimit){
|
||||||
|
$nation['availableJoin'] = false;
|
||||||
|
}
|
||||||
|
else if($nation['scout'] == 1) {
|
||||||
|
$nation['availableJoin'] = false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$nation['availableJoin'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(in_array($nation['nation'], $joinedNations)){
|
||||||
|
$nation['availableJoin'] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($nation);
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
국가에 임관합니다.<br>
|
||||||
|
이미 임관/등용되었던 국가는 다시 임관할 수 없습니다.<br>
|
||||||
|
바로 군주의 위치로 이동합니다.<br>
|
||||||
|
임관할 국가를 목록에서 선택하세요.<br>
|
||||||
|
<select class='formInput' name="destNationID" id="destNationID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
foreach($nationList as $nation){
|
||||||
|
$css = "color:{$nation['color']};";
|
||||||
|
if(!$nation['availableJoin']){
|
||||||
|
$css.= 'background-color:red;';
|
||||||
|
}
|
||||||
|
$form[] = "<option value='{$nation['nation']}' style='$css'>【 {$nation['name']} 】</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<input type=submit value='임관'>
|
||||||
|
EOT;
|
||||||
|
$form[] = getInvitationList($nationList);
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -17,7 +17,8 @@ use function \sammo\{
|
|||||||
tryUniqueItemLottery,
|
tryUniqueItemLottery,
|
||||||
getItemCost,
|
getItemCost,
|
||||||
getItemInfo,
|
getItemInfo,
|
||||||
getItemName
|
getItemName,
|
||||||
|
buildItemClass
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -43,12 +44,14 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$itemCode = $this->arg['itemCode']??null;
|
$itemCode = $this->arg['itemCode']??null;
|
||||||
if(!is_int($itemCode)){
|
if(!key_exists($itemCode, GameConst::$allItems[$itemType])){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if($itemCode < 0 || 6 < $itemCode){
|
$itemClass = buildItemClass($itemCode);
|
||||||
|
if(!$itemClass->isBuyable()){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->arg = [
|
$this->arg = [
|
||||||
'itemType'=>$itemType,
|
'itemType'=>$itemType,
|
||||||
'itemCode'=>$itemCode
|
'itemCode'=>$itemCode
|
||||||
@@ -66,12 +69,13 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
$itemType = $this->arg['itemType'];
|
$itemType = $this->arg['itemType'];
|
||||||
$itemTypeName = static::$itemMap[$itemType];
|
$itemTypeName = static::$itemMap[$itemType];
|
||||||
$itemCode = $this->arg['itemCode'];
|
$itemCode = $this->arg['itemCode'];
|
||||||
|
$itemClass = buildItemClass($itemCode);
|
||||||
|
|
||||||
[$reqGold, $reqRice] = $this->getCost();
|
[$reqGold, $reqRice] = $this->getCost();
|
||||||
|
|
||||||
$this->runnableConstraints=[
|
$this->runnableConstraints=[
|
||||||
ConstraintHelper::ReqCityTrader($general->getVar('npc')),
|
ConstraintHelper::ReqCityTrader($general->getVar('npc')),
|
||||||
ConstraintHelper::ReqCityCapacity('secu', '치안 수치', $itemCode * 1000),
|
ConstraintHelper::ReqCityCapacity('secu', '치안 수치', $itemClass->getReqSecu()),
|
||||||
ConstraintHelper::ReqGeneralGold($reqGold),
|
ConstraintHelper::ReqGeneralGold($reqGold),
|
||||||
ConstraintHelper::ReqGeneralRice($reqRice),
|
ConstraintHelper::ReqGeneralRice($reqRice),
|
||||||
];
|
];
|
||||||
@@ -82,7 +86,7 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
else if($itemCode == $general->getVar($itemType)){
|
else if($itemCode == $general->getVar($itemType)){
|
||||||
$this->runnableConstraints[] = ConstraintHelper::AlwaysFail('이미 가지고 있습니다.');
|
$this->runnableConstraints[] = ConstraintHelper::AlwaysFail('이미 가지고 있습니다.');
|
||||||
}
|
}
|
||||||
else if($itemType != 'item' && $general->getVar($itemType) > 6){
|
else if($itemType != 'item' && !buildItemClass($general->getVar($itemType))->isBuyable()){
|
||||||
$this->runnableConstraints[] = ConstraintHelper::AlwaysFail('이미 진귀한 것을 가지고 있습니다.');
|
$this->runnableConstraints[] = ConstraintHelper::AlwaysFail('이미 진귀한 것을 가지고 있습니다.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +97,6 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
return [0, 0];
|
return [0, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
$itemType = $this->arg['itemType'];
|
|
||||||
$itemCode = $this->arg['itemCode'];
|
$itemCode = $this->arg['itemCode'];
|
||||||
|
|
||||||
$reqGold = getItemCost($itemCode);
|
$reqGold = getItemCost($itemCode);
|
||||||
@@ -121,7 +124,7 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
$itemType = $this->arg['itemType'];
|
$itemType = $this->arg['itemType'];
|
||||||
$itemCode = $this->arg['itemCode'];
|
$itemCode = $this->arg['itemCode'];
|
||||||
|
|
||||||
if($itemCode == 0){
|
if($itemCode == 'None'){
|
||||||
$buying = false;
|
$buying = false;
|
||||||
$itemCode = $general->getVar($itemType);
|
$itemCode = $general->getVar($itemType);
|
||||||
$cost = getItemCost($itemCode);
|
$cost = getItemCost($itemCode);
|
||||||
@@ -159,5 +162,58 @@ class che_장비매매 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
|
||||||
|
$citySecu = $db->queryFirstField('SELECT secu FROM city WHERE city = %i', $this->generalObj->getCityID());
|
||||||
|
$gold = $this->generalObj->getVar('gold');
|
||||||
|
$form[] = <<<EOT
|
||||||
|
<script>
|
||||||
|
function updateItemType(elem){
|
||||||
|
$('#itemType').val($(elem).data('itemType'));
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
EOT;
|
||||||
|
$form[] = '<input type="hidden" class="formInput" name="itemType" id="itemType" value="item">';
|
||||||
|
$form[] = <<<EOT
|
||||||
|
장비를 구입하거나 매각합니다.<br>
|
||||||
|
현재 구입 불가능한 것은 <font color=red>붉은색</font>으로 표시됩니다.<br>
|
||||||
|
현재 도시 치안 : {$citySecu} 현재 자금 : {$gold}<br>
|
||||||
|
장비 : <select class='formInput' name="itemCode" id="itemCode" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
foreach(GameConst::$allItems as $itemType=>$itemCategories){
|
||||||
|
//매각
|
||||||
|
$typeName = static::$itemMap[$itemType];
|
||||||
|
$form[] = "<option value='None' data-itemType='{$itemType}' style='color:skyblue'>_____{$typeName}매각(반값)____</option>";
|
||||||
|
|
||||||
|
//구입
|
||||||
|
foreach($itemCategories as $itemCode=>$cnt){
|
||||||
|
if($cnt > 0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$itemClass = buildItemClass($itemCode);
|
||||||
|
if(!$itemClass->isBuyable()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$itemName = $itemClass->getName();
|
||||||
|
$reqSecu = $itemClass->getReqSecu();
|
||||||
|
$reqGold = $itemClass->getCost();
|
||||||
|
$css = '';
|
||||||
|
if($reqSecu < $citySecu){
|
||||||
|
$css = 'color:red;';
|
||||||
|
}
|
||||||
|
$form[] = "<option value='{$itemCode}' data-itemType='{$itemType}' style='{$css}'>{$itemName} 가격: {$reqGold}</option>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<input type=submit value=거래>
|
||||||
|
EOT;
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -150,5 +150,64 @@ class che_증여 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
//TODO: 암행부처럼 보여야...
|
||||||
|
$db = DB::db();
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
자신의 자금이나 군량을 다른 장수에게 증여합니다.<br>
|
||||||
|
장수를 선택하세요.<br>
|
||||||
|
<select class='formInput' name="destGeneralID" id="destGeneralID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$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());
|
||||||
|
foreach($destRawGenerals as $destGeneral){
|
||||||
|
$nameColor = \sammo\getNameColor($destGeneral['npc']);
|
||||||
|
if($nameColor){
|
||||||
|
$nameColor = " style='color:{$nameColor}'";
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = $destGeneral['name'];
|
||||||
|
if($destGeneral['level'] >= 5){
|
||||||
|
$name = "*{$name}*";
|
||||||
|
}
|
||||||
|
|
||||||
|
$form[] = "<option value='{$destGeneral['no']}' {$nameColor}>{$name}(금:{$destGeneral['gold']}, 쌀:{$destGeneral['rice']})</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="isGold" id="isGold" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value="true">금</option>
|
||||||
|
<option value="false">쌀</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="amount" id="amount" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value=1>100</option>
|
||||||
|
<option value=2>200</option>
|
||||||
|
<option value=3>300</option>
|
||||||
|
<option value=4>400</option>
|
||||||
|
<option value=5>500</option>
|
||||||
|
<option value=6>600</option>
|
||||||
|
<option value=7>700</option>
|
||||||
|
<option value=8>800</option>
|
||||||
|
<option value=9>900</option>
|
||||||
|
<option value=10>1000</option>
|
||||||
|
<option value=12>1200</option>
|
||||||
|
<option value=15>1500</option>
|
||||||
|
<option value=20>2000</option>
|
||||||
|
<option value=25>2500</option>
|
||||||
|
<option value=30>3000</option>
|
||||||
|
<option value=40>4000</option>
|
||||||
|
<option value=50>5000</option>
|
||||||
|
<option value=60>6000</option>
|
||||||
|
<option value=70>7000</option>
|
||||||
|
<option value=80>8000</option>
|
||||||
|
<option value=90>9000</option>
|
||||||
|
<option value=100>10000</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="증여">
|
||||||
|
EOT;
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,8 @@ use \sammo\{
|
|||||||
|
|
||||||
use function \sammo\{
|
use function \sammo\{
|
||||||
tryUniqueItemLottery,
|
tryUniqueItemLottery,
|
||||||
searchDistance
|
searchDistance,
|
||||||
|
printCitiesBasedOnDistance
|
||||||
};
|
};
|
||||||
|
|
||||||
use \sammo\Constraint\Constraint;
|
use \sammo\Constraint\Constraint;
|
||||||
@@ -182,5 +183,31 @@ class che_첩보 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getJSFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'js/defaultSelectCityByMap.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
선택된 도시에 첩보를 실행합니다.<br>
|
||||||
|
인접도시일 경우 많은 정보를 얻을 수 있습니다.<br>
|
||||||
|
목록을 선택하거나 도시를 클릭하세요.<br>
|
||||||
|
<select class='formInput' name="destCityID" id="destCityID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$form[] = \sammo\optionsForCities();
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = '<input type=submit value="첩보">';
|
||||||
|
$form[] = printCitiesBasedOnDistance($this->generalObj->getCityID(), 3);
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -130,5 +130,44 @@ class che_헌납 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
//TODO: 암행부처럼 보여야...
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
자신의 자금이나 군량을 국가 재산으로 헌납합니다.<br>
|
||||||
|
<select class='formInput' name="isGold" id="isGold" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value="true">금</option>
|
||||||
|
<option value="false">쌀</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="amount" id="amount" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value=1>100</option>
|
||||||
|
<option value=2>200</option>
|
||||||
|
<option value=3>300</option>
|
||||||
|
<option value=4>400</option>
|
||||||
|
<option value=5>500</option>
|
||||||
|
<option value=6>600</option>
|
||||||
|
<option value=7>700</option>
|
||||||
|
<option value=8>800</option>
|
||||||
|
<option value=9>900</option>
|
||||||
|
<option value=10>1000</option>
|
||||||
|
<option value=12>1200</option>
|
||||||
|
<option value=15>1500</option>
|
||||||
|
<option value=20>2000</option>
|
||||||
|
<option value=25>2500</option>
|
||||||
|
<option value=30>3000</option>
|
||||||
|
<option value=40>4000</option>
|
||||||
|
<option value=50>5000</option>
|
||||||
|
<option value=60>6000</option>
|
||||||
|
<option value=70>7000</option>
|
||||||
|
<option value=80>8000</option>
|
||||||
|
<option value=90>9000</option>
|
||||||
|
<option value=100>10000</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="헌납">
|
||||||
|
EOT;
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -290,5 +290,32 @@ class che_화계 extends Command\GeneralCommand{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getJSFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'js/defaultSelectCityByMap.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
$josaUl = JosaUtil::pick($this->getName(), '을');
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
선택된 도시에 {$this->getName()}{$josaUl} 실행합니다.<br>
|
||||||
|
목록을 선택하거나 도시를 클릭하세요.<br>
|
||||||
|
<select class='formInput' name="destCityID" id="destCityID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$form[] = \sammo\optionsForCities();
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = "<input type=submit value='{$this->getName()}>";
|
||||||
|
$form[] = printCitiesBasedOnDistance($this->generalObj->getCityID(), 2);
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -166,4 +166,65 @@ class che_몰수 extends Command\NationCommand{
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
//TODO: 암행부처럼 보여야...
|
||||||
|
$db = DB::db();
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
장수의 자금이나 군량을 몰수합니다.<br>
|
||||||
|
몰수한것은 국가재산으로 귀속됩니다.<br>
|
||||||
|
<select class='formInput' name="destGeneralID" id="destGeneralID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$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());
|
||||||
|
foreach($destRawGenerals as $destGeneral){
|
||||||
|
$nameColor = \sammo\getNameColor($destGeneral['npc']);
|
||||||
|
if($nameColor){
|
||||||
|
$nameColor = " style='color:{$nameColor}'";
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = $destGeneral['name'];
|
||||||
|
if($destGeneral['level'] >= 5){
|
||||||
|
$name = "*{$name}*";
|
||||||
|
}
|
||||||
|
|
||||||
|
$form[] = "<option value='{$destGeneral['no']}' {$nameColor}>{$name}(금:{$destGeneral['gold']}, 쌀:{$destGeneral['rice']})</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="isGold" id="isGold" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value="true">금</option>
|
||||||
|
<option value="false">쌀</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="amount" id="amount" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value=1>100</option>
|
||||||
|
<option value=2>200</option>
|
||||||
|
<option value=3>300</option>
|
||||||
|
<option value=4>400</option>
|
||||||
|
<option value=5>500</option>
|
||||||
|
<option value=6>600</option>
|
||||||
|
<option value=7>700</option>
|
||||||
|
<option value=8>800</option>
|
||||||
|
<option value=9>900</option>
|
||||||
|
<option value=10>1000</option>
|
||||||
|
<option value=12>1200</option>
|
||||||
|
<option value=15>1500</option>
|
||||||
|
<option value=20>2000</option>
|
||||||
|
<option value=25>2500</option>
|
||||||
|
<option value=30>3000</option>
|
||||||
|
<option value=40>4000</option>
|
||||||
|
<option value=50>5000</option>
|
||||||
|
<option value=60>6000</option>
|
||||||
|
<option value=70>7000</option>
|
||||||
|
<option value=80>8000</option>
|
||||||
|
<option value=90>9000</option>
|
||||||
|
<option value=100>10000</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="몰수">
|
||||||
|
EOT;
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -128,4 +128,49 @@ class che_발령 extends Command\NationCommand{
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getJSFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'js/defaultSelectCityByMap.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
선택된 도시로 아국 장수를 발령합니다.<br>
|
||||||
|
아국 도시로만 발령이 가능합니다.<br>
|
||||||
|
목록을 선택하거나 도시를 클릭하세요.<br>
|
||||||
|
<select class='formInput' name="destGeneralID" id="destGeneralID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$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());
|
||||||
|
foreach($destRawGenerals as $destGeneral){
|
||||||
|
$nameColor = \sammo\getNameColor($destGeneral['npc']);
|
||||||
|
if($nameColor){
|
||||||
|
$nameColor = " style='color:{$nameColor}'";
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = $destGeneral['name'];
|
||||||
|
if($destGeneral['level'] >= 5){
|
||||||
|
$name = "*{$name}*";
|
||||||
|
}
|
||||||
|
|
||||||
|
$form[] = "<option value='{$destGeneral['no']}' {$nameColor}>{$name}(금:{$destGeneral['gold']}, 쌀:{$destGeneral['rice']})</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="destCityID" id="destCityID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$form[] = \sammo\optionsForCities();
|
||||||
|
$form[] = '</select>';
|
||||||
|
$form[] = '<input type=submit value="발령">';
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -170,4 +170,20 @@ class che_선전포고 extends Command\NationCommand{
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getJSFiles(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'js/defaultSelectNationByMap.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
$form = [];
|
||||||
|
$form[] = \sammo\getMapHtml();
|
||||||
|
|
||||||
|
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -138,4 +138,65 @@ class che_포상 extends Command\NationCommand{
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getForm(): string
|
||||||
|
{
|
||||||
|
//TODO: 암행부처럼 보여야...
|
||||||
|
$db = DB::db();
|
||||||
|
$form = [];
|
||||||
|
|
||||||
|
$form[] = <<<EOT
|
||||||
|
국고로 장수에게 자금이나 군량을 지급합니다.
|
||||||
|
<select class='formInput' name="destGeneralID" id="destGeneralID" size='1' style='color:white;background-color:black;'>
|
||||||
|
EOT;
|
||||||
|
$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());
|
||||||
|
foreach($destRawGenerals as $destGeneral){
|
||||||
|
$nameColor = \sammo\getNameColor($destGeneral['npc']);
|
||||||
|
if($nameColor){
|
||||||
|
$nameColor = " style='color:{$nameColor}'";
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = $destGeneral['name'];
|
||||||
|
if($destGeneral['level'] >= 5){
|
||||||
|
$name = "*{$name}*";
|
||||||
|
}
|
||||||
|
|
||||||
|
$form[] = "<option value='{$destGeneral['no']}' {$nameColor}>{$name}(금:{$destGeneral['gold']}, 쌀:{$destGeneral['rice']})</option>";
|
||||||
|
}
|
||||||
|
$form[] = <<<EOT
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="isGold" id="isGold" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value="true">금</option>
|
||||||
|
<option value="false">쌀</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
<select class='formInput' name="amount" id="amount" size='1' style='color:white;background-color:black;'>
|
||||||
|
<option value=1>100</option>
|
||||||
|
<option value=2>200</option>
|
||||||
|
<option value=3>300</option>
|
||||||
|
<option value=4>400</option>
|
||||||
|
<option value=5>500</option>
|
||||||
|
<option value=6>600</option>
|
||||||
|
<option value=7>700</option>
|
||||||
|
<option value=8>800</option>
|
||||||
|
<option value=9>900</option>
|
||||||
|
<option value=10>1000</option>
|
||||||
|
<option value=12>1200</option>
|
||||||
|
<option value=15>1500</option>
|
||||||
|
<option value=20>2000</option>
|
||||||
|
<option value=25>2500</option>
|
||||||
|
<option value=30>3000</option>
|
||||||
|
<option value=40>4000</option>
|
||||||
|
<option value=50>5000</option>
|
||||||
|
<option value=60>6000</option>
|
||||||
|
<option value=70>7000</option>
|
||||||
|
<option value=80>8000</option>
|
||||||
|
<option value=90>9000</option>
|
||||||
|
<option value=100>10000</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" value="포상">
|
||||||
|
EOT;
|
||||||
|
return join("\n",$form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user