견문 추가
This commit is contained in:
@@ -694,316 +694,6 @@ function process_31(&$general) {
|
||||
pushGenLog($general, $log);
|
||||
}
|
||||
|
||||
function process_42(&$general) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$log = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
$date = substr($general['turntime'],11,5);
|
||||
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$type = rand() % 27 + 1;
|
||||
$exp = 30;
|
||||
$ded = 0;
|
||||
|
||||
// 성격 보정
|
||||
$exp = CharExperience($exp, $general['personal']);
|
||||
$ded = CharDedication($ded, $general['personal']);
|
||||
|
||||
$exp2 = $exp * 2;
|
||||
|
||||
switch($type) {
|
||||
case 1:
|
||||
$log[] = "<C>●</>{$admin['month']}월:지나가는 행인에게서 금을 <C>300</> 받았습니다. <1>$date</>";
|
||||
// 자금 상승 // 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',gold=gold+300,experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 2:
|
||||
$log[] = "<C>●</>{$admin['month']}월:지나가는 행인에게서 쌀을 <C>300</> 받았습니다. <1>$date</>";
|
||||
// 군량 상승 // 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',rice=rice+300,experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 3:
|
||||
$log[] = "<C>●</>{$admin['month']}월:어느 명사와 설전을 벌여 멋지게 이겼습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['intel2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',intel2='{$general['intel2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 4:
|
||||
$log[] = "<C>●</>{$admin['month']}월:명사와 설전을 벌였으나 망신만 당했습니다. <1>$date</>";
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 5:
|
||||
$log[] = "<C>●</>{$admin['month']}월:동네 장사와 힘겨루기를 하여 멋지게 이겼습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['power2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 6:
|
||||
$log[] = "<C>●</>{$admin['month']}월:동네 장사와 힘겨루기를 했지만 망신만 당했습니다. <1>$date</>";
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 7:
|
||||
$log[] = "<C>●</>{$admin['month']}월:산적과 싸워 금 <C>300</>을 빼앗았습니다. <1>$date</>";
|
||||
// 자금 상승 // 경험치 상승 // 명성 상승
|
||||
$general['power2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',gold=gold+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 8:
|
||||
$log[] = "<C>●</>{$admin['month']}월:산적을 만나 금 <C>200</>을 빼앗겼습니다. <1>$date</>";
|
||||
$general['gold'] -= 200;
|
||||
if($general['gold'] <= 0) { $general['gold'] = 0; }
|
||||
// 자금 하락 // 경험 상승
|
||||
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 9:
|
||||
$log[] = "<C>●</>{$admin['month']}월:호랑이를 잡아 고기 <C>300</>을 얻었습니다. <1>$date</>";
|
||||
// 군량 상승 // 경험치 상승
|
||||
$general['power2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',rice=rice+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 10:
|
||||
$log[] = "<C>●</>{$admin['month']}월:호랑이에게 물려 다쳤습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 10 + 10;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 11:
|
||||
$log[] = "<C>●</>{$admin['month']}월:곰을 잡아 고기 <C>300</>을 얻었습니다. <1>$date</>";
|
||||
// 군량 상승 // 경험치 상승 // 명성 상승
|
||||
$general['power2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',rice=rice+300,power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 12:
|
||||
$log[] = "<C>●</>{$admin['month']}월:곰에게 할퀴어 다쳤습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 10 + 10;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 13:
|
||||
$log[] = "<C>●</>{$admin['month']}월:주점에서 사람들과 어울려 술을 마셨습니다. <1>$date</>";
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 14:
|
||||
$log[] = "<C>●</>{$admin['month']}월:위기에 빠진 사람을 구해주었습니다. <1>$date</>";
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 15:
|
||||
$log[] = "<C>●</>{$admin['month']}월:위기에 빠진 사람을 구해주다가 다쳤습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 10 + 10;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 16:
|
||||
$log[] = "<C>●</>{$admin['month']}월:돈을 빌려주었다가 이자 <C>300</>을 받았습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['intel2']++;
|
||||
$query = "update general set resturn='SUCCESS',gold=gold+300,intel2='{$general['intel2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 17:
|
||||
$log[] = "<C>●</>{$admin['month']}월:돈을 <C>200</> 빌려주었다가 떼어먹혔습니다. <1>$date</>";
|
||||
$general['gold'] -= 200;
|
||||
if($general['gold'] <= 0) { $general['gold'] = 0; }
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',gold='{$general['gold']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 18:
|
||||
$log[] = "<C>●</>{$admin['month']}월:쌀을 빌려주었다가 이자 <C>300</>을 받았습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['intel2']++;
|
||||
$query = "update general set resturn='SUCCESS',rice=rice+300,intel2='{$general['intel2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 19:
|
||||
$log[] = "<C>●</>{$admin['month']}월:쌀을 <C>200</> 빌려주었다가 떼어먹혔습니다. <1>$date</>";
|
||||
$general['rice'] -= 200;
|
||||
if($general['rice'] <= 0) { $general['rice'] = 0; }
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',rice='{$general['rice']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 20:
|
||||
$log[] = "<C>●</>{$admin['month']}월:거리에서 글 모르는 아이들을 모아 글을 가르쳤습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['intel2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',intel2='{$general['intel2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 21:
|
||||
$log[] = "<C>●</>{$admin['month']}월:백성들에게 현인의 가르침을 설파했습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['leader2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 22:
|
||||
$log[] = "<C>●</>{$admin['month']}월:어느 집의 무너진 울타리를 고쳐주었습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['power2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 23:
|
||||
$log[] = "<C>●</>{$admin['month']}월:어느 집의 도망친 가축을 되찾아 주었습니다. <1>$date</>";
|
||||
// 경험치 상승 // 명성 상승
|
||||
$general['leader2'] += 2;
|
||||
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 24:
|
||||
$log[] = "<C>●</>{$admin['month']}월:호랑이에게 물려 크게 다쳤습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 30 + 20;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 25:
|
||||
$log[] = "<C>●</>{$admin['month']}월:곰에게 할퀴어 크게 다쳤습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 30 + 20;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 26:
|
||||
$log[] = "<C>●</>{$admin['month']}월:위기에 빠진 사람을 구하다가 죽을뻔 했습니다. <1>$date</>";
|
||||
// 경험치 하락 // 명성 상승
|
||||
$injury = rand() % 50 + 30;
|
||||
$general['power2']--;
|
||||
$query = "update general set resturn='SUCCESS',injury=injury+'$injury',power2='{$general['power2']}',experience=experience+'$exp2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
default:
|
||||
$log[] = "<C>●</>{$admin['month']}월:아무일도 일어나지 않았습니다. <1>$date</>";
|
||||
// 명성 상승
|
||||
$query = "update general set resturn='SUCCESS',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
}
|
||||
|
||||
$log = checkAbility($general, $log);
|
||||
pushGenLog($general, $log);
|
||||
}
|
||||
|
||||
function process_43(&$general) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$genlog = [];
|
||||
$log = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
$date = substr($general['turntime'],11,5);
|
||||
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$command = DecodeCommand($general['turn0']);
|
||||
$what = $command[3];
|
||||
$who = $command[2];
|
||||
$amount = $command[1];
|
||||
$amount *= 100; // 100~10000까지
|
||||
|
||||
if($amount > 10000) { $amount = 10000; }
|
||||
if($amount < 100) { $amount = 100; }
|
||||
if($what == 1) { $dtype = "금"; }
|
||||
elseif($what == 2) { $dtype = "쌀"; }
|
||||
else { $what = 2; $dtype = "쌀"; }
|
||||
|
||||
$query = "select nation,supply from city where city='{$general['city']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$city = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,gold,rice from general where no='$who'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gen = MYDB_fetch_array($result);
|
||||
|
||||
if($what == 1 && $general['gold'] < $amount) { $amount = $general['gold']; }
|
||||
if($what == 2 && $general['rice'] < $amount) { $amount = $general['rice']; }
|
||||
|
||||
if(!$gen) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:없는 장수입니다. 증여 실패. <1>$date</>";
|
||||
} elseif($what == 1 && $general['gold'] <= 0) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:자금이 없습니다. 증여 실패. <1>$date</>";
|
||||
} elseif($what == 2 && $general['rice'] <= 0) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:군량이 없습니다. 증여 실패. <1>$date</>";
|
||||
} elseif($general['level'] == 0) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:재야는 불가능합니다. 증여 실패. <1>$date</>";
|
||||
} elseif($general['nation'] != $city['nation']) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:아국이 아닙니다. 증여 실패. <1>$date</>";
|
||||
} elseif($general['nation'] != $gen['nation']) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:아국 장수가 아닙니다. 증여 실패. <1>$date</>";
|
||||
} elseif($city['supply'] == 0) {
|
||||
$log[] = "<C>●</>{$admin['month']}월:고립된 도시입니다. 증여 실패. <1>$date</>";
|
||||
} else {
|
||||
$genlog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>에게서 $dtype <C>$amount</>을 증여 받았습니다.";
|
||||
$log[] = "<C>●</>{$admin['month']}월:<Y>{$gen['name']}</>에게 $dtype <C>$amount</>을 증여했습니다. <1>$date</>";
|
||||
|
||||
if($what == 1) {
|
||||
$gen['gold'] += $amount;
|
||||
$query = "update general set gold='{$gen['gold']}' where no='$who'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$general['gold'] -= $amount;
|
||||
$query = "update general set gold='{$general['gold']}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($what == 2) {
|
||||
$gen['rice'] += $amount;
|
||||
$query = "update general set rice='{$gen['rice']}' where no='$who'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$general['rice'] -= $amount;
|
||||
$query = "update general set rice='{$general['rice']}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
$exp = 70;
|
||||
$ded = 100;
|
||||
|
||||
// 성격 보정
|
||||
$exp = CharExperience($exp, $general['personal']);
|
||||
$ded = CharDedication($ded, $general['personal']);
|
||||
|
||||
// 경험치 상승 // 공헌도, 명성 상승
|
||||
$general['leader2']++;
|
||||
$query = "update general set resturn='SUCCESS',leader2='{$general['leader2']}',dedication=dedication+'$ded',experience=experience+'$exp' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$log = checkAbility($general, $log);
|
||||
}
|
||||
pushGenLog($general, $log);
|
||||
pushGenLog($gen, $genlog);
|
||||
}
|
||||
|
||||
function process_48(&$general) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
namespace sammo\GeneralCommand;
|
||||
|
||||
use \sammo\{
|
||||
DB, Util, JosaUtil,
|
||||
General,
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
};
|
||||
|
||||
|
||||
use function \sammo\{
|
||||
uniqueItemEx
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\TextDecoration\SightseeingMessage;
|
||||
|
||||
|
||||
class che_견문 extends Command\GeneralCommand{
|
||||
static protected $actionName = '견문';
|
||||
|
||||
protected function init(){
|
||||
|
||||
$general = $this->generalObj;
|
||||
|
||||
$this->runnableConstraints=[
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
protected function argTest():bool{
|
||||
$this->arg = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getCost():array{
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
public function getPreReqTurn():int{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getPostReqTurn():int{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function run():bool{
|
||||
if(!$this->isRunnable()){
|
||||
throw new \RuntimeException('불가능한 커맨드를 강제로 실행 시도');
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
|
||||
$general = $this->generalObj;
|
||||
$date = substr($general->getVar('turntime'),11,5);
|
||||
|
||||
$sightseeing = new SightseeingMessage();
|
||||
|
||||
[$type, $text] = $sightseeing->pickAction();
|
||||
|
||||
$exp = 0;
|
||||
|
||||
if($type & SightseeingMessage::IncExp){
|
||||
$exp += 30;
|
||||
}
|
||||
if($type & SightseeingMessage::IncHeavyExp){
|
||||
$exp += 60;
|
||||
}
|
||||
if($type & SightseeingMessage::IncLeadership){
|
||||
$general->increaseVar('leader2', 2);
|
||||
}
|
||||
if($type & SightseeingMessage::IncPower){
|
||||
$general->increaseVar('power2', 2);
|
||||
}
|
||||
if($type & SightseeingMessage::IncIntel){
|
||||
$general->increaseVar('intel2', 2);
|
||||
}
|
||||
if($type & SightseeingMessage::IncGold){
|
||||
$general->increaseVar('gold', 300);
|
||||
$text = str_replace(':amount:', '300', $text);
|
||||
}
|
||||
if($type & SightseeingMessage::IncRice){
|
||||
$general->increaseVar('rice', 300);
|
||||
$text = str_replace(':amount:', '300', $text);
|
||||
}
|
||||
if($type & SightseeingMessage::DecGold){
|
||||
$general->increaseVarWithLimit('gold', -200, 0);
|
||||
$text = str_replace(':amount:', '200', $text);
|
||||
}
|
||||
if($type & SightseeingMessage::DecRice){
|
||||
$general->increaseVarWithLimit('rice', -200, 0);
|
||||
$text = str_replace(':amount:', '200', $text);
|
||||
}
|
||||
if($type & SightseeingMessage::Wounded){
|
||||
$general->increaseVarWithLimit('injury', Util::randRangeInt(10, 20), null, 80);
|
||||
}
|
||||
if($type & SightseeingMessage::HeavyWounded){
|
||||
$general->increaseVarWithLimit('injury', Util::randRangeInt(20, 50), null, 80);
|
||||
}
|
||||
|
||||
$logger = $general->getLogger();
|
||||
|
||||
$logger->pushGeneralActionLog("{$text} <1>$date</>");
|
||||
|
||||
$exp = $general->onPreGeneralStatUpdate($general, 'experience', $exp);
|
||||
|
||||
$general->increaseVar('experience', $exp);
|
||||
$general->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
namespace sammo\TextDecoration;
|
||||
|
||||
class SightseeingMessage{
|
||||
|
||||
const IncExp = 0x1;
|
||||
const IncHeavyExp = 0x2;
|
||||
const IncLeadership = 0x10;
|
||||
const IncPower = 0x20;
|
||||
const IncIntel = 0x40;
|
||||
const IncGold = 0x100;
|
||||
const IncRice = 0x200;
|
||||
const DecGold = 0x400;
|
||||
const DecRice = 0x800;
|
||||
const Wounded = 0x1000;
|
||||
const HeavyWounded = 0x2000;
|
||||
|
||||
static protected $messages = null;
|
||||
|
||||
protected static function getMessageList():array{
|
||||
/* [[속성, [
|
||||
텍스트 리스트,
|
||||
텍스트 리스트2,
|
||||
]], 가중치]
|
||||
(가중치는 텍스트 수와 연관이 없음)
|
||||
*/
|
||||
return [
|
||||
[[self::IncExp,[
|
||||
'아무일도 일어나지 않았습니다.',
|
||||
'명사와 설전을 벌였으나 망신만 당했습니다.',
|
||||
'동네 장사와 힘겨루기를 했지만 망신만 당했습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp, [
|
||||
'주점에서 사람들과 어울려 술을 마셨습니다.',
|
||||
'위기에 빠진 사람을 구해주었습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::IncLeadership, [
|
||||
'백성들에게 현인의 가르침을 설파했습니다.',
|
||||
'어느 집의 도망친 가축을 되찾아 주었습니다.',
|
||||
]], 2],
|
||||
[[self::IncHeavyExp|self::IncPower,[
|
||||
'동네 장사와 힘겨루기를 하여 멋지게 이겼습니다.',
|
||||
'어느 집의 무너진 울타리를 고쳐주었습니다.',
|
||||
]], 2],
|
||||
[[self::IncHeavyExp|self::IncIntel,[
|
||||
'어느 명사와 설전을 벌여 멋지게 이겼습니다.',
|
||||
'거리에서 글 모르는 아이들을 모아 글을 가르쳤습니다.',
|
||||
]], 2],
|
||||
[[self::IncExp|self::IncGold,[
|
||||
'지나가는 행인에게서 금을 <C>:amount:</> 받았습니다.',
|
||||
]], 1],
|
||||
[[self::IncExp|self::IncRice,[
|
||||
'지나가는 행인에게서 쌀을 <C>:amount:</> 받았습니다.',
|
||||
]], 1],
|
||||
[[self::IncExp|self::DecGold,[
|
||||
'산적을 만나 금 <C>:amount:</>을 빼앗겼습니다.',
|
||||
'돈을 <C>:amount:</> 빌려주었다가 떼어먹혔습니다.',
|
||||
]], 1],
|
||||
[[self::IncExp|self::DecRice,[
|
||||
'쌀을 <C>:amount:</> 빌려주었다가 떼어먹혔습니다.',
|
||||
]], 1],
|
||||
[[self::IncExp|self::Wounded,[
|
||||
'호랑이에게 물려 다쳤습니다.',
|
||||
'곰에게 할퀴어 다쳤습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::Wounded,[
|
||||
'위기에 빠진 사람을 구해주다가 다쳤습니다.',
|
||||
]], 1],
|
||||
[[self::IncExp|self::HeavyWounded,[
|
||||
'호랑이에게 물려 크게 다쳤습니다.',
|
||||
'곰에게 할퀴어 크게 다쳤습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::Wounded|self::HeavyWounded,[
|
||||
'위기에 빠진 사람을 구하다가 죽을뻔 했습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::IncPower|self::IncGold,[
|
||||
'산적과 싸워 금 <C>:amount:</>을 빼앗았습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::IncPower|self::IncRice,[
|
||||
'호랑이를 잡아 고기 <C>:amount:</>을 얻었습니다.',
|
||||
'곰을 잡아 고기 <C>:amount:</>을 얻었습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::IncIntel|self::IncGold,[
|
||||
'돈을 빌려주었다가 이자 <C>:amount:</>을 받았습니다.',
|
||||
]], 1],
|
||||
[[self::IncHeavyExp|self::IncIntel|self::IncRice,[
|
||||
'쌀을 빌려주었다가 이자 <C>300</>을 받았습니다.',
|
||||
]], 1],
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
protected static function initMessageList():void{
|
||||
static::$messages = static::getMessageList();
|
||||
}
|
||||
|
||||
function __construct()
|
||||
{
|
||||
//TODO: 장수 이름이 들어가는 경우도 고려?
|
||||
if(static::$messages === null){
|
||||
static::buildMessageList();
|
||||
}
|
||||
}
|
||||
|
||||
public function pickAction():array{
|
||||
[$type, $texts] = Util::choiceRandomUsingWeightPair(static::$messages);
|
||||
$text = Util::choiceRandom($texts);
|
||||
|
||||
return [$type, $text];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user