Compare commits
44
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74f914488b | ||
|
|
a8d219afec | ||
|
|
4b4a7ffdf0 | ||
|
|
05000ae954 | ||
|
|
85bf53f317 | ||
|
|
d65407079e | ||
|
|
a8c9946aa9 | ||
|
|
1e5b2de913 | ||
|
|
747ab3d563 | ||
|
|
82ffbba661 | ||
|
|
3f08876079 | ||
|
|
5622839ffa | ||
|
|
4b3ab5e31c | ||
|
|
f774a28e2a | ||
|
|
61bdb8da01 | ||
|
|
c117ada117 | ||
|
|
1f0d0f992d | ||
|
|
6445b77b90 | ||
|
|
6d935733e6 | ||
|
|
cfd0a2d26f | ||
|
|
749e8f673b | ||
|
|
4812f324e0 | ||
|
|
085f34b307 | ||
|
|
622ce7b780 | ||
|
|
34b1fc9c5e | ||
|
|
9cc27c40aa | ||
|
|
eece1cbae5 | ||
|
|
7e6770b5e7 | ||
|
|
a0c032c2c6 | ||
|
|
3d12de3838 | ||
|
|
477b77b59f | ||
|
|
04a7a34fcc | ||
|
|
86f1805160 | ||
|
|
d573e9f98a | ||
|
|
3ad16d96be | ||
|
|
d8870caf29 | ||
|
|
7c9d5d34f6 | ||
|
|
5268ce9b71 | ||
|
|
e395c98a6c | ||
|
|
d5897e2a49 | ||
|
|
c82003f982 | ||
|
|
5447274aa8 | ||
|
|
688162ffbf | ||
|
|
87294d5477 |
+4
-3
@@ -1107,7 +1107,7 @@ function CheckOverhead()
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
[$turnterm, $refreshLimit] = $gameStor->getValuesAsArray(['turnterm', 'refreshLimit']);
|
||||
|
||||
$nextRefreshLimit = Util::round(pow($turnterm, 0.6) * 3) * 10;
|
||||
$nextRefreshLimit = Util::round(pow($turnterm, 0.6) * 3) * GameConst::$refreshLimitCoef;
|
||||
|
||||
|
||||
if ($nextRefreshLimit != $refreshLimit) {
|
||||
@@ -1669,8 +1669,6 @@ function tryUniqueItemLottery(RandUtil $rng, General $general, string $acquireTy
|
||||
$prob = 1 / ($genCount * $itemTypeCnt * 0.7 / 3); // 투표율 70%, 설문조사 한번에 2~3개 등장
|
||||
} else if ($acquireType == '랜덤 임관') {
|
||||
$prob = 1 / ($genCount * $itemTypeCnt / 10 / 2); // 랜임시 2개(10%) 등장(200명중 20명 랜임시도?)
|
||||
} else if ($acquireType == '건국') {
|
||||
$prob = 1 / ($genCount * $itemTypeCnt / 10 / 4); // 건국시 4개(20%) 등장(200명시 20국 정도 됨)
|
||||
}
|
||||
|
||||
$prob *= GameConst::$uniqueTrialCoef;
|
||||
@@ -1684,6 +1682,9 @@ function tryUniqueItemLottery(RandUtil $rng, General $general, string $acquireTy
|
||||
//포인트로 랜덤 유니크 획득
|
||||
$prob = 1;
|
||||
}
|
||||
else if ($acquireType == '건국') {
|
||||
$prob = 1; // 건국시 100%
|
||||
}
|
||||
|
||||
foreach (Util::range($maxCnt) as $_idx) {
|
||||
if ($rng->nextBool($prob)) {
|
||||
|
||||
@@ -481,6 +481,13 @@ function setNationCommand(int $generalID, array $turnList, string $command, ?arr
|
||||
}
|
||||
|
||||
_setNationCommand($commandObj, $turnList);
|
||||
|
||||
if($general->getNPCType() < 2){
|
||||
//유저장인 경우에는 턴 리필
|
||||
$general->updateVarWithLimit('killturn', $env['killturn'], $general->getVar('killturn'));
|
||||
$general->applyDB($db);
|
||||
}
|
||||
|
||||
return [
|
||||
'result'=>true,
|
||||
'brief'=>$commandObj->getBrief(),
|
||||
|
||||
@@ -457,6 +457,29 @@ function buildWarUnitTriggerClass(?string $type, WarUnit $unit, ?array $args = n
|
||||
return $class->newInstanceArgs(array_merge([$unit], $args));
|
||||
}
|
||||
|
||||
function getStaticEventClass(string $type){
|
||||
static $basePath = __NAMESPACE__.'\\StaticEvent\\';
|
||||
$classPath = ($basePath.$type);
|
||||
|
||||
if(class_exists($classPath)){
|
||||
return $classPath;
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException("{$type}은 StaticEvent가 아님");
|
||||
}
|
||||
|
||||
function buildStaticEventClass(?string $type):BaseStaticEvent{
|
||||
static $cache = [];
|
||||
if(key_exists($type, $cache)){
|
||||
return $cache[$type];
|
||||
}
|
||||
|
||||
$class = getStaticEventClass($type);
|
||||
$obj = new $class();
|
||||
$cache[$type] = $obj;
|
||||
return $obj;
|
||||
}
|
||||
|
||||
function getGeneralPoolClass(string $type){
|
||||
static $basePath = __NAMESPACE__.'\\GeneralPool\\';
|
||||
$classPath = ($basePath.$type);
|
||||
|
||||
+14
-2
@@ -24,9 +24,9 @@ $userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$gameStor->cacheValues(['startyear', 'year', 'month', 'scenario']);
|
||||
$gameStor->cacheValues(['startyear', 'year', 'month', 'scenario', 'killturn']);
|
||||
|
||||
$me = $db->queryFirstRow('SELECT no,nation,officer_level,penalty from general where owner=%i', $userID);
|
||||
$me = $db->queryFirstRow('SELECT no,npc,nation,officer_level,penalty from general where owner=%i', $userID);
|
||||
$myOfficerLevel = $me['officer_level'];
|
||||
$nationID = $me['nation'];
|
||||
$myPenalty = Json::decode($me['penalty'] ?? '{}');
|
||||
@@ -342,6 +342,10 @@ if ($action == "임명") {
|
||||
'reason' => $result
|
||||
]);
|
||||
}
|
||||
//수뇌의 삭턴 리필
|
||||
$db->update('general', [
|
||||
'killturn' => $db->sqleval('GREATEST(%b, %i)', 'killturn', $gameStor->getValue('killturn')),
|
||||
], 'no=%i', $me['no']);
|
||||
Json::die([
|
||||
'result' => true,
|
||||
'reason' => 'success'
|
||||
@@ -356,6 +360,10 @@ if ($action == "임명") {
|
||||
'reason' => $result
|
||||
]);
|
||||
}
|
||||
//수뇌의 삭턴 리필
|
||||
$db->update('general', [
|
||||
'killturn' => $db->sqleval('GREATEST(%b, %i)', 'killturn', $gameStor->getValue('killturn')),
|
||||
], 'no=%i', $me['no']);
|
||||
Json::die([
|
||||
'result' => true,
|
||||
'reason' => 'success'
|
||||
@@ -376,6 +384,10 @@ if ($action == "추방") {
|
||||
'reason' => $result
|
||||
]);
|
||||
}
|
||||
//수뇌의 삭턴 리필
|
||||
$db->update('general', [
|
||||
'killturn' => $db->sqleval('GREATEST(%b, %i)', 'killturn', $gameStor->getValue('killturn')),
|
||||
], 'no=%i', $me['no']);
|
||||
Json::die([
|
||||
'result' => true,
|
||||
'reason' => 'success'
|
||||
|
||||
+10
-7
@@ -718,14 +718,17 @@ function ConquerCity(array $admin, General $general, array $city, array $defende
|
||||
$attackerLogger->pushGlobalHistoryLog("<M><b>【긴급천도】</b></><D><b>{$defenderNationName}</b></>{$josaYi} 수도가 함락되어 <G><b>$minCityName</b></>{$josaRo} 긴급천도하였습니다.");
|
||||
|
||||
$moveLog = "수도가 함락되어 <G><b>$minCityName</b></>{$josaRo} <M>긴급천도</>합니다.";
|
||||
//아국 수뇌부에게 로그 전달
|
||||
foreach ($db->queryFirstColumn(
|
||||
'SELECT no FROM general WHERE nation=%i AND officer_level>=5',
|
||||
foreach ($db->queryAllLists(
|
||||
'SELECT no, officer_level FROM general WHERE nation=%i',
|
||||
$defenderNationID
|
||||
) as $defenderChiefID) {
|
||||
$chiefLogger = new ActionLogger($defenderChiefID, $defenderNationID, $year, $month);
|
||||
$chiefLogger->pushGeneralActionLog($moveLog, ActionLogger::PLAIN);
|
||||
$chiefLogger->flush();
|
||||
) as [$defenderGeneralID, $defenderGeneralChiefLevel]) {
|
||||
$defenderLogger = new ActionLogger($defenderGeneralID, $defenderNationID, $year, $month);
|
||||
$defenderLogger->pushGeneralActionLog($moveLog, ActionLogger::PLAIN);
|
||||
if($defenderGeneralChiefLevel >= 5){
|
||||
$defenderLogger->pushGeneralActionLog("수뇌는 <G><b>{$minCityName}</b></>{$josaRo} 집합되었습니다.");
|
||||
}
|
||||
|
||||
$defenderLogger->flush();
|
||||
}
|
||||
|
||||
//천도
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\API\InheritAction;
|
||||
|
||||
use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\RankColumn;
|
||||
use sammo\GameConst;
|
||||
use sammo\General;
|
||||
use sammo\KVStorage;
|
||||
use sammo\LiteHashDRBG;
|
||||
use sammo\RandUtil;
|
||||
use sammo\UniqueConst;
|
||||
use sammo\UserLogger;
|
||||
use sammo\Util;
|
||||
use sammo\Validator;
|
||||
|
||||
class ResetStat extends \sammo\BaseAPI
|
||||
{
|
||||
public function validateArgs(): ?string
|
||||
{
|
||||
$v = new Validator($this->args);
|
||||
$v->rule('required', [
|
||||
'leadership',
|
||||
'strength',
|
||||
'intel',
|
||||
])
|
||||
->rule('int', [
|
||||
'leadership',
|
||||
'strength',
|
||||
'intel',
|
||||
])
|
||||
->rule('min', [
|
||||
'leadership',
|
||||
'strength',
|
||||
'intel'
|
||||
], GameConst::$defaultStatMin)
|
||||
->rule('max', [
|
||||
'leadership',
|
||||
'strength',
|
||||
'intel'
|
||||
], GameConst::$defaultStatMax)
|
||||
->rule('integerArray', 'inheritBonusStat');
|
||||
|
||||
if (!$v->validate()) {
|
||||
return $v->errorStr();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getRequiredSessionMode(): int
|
||||
{
|
||||
//General.aux 쓰므로 lock;
|
||||
return static::REQ_GAME_LOGIN;
|
||||
}
|
||||
|
||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
|
||||
{
|
||||
$userID = $session->userID;
|
||||
$generalID = $session->generalID;
|
||||
|
||||
|
||||
$leadership = $this->args['leadership'];
|
||||
$strength = $this->args['strength'];
|
||||
$intel = $this->args['intel'];
|
||||
$inheritBonusStat = $this->args['inheritBonusStat'] ?? null;
|
||||
|
||||
if ($leadership + $strength + $intel != GameConst::$defaultStatTotal) {
|
||||
return "능력치 총합이 " . GameConst::$defaultStatTotal . "이 아닙니다. 다시 입력해주세요!";
|
||||
}
|
||||
|
||||
if ($inheritBonusStat) {
|
||||
if (count($inheritBonusStat) != 3) {
|
||||
return "보너스 능력치가 잘못 지정되었습니다. 다시 입력해주세요!";
|
||||
}
|
||||
foreach ($inheritBonusStat as $stat) {
|
||||
if ($stat < 0) {
|
||||
return "보너스 능력치가 음수입니다. 다시 입력해주세요!";
|
||||
}
|
||||
}
|
||||
$sum = array_sum($inheritBonusStat);
|
||||
if ($sum == 0) {
|
||||
$inheritBonusStat = null;
|
||||
} else if ($sum < 3 || $sum > 5) {
|
||||
return "보너스 능력치 합이 잘못 지정되었습니다. 다시 입력해주세요!";
|
||||
}
|
||||
}
|
||||
|
||||
$general = General::createObjFromDB($generalID);
|
||||
if ($userID != $general->getVar('owner')) {
|
||||
return '로그인 상태가 이상합니다. 다시 로그인해 주세요.';
|
||||
}
|
||||
$userLogger = new UserLogger($userID);
|
||||
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$gameStor->cacheValues([
|
||||
'isunited',
|
||||
'season',
|
||||
]);
|
||||
if ($gameStor->isunited) {
|
||||
return '이미 천하가 통일되었습니다.';
|
||||
}
|
||||
$userStor = KVStorage::getStorage($db, "user_{$userID}");
|
||||
|
||||
$lastUserStatReset = $userStor->getValue('last_stat_reset') ?? [];
|
||||
$gameSeason = $gameStor->getValue('season');
|
||||
|
||||
if (array_search($gameSeason, $lastUserStatReset) !== false) {
|
||||
return '이번 시즌에 이미 능력치를 초기화하셨습니다.';
|
||||
}
|
||||
|
||||
|
||||
$inheritStor = KVStorage::getStorage($db, "inheritance_{$userID}");
|
||||
$previousPoint = ($inheritStor->getValue('previous') ?? [0, 0])[0];
|
||||
$reqAmount = 0;
|
||||
if ($inheritBonusStat !== null) {
|
||||
$reqAmount += GameConst::$inheritBornStatPoint;
|
||||
}
|
||||
|
||||
if ($previousPoint < $reqAmount) {
|
||||
return '충분한 유산 포인트를 가지고 있지 않습니다.';
|
||||
}
|
||||
|
||||
$userLogger->push("통솔 {$leadership}, 무력 {$strength}, 지력 {$intel} 스탯 재설정", "inheritPoint");
|
||||
|
||||
if ($inheritBonusStat) {
|
||||
$pleadership = $inheritBonusStat[0] ?? 0;
|
||||
$pstrength = $inheritBonusStat[1] ?? 0;
|
||||
$pintel = $inheritBonusStat[2] ?? 0;
|
||||
$userLogger->push("{$reqAmount}로 통솔 {$pleadership}, 무력 {$pstrength}, 지력 {$pintel} 보너스 능력치 적용", "inheritPoint");
|
||||
} else {
|
||||
$rng = new RandUtil(new LiteHashDRBG(Util::simpleSerialize(
|
||||
UniqueConst::$hiddenSeed,
|
||||
'ResetStat',
|
||||
$userID,
|
||||
)));
|
||||
$pleadership = 0;
|
||||
$pstrength = 0;
|
||||
$pintel = 0;
|
||||
foreach (Util::range($rng->nextRangeInt(3, 5)) as $statIdx) {
|
||||
switch ($rng->choiceUsingWeight([$leadership, $strength, $intel])) {
|
||||
case 0:
|
||||
$pleadership++;
|
||||
break;
|
||||
case 1:
|
||||
$pstrength++;
|
||||
break;
|
||||
case 2:
|
||||
$pintel++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$userLogger->push("통솔 {$pleadership}, 무력 {$pstrength}, 지력 {$pintel} 보너스 능력치 적용", "inheritPoint");
|
||||
}
|
||||
|
||||
$leadership += $pleadership;
|
||||
$strength += $pstrength;
|
||||
$intel += $pintel;
|
||||
|
||||
$lastUserStatReset[] = $gameSeason;
|
||||
|
||||
|
||||
$general->setVar('leadership', $leadership);
|
||||
$general->setVar('strength', $strength);
|
||||
$general->setVar('intel', $intel);
|
||||
|
||||
$userLogger->flush();
|
||||
|
||||
$inheritStor->setValue('previous', [$previousPoint - $reqAmount, null]);
|
||||
$userStor->setValue('last_stat_reset', $lastUserStatReset);
|
||||
$general->increaseRankVar(RankColumn::inherit_point_spent_dynamic, $reqAmount);
|
||||
$general->applyDB($db);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,9 @@ use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class ExitTroop extends \sammo\BaseAPI
|
||||
{
|
||||
@@ -24,23 +27,35 @@ class ExitTroop extends \sammo\BaseAPI
|
||||
$generalID = $session->generalID;
|
||||
$db = DB::db();
|
||||
|
||||
$troopID = $db->queryFirstField('SELECT troop FROM general WHERE no = %i', $generalID);
|
||||
$me = GeneralLite::createObjFromDB($generalID, ['troop'], GeneralLiteQueryMode::Lite);
|
||||
if (!$me) {
|
||||
return '장수 정보를 불러올 수 없습니다.';
|
||||
}
|
||||
|
||||
$troopID = $me->getVar('troop');
|
||||
if($troopID == 0){
|
||||
return '부대에 소속되어 있지 않습니다.';
|
||||
}
|
||||
|
||||
if($generalID != $troopID){
|
||||
$db->update('general', [
|
||||
'troop' => 0,
|
||||
], '`no` = %i', $generalID);
|
||||
if($troopID != $generalID){
|
||||
StaticEventHandler::handleEvent($me, null, $this::class, [
|
||||
"isTroopLeader" => false,
|
||||
], $this->args);
|
||||
$me->setVar('troop', 0);
|
||||
$me->applyDB($db);
|
||||
return null;
|
||||
}
|
||||
|
||||
//부대장이다.
|
||||
StaticEventHandler::handleEvent($me, null, $this::class, [
|
||||
"isTroopLeader" => true,
|
||||
], $this->args);
|
||||
$db->update('general', [
|
||||
'troop' => 0,
|
||||
], '`troop` = %i', $troopID);
|
||||
$db->delete('troop', 'troop_leader = %i', $troopID);
|
||||
$me->setVar('troop', 0);
|
||||
$me->applyDB($db);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@ use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\StaticEventHandler;
|
||||
use sammo\StringUtil;
|
||||
use sammo\Validator;
|
||||
|
||||
@@ -32,16 +35,22 @@ class JoinTroop extends \sammo\BaseAPI
|
||||
|
||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
|
||||
{
|
||||
$userID = $session->userID;
|
||||
$generalID = $session->generalID;
|
||||
$troopID = $this->args['troopID'];
|
||||
|
||||
$db = DB::db();
|
||||
$me = $db->queryFirstRow('SELECT `no`,nation,`troop`,`officer_level`,permission,penalty FROM general WHERE `owner`=%i', $userID);
|
||||
if ($me['troop'] != 0) {
|
||||
|
||||
$me = GeneralLite::createObjFromDB($generalID, ['troop'], GeneralLiteQueryMode::Lite);
|
||||
if(!$me){
|
||||
return '장수 정보를 불러올 수 없습니다.';
|
||||
}
|
||||
|
||||
if($me->getVar('troop') != 0){
|
||||
return '이미 부대에 소속되어 있습니다.';
|
||||
}
|
||||
$nationID = $me['nation'];
|
||||
if ($nationID == 0) {
|
||||
|
||||
$nationID = $me->getNationID();
|
||||
if($nationID == 0){
|
||||
return '국가에 소속되어 있지 않습니다.';
|
||||
}
|
||||
|
||||
@@ -49,11 +58,10 @@ class JoinTroop extends \sammo\BaseAPI
|
||||
if (!$troopExists) {
|
||||
return '부대가 올바르지 않습니다.';
|
||||
}
|
||||
$generalID = $me['no'];
|
||||
|
||||
$db->update('general', [
|
||||
'troop' => $troopID,
|
||||
], '`no` = %i AND `troop` = %i', $generalID, 0);
|
||||
$me->setVar('troop', $troopID);
|
||||
StaticEventHandler::handleEvent($me, null, $this::class, [], $this->args);
|
||||
$me->applyDB($db);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@ use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\StaticEventHandler;
|
||||
use sammo\Validator;
|
||||
|
||||
class KickFromTroop extends \sammo\BaseAPI
|
||||
@@ -37,7 +40,8 @@ class KickFromTroop extends \sammo\BaseAPI
|
||||
$generalID = $this->args['generalID'];
|
||||
$db = DB::db();
|
||||
|
||||
$troopID = $db->queryFirstField('SELECT troop FROM general WHERE no = %i', $generalID);
|
||||
$destGeneral = GeneralLite::createObjFromDB($generalID, ['troop'], GeneralLiteQueryMode::Lite);
|
||||
$troopID = $destGeneral->getVar('troop');
|
||||
if($troopID == 0){
|
||||
return '부대에 소속되어 있지 않습니다.';
|
||||
}
|
||||
@@ -50,9 +54,10 @@ class KickFromTroop extends \sammo\BaseAPI
|
||||
return '부대장을 추방할 수 없습니다.';
|
||||
}
|
||||
|
||||
$db->update('general', [
|
||||
'troop' => 0,
|
||||
], '`no` = %i AND `troop` = %i', $generalID, $troopID);
|
||||
StaticEventHandler::handleEvent($destGeneral, null, $this::class, [], $this->args);
|
||||
$destGeneral->setVar('troop', 0);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@ use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\StaticEventHandler;
|
||||
use sammo\StringUtil;
|
||||
use sammo\Validator;
|
||||
|
||||
@@ -32,24 +35,23 @@ class NewTroop extends \sammo\BaseAPI
|
||||
|
||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
|
||||
{
|
||||
$userID = $session->userID;
|
||||
$generalID = $session->generalID;
|
||||
$troopName = StringUtil::neutralize($this->args['troopName']);
|
||||
if(!$troopName){
|
||||
return '부대 이름이 없습니다.';
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$me = $db->queryFirstRow('SELECT `no`,nation,`troop`,`officer_level`,permission,penalty FROM general WHERE `owner`=%i', $userID);
|
||||
if($me['troop'] != 0){
|
||||
$me = GeneralLite::createObjFromDB($generalID, ['troop'], GeneralLiteQueryMode::Lite);
|
||||
$troopID = $me->getVar('troop');
|
||||
if($troopID != 0){
|
||||
return '이미 부대에 소속되어 있습니다.';
|
||||
}
|
||||
$nationID = $me['nation'];
|
||||
$nationID = $me->getNationID();
|
||||
if($nationID == 0){
|
||||
return '국가에 소속되어 있지 않습니다.';
|
||||
}
|
||||
|
||||
$generalID = $me['no'];
|
||||
|
||||
$db->insert('troop', [
|
||||
'name'=>$troopName,
|
||||
'troop_leader'=>$generalID,
|
||||
@@ -60,9 +62,9 @@ class NewTroop extends \sammo\BaseAPI
|
||||
return '부대가 생성되지 않았습니다. 버그일 수 있습니다.';
|
||||
}
|
||||
|
||||
$db->update('general', [
|
||||
'troop'=>$generalID
|
||||
], '`no` = %i', $generalID);
|
||||
$me->setVar('troop', $generalID);
|
||||
StaticEventHandler::handleEvent($me, null, $this::class, [], $this->args);
|
||||
$me->applyDB($db);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@ use sammo\Session;
|
||||
use DateTimeInterface;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\StaticEventHandler;
|
||||
use sammo\StringUtil;
|
||||
use sammo\Validator;
|
||||
|
||||
@@ -36,13 +39,12 @@ class SetTroopName extends \sammo\BaseAPI
|
||||
|
||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
|
||||
{
|
||||
$userID = $session->userID;
|
||||
$generalID = $session->generalID;
|
||||
$db = DB::db();
|
||||
$me = $db->queryFirstRow('SELECT `no`,nation,`officer_level`,permission,penalty FROM general WHERE `owner`=%i', $userID);
|
||||
$permission = checkSecretPermission($me, false);
|
||||
$me = GeneralLite::createObjFromDB($generalID, ['troop', 'permission', 'penalty'], GeneralLiteQueryMode::Lite);
|
||||
$permission = checkSecretPermission($me->getRaw(), false);
|
||||
$troopID = $this->args['troopID'];
|
||||
|
||||
$generalID = $me['no'];
|
||||
if($generalID != $troopID && $permission < 4){
|
||||
return "권한이 부족합니다.";
|
||||
}
|
||||
@@ -52,7 +54,7 @@ class SetTroopName extends \sammo\BaseAPI
|
||||
return '부대 이름이 없습니다.';
|
||||
}
|
||||
|
||||
$nationID = $me['nation'];
|
||||
$nationID = $me->getNationID();
|
||||
$db->update('troop', [
|
||||
'name'=>$troopName
|
||||
], 'troop_leader=%i AND `nation`=%i',$troopID, $nationID);
|
||||
@@ -60,6 +62,7 @@ class SetTroopName extends \sammo\BaseAPI
|
||||
if($db->affectedRows() == 0){
|
||||
return '부대가 없습니다.';
|
||||
}
|
||||
StaticEventHandler::handleEvent($me, null, $this::class, [], $this->args);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use sammo\DB;
|
||||
use sammo\DTO\VoteInfo;
|
||||
use sammo\Enums\APIRecoveryType;
|
||||
use sammo\KVStorage;
|
||||
use sammo\RootDB;
|
||||
use sammo\Session;
|
||||
use sammo\TimeUtil;
|
||||
use sammo\Util;
|
||||
@@ -93,6 +94,8 @@ class NewVote extends \sammo\BaseAPI
|
||||
}
|
||||
}
|
||||
|
||||
$userName = $session->userName;
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
@@ -108,9 +111,11 @@ class NewVote extends \sammo\BaseAPI
|
||||
|
||||
$multipleOptions = Util::valueFit($multipleOptions, 0, count($options));
|
||||
|
||||
|
||||
$voteInfo = new VoteInfo(
|
||||
id: $voteID,
|
||||
title: $title,
|
||||
opener: $userName ?? '[SYSTEM]',
|
||||
multipleOptions: $multipleOptions,
|
||||
startDate: $now,
|
||||
endDate: $endDate,
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
namespace sammo\ActionItem;
|
||||
use \sammo\iAction;
|
||||
use \sammo\General;
|
||||
use \sammo\SpecialityHelper;
|
||||
use \sammo\GameUnitConst;
|
||||
use \sammo\WarUnit;
|
||||
use \sammo\WarUnitCity;
|
||||
use sammo\RandUtil;
|
||||
use \sammo\WarUnitTriggerCaller;
|
||||
use \sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitTrigger\event_충차아이템소모;
|
||||
|
||||
class event_충차 extends \sammo\BaseItem{
|
||||
|
||||
protected $rawName = '충차';
|
||||
protected $name = '충차';
|
||||
protected $info = '[전투] 성벽 공격 시 대미지 +50%, 2회용';
|
||||
protected $cost = 2000;
|
||||
protected $consumable = true;
|
||||
protected $buyable = true;
|
||||
protected $reqSecu = 3000;
|
||||
|
||||
|
||||
const REMAIN_KEY = 'remain충차';
|
||||
|
||||
function onArbitraryAction(General $general, RandUtil $rng, string $actionType, ?string $phase = null, $aux = null): ?array
|
||||
{
|
||||
if($actionType != '장비매매'){
|
||||
return $aux;
|
||||
}
|
||||
if($phase != '구매'){
|
||||
return $aux;
|
||||
}
|
||||
|
||||
$general->setAuxVar(static::REMAIN_KEY, 2);
|
||||
return $aux;
|
||||
}
|
||||
|
||||
public function getWarPowerMultiplier(WarUnit $unit):array{
|
||||
if($unit->getOppose() instanceof WarUnitCity){
|
||||
return [1.5, 1];
|
||||
}
|
||||
return [1, 1];
|
||||
}
|
||||
|
||||
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
|
||||
return new WarUnitTriggerCaller(
|
||||
new event_충차아이템소모($unit, BaseWarUnitTrigger::TYPE_CONSUMABLE_ITEM)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ class che_병가 extends \sammo\BaseNation{
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function onCalcNationalIncome(string $type, $amount):int{
|
||||
public function onCalcNationalIncome(string $type, $amount){
|
||||
if($type == 'pop' && $amount > 0){
|
||||
return $amount * 0.8;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\ActionScenarioEffect;
|
||||
|
||||
use \sammo\iAction;
|
||||
|
||||
class event_UnlimitedDefenceThresholdChange implements iAction
|
||||
{
|
||||
use \sammo\DefaultAction;
|
||||
|
||||
public function onCalcDomestic(string $turnType, string $varType, float $value, $aux = null): float
|
||||
{
|
||||
if ($turnType == 'changeDefenceTrain') {
|
||||
return 0;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
abstract class BaseStaticEvent {
|
||||
|
||||
function __construct(){
|
||||
|
||||
}
|
||||
|
||||
abstract function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string;
|
||||
}
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
CityConst,
|
||||
ActionLogger,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -96,6 +97,7 @@ class che_NPC능동 extends Command\GeneralCommand{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
}
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -12,8 +12,7 @@ use function sammo\tryUniqueItemLottery;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\CityConst;
|
||||
|
||||
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_강행 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -158,8 +157,8 @@ class che_강행 extends Command\GeneralCommand
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
|
||||
@@ -174,6 +175,7 @@ class che_거병 extends Command\GeneralCommand{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -19,6 +19,7 @@ use function \sammo\getAllNationStaticInfo;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\Enums\PenaltyKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
use function sammo\buildNationTypeClass;
|
||||
use function sammo\genGenericUniqueRNGFromGeneral;
|
||||
@@ -202,8 +203,10 @@ class che_건국 extends Command\GeneralCommand
|
||||
refreshNationStaticInfo();
|
||||
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$general->increaseInheritancePoint(InheritanceKey::unifier, 250);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -112,6 +113,7 @@ class che_견문 extends Command\GeneralCommand{
|
||||
$general->addExperience($exp);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -178,6 +179,7 @@ class che_군량매매 extends Command\GeneralCommand{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -95,6 +96,7 @@ class che_귀환 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -6,7 +6,8 @@ use \sammo\{
|
||||
General,
|
||||
ActionLogger,
|
||||
LastTurn,
|
||||
Command, GameConst
|
||||
Command, GameConst,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function sammo\{
|
||||
@@ -134,6 +135,7 @@ class che_기술연구 extends che_상업투자{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
|
||||
@@ -126,6 +127,7 @@ class che_단련 extends Command\GeneralCommand{
|
||||
$general->increaseVar($incStat, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
General,
|
||||
LastTurn,
|
||||
Command,
|
||||
ScoutMessage
|
||||
ScoutMessage,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getAllNationStaticInfo;
|
||||
@@ -169,6 +170,7 @@ class che_등용 extends Command\GeneralCommand
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -6,6 +6,7 @@ use \sammo\{
|
||||
General,
|
||||
GameConst,
|
||||
Command,
|
||||
StaticEventHandler,
|
||||
};
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
@@ -207,6 +208,7 @@ class che_등용수락 extends Command\GeneralCommand{
|
||||
}
|
||||
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
|
||||
@@ -22,8 +22,7 @@ use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\CityConst;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\MustNotBeReachedException;
|
||||
|
||||
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_랜덤임관 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -281,6 +280,7 @@ class che_랜덤임관 extends Command\GeneralCommand
|
||||
$general->addExperience($exp);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '랜덤 임관');
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ use \sammo\{
|
||||
GameConst,
|
||||
LastTurn,
|
||||
GameUnitConst,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -97,6 +98,7 @@ class che_모반시도 extends Command\GeneralCommand{
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$lordGeneral->applyDB($db);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ use function \sammo\getAllNationStaticInfo;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
use function sammo\buildNationTypeClass;
|
||||
use function sammo\genGenericUniqueRNGFromGeneral;
|
||||
@@ -216,6 +217,7 @@ class che_무작위건국 extends Command\GeneralCommand
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ use \sammo\{
|
||||
GameConst,
|
||||
LastTurn,
|
||||
GameUnitConst,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getDomesticExpLevelBonus;
|
||||
@@ -148,6 +149,7 @@ class che_물자조달 extends Command\GeneralCommand{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -124,6 +125,7 @@ class che_방랑 extends Command\GeneralCommand{
|
||||
refreshNationStaticInfo();
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Command\General;
|
||||
|
||||
use \sammo\{
|
||||
DB, Util, JosaUtil,
|
||||
DB,
|
||||
Util,
|
||||
JosaUtil,
|
||||
General,
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
GameConst,
|
||||
GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -16,15 +21,18 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
|
||||
|
||||
class che_사기진작 extends Command\GeneralCommand{
|
||||
class che_사기진작 extends Command\GeneralCommand
|
||||
{
|
||||
static protected $actionName = '사기진작';
|
||||
|
||||
protected function argTest():bool{
|
||||
protected function argTest(): bool
|
||||
{
|
||||
$this->arg = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function init(){
|
||||
protected function init()
|
||||
{
|
||||
|
||||
$general = $this->generalObj;
|
||||
|
||||
@@ -33,13 +41,13 @@ class che_사기진작 extends Command\GeneralCommand{
|
||||
|
||||
[$reqGold, $reqRice] = $this->getCost();
|
||||
|
||||
$this->minConditionConstraints=[
|
||||
$this->minConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::NotWanderingNation(),
|
||||
ConstraintHelper::OccupiedCity(),
|
||||
];
|
||||
|
||||
$this->fullConditionConstraints=[
|
||||
$this->fullConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::NotWanderingNation(),
|
||||
ConstraintHelper::OccupiedCity(),
|
||||
@@ -48,31 +56,35 @@ class che_사기진작 extends Command\GeneralCommand{
|
||||
ConstraintHelper::ReqGeneralRice($reqRice),
|
||||
ConstraintHelper::ReqGeneralAtmosMargin(GameConst::$maxAtmosByCommand),
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function getCommandDetailTitle():string{
|
||||
public function getCommandDetailTitle(): string
|
||||
{
|
||||
$name = $this->getName();
|
||||
//[$reqGold, $reqRice] = $this->getCost();
|
||||
|
||||
return "{$name}(통솔경험, 자금↓)";
|
||||
}
|
||||
|
||||
public function getCost():array{
|
||||
public function getCost(): array
|
||||
{
|
||||
$general = $this->generalObj;
|
||||
return [Util::round($general->getVar('crew')/100), 0];
|
||||
return [Util::round($general->getVar('crew') / 100), 0];
|
||||
}
|
||||
|
||||
public function getPreReqTurn():int{
|
||||
public function getPreReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getPostReqTurn():int{
|
||||
public function getPostReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function run(\Sammo\RandUtil $rng):bool{
|
||||
if(!$this->hasFullConditionMet()){
|
||||
public function run(\Sammo\RandUtil $rng): bool
|
||||
{
|
||||
if (!$this->hasFullConditionMet()) {
|
||||
throw new \RuntimeException('불가능한 커맨드를 강제로 실행 시도');
|
||||
}
|
||||
|
||||
@@ -81,7 +93,11 @@ class che_사기진작 extends Command\GeneralCommand{
|
||||
$general = $this->generalObj;
|
||||
$date = $general->getTurnTime($general::TURNTIME_HM);
|
||||
|
||||
$score = Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$atmosDelta);
|
||||
$score = Util::clamp(
|
||||
Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$atmosDelta),
|
||||
0,
|
||||
Util::clamp(GameConst::$maxAtmosByCommand - $general->getVar('atmos'), 0),
|
||||
);
|
||||
$scoreText = number_format($score, 0);
|
||||
|
||||
$sideEffect = Util::valueFit(intval($general->getVar('train') * GameConst::$trainSideEffectByAtmosTurn), 0);
|
||||
@@ -93,7 +109,7 @@ class che_사기진작 extends Command\GeneralCommand{
|
||||
$exp = 100;
|
||||
$ded = 70;
|
||||
|
||||
$general->increaseVarWithLimit('atmos', $score, 0, GameConst::$maxAtmosByCommand);
|
||||
$general->increaseVar('atmos', $score);
|
||||
$general->setVar('train', $sideEffect);
|
||||
|
||||
$general->addDex($general->getCrewTypeObj(), $score, false);
|
||||
@@ -106,11 +122,10 @@ class che_사기진작 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
LastTurn,
|
||||
GameUnitConst,
|
||||
Command,
|
||||
RandUtil
|
||||
RandUtil,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getDomesticExpLevelBonus;
|
||||
@@ -218,6 +219,7 @@ class che_상업투자 extends Command\GeneralCommand{
|
||||
$general->increaseVar(static::$statKey.'_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_선양 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -138,6 +139,7 @@ class che_선양 extends Command\GeneralCommand
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -80,6 +81,7 @@ class che_소집해제 extends Command\GeneralCommand{
|
||||
$general->addDedication($ded);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -13,8 +13,7 @@ use function sammo\getDexLevelList;
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
|
||||
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_숙련전환 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -179,6 +178,7 @@ class che_숙련전환 extends Command\GeneralCommand
|
||||
$general->increaseVar('leadership_exp', 2);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -69,6 +70,7 @@ class che_요양 extends Command\GeneralCommand{
|
||||
$general->addDedication($ded);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -4,7 +4,8 @@ namespace sammo\Command\General;
|
||||
use \sammo\{
|
||||
DB,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
@@ -75,6 +76,7 @@ class che_은퇴 extends Command\GeneralCommand{
|
||||
$logger->pushGeneralActionLog("은퇴하였습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -12,8 +12,7 @@ use function sammo\tryUniqueItemLottery;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\CityConst;
|
||||
|
||||
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_이동 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -164,6 +163,7 @@ class che_이동 extends Command\GeneralCommand
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -18,6 +18,7 @@ use function \sammo\pickGeneralFromPool;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_인재탐색 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -218,6 +219,7 @@ class che_인재탐색 extends Command\GeneralCommand
|
||||
$general->increaseVar($incStat, 3);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
GameConst,
|
||||
LastTurn,
|
||||
Command,
|
||||
KVStorage
|
||||
KVStorage,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -175,6 +176,7 @@ class che_임관 extends Command\GeneralCommand
|
||||
$general->addExperience($exp);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ use \sammo\{
|
||||
GameUnitConst,
|
||||
LastTurn,
|
||||
Command,
|
||||
KVStorage
|
||||
KVStorage,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\buildItemClass;
|
||||
@@ -196,6 +197,7 @@ class che_장비매매 extends Command\GeneralCommand
|
||||
$general->addExperience($exp);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
LastTurn,
|
||||
Command,
|
||||
Json,
|
||||
KVStorage
|
||||
KVStorage,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function sammo\getAllNationStaticInfo;
|
||||
@@ -170,6 +171,7 @@ class che_장수대상임관 extends Command\GeneralCommand{
|
||||
$general->addExperience($exp);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ use \sammo\{
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command,
|
||||
MustNotBeReachedException
|
||||
MustNotBeReachedException,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -121,6 +122,7 @@ class che_전투태세 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 3);
|
||||
$this->setResultTurn($turnResult);
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -103,6 +104,7 @@ class che_전투특기초기화 extends Command\GeneralCommand{
|
||||
$logger->pushGeneralActionLog("새로운 {$specialName}를 가질 준비가 되었습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
@@ -98,6 +99,7 @@ class che_접경귀환 extends Command\GeneralCommand{
|
||||
//TODO: InstantAction일때에만 설정하지 않는게 나은데..
|
||||
//$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
LastTurn,
|
||||
GameUnitConst,
|
||||
Command,
|
||||
RandUtil
|
||||
RandUtil,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getDomesticExpLevelBonus;
|
||||
@@ -188,6 +189,7 @@ class che_정착장려 extends Command\GeneralCommand{
|
||||
$general->increaseVar(static::$statKey.'_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ use \sammo\{
|
||||
LastTurn,
|
||||
GameUnitConst,
|
||||
Command,
|
||||
RandUtil
|
||||
RandUtil,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getDomesticExpLevelBonus;
|
||||
@@ -188,6 +189,7 @@ class che_주민선정 extends Command\GeneralCommand{
|
||||
$general->increaseVar(static::$statKey.'_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ use \sammo\Command;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
use function sammo\tryUniqueItemLottery;
|
||||
|
||||
@@ -170,6 +171,7 @@ class che_증여 extends Command\GeneralCommand
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -103,6 +104,7 @@ class che_집합 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ use function sammo\getTechLevel;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\MustNotBeReachedException;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_징병 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -226,6 +227,7 @@ class che_징병 extends Command\GeneralCommand
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->setAuxVar('armType', $reqCrewType->armType);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
@@ -16,6 +16,7 @@ use function \sammo\searchDistance;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\CityConst;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_첩보 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -212,6 +213,7 @@ class che_첩보 extends Command\GeneralCommand
|
||||
$general->addDedication($ded);
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->checkStatChange();
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ use sammo\CityConst;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\LiteHashDRBG;
|
||||
use sammo\RandUtil;
|
||||
use sammo\StaticEventHandler;
|
||||
use sammo\UniqueConst;
|
||||
|
||||
class che_출병 extends Command\GeneralCommand
|
||||
@@ -253,6 +254,7 @@ class che_출병 extends Command\GeneralCommand
|
||||
|
||||
processWar($warRngSeed, $general, $this->nation, $this->destCity);
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -122,6 +123,7 @@ class che_하야 extends Command\GeneralCommand{
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -10,6 +10,7 @@ use \sammo\{
|
||||
Command,
|
||||
Json,
|
||||
KVStorage,
|
||||
StaticEventHandler,
|
||||
TurnExecutionHelper
|
||||
};
|
||||
|
||||
@@ -109,6 +110,7 @@ class che_해산 extends Command\GeneralCommand{
|
||||
foreach($nationGenerals as $oldGeneral){
|
||||
$oldGeneral->applyDB($db);
|
||||
}
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
// 이벤트 핸들러 동작
|
||||
|
||||
@@ -14,6 +14,7 @@ use \sammo\Command;
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
use function sammo\tryUniqueItemLottery;
|
||||
|
||||
@@ -146,6 +147,7 @@ class che_헌납 extends Command\GeneralCommand
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ use sammo\CityConst;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Enums\RankColumn;
|
||||
use sammo\RandUtil;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_화계 extends Command\GeneralCommand
|
||||
{
|
||||
@@ -74,12 +75,15 @@ class che_화계 extends Command\GeneralCommand
|
||||
|
||||
$maxGenScore = 0;
|
||||
$probCorrection = 0;
|
||||
$affectGeneralCount = 0;
|
||||
foreach ($destCityGeneralList as $destGeneral) {
|
||||
/** @var General $destGeneral */
|
||||
if ($destGeneral->getNationID() != $destNationID) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$affectGeneralCount++;
|
||||
|
||||
if ($statType === 'leadership') {
|
||||
$genScore = $destGeneral->getLeadership();
|
||||
} else if ($statType === 'strength') {
|
||||
@@ -95,7 +99,7 @@ class che_화계 extends Command\GeneralCommand
|
||||
|
||||
$prob = $maxGenScore / GameConst::$sabotageProbCoefByStat;
|
||||
$prob += $probCorrection;
|
||||
$prob += (log(count($destCityGeneralList) + 1, 2) - 1.25) * GameConst::$sabotageDefenceCoefByGeneralCnt;
|
||||
$prob += (log($affectGeneralCount + 1, 2) - 1.25) * GameConst::$sabotageDefenceCoefByGeneralCnt;
|
||||
|
||||
$prob += $destCity['secu'] / $destCity['secu_max'] / 5; //최대 20%p
|
||||
$prob += $destCity['supply'] ? 0.1 : 0;
|
||||
@@ -329,6 +333,7 @@ class che_화계 extends Command\GeneralCommand
|
||||
$general->increaseVar($statType . '_exp', 1);
|
||||
$general->increaseRankVar(RankColumn::firenum, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->checkStatChange();
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Command\General;
|
||||
|
||||
use \sammo\{
|
||||
DB, Util, JosaUtil,
|
||||
DB,
|
||||
Util,
|
||||
JosaUtil,
|
||||
General,
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
GameConst,
|
||||
GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -17,66 +22,73 @@ use \sammo\Constraint\ConstraintHelper;
|
||||
|
||||
|
||||
|
||||
class che_훈련 extends Command\GeneralCommand{
|
||||
class che_훈련 extends Command\GeneralCommand
|
||||
{
|
||||
static protected $actionName = '훈련';
|
||||
|
||||
protected function argTest():bool{
|
||||
protected function argTest(): bool
|
||||
{
|
||||
$this->arg = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function init(){
|
||||
protected function init()
|
||||
{
|
||||
|
||||
$general = $this->generalObj;
|
||||
|
||||
$this->setCity();
|
||||
$this->setNation();
|
||||
|
||||
$this->minConditionConstraints=[
|
||||
$this->minConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::NotWanderingNation(),
|
||||
ConstraintHelper::OccupiedCity(),
|
||||
];
|
||||
|
||||
$this->fullConditionConstraints=[
|
||||
$this->fullConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::NotWanderingNation(),
|
||||
ConstraintHelper::OccupiedCity(),
|
||||
ConstraintHelper::ReqGeneralCrew(),
|
||||
ConstraintHelper::ReqGeneralTrainMargin(GameConst::$maxTrainByCommand),
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function getCommandDetailTitle():string{
|
||||
public function getCommandDetailTitle(): string
|
||||
{
|
||||
$name = $this->getName();
|
||||
[$reqGold, $reqRice] = $this->getCost();
|
||||
|
||||
$title = "{$name}(통솔경험";
|
||||
if($reqGold > 0){
|
||||
if ($reqGold > 0) {
|
||||
$title .= ", 자금{$reqGold}";
|
||||
}
|
||||
if($reqRice > 0){
|
||||
if ($reqRice > 0) {
|
||||
$title .= ", 군량{$reqRice}";
|
||||
}
|
||||
$title .= ')';
|
||||
return $title;
|
||||
}
|
||||
|
||||
public function getCost():array{
|
||||
public function getCost(): array
|
||||
{
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
public function getPreReqTurn():int{
|
||||
public function getPreReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getPostReqTurn():int{
|
||||
public function getPostReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function run(\Sammo\RandUtil $rng):bool{
|
||||
if(!$this->hasFullConditionMet()){
|
||||
public function run(\Sammo\RandUtil $rng): bool
|
||||
{
|
||||
if (!$this->hasFullConditionMet()) {
|
||||
throw new \RuntimeException('불가능한 커맨드를 강제로 실행 시도');
|
||||
}
|
||||
|
||||
@@ -85,7 +97,11 @@ class che_훈련 extends Command\GeneralCommand{
|
||||
$general = $this->generalObj;
|
||||
$date = $general->getTurnTime($general::TURNTIME_HM);
|
||||
|
||||
$score = Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$trainDelta);
|
||||
$score = Util::clamp(
|
||||
Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$trainDelta),
|
||||
0,
|
||||
Util::clamp(GameConst::$maxTrainByCommand - $general->getVar('train'), 0)
|
||||
);
|
||||
$scoreText = number_format($score, 0);
|
||||
|
||||
$sideEffect = Util::valueFit(intval($general->getVar('atmos') * GameConst::$atmosSideEffectByTraining), 0);
|
||||
@@ -97,7 +113,7 @@ class che_훈련 extends Command\GeneralCommand{
|
||||
$exp = 100;
|
||||
$ded = 70;
|
||||
|
||||
$general->increaseVarWithLimit('train', $score, 0, GameConst::$maxTrainByCommand);
|
||||
$general->increaseVar('train', $score);
|
||||
$general->setVar('atmos', $sideEffect);
|
||||
|
||||
$general->addDex($general->getCrewTypeObj(), $score, false);
|
||||
@@ -107,11 +123,10 @@ class che_훈련 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ use function \sammo\getAllNationStaticInfo;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
use function sammo\buildNationTypeClass;
|
||||
use function sammo\genGenericUniqueRNGFromGeneral;
|
||||
@@ -201,6 +202,7 @@ class cr_건국 extends Command\GeneralCommand
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ use \sammo\{
|
||||
ActionLogger,
|
||||
GameConst, GameUnitConst,
|
||||
LastTurn,
|
||||
Command
|
||||
Command,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\tryUniqueItemLottery;
|
||||
@@ -105,6 +106,7 @@ class cr_맹훈련 extends Command\GeneralCommand{
|
||||
$general->increaseVar('leadership_exp', 1);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->checkStatChange();
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use \sammo\Util;
|
||||
use \sammo\JosaUtil;
|
||||
use \sammo\LastTurn;
|
||||
use \sammo\DB;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class 휴식 extends Command\GeneralCommand{
|
||||
static protected $actionName = '휴식';
|
||||
@@ -39,6 +40,7 @@ class 휴식 extends Command\GeneralCommand{
|
||||
$logger->pushGeneralActionLog("아무것도 실행하지 않았습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn());
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB(DB::db());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@ use \sammo\{
|
||||
MessageTarget,
|
||||
Message,
|
||||
CityConst,
|
||||
CityHelper
|
||||
CityHelper,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -201,6 +202,7 @@ class che_감축 extends Command\NationCommand{
|
||||
$logger->pushGlobalHistoryLog("<M><b>【감축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다.");
|
||||
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ use function \sammo\GetNationColors;
|
||||
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_국기변경 extends Command\NationCommand
|
||||
{
|
||||
@@ -136,6 +137,7 @@ class che_국기변경 extends Command\NationCommand
|
||||
$logger->pushGlobalHistoryLog("<S><b>【국기변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다.");
|
||||
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
|
||||
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\Event\Action;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_국호변경 extends Command\NationCommand
|
||||
{
|
||||
@@ -154,6 +155,7 @@ class che_국호변경 extends Command\NationCommand
|
||||
$logger->pushGlobalHistoryLog("<S><b>【국호변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.");
|
||||
|
||||
$general->increaseInheritancePoint(InheritanceKey::active_action, 1);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
|
||||
@@ -20,6 +20,7 @@ use function \sammo\getNationStaticInfo;
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_급습 extends Command\NationCommand
|
||||
{
|
||||
@@ -191,6 +192,7 @@ class che_급습 extends Command\NationCommand
|
||||
$db->update('diplomacy', [
|
||||
'term' => $db->sqleval('`term` - %i', 3),
|
||||
], '(me = %i AND you = %i) OR (you = %i AND me = %i)', $nationID, $destNationID, $nationID, $destNationID);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Enums\MessageType;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_몰수 extends Command\NationCommand
|
||||
{
|
||||
@@ -212,6 +213,7 @@ class che_몰수 extends Command\NationCommand
|
||||
$logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게서 {$resName} <C>$amountText</>{$josaUl} 몰수했습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\Event\Action;
|
||||
use sammo\Json;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_무작위수도이전 extends Command\NationCommand
|
||||
{
|
||||
@@ -159,6 +160,7 @@ class che_무작위수도이전 extends Command\NationCommand
|
||||
$logger->pushGlobalHistoryLog("<S><b>【무작위 수도 이전】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>수도 이전</>하였습니다.");
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ use \sammo\{
|
||||
Command,
|
||||
Json,
|
||||
KVStorage,
|
||||
StaticEventHandler,
|
||||
StringUtil
|
||||
};
|
||||
|
||||
@@ -255,6 +256,7 @@ class che_물자원조 extends Command\NationCommand
|
||||
$general->addExperience(5);
|
||||
$general->addDedication(5);
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->applyDB($db);
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ use \sammo\{
|
||||
GameUnitConst,
|
||||
CityConst,
|
||||
Command,
|
||||
StaticEventHandler,
|
||||
TimeUtil
|
||||
};
|
||||
|
||||
@@ -167,6 +168,7 @@ class che_발령 extends Command\NationCommand
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ use \sammo\{
|
||||
Command,
|
||||
MessageTarget,
|
||||
Message,
|
||||
CityConst
|
||||
CityConst,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -164,6 +165,7 @@ class che_백성동원 extends Command\NationCommand
|
||||
], 'nation=%i', $nationID);
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Command\Nation;
|
||||
|
||||
use \sammo\DB;
|
||||
use \sammo\Util;
|
||||
use \sammo\JosaUtil;
|
||||
use \sammo\General;
|
||||
use \sammo\DummyGeneral;
|
||||
use \sammo\ActionLogger;
|
||||
use \sammo\GameConst;
|
||||
use \sammo\LastTurn;
|
||||
use \sammo\GameUnitConst;
|
||||
use \sammo\Command;
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_부대탈퇴지시 extends Command\NationCommand
|
||||
{
|
||||
static protected $actionName = '부대 탈퇴 지시';
|
||||
static public $reqArg = true;
|
||||
|
||||
protected function argTest(): bool
|
||||
{
|
||||
if ($this->arg === null) {
|
||||
return false;
|
||||
}
|
||||
if (!key_exists('destGeneralID', $this->arg)) {
|
||||
return false;
|
||||
}
|
||||
$destGeneralID = $this->arg['destGeneralID'];
|
||||
if (!is_int($destGeneralID)) {
|
||||
return false;
|
||||
}
|
||||
if ($destGeneralID <= 0) {
|
||||
return false;
|
||||
}
|
||||
$this->arg = [
|
||||
'destGeneralID' => $destGeneralID
|
||||
];
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->setCity();
|
||||
$this->setNation();
|
||||
|
||||
$this->minConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::BeChief(),
|
||||
];
|
||||
}
|
||||
|
||||
public function getBrief(): string
|
||||
{
|
||||
$commandName = $this->getName();
|
||||
$destGeneralName = $this->destGeneralObj->getName();
|
||||
return "【{$destGeneralName}】{$commandName}";
|
||||
}
|
||||
|
||||
protected function initWithArg()
|
||||
{
|
||||
$destGeneral = General::createObjFromDB($this->arg['destGeneralID']);
|
||||
$this->setDestGeneral($destGeneral);
|
||||
|
||||
if($this->arg['destGeneralID'] == $this->getGeneral()->getID()){
|
||||
$this->fullConditionConstraints=[
|
||||
ConstraintHelper::AlwaysFail('본인입니다')
|
||||
];
|
||||
return;
|
||||
}
|
||||
|
||||
$this->fullConditionConstraints = [
|
||||
ConstraintHelper::NotBeNeutral(),
|
||||
ConstraintHelper::BeChief(),
|
||||
ConstraintHelper::ExistsDestGeneral(),
|
||||
ConstraintHelper::FriendlyDestGeneral()
|
||||
];
|
||||
}
|
||||
|
||||
public function getCost(): array
|
||||
{
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
public function getPreReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getPostReqTurn(): int
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function run(\Sammo\RandUtil $rng): bool
|
||||
{
|
||||
if (!$this->hasFullConditionMet()) {
|
||||
throw new \RuntimeException('불가능한 커맨드를 강제로 실행 시도');
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
|
||||
$general = $this->generalObj;
|
||||
$generalName = $general->getName();
|
||||
|
||||
$destGeneral = $this->destGeneralObj;
|
||||
$destGeneralName = $destGeneral->getName();
|
||||
$logger = $this->getLogger();
|
||||
|
||||
$troopID = $destGeneral->getVar('troop');
|
||||
if($troopID == 0){
|
||||
$josaUn = JosaUtil::pick($destGeneralName, '은');
|
||||
$logger->pushGeneralActionLog("<Y>{$destGeneralName}</>{$josaUn} 부대원이 아닙니다.");
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
return true;
|
||||
}
|
||||
|
||||
if($troopID == $destGeneral->getID()){
|
||||
$josaUn = JosaUtil::pick($destGeneralName, '은');
|
||||
$logger->pushGeneralActionLog("<Y>{$destGeneralName}</>{$josaUn} 부대장입니다.");
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
return true;
|
||||
}
|
||||
|
||||
$destGeneral->setVar('troop', 0);
|
||||
|
||||
$logger->pushGeneralActionLog("<Y>{$destGeneralName}</>에게 부대 탈퇴를 지시했습니다.");
|
||||
$destGeneral->getLogger()->pushGeneralActionLog("<Y>{$generalName}</>에게 부대 탈퇴를 지시 받았습니다.");
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function exportJSVars(): array
|
||||
{
|
||||
$db = DB::db();
|
||||
$nationID = $this->getNationID();
|
||||
$troops = Util::convertArrayToDict($db->query('SELECT * FROM troop WHERE nation=%i', $nationID), 'troop_leader');
|
||||
$destRawGenerals = $db->queryAllLists('SELECT no,name,officer_level,npc,gold,rice,leadership,strength,intel,city,crew,train,atmos,troop FROM general WHERE nation = %i ORDER BY npc,binary(name)', $nationID);
|
||||
return [
|
||||
'procRes' => [
|
||||
'troops' => $troops,
|
||||
'generals' => $destRawGenerals,
|
||||
'generalsKey' => ['no', 'name', 'officerLevel', 'npc', 'gold', 'rice', 'leadership', 'strength', 'intel', 'cityID', 'crew', 'train', 'atmos', 'troopID'],
|
||||
'cities' => \sammo\JSOptionsForCities(),
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Json;
|
||||
use sammo\KVStorage;
|
||||
use sammo\RandUtil;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_불가침수락 extends Command\NationCommand
|
||||
{
|
||||
@@ -224,6 +225,7 @@ class che_불가침수락 extends Command\NationCommand
|
||||
$destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa} <C>$year</>년 <C>{$month}</>월까지 불가침에 성공했습니다.", ActionLogger::PLAIN);
|
||||
$destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa} {$year}년 {$month}월까지 불가침 성공");
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ use function \sammo\getNationStaticInfo;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\MessageType;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_불가침제의 extends Command\NationCommand
|
||||
{
|
||||
@@ -220,6 +221,7 @@ class che_불가침제의 extends Command\NationCommand
|
||||
$msg->send();
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\RandUtil;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_불가침파기수락 extends Command\NationCommand
|
||||
{
|
||||
@@ -173,6 +174,7 @@ class che_불가침파기수락 extends Command\NationCommand
|
||||
$destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기에 성공했습니다.", ActionLogger::PLAIN);
|
||||
$destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기 성공");
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ use \sammo\{
|
||||
MessageTarget,
|
||||
DiplomaticMessage,
|
||||
Message,
|
||||
StaticEventHandler,
|
||||
};
|
||||
|
||||
use function \sammo\getAllNationStaticInfo;
|
||||
@@ -166,6 +167,7 @@ class che_불가침파기제의 extends Command\NationCommand{
|
||||
$msg->send();
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ use function \sammo\GetImageURL;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\MessageType;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_선전포고 extends Command\NationCommand
|
||||
{
|
||||
@@ -188,6 +189,7 @@ class che_선전포고 extends Command\NationCommand
|
||||
$msg->send();
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ use \sammo\{
|
||||
Command,
|
||||
MessageTarget,
|
||||
Message,
|
||||
CityConst
|
||||
CityConst,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\getNationStaticInfo;
|
||||
@@ -191,6 +192,7 @@ class che_수몰 extends Command\NationCommand
|
||||
], 'nation=%i', $nationID);
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -15,7 +15,7 @@ use \sammo\KVStorage;
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_의병모집 extends Command\NationCommand
|
||||
{
|
||||
@@ -170,6 +170,7 @@ class che_의병모집 extends Command\NationCommand
|
||||
], 'nation=%i', $nationID);
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -20,6 +20,7 @@ use function \sammo\getNationStaticInfo;
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_이호경식 extends Command\NationCommand
|
||||
{
|
||||
@@ -193,6 +194,7 @@ class che_이호경식 extends Command\NationCommand
|
||||
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -16,6 +16,7 @@ use \sammo\{
|
||||
MessageTarget,
|
||||
DiplomaticMessage,
|
||||
Message,
|
||||
StaticEventHandler,
|
||||
};
|
||||
|
||||
use function \sammo\getNationStaticInfo;
|
||||
@@ -188,6 +189,7 @@ class che_종전수락 extends Command\NationCommand
|
||||
$destLogger->pushNationalHistoryLog("<D><b>{$nationName}</b></>{$josaWa} 종전");
|
||||
|
||||
$general->applyDB($db);
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$destLogger->flush();
|
||||
|
||||
return true;
|
||||
|
||||
@@ -12,6 +12,7 @@ use \sammo\{
|
||||
MessageTarget,
|
||||
DiplomaticMessage,
|
||||
Message,
|
||||
StaticEventHandler,
|
||||
};
|
||||
|
||||
use function \sammo\getAllNationStaticInfo;
|
||||
@@ -164,6 +165,7 @@ class che_종전제의 extends Command\NationCommand{
|
||||
$msg->send();
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destLogger->flush();
|
||||
|
||||
|
||||
@@ -11,7 +11,8 @@ use \sammo\{
|
||||
Command,
|
||||
MessageTarget,
|
||||
Message,
|
||||
CityConst
|
||||
CityConst,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -193,6 +194,7 @@ class che_증축 extends Command\NationCommand{
|
||||
$logger->pushGlobalHistoryLog("<C><b>【증축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>증축</>하였습니다.");
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -19,6 +19,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\Event\Action;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_천도 extends Command\NationCommand
|
||||
{
|
||||
@@ -228,6 +229,7 @@ class che_천도 extends Command\NationCommand
|
||||
$logger->pushGlobalHistoryLog("<S><b>【천도】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>천도</>하였습니다.");
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@ use \sammo\{
|
||||
MessageTarget,
|
||||
Message,
|
||||
CityConst,
|
||||
CityInitialDetail
|
||||
CityInitialDetail,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -196,6 +197,7 @@ class che_초토화 extends Command\NationCommand{
|
||||
$logger->pushGlobalHistoryLog("<S><b>【초토화】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>초토화</>하였습니다.");
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ use \sammo\Command;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_포상 extends Command\NationCommand
|
||||
{
|
||||
@@ -174,6 +175,7 @@ class che_포상 extends Command\NationCommand
|
||||
$logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게 {$resName} <C>$amountText</>{$josaUl} 수여했습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
$destGeneral->applyDB($db);
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ use \sammo\{
|
||||
Command,
|
||||
KVStorage,
|
||||
Message,
|
||||
MessageTarget
|
||||
MessageTarget,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use function \sammo\buildNationCommandClass;
|
||||
@@ -240,6 +241,7 @@ class che_피장파장 extends Command\NationCommand
|
||||
$destDelay = max($destNationStor->getValue($cmd->getNextExecuteKey()) ?? 0, $yearMonth);
|
||||
$destNationStor->setValue($cmd->getNextExecuteKey(), $destDelay + static::$delayCnt);
|
||||
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -10,7 +10,8 @@ use \sammo\{
|
||||
GameUnitConst,
|
||||
Command,
|
||||
MessageTarget,
|
||||
Message
|
||||
Message,
|
||||
StaticEventHandler
|
||||
};
|
||||
|
||||
use \sammo\Constraint\Constraint;
|
||||
@@ -121,6 +122,7 @@ class che_필사즉생 extends Command\NationCommand{
|
||||
], 'nation=%i', $nationID);
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -21,6 +21,7 @@ use function \sammo\getNationStaticInfo;
|
||||
use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Event\Action;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class che_허보 extends Command\NationCommand
|
||||
{
|
||||
@@ -194,6 +195,7 @@ class che_허보 extends Command\NationCommand
|
||||
], 'nation=%i', $nationID);
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -19,6 +19,7 @@ use \sammo\Constraint\Constraint;
|
||||
use \sammo\Constraint\ConstraintHelper;
|
||||
use sammo\Enums\InheritanceKey;
|
||||
use sammo\Event\Action;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class cr_인구이동 extends Command\NationCommand
|
||||
{
|
||||
@@ -179,6 +180,7 @@ class cr_인구이동 extends Command\NationCommand
|
||||
$logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaRo} 인구 <C>{$amount}</>명을 옮겼습니다. <1>$date</>");
|
||||
|
||||
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
$general->applyDB($db);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ use \sammo\Command;
|
||||
use \sammo\Util;
|
||||
use \sammo\JosaUtil;
|
||||
use sammo\LastTurn;
|
||||
use sammo\StaticEventHandler;
|
||||
|
||||
class 휴식 extends Command\NationCommand{
|
||||
static protected $actionName = '휴식';
|
||||
@@ -33,6 +34,7 @@ class 휴식 extends Command\NationCommand{
|
||||
|
||||
public function run(\Sammo\RandUtil $rng):bool{
|
||||
$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
|
||||
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg ?? []);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ class VoteInfo extends \LDTO\DTO
|
||||
public int $id,
|
||||
public string $title,
|
||||
public int $multipleOptions,
|
||||
public ?string $opener,
|
||||
|
||||
public string $startDate,
|
||||
public ?string $endDate,
|
||||
|
||||
@@ -83,6 +83,14 @@ class GameConstBase
|
||||
/** @var int 최대 하야 패널티 수 */
|
||||
public static $maxBetrayCnt = 9;
|
||||
|
||||
/** @var int 매월 증가하는 수비 설정 변경 제한 수 */
|
||||
public static $incDefSettingChange = 3;
|
||||
/** @var int 최대로 증가하는 수비 설정 변경 제한 수*/
|
||||
public static $maxDefSettingChange = 9;
|
||||
|
||||
/** @var float 벌점 제한 계수 */
|
||||
public static $refreshLimitCoef = 10;
|
||||
|
||||
/** @var int 최대 레벨 */
|
||||
public static $maxLevel = 255;
|
||||
|
||||
@@ -367,6 +375,7 @@ class GameConstBase
|
||||
'che_발령',
|
||||
'che_포상',
|
||||
'che_몰수',
|
||||
'che_부대탈퇴지시',
|
||||
],
|
||||
'외교' => [
|
||||
'che_물자원조',
|
||||
@@ -512,4 +521,8 @@ class GameConstBase
|
||||
["MergeInheritPointRank"],
|
||||
]
|
||||
];
|
||||
|
||||
public static $staticEventHandlers = [
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\StaticEvent;
|
||||
|
||||
use sammo\ActionLogger;
|
||||
use sammo\CityConst;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\General;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\JosaUtil;
|
||||
|
||||
class event_부대발령즉시집합 extends \sammo\BaseStaticEvent
|
||||
{
|
||||
function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string
|
||||
{
|
||||
if($destGeneral === null){
|
||||
return "destGeneral is null";
|
||||
}
|
||||
|
||||
$destCityID = $params['destCityID'] ?? null;
|
||||
if ($destCityID === null) {
|
||||
return "destCityID is null";
|
||||
}
|
||||
if (!is_int($destCityID)) {
|
||||
return "destCityID is not int";
|
||||
}
|
||||
|
||||
if($destGeneral->getID() !== $destGeneral->getVar('troop')){
|
||||
//부대장 발령이 아니므로 무시
|
||||
return true;
|
||||
}
|
||||
|
||||
if($destGeneral->getNationID() !== $general->getNationID()){
|
||||
return "destGeneral is not same nation";
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$cityName = CityConst::byID($destCityID)->name;
|
||||
$josaRo = JosaUtil::pick($cityName, '로');
|
||||
|
||||
$troopID = $destGeneral->getID();
|
||||
$troopName = $db->queryFirstField('SELECT name FROM troop WHERE troop_leader = %i', $troopID);
|
||||
|
||||
$generalList = $db->queryFirstColumn('SELECT no FROM general WHERE nation=%i AND city!=%i AND troop=%i AND no!=%i', $destGeneral->getNationID(), $destCityID, $troopID, $destGeneral->getID());
|
||||
if($generalList){
|
||||
$db->update('general', [
|
||||
'city'=>$destCityID
|
||||
], 'no IN %li', $generalList);
|
||||
}
|
||||
if($general->getVar('troop') === $troopID){
|
||||
$general->setVar('city', $destCityID);
|
||||
}
|
||||
|
||||
foreach($generalList as $targetGeneralID){
|
||||
$targetLogger = new ActionLogger($targetGeneralID, $general->getNationID(), $env['year'], $env['month']);
|
||||
$targetLogger->pushGeneralActionLog("{$troopName} 부대원들은 <G><b>{$cityName}</b></>{$josaRo} 즉시 집합되었습니다.", ActionLogger::PLAIN);
|
||||
$targetLogger->flush();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\StaticEvent;
|
||||
|
||||
use sammo\ActionLogger;
|
||||
use sammo\CityConst;
|
||||
use sammo\DB;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\General;
|
||||
use sammo\GeneralLite;
|
||||
use sammo\JosaUtil;
|
||||
|
||||
class event_부대탑승즉시이동 extends \sammo\BaseStaticEvent
|
||||
{
|
||||
function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string
|
||||
{
|
||||
|
||||
$troopID = $params['troopID'] ?? null;
|
||||
if ($troopID === null) {
|
||||
return "troopID is null";
|
||||
}
|
||||
if (!is_int($troopID)) {
|
||||
return "troopID is not int";
|
||||
}
|
||||
|
||||
$destGeneral = GeneralLite::createObjFromDB($troopID, ['nation', 'city', 'troop'], GeneralLiteQueryMode::Core);
|
||||
if ($destGeneral === null) {
|
||||
return "destGeneral is null";
|
||||
}
|
||||
|
||||
if($destGeneral->getID() !== $destGeneral->getVar('troop')){
|
||||
return "destGeneral is not troop";
|
||||
}
|
||||
|
||||
if($destGeneral->getNationID() !== $general->getNationID()){
|
||||
return "destGeneral is not same nation";
|
||||
}
|
||||
|
||||
if($destGeneral->getCityID() === $general->getCityID()){
|
||||
return true;
|
||||
}
|
||||
|
||||
$cityName = CityConst::byID($destGeneral->getCityID())->name;
|
||||
$general->setVar('city', $destGeneral->getCityID());
|
||||
$josaRo = JosaUtil::pick($cityName, '로');
|
||||
$general->getLogger()->pushGeneralActionLog("부대 주둔지인 <G><b>{$cityName}</b></>{$josaRo} 즉시 이동합니다.", ActionLogger::PLAIN);
|
||||
$general->applyDB(DB::db());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace sammo;
|
||||
|
||||
class StaticEventHandler
|
||||
{
|
||||
// This is a static class, so we don't want to instantiate it
|
||||
public function __construct()
|
||||
{
|
||||
throw new \Exception('This is a static class');
|
||||
}
|
||||
|
||||
public static function handleEvent(General|GeneralLite $general, null|General|GeneralLite $destGeneral, string $eventType, array $env, array $params): void
|
||||
{
|
||||
$handlersList = GameConst::$staticEventHandlers[$eventType] ?? null;
|
||||
if ($handlersList === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($handlersList as $handlerName) {
|
||||
$handler = buildStaticEventClass($handlerName);
|
||||
$handler->run($general, $destGeneral, $env, $params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -351,7 +351,7 @@ class TurnExecutionHelper
|
||||
pullGeneralCommand($general->getID());
|
||||
|
||||
$currentTurn = $general->getTurnTime();
|
||||
$general->increaseVarWithLimit('myset', 3, null, 9);
|
||||
$general->increaseVarWithLimit('myset', GameConst::$incDefSettingChange, null, GameConst::$maxDefSettingChange);
|
||||
|
||||
if (($autorun_user['limit_minutes'] ?? false) && $general->getNPCType() < 2 && $hasReservedTurn) {
|
||||
$autorun_limit = Util::joinYearMonth($year, $month);
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
|
||||
use sammo\ActionItem\event_충차;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\Util;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class event_충차아이템소모 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_PRE + 200;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if($self->hasActivatedSkillOnLog('충차공격') && $self->getPhase() == $self->getMaxPhase() - 1){
|
||||
//TODO: 전투 종료시 소모를 예약하는 기능이 있으면 매우 좋을 것 같다.
|
||||
$general = $self->getGeneral();
|
||||
$remain = $general->getAuxVar(event_충차::REMAIN_KEY) ?? 0;
|
||||
if($remain <= 0){
|
||||
$this->processConsumableItem();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!($self instanceof WarUnitGeneral)){
|
||||
return true;
|
||||
}
|
||||
if(!($oppose instanceof WarUnitCity)){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkillOnLog('충차공격')){
|
||||
return true;
|
||||
}
|
||||
|
||||
$self->getLogger()->pushGeneralBattleDetailLog("<C>충차</>로 성벽을 공격합니다.", ActionLogger::PLAIN);
|
||||
|
||||
$general = $self->getGeneral();
|
||||
$remain = $general->getAuxVar(event_충차::REMAIN_KEY) ?? 0;
|
||||
$self->activateSkill('충차공격');
|
||||
$general->setAuxVar(event_충차::REMAIN_KEY, $remain - 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,474 @@
|
||||
{
|
||||
"title": "【가상모드29】 리그오브레전드 v1.0",
|
||||
"startYear": 2024,
|
||||
"history": [
|
||||
"<C>●</>2024년 1월:<L><b>【가상모드99】</b>리그 오브 레전드 (전콘도움 네이미)</>",
|
||||
"<C>●</>2024년 1월:<L><b>【이벤트】</b></>소환사의 협곡에 오신 것을 환영합니다."
|
||||
],
|
||||
"stat": {
|
||||
"total": 310,
|
||||
"min": 40,
|
||||
"max": 140
|
||||
},
|
||||
"iconPath": "롤시나리오",
|
||||
"fiction": 1,
|
||||
"nation":[
|
||||
["바론 둥지", "#BA55D3", 20000, 20000, "바론 둥지", 1000, "병가", 7, ["업"]],
|
||||
["용 둥지", "#FFC0CB", 10000, 10000, "용 둥지", 100, "병가", 6, ["건업"]],
|
||||
["그림자 군도", "#20B2AA", 5000, 5000, "그림자 군도", 100, "태평도", 2, ["서량"]],
|
||||
["프렐요드", "#00BFFF", 5000, 5000, "프렐요드", 300, "법가", 3, ["북평"]],
|
||||
["필트오버", "#F5F5DC", 5000, 5000, "필트오버", 700, "명가", 3, ["낙양"]],
|
||||
["자운", "#008000", 5000, 5000, "자운", 400, "종횡가", 3, ["허창"]],
|
||||
["아이오니아", "#6495ED", 5000, 5000, "아이오니아", 300, "음양가", 4, ["위례"]],
|
||||
["녹서스", "#FF0000", 5000, 5000, "녹서스", 300, "병가", 3, ["양양"]],
|
||||
["빌지워터", "#FF6347", 5000, 5000, "빌지워터", 400, "도적", 1, ["이도"]],
|
||||
["데마시아", "#FFFF00", 5000, 5000, "데마시아", 600, "유가", 4, ["성도"]],
|
||||
["슈리마", "#FFA500", 5000, 5000, "슈리마", 400, "묵가", 4, ["장사"]],
|
||||
["밴들시티", "#FF00FF", 5000, 5000, "밴들시티", 500, "덕가", 2, ["오"]],
|
||||
["공허", "#800080", 5000, 5000, "공허", 200, "도적", 1, ["장안"]],
|
||||
["타곤", "#0000FF", 5000, 5000, "타곤", 300, "덕가", 2, ["한중"]]
|
||||
],
|
||||
"diplomacy":[],
|
||||
"general":[
|
||||
[0, "가렌", null, 10, "성도", 101, 97, 49, 11, 2009, 2200, null, null, "내 검과 심장은 데마시아의 것이다."],
|
||||
[0, "갈리오", null, 10, "성도", 108, 58, 96, 1, 2009, 2200, null, null, "힘을 발휘할 시간이군!"],
|
||||
[0, "갱플랭크", null, 9, "이도", 91, 106, 64, 1, 2009, 2200, null, null, "지옥의 불길도, 죽음의 심연도, 이 몸을 넘볼 수는 없다."],
|
||||
[0, "고대 돌거북", null, 0, null, 65, 65, 15, 0, 2009, 2200, null, null],
|
||||
[0, "그라가스", null, 0, null, 98, 43, 107, 0, 2009, 2200, null, null, "네가 사는 거라면 나도 끼지."],
|
||||
[0, "그레이브즈", null, 9, "이도", 91, 109, 61, 1, 2009, 2200, null, null, "내가 돌아왔다!"],
|
||||
[0, "그웬", null, 3, "서량", 103, 49, 106, 1, 2009, 2200, null, null, "자신 있게! 어깨 펴고, 가위 들고!"],
|
||||
[0, "근거리 미니언1", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언10", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언100", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언11", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언12", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언13", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언14", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언15", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언16", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언17", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언18", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언19", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언2", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언20", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언21", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언22", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언23", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언24", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언25", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언26", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언27", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언28", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언29", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언3", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언30", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언31", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언32", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언33", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언34", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언35", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언36", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언37", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언38", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언39", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언4", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언40", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언41", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언42", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언43", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언44", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언45", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언46", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언47", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언48", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언49", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언5", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언50", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언51", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언52", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언53", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언54", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언55", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언56", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언57", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언58", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언59", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언6", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언60", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언61", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언62", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언63", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언64", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언65", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언66", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언67", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언68", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언69", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언7", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언70", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언71", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언72", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언73", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언74", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언75", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언76", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언77", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언78", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언79", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언8", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언80", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언81", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언82", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언83", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언84", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언85", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언86", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언87", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언88", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언89", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언9", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언90", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언91", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언92", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언93", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언94", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언95", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언96", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언97", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언98", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언99", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "나르", null, 0, null, 103, 99, 49, 0, 2009, 2200, null, null, "나르! 갸다!"],
|
||||
[0, "나미", null, 0, null, 84, 67, 103, 0, 2009, 2200, null, null, "파도가 뭘 싣고 올진 나한테 달렸죠."],
|
||||
[0, "나서스", null, 11, "장사", 98, 104, 59, 11, 2009, 2200, null, null, "삶과 죽음의 순환은 계속된다. 우리는 살 것이고, 저들은 죽을 것이다."],
|
||||
[0, "나피리", null, 0, null, 94, 110, 56, 0, 2009, 2200, null, null, "추적, 시작이다!"],
|
||||
[0, "노틸러스", null, 9, "이도", 112, 55, 94, 1, 2009, 2200, null, null, "물이 깊으니... 조심해…"],
|
||||
[0, "녹턴", null, 0, null, 92, 112, 58, 0, 2009, 2200, null, null, "어둠을… 맞이하라…!"],
|
||||
[0, "누누와 윌럼프", null, 0, null, 103, 58, 100, 0, 2009, 2200, null, null, "모험은 역시 친구랑 같이 해야 신나는 법!"],
|
||||
[0, "니달리", null, 0, null, 96, 61, 106, 0, 2009, 2200, null, null, "야생이 부르면 내가 응답한다."],
|
||||
[0, "니코", null, 0, null, 95, 43, 114, 0, 2009, 2200, null, null, "니코? 정말 멋진 선택이야!"],
|
||||
[0, "닐라", null, 9, "이도", 90, 109, 60, 1, 2009, 2200, null, null, "기쁨이, 영원토록 함께하리라!"],
|
||||
[0, "다리우스", null, 8, "양양", 88, 116, 50, 11, 2009, 2200, null, null, "오직 나만이 승리로 이끌 수 있다."],
|
||||
[0, "다이애나", null, 14, "한중", 94, 70, 100, 1, 2009, 2200, null, null, "새로운 달이 떠오르고 있다."],
|
||||
[0, "대지 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "대포 미니언1", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언10", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언11", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언12", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언13", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언14", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언15", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언16", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언17", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언18", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언19", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언2", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언20", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언21", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언22", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언23", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언24", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언25", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언26", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언27", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언28", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언29", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언3", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언30", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언4", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언5", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언6", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언7", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언8", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언9", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언1", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언2", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언3", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언4", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언5", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언6", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언7", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언8", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언9", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언10", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언11", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언12", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언13", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언14", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언15", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언16", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "돌거북", null, 0, null, 50, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "드레이븐", null, 8, "양양", 84, 118, 53, 1, 2009, 2200, null, null, "드레이븐의 리그에 오신 걸 환영한다."],
|
||||
[0, "라이즈", null, 0, null, 100, 44, 107, 0, 2009, 2200, null, null, "대재앙에 한발 앞서가는 거다!"],
|
||||
[0, "라칸", null, 7, "위례", 112, 50, 94, 11, 2009, 2200, null, null, "한번 신나게 춰볼까?"],
|
||||
[0, "람머스", null, 0, null, 119, 49, 91, 0, 2009, 2200, null, null, "그래."],
|
||||
[0, "럭스", null, 10, "성도", 96, 38, 116, 1, 2009, 2200, null, null, "어디 한번 길을 밝혀보죠!"],
|
||||
[0, "럼블", null, 12, "오", 100, 53, 107, 1, 2009, 2200, null, null, "자, 한번 붙어 보자고!"],
|
||||
[0, "레나타 글라스크", null, 6, "허창", 96, 61, 100, 1, 2009, 2200, null, null, "살고 싶으면 글라스크 님이라고 불러라."],
|
||||
[0, "레넥톤", null, 11, "장사", 109, 96, 43, 1, 2009, 2200, null, null, "내가 살아있는 한, 모두 죽는다!"],
|
||||
[0, "레오나", null, 14, "한중", 116, 76, 79, 12, 2009, 2200, null, null, "새벽이 밝았습니다."],
|
||||
[0, "렉사이", null, 13, "장안", 96, 104, 61, 12, 2009, 2200, null, null, "끄르르르르륵"],
|
||||
[0, "렐", null, 0, null, 104, 98, 64, 0, 2009, 2200, null, null, "아무도 받아들이지 않겠어. 누구도 빠져나갈 수 없을 테니까."],
|
||||
[0, "렝가", null, 0, null, 91, 110, 61, 0, 2009, 2200, null, null, "오늘 밤, 사냥을 나선다."],
|
||||
[0, "루시안", null, 0, null, 95, 109, 60, 0, 2009, 2200, null, null, "결국 모두 죽기 마련. 내가 좀 거들어주지."],
|
||||
[0, "룰루", null, 12, "오", 94, 67, 101, 1, 2009, 2200, null, null, "만나서 반갑습니다!"],
|
||||
[0, "르블랑", null, 0, null, 94, 50, 119, 0, 2009, 2200, null, null, "검은 장미단은 다시 피어날 겁니다."],
|
||||
[0, "리 신", null, 0, null, 106, 110, 68, 0, 2009, 2200, null, null, "당신의 뜻대로, 싸우겠소."],
|
||||
[0, "리븐", null, 0, null, 103, 107, 61, 0, 2009, 2200, null, null, "부러진 건 다시 붙이면 돼."],
|
||||
[0, "리산드라", null, 4, "북평", 90, 55, 112, 1, 2009, 2200, null, null, "이 세상을 꽁꽁 얼려주지."],
|
||||
[0, "릴리아", null, 7, "위례", 100, 52, 106, 1, 2009, 2200, null, null, "정말? 날? 꿈이 이루어졌어!"],
|
||||
[0, "마법공학 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "마스터 이", null, 0, null, 92, 115, 50, 0, 2009, 2200, null, null, "나의 검은 당신의 것이오."],
|
||||
[0, "마오카이", null, 3, "서량", 106, 61, 96, 1, 2009, 2200, null, null, "군도의 빛을 되찾으리라!"],
|
||||
[0, "말자하", null, 13, "장안", 92, 49, 108, 11, 2009, 2200, null, null, "종말이 기다린다."],
|
||||
[0, "말파이트", null, 0, null, 103, 52, 102, 0, 2009, 2200, null, null, "바위처럼! 단단하게!"],
|
||||
[0, "모데카이저", null, 0, null, 106, 64, 95, 0, 2009, 2200, null, null, "운명, 지배, 그리고 기만."],
|
||||
[0, "모르가나", null, 0, null, 100, 42, 109, 0, 2009, 2200, null, null, "날개를 묶었다고 의지까지 꺾인 건 아니야."],
|
||||
[0, "문도 박사", null, 0, null, 118, 95, 41, 0, 2009, 2200, null, null, "아~ 문도 박사... 납신다!"],
|
||||
[0, "미스 포츈", null, 9, "이도", 84, 100, 82, 12, 2009, 2200, null, null, "행운은 멍청이를 싫어하는 법이지."],
|
||||
[0, "밀리오", null, 0, null, 94, 64, 103, 0, 2009, 2200, null, null, "내 옆에만 있어! 따뜻하게 해 줄게."],
|
||||
[0, "바다 드래곤", null, 2, "건업", 80, 80, 80, 11, 2009, 2200, null, null],
|
||||
[0, "바드", null, 0, null, 96, 79, 82, 0, 2009, 2200, null, null],
|
||||
[0, "바람 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "바루스", null, 0, null, 88, 113, 59, 0, 2009, 2200, null, null, "죄 지은 자, 고통받을지어다."],
|
||||
[0, "바이", null, 5, "낙양", 103, 104, 49, 1, 2009, 2200, null, null, "일단 한 대 맞아. 질문은 나중에 하고."],
|
||||
[0, "베이가", null, 0, null, 102, 26, 119, 0, 2009, 2200, null, null, "내가 너였다면, 너에게 어떤 자비도 없었을 거란 것만 알아 둬!"],
|
||||
[0, "베인", null, 10, "성도", 84, 116, 55, 1, 2009, 2200, null, null, "어둠에 빠진 자들을 사냥해 볼까?"],
|
||||
[0, "벡스", null, 3, "서량", 89, 56, 112, 1, 2009, 2200, null, null, "뭐, 그러든가, 말든가…"],
|
||||
[0, "벨베스", null, 13, "장안", 103, 96, 60, 1, 2009, 2200, null, null, "내가 바로 적막의 목소리다."],
|
||||
[0, "벨코즈", null, 13, "장안", 84, 55, 118, 1, 2009, 2200, null, null, "해체하여, 지식을 습득한다."],
|
||||
[0, "볼리베어", null, 4, "북평", 108, 84, 72, 1, 2009, 2200, null, null, "야생의 힘이다!"],
|
||||
[0, "붉은 덩굴정령", null, 0, null, 80, 70, 30, 0, 2009, 2200, null, null],
|
||||
[0, "브라움", null, 4, "북평", 113, 91, 52, 1, 2009, 2200, null, null, "가장 듬직한 심장이 되어드리지."],
|
||||
[0, "브라이어", null, 0, null, 96, 107, 54, 0, 2009, 2200, null, null, "반가워, 난 배고파! 아니, 브라이어야!"],
|
||||
[0, "브랜드", null, 0, null, 91, 35, 115, 0, 2009, 2200, null, null, "세상을 불태울 준비는 되었나? 흐흐흐하하하."],
|
||||
[0, "블라디미르", null, 0, null, 102, 48, 102, 0, 2009, 2200, null, null, "강이 핏빛으로 물들 것이다."],
|
||||
[0, "블리츠크랭크", null, 6, "허창", 72, 79, 103, 11, 2009, 2200, null, null, "시스템 가동. 준비 완료."],
|
||||
[0, "비에고", null, 3, "서량", 92, 113, 62, 12, 2009, 2200, null, null, "사랑 뒤엔 몰락뿐."],
|
||||
[0, "빅토르", null, 6, "허창", 92, 58, 107, 12, 2009, 2200, null, null, "영광스러운 진화에 동참하라."],
|
||||
[0, "뽀삐", null, 10, "성도", 112, 91, 47, 1, 2009, 2200, null, null, "영웅이라뇨, 전 그저 망치를 든 요들일 뿐이에요."],
|
||||
[0, "사미라", null, 8, "양양", 95, 109, 48, 1, 2009, 2200, null, null, "스타일을 찾는 거야? 여기 있잖아."],
|
||||
[0, "사이온", null, 0, null, 104, 103, 47, 0, 2009, 2200, null, null, "휴식은… 산 자를 위한... 것이다...!"],
|
||||
[0, "사일러스", null, 0, null, 96, 64, 101, 0, 2009, 2200, null, null, "해방이다!"],
|
||||
[0, "샤코", null, 0, null, 62, 86, 103, 0, 2009, 2200, null, null, "마술 하나 보여줄까?"],
|
||||
[0, "세나", null, 0, null, 87, 99, 73, 0, 2009, 2200, null, null, "검은 안개를 홀로 상대하지 마."],
|
||||
[0, "세라핀", null, 5, "낙양", 88, 53, 113, 1, 2009, 2200, null, null, "세상을 바꿔보는 거야!"],
|
||||
[0, "세주아니", null, 4, "북평", 102, 100, 53, 1, 2009, 2200, null, null, "네가 가진 힘, 믿을 건 오직 그뿐이야!"],
|
||||
[0, "세트", null, 7, "위례", 110, 97, 37, 1, 2009, 2200, null, null, "난 최강이다!"],
|
||||
[0, "소나", null, 10, "성도", 85, 38, 116, 1, 2009, 2200, null, null, "오늘은 어떤 명작을 연주해볼까요?"],
|
||||
[0, "소라카", null, 14, "한중", 91, 34, 119, 1, 2009, 2200, null, null, "내 숨이 붙어있는 한 고통받게 두진 않아요."],
|
||||
[0, "쉔", null, 7, "위례", 107, 95, 61, 1, 2009, 2200, null, null, "훌륭한 판단의 표본이로군."],
|
||||
[0, "쉬바나", null, 0, null, 96, 80, 82, 0, 2009, 2200, null, null, "나는 곧 내 적수의 공포이니라."],
|
||||
[0, "스몰더", null, 0, null, 77, 96, 92, 0, 2009, 2200, null, null, "내가 뭘 어쨌다고?"],
|
||||
[0, "스웨인", null, 8, "양양", 103, 49, 104, 12, 2009, 2200, null, null, "네가 못 보는 힘. 그것이 진짜 공포다."],
|
||||
[0, "스카너", null, 0, null, 108, 52, 98, 0, 2009, 2200, null, null, "내가 바로 이쉬탈을 수호하는 선봉장이다!"],
|
||||
[0, "시비르", null, 11, "장사", 92, 108, 62, 1, 2009, 2200, null, null, "내 건 내가 알아서 챙겨. 목숨이든, 돈이든."],
|
||||
[0, "신 짜오", null, 10, "성도", 97, 106, 52, 1, 2009, 2200, null, null, "전장으로!"],
|
||||
[0, "신드라", null, 0, null, 88, 54, 112, 0, 2009, 2200, null, null, "내 안에 무한한 힘이 넘친다!"],
|
||||
[0, "신지드", null, 6, "허창", 107, 67, 88, 1, 2009, 2200, null, null, "한잔 하겠나?"],
|
||||
[0, "심술 두꺼비", null, 0, null, 70, 70, 30, 0, 2009, 2200, null, null],
|
||||
[0, "쓰레쉬", null, 3, "서량", 108, 94, 64, 1, 2009, 2200, null, null, "어떤 고통을 선사해 줄까?"],
|
||||
[0, "아리", null, 0, null, 94, 56, 109, 0, 2009, 2200, null, null, "똑똑한 여우는 절대 잡히지 않거든."],
|
||||
[0, "아무무", null, 11, "장사", 106, 59, 98, 1, 2009, 2200, null, null, "날 선택해줄 줄은 정말 몰랐어."],
|
||||
[0, "아우렐리온 솔", null, 0, null, 100, 59, 107, 0, 2009, 2200, null, null, "당연하지."],
|
||||
[0, "아이번", null, 7, "위례", 103, 48, 103, 1, 2009, 2200, null, null, "내가 좋아하는 색은 봄! 봄빛이지."],
|
||||
[0, "아지르", null, 11, "장사", 96, 64, 96, 12, 2009, 2200, null, null, "슈리마여, 너의 황제가 돌아왔다!"],
|
||||
[0, "아칼리", null, 0, null, 97, 68, 107, 0, 2009, 2200, null, null, "경외하라, 나는 섬기는 이 없는 암살자다."],
|
||||
[0, "아크샨", null, 11, "장사", 92, 106, 61, 1, 2009, 2200, null, null, "한 번에 한 놈씩, 세상을 바로잡아주지."],
|
||||
[0, "아트록스", null, 0, null, 104, 109, 49, 0, 2009, 2200, null, null, "고요한 종말에 귀가 멀게 해 주마."],
|
||||
[0, "아펠리오스", null, 14, "한중", 86, 115, 60, 1, 2009, 2200, null, null, "아펠리오스, 가장 강력한 무기는 바로 네 신념이야."],
|
||||
[0, "알리스타", null, 0, null, 112, 49, 94, 0, 2009, 2200, null, null, "누구도 날 막지 못해."],
|
||||
[0, "암베사", null, 0, null, 80, 99, 71, 0, 2009, 2200, null, null, "늑대에게, 자비란 없다!"],
|
||||
[0, "애니", null, 0, null, 82, 50, 119, 0, 2009, 2200, null, null, "너도 같이 놀래? 히, 재밌겠다."],
|
||||
[0, "애니비아", null, 4, "북평", 96, 46, 112, 11, 2009, 2200, null, null, "내 날개를 타고!"],
|
||||
[0, "애쉬", null, 4, "북평", 95, 106, 73, 12, 2009, 2200, null, null, "화살 한 발로 세상을 평정해 주지."],
|
||||
[0, "야스오", null, 7, "위례", 85, 114, 55, 1, 2009, 2200, null, null, "죽음은 바람과 같지. 늘 내 곁에 있으니."],
|
||||
[0, "어스름 늑대", null, 0, null, 60, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "에코", null, 6, "허창", 92, 58, 103, 1, 2009, 2200, null, null, "시간이 얼마나 있는지는 상관 없어. 어떻게 쓰느냐가 중요하지."],
|
||||
[0, "엘리스", null, 0, null, 96, 64, 97, 0, 2009, 2200, null, null, "거미줄에선 거미만 안전하지."],
|
||||
[0, "오공", null, 7, "위례", 96, 106, 61, 1, 2009, 2200, null, null, "내가 최고가 되겠어!"],
|
||||
[0, "오로라", null, 0, null, 81, 80, 103, 0, 2009, 2200, null, null, "있는 그대로를 보는 거야."],
|
||||
[0, "오른", null, 4, "북평", 114, 94, 55, 1, 2009, 2200, null, null, "알았네. 간다고, 가."],
|
||||
[0, "오리아나", null, 5, "낙양", 100, 59, 106, 1, 2009, 2200, null, null, "당신의 적을 죽이겠어요. 재밌겠네요."],
|
||||
[0, "올라프", null, 0, null, 97, 106, 49, 0, 2009, 2200, null, null, "아무것도 남기지 않겠다!"],
|
||||
[0, "요네", null, 0, null, 90, 108, 62, 0, 2009, 2200, null, null, "하나로 베고, 다른 하나로 봉인하리."],
|
||||
[0, "요릭", null, 3, "서량", 106, 100, 53, 1, 2009, 2200, null, null, "두려워 마라. 네 시체는 잘 써 주마."],
|
||||
[0, "우디르", null, 0, null, 103, 97, 60, 0, 2009, 2200, null, null, "갈등은 프렐요드의 원동력이지."],
|
||||
[0, "우르곳", null, 6, "허창", 102, 101, 50, 1, 2009, 2200, null, null, "부러져 봐야 얼마나 강한지 알 수 있지."],
|
||||
[0, "워윅", null, 6, "허창", 106, 100, 49, 1, 2009, 2200, null, null, "피비린내다! 도망쳐라."],
|
||||
[0, "원거리 미니언1", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언10", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언100", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언11", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언12", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언13", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언14", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언15", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언16", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언17", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언18", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언19", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언2", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언20", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언21", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언22", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언23", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언24", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언25", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언26", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언27", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언28", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언29", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언3", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언30", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언31", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언32", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언33", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언34", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언35", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언36", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언37", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언38", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언39", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언4", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언40", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언41", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언42", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언43", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언44", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언45", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언46", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언47", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언48", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언49", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언5", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언50", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언51", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언52", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언53", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언54", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언55", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언56", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언57", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언58", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언59", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언6", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언60", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언61", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언62", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언63", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언64", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언65", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언66", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언67", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언68", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언69", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언7", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언70", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언71", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언72", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언73", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언74", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언75", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언76", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언77", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언78", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언79", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언8", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언80", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언81", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언82", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언83", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언84", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언85", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언86", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언87", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언88", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언89", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언9", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언90", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언91", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언92", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언93", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언94", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언95", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언96", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언97", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언98", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언99", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "유미", null, 12, "오", 77, 45, 122, 11, 2009, 2200, null, null, "너랑 유미랑! 우리 함께 잘 해보자고!"],
|
||||
[0, "이렐리아", null, 7, "위례", 100, 110, 49, 1, 2009, 2200, null, null, "최초의 땅, 아이오니아를 위하여!"],
|
||||
[0, "이블린", null, 0, null, 91, 68, 104, 0, 2009, 2200, null, null, "날 원하잖아, 그렇지?"],
|
||||
[0, "이즈리얼", null, 5, "낙양", 91, 101, 77, 1, 2009, 2200, null, null, "임무를 수락하지! 잠깐, 어디 가는 거라고?"],
|
||||
[0, "일라오이", null, 9, "이도", 102, 94, 58, 11, 2009, 2200, null, null, "설교는 필요 없다. 부러진 뼈가 더 큰 교훈을 새겨 줄 테니."],
|
||||
[0, "자르반 4세", null, 0, null, 96, 101, 61, 0, 2009, 2200, null, null, "내 의지로 여기서 끝을 보겠노라."],
|
||||
[0, "자야", null, 7, "위례", 88, 112, 61, 12, 2009, 2200, null, null, "댄스 파티에 내가 빠질 수는 없지."],
|
||||
[0, "자이라", null, 0, null, 88, 59, 106, 0, 2009, 2200, null, null, "가시 덩굴에 포근히 안겨봐."],
|
||||
[0, "자크", null, 6, "허창", 109, 84, 47, 1, 2009, 2200, null, null, "딱 봐도 잘 싸우게 생기지 않았어?"],
|
||||
[0, "잔나", null, 6, "허창", 91, 46, 115, 1, 2009, 2200, null, null, "바람의 힘을 마음껏 부리세요."],
|
||||
[0, "잭스", null, 0, null, 95, 96, 64, 0, 2009, 2200, null, null, "자, 한번 해보자고!"],
|
||||
[0, "제드", null, 0, null, 95, 112, 55, 0, 2009, 2200, null, null, "보이지 않는 검이 가장 무서운 법."],
|
||||
[0, "제라스", null, 0, null, 85, 50, 113, 0, 2009, 2200, null, null, "난... 해방될 것이다!"],
|
||||
[0, "제리", null, 0, null, 85, 92, 85, 0, 2009, 2200, null, null, "짜릿함 하나면 충분해."],
|
||||
[0, "제이스", null, 5, "낙양", 86, 110, 61, 11, 2009, 2200, null, null, "나는 더 나은 미래를 위해 싸운다."],
|
||||
[0, "조이", null, 14, "한중", 94, 50, 118, 11, 2009, 2200, null, null, "야호! 재밌겠다. 그치?"],
|
||||
[0, "직스", null, 0, null, 89, 64, 104, 0, 2009, 2200, null, null, "뻥~! 이요!"],
|
||||
[0, "진", null, 0, null, 83, 119, 49, 0, 2009, 2200, null, null, "학살의 현장에서 난, 피어오른다. 붉은 여명에 피어나는 꽃처럼."],
|
||||
[0, "질리언", null, 0, null, 91, 56, 104, 0, 2009, 2200, null, null, "그리 할 줄 알고 있었소."],
|
||||
[0, "징크스", null, 0, null, 92, 115, 50, 0, 2009, 2200, null, null, "하핫! 신나게 놀아볼까?"],
|
||||
[0, "초가스", null, 13, "장안", 110, 56, 96, 1, 2009, 2200, null, null, "세계의 종말을 원한다고? 좋아."],
|
||||
[0, "카르마", null, 0, null, 96, 37, 108, 0, 2009, 2200, null, null, "항상 정신을 집중하세요."],
|
||||
[0, "카밀", null, 5, "낙양", 103, 108, 48, 1, 2009, 2200, null, null, "정교함이 없다면 망나니일 뿐."],
|
||||
[0, "카사딘", null, 13, "장안", 98, 66, 98, 1, 2009, 2200, null, null, "힘의 균형은 유지되어야 한다."],
|
||||
[0, "카서스", null, 0, null, 86, 35, 119, 0, 2009, 2200, null, null, "고통, 희열, 그리고 평화. 죽음은 언제나 아름답다."],
|
||||
[0, "카시오페아", null, 8, "양양", 94, 58, 112, 1, 2009, 2200, null, null, "날 막을 해독제는 없을 걸?"],
|
||||
[0, "카이사", null, 13, "장안", 96, 96, 92, 1, 2009, 2200, null, null, "사냥꾼이냐, 사냥감이냐."],
|
||||
[0, "카직스", null, 13, "장안", 89, 110, 47, 1, 2009, 2200, null, null, "변화란 좋은 거야."],
|
||||
[0, "카타리나", null, 8, "양양", 94, 64, 107, 1, 2009, 2200, null, null, "폭력은 모든 것을 해결해주지"],
|
||||
[0, "칼날부리", null, 0, null, 50, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "칼리스타", null, 3, "서량", 91, 109, 61, 1, 2009, 2200, null, null, "배신자에겐 죽음 뿐"],
|
||||
[0, "케넨", null, 7, "위례", 96, 61, 103, 1, 2009, 2200, null, null, "눈은 절대 거짓말을 하지 않지."],
|
||||
[0, "케이틀린", null, 5, "낙양", 92, 108, 70, 1, 2009, 2200, null, null, "이 사건은 내가 맡죠."],
|
||||
[0, "케인", null, 0, null, 98, 109, 49, 0, 2009, 2200, null, null, "네 능력을 입증해 볼 테냐? 내가 왜?"],
|
||||
[0, "케일", null, 10, "성도", 98, 61, 107, 1, 2009, 2200, null, null, "전장의 열기 속으로!"],
|
||||
[0, "코그모", null, 13, "장안", 84, 115, 67, 1, 2009, 2200, null, null, "만찬의 시간이다!"],
|
||||
[0, "코르키", null, 12, "오", 94, 61, 104, 1, 2009, 2200, null, null, "상황파악 끝! 최고의 전투기까지 있다고."],
|
||||
[0, "퀸", null, 10, "성도", 92, 102, 62, 1, 2009, 2200, null, null, "정의의 날개로!"],
|
||||
[0, "크산테", null, 11, "장사", 108, 95, 50, 1, 2009, 2200, null, null, "두려움 속에 사느니, 맞서 싸우는 걸 택하리라!"],
|
||||
[0, "큰 어스름 늑대", null, 0, null, 65, 65, 15, 0, 2009, 2200, null, null],
|
||||
[0, "클레드", null, 8, "양양", 98, 98, 55, 1, 2009, 2200, null, null, "용기? 그런 게 왜 필요해? 광기, 그래! 그게 진짜지!"],
|
||||
[0, "키아나", null, 0, null, 96, 108, 48, 0, 2009, 2200, null, null, "너도 내 진가를 알게 되겠군!"],
|
||||
[0, "킨드레드", null, 0, null, 95, 104, 55, 0, 2009, 2200, null, null, "함께가 아니면, 아무것도 아니다."],
|
||||
[0, "타릭", null, 14, "한중", 112, 67, 76, 1, 2009, 2200, null, null, "희망의 빛이 보이십니까? 그게 바로 접니다."],
|
||||
[0, "탈론", null, 8, "양양", 96, 112, 58, 1, 2009, 2200, null, null, "칼에 살고, 칼에 죽는다."],
|
||||
[0, "탈리야", null, 11, "장사", 86, 56, 112, 1, 2009, 2200, null, null, "마법의 베틀로, 바위를 엮어내리라."],
|
||||
[0, "탐 켄치", null, 0, null, 119, 79, 56, 0, 2009, 2200, null, null, "왕이든 폭군이든 마음대로 불러라. 강은 망자의 이름까지 기억해주진 않으니까."],
|
||||
[0, "트런들", null, 4, "북평", 108, 108, 48, 1, 2009, 2200, null, null, "트롤 한 판 해볼까?"],
|
||||
[0, "트리스타나", null, 12, "오", 94, 108, 65, 1, 2009, 2200, null, null, "일단 한 번 쏘고 나면, 또 쏘고 싶을 거예요!"],
|
||||
[0, "트린다미어", null, 4, "북평", 96, 112, 46, 1, 2009, 2200, null, null, "손쉬운 사냥이 되겠군"],
|
||||
[0, "트위스티드 페이트", null, 9, "이도", 91, 70, 100, 1, 2009, 2200, null, null, "행운의 여신이, 내게 미소를 짓는군"],
|
||||
[0, "트위치", null, 6, "허창", 70, 118, 80, 1, 2009, 2200, null, null, "죽거나 죽이거나, 약육강식은 그런 거지!"],
|
||||
[0, "티모", null, 12, "오", 76, 68, 106, 12, 2009, 2200, null, null, "밴들 정찰대원 티모, 보고드립니다!"],
|
||||
[0, "파이크", null, 9, "이도", 94, 106, 64, 1, 2009, 2200, null, null, "모두 빠뜨려주마."],
|
||||
[0, "판테온", null, 14, "한중", 92, 101, 68, 1, 2009, 2200, null, null, "전쟁에서 우린, 다시 태어난다!"],
|
||||
[0, "푸른 파수꾼", null, 0, null, 80, 30, 70, 0, 2009, 2200, null, null],
|
||||
[0, "피들스틱", null, 0, null, 91, 13, 112, 0, 2009, 2200, null, null, "공포…"],
|
||||
[0, "피오라", null, 10, "성도", 104, 110, 52, 1, 2009, 2200, null, null, "겨뤄볼만한 상대 어디 없나?"],
|
||||
[0, "피즈", null, 0, null, 89, 71, 107, 0, 2009, 2200, null, null, "내가 혼내줄게!"],
|
||||
[0, "핏빛 칼날부리", null, 0, null, 60, 60, 60, 0, 2009, 2200, null, null],
|
||||
[0, "하이머딩거", null, 5, "낙양", 88, 59, 107, 12, 2009, 2200, null, null, "정말 현명한 선택이예요!"],
|
||||
[0, "헤카림", null, 3, "서량", 97, 106, 56, 11, 2009, 2200, null, null, "그림자 군도의 위력을 똑똑히 봐라!"],
|
||||
[0, "협곡 바위 게", null, 0, null, 40, 40, 40, 0, 2009, 2200, null, null],
|
||||
[0, "협곡의 전령", null, 1, "업", 85, 85, 85, 11, 2009, 2200, null, null],
|
||||
[0, "화염 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "화학공학 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "흐웨이", null, 0, null, 81, 58, 111, 0, 2009, 2200, null, null, "화가는 대상과 혼연일체를 이루는 법."]
|
||||
],
|
||||
"general_ex":[
|
||||
|
||||
],
|
||||
"general_neutral":[
|
||||
[0, "Faker", null, 0, null, 120, 120, 120, 0, 1996, 2200, "출세", "무쌍", "모든 길은 저를 통합니다."],
|
||||
[0, "내셔 남작", null, 1, "업", 110, 110, 110, 12, 2009, 2200, null, null],
|
||||
[0, "장로 드래곤", null, 2, "건업", 100, 100, 100, 12, 2009, 2200, null, null]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,615 @@
|
||||
{
|
||||
"title": "【가상모드29-b】 리그오브레전드 v1.0 (비급)",
|
||||
"startYear": 2024,
|
||||
"history": [
|
||||
"<C>●</>2024년 1월:<L><b>【가상모드99】</b>리그 오브 레전드 (비급) (전콘도움 네이미)</>",
|
||||
"<C>●</>2024년 1월:<L><b>【이벤트】</b></>소환사의 협곡에 오신 것을 환영합니다."
|
||||
],
|
||||
"stat": {
|
||||
"total": 310,
|
||||
"min": 40,
|
||||
"max": 140
|
||||
},
|
||||
"iconPath": "롤시나리오",
|
||||
"fiction": 1,
|
||||
"nation":[
|
||||
["바론 둥지", "#BA55D3", 20000, 20000, "바론 둥지", 1000, "병가", 7, ["업"]],
|
||||
["용 둥지", "#FFC0CB", 10000, 10000, "용 둥지", 100, "병가", 6, ["건업"]],
|
||||
["그림자 군도", "#20B2AA", 5000, 5000, "그림자 군도", 100, "태평도", 2, ["서량"]],
|
||||
["프렐요드", "#00BFFF", 5000, 5000, "프렐요드", 300, "법가", 3, ["북평"]],
|
||||
["필트오버", "#F5F5DC", 5000, 5000, "필트오버", 700, "명가", 3, ["낙양"]],
|
||||
["자운", "#008000", 5000, 5000, "자운", 400, "종횡가", 3, ["허창"]],
|
||||
["아이오니아", "#6495ED", 5000, 5000, "아이오니아", 300, "음양가", 4, ["위례"]],
|
||||
["녹서스", "#FF0000", 5000, 5000, "녹서스", 300, "병가", 3, ["양양"]],
|
||||
["빌지워터", "#FF6347", 5000, 5000, "빌지워터", 400, "도적", 1, ["이도"]],
|
||||
["데마시아", "#FFFF00", 5000, 5000, "데마시아", 600, "유가", 4, ["성도"]],
|
||||
["슈리마", "#FFA500", 5000, 5000, "슈리마", 400, "묵가", 4, ["장사"]],
|
||||
["밴들시티", "#FF00FF", 5000, 5000, "밴들시티", 500, "덕가", 2, ["오"]],
|
||||
["공허", "#800080", 5000, 5000, "공허", 200, "도적", 1, ["장안"]],
|
||||
["타곤", "#0000FF", 5000, 5000, "타곤", 300, "덕가", 2, ["한중"]]
|
||||
],
|
||||
"diplomacy":[],
|
||||
"const": {
|
||||
"npcBanMessageProb": 0,
|
||||
"npcSeizureMessageProb": 0,
|
||||
"npcMessageFreqByDay": 8,
|
||||
"availableSpecialWar": [
|
||||
"che_귀병",
|
||||
"che_신산",
|
||||
"che_환술",
|
||||
"che_집중",
|
||||
"che_신중",
|
||||
"che_반계",
|
||||
"che_보병",
|
||||
"che_궁병",
|
||||
"che_기병",
|
||||
"che_공성",
|
||||
"che_돌격",
|
||||
"che_무쌍",
|
||||
"che_견고",
|
||||
"che_위압",
|
||||
"che_저격",
|
||||
"che_필살",
|
||||
"che_징병",
|
||||
"che_의술",
|
||||
"che_격노",
|
||||
"che_척사"
|
||||
],
|
||||
"allItems": {
|
||||
"horse": {
|
||||
"che_명마_01_노기": 0,
|
||||
"che_명마_02_조랑": 0,
|
||||
"che_명마_03_노새": 0,
|
||||
"che_명마_04_나귀": 0,
|
||||
"che_명마_05_갈색마": 0,
|
||||
"che_명마_06_흑색마": 0,
|
||||
"che_명마_07_백마": 2,
|
||||
"che_명마_07_기주마": 2,
|
||||
"che_명마_07_오환마": 2,
|
||||
"che_명마_07_백상": 2,
|
||||
"che_명마_08_양주마": 2,
|
||||
"che_명마_08_흉노마": 2,
|
||||
"che_명마_09_과하마": 2,
|
||||
"che_명마_09_의남백마": 2,
|
||||
"che_명마_10_대완마": 2,
|
||||
"che_명마_10_옥추마": 2,
|
||||
"che_명마_11_서량마": 2,
|
||||
"che_명마_11_화종마": 2,
|
||||
"che_명마_12_사륜거": 2,
|
||||
"che_명마_12_옥란백용구": 2,
|
||||
"che_명마_13_절영": 2,
|
||||
"che_명마_13_적로": 2,
|
||||
"che_명마_14_적란마": 2,
|
||||
"che_명마_14_조황비전": 2,
|
||||
"che_명마_15_한혈마": 2,
|
||||
"che_명마_15_적토마": 2
|
||||
},
|
||||
"weapon": {
|
||||
"che_무기_01_단도": 0,
|
||||
"che_무기_02_단궁": 0,
|
||||
"che_무기_03_단극": 0,
|
||||
"che_무기_04_목검": 0,
|
||||
"che_무기_05_죽창": 0,
|
||||
"che_무기_06_소부": 0,
|
||||
"che_무기_07_동추": 2,
|
||||
"che_무기_07_철편": 2,
|
||||
"che_무기_07_철쇄": 2,
|
||||
"che_무기_07_맥궁": 2,
|
||||
"che_무기_08_유성추": 2,
|
||||
"che_무기_08_철질여골": 2,
|
||||
"che_무기_09_쌍철극": 2,
|
||||
"che_무기_09_동호비궁": 2,
|
||||
"che_무기_10_삼첨도": 2,
|
||||
"che_무기_10_대부": 2,
|
||||
"che_무기_11_고정도": 2,
|
||||
"che_무기_11_이광궁": 2,
|
||||
"che_무기_12_철척사모": 2,
|
||||
"che_무기_12_칠성검": 2,
|
||||
"che_무기_13_사모": 2,
|
||||
"che_무기_13_양유기궁": 2,
|
||||
"che_무기_14_언월도": 2,
|
||||
"che_무기_14_방천화극": 2,
|
||||
"che_무기_15_청홍검": 2,
|
||||
"che_무기_15_의천검": 2
|
||||
},
|
||||
"book": {
|
||||
"che_서적_01_효경전": 0,
|
||||
"che_서적_02_회남자": 0,
|
||||
"che_서적_03_변도론": 0,
|
||||
"che_서적_04_건상역주": 0,
|
||||
"che_서적_05_여씨춘추": 0,
|
||||
"che_서적_06_사민월령": 0,
|
||||
"che_서적_07_위료자": 2,
|
||||
"che_서적_07_사마법": 2,
|
||||
"che_서적_07_한서": 2,
|
||||
"che_서적_07_논어": 2,
|
||||
"che_서적_08_전론": 2,
|
||||
"che_서적_08_사기": 2,
|
||||
"che_서적_09_장자": 2,
|
||||
"che_서적_09_역경": 2,
|
||||
"che_서적_10_시경": 2,
|
||||
"che_서적_10_구국론": 2,
|
||||
"che_서적_11_상군서": 2,
|
||||
"che_서적_11_춘추전": 2,
|
||||
"che_서적_12_산해경": 2,
|
||||
"che_서적_12_맹덕신서": 2,
|
||||
"che_서적_13_관자": 2,
|
||||
"che_서적_13_병법24편": 2,
|
||||
"che_서적_14_한비자": 2,
|
||||
"che_서적_14_오자병법": 2,
|
||||
"che_서적_15_노자": 2,
|
||||
"che_서적_15_손자병법": 2
|
||||
},
|
||||
"item": {
|
||||
"che_치료_환약": 0,
|
||||
"che_저격_수극": 0,
|
||||
"che_사기_탁주": 0,
|
||||
"che_훈련_청주": 0,
|
||||
"che_계략_이추": 0,
|
||||
"che_계략_향낭": 0,
|
||||
"event_전투특기_격노": 0,
|
||||
"event_전투특기_견고": 0,
|
||||
"event_전투특기_공성": 0,
|
||||
"event_전투특기_궁병": 0,
|
||||
"event_전투특기_귀병": 0,
|
||||
"event_전투특기_기병": 0,
|
||||
"event_전투특기_돌격": 0,
|
||||
"event_전투특기_무쌍": 0,
|
||||
"event_전투특기_반계": 0,
|
||||
"event_전투특기_보병": 0,
|
||||
"event_전투특기_신산": 0,
|
||||
"event_전투특기_신중": 0,
|
||||
"event_전투특기_위압": 0,
|
||||
"event_전투특기_의술": 0,
|
||||
"event_전투특기_저격": 0,
|
||||
"event_전투특기_집중": 0,
|
||||
"event_전투특기_징병": 0,
|
||||
"event_전투특기_척사": 0,
|
||||
"event_전투특기_필살": 0,
|
||||
"event_전투특기_환술": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"general":[
|
||||
[0, "가렌", null, 10, "성도", 101, 97, 49, 11, 2009, 2200, null, null, "내 검과 심장은 데마시아의 것이다."],
|
||||
[0, "갈리오", null, 10, "성도", 108, 58, 96, 1, 2009, 2200, null, null, "힘을 발휘할 시간이군!"],
|
||||
[0, "갱플랭크", null, 9, "이도", 91, 106, 64, 1, 2009, 2200, null, null, "지옥의 불길도, 죽음의 심연도, 이 몸을 넘볼 수는 없다."],
|
||||
[0, "고대 돌거북", null, 0, null, 65, 65, 15, 0, 2009, 2200, null, null],
|
||||
[0, "그라가스", null, 0, null, 98, 43, 107, 0, 2009, 2200, null, null, "네가 사는 거라면 나도 끼지."],
|
||||
[0, "그레이브즈", null, 9, "이도", 91, 109, 61, 1, 2009, 2200, null, null, "내가 돌아왔다!"],
|
||||
[0, "그웬", null, 3, "서량", 103, 49, 106, 1, 2009, 2200, null, null, "자신 있게! 어깨 펴고, 가위 들고!"],
|
||||
[0, "근거리 미니언1", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언10", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언100", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언11", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언12", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언13", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언14", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언15", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언16", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언17", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언18", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언19", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언2", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언20", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언21", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언22", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언23", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언24", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언25", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언26", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언27", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언28", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언29", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언3", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언30", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언31", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언32", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언33", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언34", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언35", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언36", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언37", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언38", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언39", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언4", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언40", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언41", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언42", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언43", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언44", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언45", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언46", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언47", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언48", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언49", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언5", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언50", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언51", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언52", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언53", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언54", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언55", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언56", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언57", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언58", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언59", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언6", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언60", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언61", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언62", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언63", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언64", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언65", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언66", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언67", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언68", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언69", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언7", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언70", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언71", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언72", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언73", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언74", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언75", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언76", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언77", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언78", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언79", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언8", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언80", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언81", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언82", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언83", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언84", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언85", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언86", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언87", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언88", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언89", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언9", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언90", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언91", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언92", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언93", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언94", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언95", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언96", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언97", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언98", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "근거리 미니언99", null, 0, null, 50, 60, 10, 0, 2011, 2200, null, null],
|
||||
[0, "나르", null, 0, null, 103, 99, 49, 0, 2009, 2200, null, null, "나르! 갸다!"],
|
||||
[0, "나미", null, 0, null, 84, 67, 103, 0, 2009, 2200, null, null, "파도가 뭘 싣고 올진 나한테 달렸죠."],
|
||||
[0, "나서스", null, 11, "장사", 98, 104, 59, 11, 2009, 2200, null, null, "삶과 죽음의 순환은 계속된다. 우리는 살 것이고, 저들은 죽을 것이다."],
|
||||
[0, "나피리", null, 0, null, 94, 110, 56, 0, 2009, 2200, null, null, "추적, 시작이다!"],
|
||||
[0, "노틸러스", null, 9, "이도", 112, 55, 94, 1, 2009, 2200, null, null, "물이 깊으니... 조심해…"],
|
||||
[0, "녹턴", null, 0, null, 92, 112, 58, 0, 2009, 2200, null, null, "어둠을… 맞이하라…!"],
|
||||
[0, "누누와 윌럼프", null, 0, null, 103, 58, 100, 0, 2009, 2200, null, null, "모험은 역시 친구랑 같이 해야 신나는 법!"],
|
||||
[0, "니달리", null, 0, null, 96, 61, 106, 0, 2009, 2200, null, null, "야생이 부르면 내가 응답한다."],
|
||||
[0, "니코", null, 0, null, 95, 43, 114, 0, 2009, 2200, null, null, "니코? 정말 멋진 선택이야!"],
|
||||
[0, "닐라", null, 9, "이도", 90, 109, 60, 1, 2009, 2200, null, null, "기쁨이, 영원토록 함께하리라!"],
|
||||
[0, "다리우스", null, 8, "양양", 88, 116, 50, 11, 2009, 2200, null, null, "오직 나만이 승리로 이끌 수 있다."],
|
||||
[0, "다이애나", null, 14, "한중", 94, 70, 100, 1, 2009, 2200, null, null, "새로운 달이 떠오르고 있다."],
|
||||
[0, "대지 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "대포 미니언1", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언10", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언11", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언12", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언13", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언14", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언15", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언16", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언17", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언18", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언19", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언2", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언20", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언21", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언22", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언23", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언24", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언25", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언26", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언27", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언28", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언29", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언3", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언30", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언4", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언5", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언6", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언7", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언8", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "대포 미니언9", null, 0, null, 60, 60, 60, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언1", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언2", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언3", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언4", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언5", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언6", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언7", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언8", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언9", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언10", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언11", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언12", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언13", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언14", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언15", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "슈퍼 미니언16", null, 0, null, 70, 70, 70, 0, 2011, 2200, null, null],
|
||||
[0, "돌거북", null, 0, null, 50, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "드레이븐", null, 8, "양양", 84, 118, 53, 1, 2009, 2200, null, null, "드레이븐의 리그에 오신 걸 환영한다."],
|
||||
[0, "라이즈", null, 0, null, 100, 44, 107, 0, 2009, 2200, null, null, "대재앙에 한발 앞서가는 거다!"],
|
||||
[0, "라칸", null, 7, "위례", 112, 50, 94, 11, 2009, 2200, null, null, "한번 신나게 춰볼까?"],
|
||||
[0, "람머스", null, 0, null, 119, 49, 91, 0, 2009, 2200, null, null, "그래."],
|
||||
[0, "럭스", null, 10, "성도", 96, 38, 116, 1, 2009, 2200, null, null, "어디 한번 길을 밝혀보죠!"],
|
||||
[0, "럼블", null, 12, "오", 100, 53, 107, 1, 2009, 2200, null, null, "자, 한번 붙어 보자고!"],
|
||||
[0, "레나타 글라스크", null, 6, "허창", 96, 61, 100, 1, 2009, 2200, null, null, "살고 싶으면 글라스크 님이라고 불러라."],
|
||||
[0, "레넥톤", null, 11, "장사", 109, 96, 43, 1, 2009, 2200, null, null, "내가 살아있는 한, 모두 죽는다!"],
|
||||
[0, "레오나", null, 14, "한중", 116, 76, 79, 12, 2009, 2200, null, null, "새벽이 밝았습니다."],
|
||||
[0, "렉사이", null, 13, "장안", 96, 104, 61, 12, 2009, 2200, null, null, "끄르르르르륵"],
|
||||
[0, "렐", null, 0, null, 104, 98, 64, 0, 2009, 2200, null, null, "아무도 받아들이지 않겠어. 누구도 빠져나갈 수 없을 테니까."],
|
||||
[0, "렝가", null, 0, null, 91, 110, 61, 0, 2009, 2200, null, null, "오늘 밤, 사냥을 나선다."],
|
||||
[0, "루시안", null, 0, null, 95, 109, 60, 0, 2009, 2200, null, null, "결국 모두 죽기 마련. 내가 좀 거들어주지."],
|
||||
[0, "룰루", null, 12, "오", 94, 67, 101, 1, 2009, 2200, null, null, "만나서 반갑습니다!"],
|
||||
[0, "르블랑", null, 0, null, 94, 50, 119, 0, 2009, 2200, null, null, "검은 장미단은 다시 피어날 겁니다."],
|
||||
[0, "리 신", null, 0, null, 106, 110, 68, 0, 2009, 2200, null, null, "당신의 뜻대로, 싸우겠소."],
|
||||
[0, "리븐", null, 0, null, 103, 107, 61, 0, 2009, 2200, null, null, "부러진 건 다시 붙이면 돼."],
|
||||
[0, "리산드라", null, 4, "북평", 90, 55, 112, 1, 2009, 2200, null, null, "이 세상을 꽁꽁 얼려주지."],
|
||||
[0, "릴리아", null, 7, "위례", 100, 52, 106, 1, 2009, 2200, null, null, "정말? 날? 꿈이 이루어졌어!"],
|
||||
[0, "마법공학 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "마스터 이", null, 0, null, 92, 115, 50, 0, 2009, 2200, null, null, "나의 검은 당신의 것이오."],
|
||||
[0, "마오카이", null, 3, "서량", 106, 61, 96, 1, 2009, 2200, null, null, "군도의 빛을 되찾으리라!"],
|
||||
[0, "말자하", null, 13, "장안", 92, 49, 108, 11, 2009, 2200, null, null, "종말이 기다린다."],
|
||||
[0, "말파이트", null, 0, null, 103, 52, 102, 0, 2009, 2200, null, null, "바위처럼! 단단하게!"],
|
||||
[0, "모데카이저", null, 0, null, 106, 64, 95, 0, 2009, 2200, null, null, "운명, 지배, 그리고 기만."],
|
||||
[0, "모르가나", null, 0, null, 100, 42, 109, 0, 2009, 2200, null, null, "날개를 묶었다고 의지까지 꺾인 건 아니야."],
|
||||
[0, "문도 박사", null, 0, null, 118, 95, 41, 0, 2009, 2200, null, null, "아~ 문도 박사... 납신다!"],
|
||||
[0, "미스 포츈", null, 9, "이도", 84, 100, 82, 12, 2009, 2200, null, null, "행운은 멍청이를 싫어하는 법이지."],
|
||||
[0, "밀리오", null, 0, null, 94, 64, 103, 0, 2009, 2200, null, null, "내 옆에만 있어! 따뜻하게 해 줄게."],
|
||||
[0, "바다 드래곤", null, 2, "건업", 80, 80, 80, 11, 2009, 2200, null, null],
|
||||
[0, "바드", null, 0, null, 96, 79, 82, 0, 2009, 2200, null, null],
|
||||
[0, "바람 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "바루스", null, 0, null, 88, 113, 59, 0, 2009, 2200, null, null, "죄 지은 자, 고통받을지어다."],
|
||||
[0, "바이", null, 5, "낙양", 103, 104, 49, 1, 2009, 2200, null, null, "일단 한 대 맞아. 질문은 나중에 하고."],
|
||||
[0, "베이가", null, 0, null, 102, 26, 119, 0, 2009, 2200, null, null, "내가 너였다면, 너에게 어떤 자비도 없었을 거란 것만 알아 둬!"],
|
||||
[0, "베인", null, 10, "성도", 84, 116, 55, 1, 2009, 2200, null, null, "어둠에 빠진 자들을 사냥해 볼까?"],
|
||||
[0, "벡스", null, 3, "서량", 89, 56, 112, 1, 2009, 2200, null, null, "뭐, 그러든가, 말든가…"],
|
||||
[0, "벨베스", null, 13, "장안", 103, 96, 60, 1, 2009, 2200, null, null, "내가 바로 적막의 목소리다."],
|
||||
[0, "벨코즈", null, 13, "장안", 84, 55, 118, 1, 2009, 2200, null, null, "해체하여, 지식을 습득한다."],
|
||||
[0, "볼리베어", null, 4, "북평", 108, 84, 72, 1, 2009, 2200, null, null, "야생의 힘이다!"],
|
||||
[0, "붉은 덩굴정령", null, 0, null, 80, 70, 30, 0, 2009, 2200, null, null],
|
||||
[0, "브라움", null, 4, "북평", 113, 91, 52, 1, 2009, 2200, null, null, "가장 듬직한 심장이 되어드리지."],
|
||||
[0, "브라이어", null, 0, null, 96, 107, 54, 0, 2009, 2200, null, null, "반가워, 난 배고파! 아니, 브라이어야!"],
|
||||
[0, "브랜드", null, 0, null, 91, 35, 115, 0, 2009, 2200, null, null, "세상을 불태울 준비는 되었나? 흐흐흐하하하."],
|
||||
[0, "블라디미르", null, 0, null, 102, 48, 102, 0, 2009, 2200, null, null, "강이 핏빛으로 물들 것이다."],
|
||||
[0, "블리츠크랭크", null, 6, "허창", 72, 79, 103, 11, 2009, 2200, null, null, "시스템 가동. 준비 완료."],
|
||||
[0, "비에고", null, 3, "서량", 92, 113, 62, 12, 2009, 2200, null, null, "사랑 뒤엔 몰락뿐."],
|
||||
[0, "빅토르", null, 6, "허창", 92, 58, 107, 12, 2009, 2200, null, null, "영광스러운 진화에 동참하라."],
|
||||
[0, "뽀삐", null, 10, "성도", 112, 91, 47, 1, 2009, 2200, null, null, "영웅이라뇨, 전 그저 망치를 든 요들일 뿐이에요."],
|
||||
[0, "사미라", null, 8, "양양", 95, 109, 48, 1, 2009, 2200, null, null, "스타일을 찾는 거야? 여기 있잖아."],
|
||||
[0, "사이온", null, 0, null, 104, 103, 47, 0, 2009, 2200, null, null, "휴식은… 산 자를 위한... 것이다...!"],
|
||||
[0, "사일러스", null, 0, null, 96, 64, 101, 0, 2009, 2200, null, null, "해방이다!"],
|
||||
[0, "샤코", null, 0, null, 62, 86, 103, 0, 2009, 2200, null, null, "마술 하나 보여줄까?"],
|
||||
[0, "세나", null, 0, null, 87, 99, 73, 0, 2009, 2200, null, null, "검은 안개를 홀로 상대하지 마."],
|
||||
[0, "세라핀", null, 5, "낙양", 88, 53, 113, 1, 2009, 2200, null, null, "세상을 바꿔보는 거야!"],
|
||||
[0, "세주아니", null, 4, "북평", 102, 100, 53, 1, 2009, 2200, null, null, "네가 가진 힘, 믿을 건 오직 그뿐이야!"],
|
||||
[0, "세트", null, 7, "위례", 110, 97, 37, 1, 2009, 2200, null, null, "난 최강이다!"],
|
||||
[0, "소나", null, 10, "성도", 85, 38, 116, 1, 2009, 2200, null, null, "오늘은 어떤 명작을 연주해볼까요?"],
|
||||
[0, "소라카", null, 14, "한중", 91, 34, 119, 1, 2009, 2200, null, null, "내 숨이 붙어있는 한 고통받게 두진 않아요."],
|
||||
[0, "쉔", null, 7, "위례", 107, 95, 61, 1, 2009, 2200, null, null, "훌륭한 판단의 표본이로군."],
|
||||
[0, "쉬바나", null, 0, null, 96, 80, 82, 0, 2009, 2200, null, null, "나는 곧 내 적수의 공포이니라."],
|
||||
[0, "스몰더", null, 0, null, 77, 96, 92, 0, 2009, 2200, null, null, "내가 뭘 어쨌다고?"],
|
||||
[0, "스웨인", null, 8, "양양", 103, 49, 104, 12, 2009, 2200, null, null, "네가 못 보는 힘. 그것이 진짜 공포다."],
|
||||
[0, "스카너", null, 0, null, 108, 52, 98, 0, 2009, 2200, null, null, "내가 바로 이쉬탈을 수호하는 선봉장이다!"],
|
||||
[0, "시비르", null, 11, "장사", 92, 108, 62, 1, 2009, 2200, null, null, "내 건 내가 알아서 챙겨. 목숨이든, 돈이든."],
|
||||
[0, "신 짜오", null, 10, "성도", 97, 106, 52, 1, 2009, 2200, null, null, "전장으로!"],
|
||||
[0, "신드라", null, 0, null, 88, 54, 112, 0, 2009, 2200, null, null, "내 안에 무한한 힘이 넘친다!"],
|
||||
[0, "신지드", null, 6, "허창", 107, 67, 88, 1, 2009, 2200, null, null, "한잔 하겠나?"],
|
||||
[0, "심술 두꺼비", null, 0, null, 70, 70, 30, 0, 2009, 2200, null, null],
|
||||
[0, "쓰레쉬", null, 3, "서량", 108, 94, 64, 1, 2009, 2200, null, null, "어떤 고통을 선사해 줄까?"],
|
||||
[0, "아리", null, 0, null, 94, 56, 109, 0, 2009, 2200, null, null, "똑똑한 여우는 절대 잡히지 않거든."],
|
||||
[0, "아무무", null, 11, "장사", 106, 59, 98, 1, 2009, 2200, null, null, "날 선택해줄 줄은 정말 몰랐어."],
|
||||
[0, "아우렐리온 솔", null, 0, null, 100, 59, 107, 0, 2009, 2200, null, null, "당연하지."],
|
||||
[0, "아이번", null, 7, "위례", 103, 48, 103, 1, 2009, 2200, null, null, "내가 좋아하는 색은 봄! 봄빛이지."],
|
||||
[0, "아지르", null, 11, "장사", 96, 64, 96, 12, 2009, 2200, null, null, "슈리마여, 너의 황제가 돌아왔다!"],
|
||||
[0, "아칼리", null, 0, null, 97, 68, 107, 0, 2009, 2200, null, null, "경외하라, 나는 섬기는 이 없는 암살자다."],
|
||||
[0, "아크샨", null, 11, "장사", 92, 106, 61, 1, 2009, 2200, null, null, "한 번에 한 놈씩, 세상을 바로잡아주지."],
|
||||
[0, "아트록스", null, 0, null, 104, 109, 49, 0, 2009, 2200, null, null, "고요한 종말에 귀가 멀게 해 주마."],
|
||||
[0, "아펠리오스", null, 14, "한중", 86, 115, 60, 1, 2009, 2200, null, null, "아펠리오스, 가장 강력한 무기는 바로 네 신념이야."],
|
||||
[0, "알리스타", null, 0, null, 112, 49, 94, 0, 2009, 2200, null, null, "누구도 날 막지 못해."],
|
||||
[0, "암베사", null, 0, null, 80, 99, 71, 0, 2009, 2200, null, null, "늑대에게, 자비란 없다!"],
|
||||
[0, "애니", null, 0, null, 82, 50, 119, 0, 2009, 2200, null, null, "너도 같이 놀래? 히, 재밌겠다."],
|
||||
[0, "애니비아", null, 4, "북평", 96, 46, 112, 11, 2009, 2200, null, null, "내 날개를 타고!"],
|
||||
[0, "애쉬", null, 4, "북평", 95, 106, 73, 12, 2009, 2200, null, null, "화살 한 발로 세상을 평정해 주지."],
|
||||
[0, "야스오", null, 7, "위례", 85, 114, 55, 1, 2009, 2200, null, null, "죽음은 바람과 같지. 늘 내 곁에 있으니."],
|
||||
[0, "어스름 늑대", null, 0, null, 60, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "에코", null, 6, "허창", 92, 58, 103, 1, 2009, 2200, null, null, "시간이 얼마나 있는지는 상관 없어. 어떻게 쓰느냐가 중요하지."],
|
||||
[0, "엘리스", null, 0, null, 96, 64, 97, 0, 2009, 2200, null, null, "거미줄에선 거미만 안전하지."],
|
||||
[0, "오공", null, 7, "위례", 96, 106, 61, 1, 2009, 2200, null, null, "내가 최고가 되겠어!"],
|
||||
[0, "오로라", null, 0, null, 81, 80, 103, 0, 2009, 2200, null, null, "있는 그대로를 보는 거야."],
|
||||
[0, "오른", null, 4, "북평", 114, 94, 55, 1, 2009, 2200, null, null, "알았네. 간다고, 가."],
|
||||
[0, "오리아나", null, 5, "낙양", 100, 59, 106, 1, 2009, 2200, null, null, "당신의 적을 죽이겠어요. 재밌겠네요."],
|
||||
[0, "올라프", null, 0, null, 97, 106, 49, 0, 2009, 2200, null, null, "아무것도 남기지 않겠다!"],
|
||||
[0, "요네", null, 0, null, 90, 108, 62, 0, 2009, 2200, null, null, "하나로 베고, 다른 하나로 봉인하리."],
|
||||
[0, "요릭", null, 3, "서량", 106, 100, 53, 1, 2009, 2200, null, null, "두려워 마라. 네 시체는 잘 써 주마."],
|
||||
[0, "우디르", null, 0, null, 103, 97, 60, 0, 2009, 2200, null, null, "갈등은 프렐요드의 원동력이지."],
|
||||
[0, "우르곳", null, 6, "허창", 102, 101, 50, 1, 2009, 2200, null, null, "부러져 봐야 얼마나 강한지 알 수 있지."],
|
||||
[0, "워윅", null, 6, "허창", 106, 100, 49, 1, 2009, 2200, null, null, "피비린내다! 도망쳐라."],
|
||||
[0, "원거리 미니언1", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언10", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언100", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언11", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언12", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언13", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언14", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언15", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언16", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언17", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언18", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언19", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언2", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언20", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언21", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언22", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언23", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언24", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언25", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언26", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언27", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언28", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언29", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언3", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언30", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언31", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언32", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언33", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언34", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언35", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언36", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언37", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언38", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언39", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언4", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언40", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언41", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언42", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언43", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언44", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언45", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언46", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언47", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언48", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언49", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언5", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언50", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언51", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언52", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언53", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언54", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언55", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언56", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언57", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언58", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언59", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언6", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언60", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언61", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언62", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언63", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언64", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언65", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언66", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언67", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언68", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언69", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언7", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언70", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언71", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언72", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언73", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언74", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언75", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언76", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언77", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언78", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언79", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언8", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언80", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언81", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언82", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언83", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언84", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언85", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언86", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언87", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언88", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언89", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언9", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언90", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언91", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언92", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언93", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언94", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언95", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언96", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언97", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언98", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "원거리 미니언99", null, 0, null, 50, 10, 60, 0, 2011, 2200, null, null],
|
||||
[0, "유미", null, 12, "오", 77, 45, 122, 11, 2009, 2200, null, null, "너랑 유미랑! 우리 함께 잘 해보자고!"],
|
||||
[0, "이렐리아", null, 7, "위례", 100, 110, 49, 1, 2009, 2200, null, null, "최초의 땅, 아이오니아를 위하여!"],
|
||||
[0, "이블린", null, 0, null, 91, 68, 104, 0, 2009, 2200, null, null, "날 원하잖아, 그렇지?"],
|
||||
[0, "이즈리얼", null, 5, "낙양", 91, 101, 77, 1, 2009, 2200, null, null, "임무를 수락하지! 잠깐, 어디 가는 거라고?"],
|
||||
[0, "일라오이", null, 9, "이도", 102, 94, 58, 11, 2009, 2200, null, null, "설교는 필요 없다. 부러진 뼈가 더 큰 교훈을 새겨 줄 테니."],
|
||||
[0, "자르반 4세", null, 0, null, 96, 101, 61, 0, 2009, 2200, null, null, "내 의지로 여기서 끝을 보겠노라."],
|
||||
[0, "자야", null, 7, "위례", 88, 112, 61, 12, 2009, 2200, null, null, "댄스 파티에 내가 빠질 수는 없지."],
|
||||
[0, "자이라", null, 0, null, 88, 59, 106, 0, 2009, 2200, null, null, "가시 덩굴에 포근히 안겨봐."],
|
||||
[0, "자크", null, 6, "허창", 109, 84, 47, 1, 2009, 2200, null, null, "딱 봐도 잘 싸우게 생기지 않았어?"],
|
||||
[0, "잔나", null, 6, "허창", 91, 46, 115, 1, 2009, 2200, null, null, "바람의 힘을 마음껏 부리세요."],
|
||||
[0, "잭스", null, 0, null, 95, 96, 64, 0, 2009, 2200, null, null, "자, 한번 해보자고!"],
|
||||
[0, "제드", null, 0, null, 95, 112, 55, 0, 2009, 2200, null, null, "보이지 않는 검이 가장 무서운 법."],
|
||||
[0, "제라스", null, 0, null, 85, 50, 113, 0, 2009, 2200, null, null, "난... 해방될 것이다!"],
|
||||
[0, "제리", null, 0, null, 85, 92, 85, 0, 2009, 2200, null, null, "짜릿함 하나면 충분해."],
|
||||
[0, "제이스", null, 5, "낙양", 86, 110, 61, 11, 2009, 2200, null, null, "나는 더 나은 미래를 위해 싸운다."],
|
||||
[0, "조이", null, 14, "한중", 94, 50, 118, 11, 2009, 2200, null, null, "야호! 재밌겠다. 그치?"],
|
||||
[0, "직스", null, 0, null, 89, 64, 104, 0, 2009, 2200, null, null, "뻥~! 이요!"],
|
||||
[0, "진", null, 0, null, 83, 119, 49, 0, 2009, 2200, null, null, "학살의 현장에서 난, 피어오른다. 붉은 여명에 피어나는 꽃처럼."],
|
||||
[0, "질리언", null, 0, null, 91, 56, 104, 0, 2009, 2200, null, null, "그리 할 줄 알고 있었소."],
|
||||
[0, "징크스", null, 0, null, 92, 115, 50, 0, 2009, 2200, null, null, "하핫! 신나게 놀아볼까?"],
|
||||
[0, "초가스", null, 13, "장안", 110, 56, 96, 1, 2009, 2200, null, null, "세계의 종말을 원한다고? 좋아."],
|
||||
[0, "카르마", null, 0, null, 96, 37, 108, 0, 2009, 2200, null, null, "항상 정신을 집중하세요."],
|
||||
[0, "카밀", null, 5, "낙양", 103, 108, 48, 1, 2009, 2200, null, null, "정교함이 없다면 망나니일 뿐."],
|
||||
[0, "카사딘", null, 13, "장안", 98, 66, 98, 1, 2009, 2200, null, null, "힘의 균형은 유지되어야 한다."],
|
||||
[0, "카서스", null, 0, null, 86, 35, 119, 0, 2009, 2200, null, null, "고통, 희열, 그리고 평화. 죽음은 언제나 아름답다."],
|
||||
[0, "카시오페아", null, 8, "양양", 94, 58, 112, 1, 2009, 2200, null, null, "날 막을 해독제는 없을 걸?"],
|
||||
[0, "카이사", null, 13, "장안", 96, 96, 92, 1, 2009, 2200, null, null, "사냥꾼이냐, 사냥감이냐."],
|
||||
[0, "카직스", null, 13, "장안", 89, 110, 47, 1, 2009, 2200, null, null, "변화란 좋은 거야."],
|
||||
[0, "카타리나", null, 8, "양양", 94, 64, 107, 1, 2009, 2200, null, null, "폭력은 모든 것을 해결해주지"],
|
||||
[0, "칼날부리", null, 0, null, 50, 60, 10, 0, 2009, 2200, null, null],
|
||||
[0, "칼리스타", null, 3, "서량", 91, 109, 61, 1, 2009, 2200, null, null, "배신자에겐 죽음 뿐"],
|
||||
[0, "케넨", null, 7, "위례", 96, 61, 103, 1, 2009, 2200, null, null, "눈은 절대 거짓말을 하지 않지."],
|
||||
[0, "케이틀린", null, 5, "낙양", 92, 108, 70, 1, 2009, 2200, null, null, "이 사건은 내가 맡죠."],
|
||||
[0, "케인", null, 0, null, 98, 109, 49, 0, 2009, 2200, null, null, "네 능력을 입증해 볼 테냐? 내가 왜?"],
|
||||
[0, "케일", null, 10, "성도", 98, 61, 107, 1, 2009, 2200, null, null, "전장의 열기 속으로!"],
|
||||
[0, "코그모", null, 13, "장안", 84, 115, 67, 1, 2009, 2200, null, null, "만찬의 시간이다!"],
|
||||
[0, "코르키", null, 12, "오", 94, 61, 104, 1, 2009, 2200, null, null, "상황파악 끝! 최고의 전투기까지 있다고."],
|
||||
[0, "퀸", null, 10, "성도", 92, 102, 62, 1, 2009, 2200, null, null, "정의의 날개로!"],
|
||||
[0, "크산테", null, 11, "장사", 108, 95, 50, 1, 2009, 2200, null, null, "두려움 속에 사느니, 맞서 싸우는 걸 택하리라!"],
|
||||
[0, "큰 어스름 늑대", null, 0, null, 65, 65, 15, 0, 2009, 2200, null, null],
|
||||
[0, "클레드", null, 8, "양양", 98, 98, 55, 1, 2009, 2200, null, null, "용기? 그런 게 왜 필요해? 광기, 그래! 그게 진짜지!"],
|
||||
[0, "키아나", null, 0, null, 96, 108, 48, 0, 2009, 2200, null, null, "너도 내 진가를 알게 되겠군!"],
|
||||
[0, "킨드레드", null, 0, null, 95, 104, 55, 0, 2009, 2200, null, null, "함께가 아니면, 아무것도 아니다."],
|
||||
[0, "타릭", null, 14, "한중", 112, 67, 76, 1, 2009, 2200, null, null, "희망의 빛이 보이십니까? 그게 바로 접니다."],
|
||||
[0, "탈론", null, 8, "양양", 96, 112, 58, 1, 2009, 2200, null, null, "칼에 살고, 칼에 죽는다."],
|
||||
[0, "탈리야", null, 11, "장사", 86, 56, 112, 1, 2009, 2200, null, null, "마법의 베틀로, 바위를 엮어내리라."],
|
||||
[0, "탐 켄치", null, 0, null, 119, 79, 56, 0, 2009, 2200, null, null, "왕이든 폭군이든 마음대로 불러라. 강은 망자의 이름까지 기억해주진 않으니까."],
|
||||
[0, "트런들", null, 4, "북평", 108, 108, 48, 1, 2009, 2200, null, null, "트롤 한 판 해볼까?"],
|
||||
[0, "트리스타나", null, 12, "오", 94, 108, 65, 1, 2009, 2200, null, null, "일단 한 번 쏘고 나면, 또 쏘고 싶을 거예요!"],
|
||||
[0, "트린다미어", null, 4, "북평", 96, 112, 46, 1, 2009, 2200, null, null, "손쉬운 사냥이 되겠군"],
|
||||
[0, "트위스티드 페이트", null, 9, "이도", 91, 70, 100, 1, 2009, 2200, null, null, "행운의 여신이, 내게 미소를 짓는군"],
|
||||
[0, "트위치", null, 6, "허창", 70, 118, 80, 1, 2009, 2200, null, null, "죽거나 죽이거나, 약육강식은 그런 거지!"],
|
||||
[0, "티모", null, 12, "오", 76, 68, 106, 12, 2009, 2200, null, null, "밴들 정찰대원 티모, 보고드립니다!"],
|
||||
[0, "파이크", null, 9, "이도", 94, 106, 64, 1, 2009, 2200, null, null, "모두 빠뜨려주마."],
|
||||
[0, "판테온", null, 14, "한중", 92, 101, 68, 1, 2009, 2200, null, null, "전쟁에서 우린, 다시 태어난다!"],
|
||||
[0, "푸른 파수꾼", null, 0, null, 80, 30, 70, 0, 2009, 2200, null, null],
|
||||
[0, "피들스틱", null, 0, null, 91, 13, 112, 0, 2009, 2200, null, null, "공포…"],
|
||||
[0, "피오라", null, 10, "성도", 104, 110, 52, 1, 2009, 2200, null, null, "겨뤄볼만한 상대 어디 없나?"],
|
||||
[0, "피즈", null, 0, null, 89, 71, 107, 0, 2009, 2200, null, null, "내가 혼내줄게!"],
|
||||
[0, "핏빛 칼날부리", null, 0, null, 60, 60, 60, 0, 2009, 2200, null, null],
|
||||
[0, "하이머딩거", null, 5, "낙양", 88, 59, 107, 12, 2009, 2200, null, null, "정말 현명한 선택이예요!"],
|
||||
[0, "헤카림", null, 3, "서량", 97, 106, 56, 11, 2009, 2200, null, null, "그림자 군도의 위력을 똑똑히 봐라!"],
|
||||
[0, "협곡 바위 게", null, 0, null, 40, 40, 40, 0, 2009, 2200, null, null],
|
||||
[0, "협곡의 전령", null, 1, "업", 85, 85, 85, 11, 2009, 2200, null, null],
|
||||
[0, "화염 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "화학공학 드래곤", null, 2, "건업", 80, 80, 80, 1, 2009, 2200, null, null],
|
||||
[0, "흐웨이", null, 0, null, 81, 58, 111, 0, 2009, 2200, null, null, "화가는 대상과 혼연일체를 이루는 법."]
|
||||
],
|
||||
"general_ex":[
|
||||
|
||||
],
|
||||
"general_neutral":[
|
||||
[0, "Faker", null, 0, null, 120, 120, 120, 0, 1996, 2200, "출세", "무쌍", "모든 길은 저를 통합니다."],
|
||||
[0, "내셔 남작", null, 1, "업", 110, 110, 110, 12, 2009, 2200, null, null],
|
||||
[0, "장로 드래곤", null, 2, "건업", 100, 100, 100, 12, 2009, 2200, null, null]
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user