병종 테이블에 '병종 타입' 지정, 턴 커맨드를 json array로 변경

This commit is contained in:
2018-07-13 00:12:12 +09:00
parent 02f2209e8f
commit 0ca7a8ab8a
7 changed files with 201 additions and 180 deletions
+4 -4
View File
@@ -93,7 +93,7 @@ switch($btn) {
case "강제 사망":
$date = date('Y-m-d H:i:s');
$db->update('general', [
'turn0'=>0,
'turn0'=>EncodeCommand(0, 0, 0, 0),
'killturn'=>0,
'turntime'=>$date,
], '`no` IN %li', $genlist);
@@ -314,13 +314,13 @@ switch($btn) {
break;
case "하야입력":
$db->update('general', [
'turn0'=>'00000000000045'
'turn0'=>EncodeCommand(0, 0, 0, 45)
], '`no` IN %li', $genlist);
break;
case "방랑해산":
$db->update('general', [
'turn0'=>'00000000000047',
'turn1'=>'00000000000056'
'turn0'=>EncodeCommand(0, 0, 0, 47),
'turn1'=>EncodeCommand(0, 0, 0, 56)
], '`no` IN %li', $genlist);
break;
case "NPC설정":
+1 -1
View File
@@ -52,7 +52,7 @@ switch($btn) {
break;
case "강제 사망":
$date = date('Y-m-d H:i:s');
DB::db()->query('update general set turn0=0,killturn=0,turntime=%s where no IN %li',$date, $genlist);
DB::db()->query('update general set turn0=%s,killturn=0,turntime=%s where no IN %li',EncodeCommand(0, 0, 0, 0),$date, $genlist);
break;
case "메세지 전달":
//TODO:새 갠메 시스템으로 변경
+6 -15
View File
@@ -628,7 +628,7 @@ function updateCommand($no, $type=0) {
update general set
turn0=turn1,turn1=turn2,turn2=turn3,turn3=turn4,turn4=turn5,turn5=turn6,turn6=turn7,turn7=turn8,turn8=turn9,
turn9=turn10,turn10=turn11,turn11=turn12,turn12=turn13,turn13=turn14,turn14=turn15,turn15=turn16,turn16=turn17,
turn17=turn18,turn18=turn19,turn19=turn20,turn20=turn21,turn21=turn22,turn22=turn23,turn23='00000000000000'
turn17=turn18,turn18=turn19,turn19=turn20,turn20=turn21,turn21=turn22,turn22=turn23,turn23='".EncodeCommand(0, 0, 0, 0)."'
where no='{$general['no']}'
";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -642,7 +642,7 @@ update nation set
{$turn}4={$turn}5,{$turn}5={$turn}6,
{$turn}6={$turn}7,{$turn}7={$turn}8,
{$turn}8={$turn}9,{$turn}9={$turn}10,
{$turn}10={$turn}11,{$turn}11='00000000000099'
{$turn}10={$turn}11,{$turn}11='".EncodeCommand(0, 0, 0, 99)."'
where nation='{$general['nation']}'
";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -672,7 +672,7 @@ turn9=turn8,turn8=turn7,
turn7=turn6,turn6=turn5,
turn5=turn4,turn4=turn3,
turn3=turn2,turn2=turn1,
turn1=turn0,turn0='00000000000000'
turn1=turn0,turn0='".EncodeCommand(0, 0, 0, 0)."'
where no='$no'
";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -685,7 +685,7 @@ update nation set
{$turn}7={$turn}6,{$turn}6={$turn}5,
{$turn}5={$turn}4,{$turn}4={$turn}3,
{$turn}3={$turn}2,{$turn}2={$turn}1,
{$turn}1={$turn}0,{$turn}0='00000000000099'
{$turn}1={$turn}0,{$turn}0='".EncodeCommand(0, 0, 0, 99)."'
where nation='{$general['nation']}'
";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -772,19 +772,10 @@ parent.moveProcessing(<?=$commandtype?>, <?=Json::encode($turn)?>);
function EncodeCommand($fourth, $third, $double, $command) {
$str = StringUtil::padStringAlignRight((string)$fourth, 4, "0");
$str .= StringUtil::padStringAlignRight((string)$third, 4, "0");
$str .= StringUtil::padStringAlignRight((string)$double, 4, "0");
$str .= StringUtil::padStringAlignRight((string)$command, 2, "0");
return $str;
return Json::encode($command, $double, $third, $fourth);
}
function DecodeCommand($str) {
$command = [];
$command[3] = (int)(substr($str, 0, 4));
$command[2] = (int)(substr($str, 4, 4));
$command[1] = (int)(substr($str, 8, 4));
$command[0] = (int)(substr($str, 12, 2));
return $command;
return Json::decode($str);
}
+5 -3
View File
@@ -107,6 +107,8 @@ function SetCrew($no, $personal, $gold, $leader, $genType, $tech, $region, $city
}
}
switch($sel) {
case 0:
$type = 0; //보병
@@ -181,7 +183,7 @@ function processAI($no) {
$general = MYDB_fetch_array($result);
// 입력된 턴이 있으면 그것 실행
if($general['turn0'] != "00000000000000") {
if($general['turn0'] != EncodeCommand(0, 0, 0, 0)) {
return;
}
@@ -824,10 +826,10 @@ function processAI($no) {
}
switch($command) {
case "00000000000001": //내정
case EncodeCommand(0, 0, 0, 1): //내정
SetDevelop($genType, $general['no'], $general['city'], $nation['tech']);
return;
case "00000000000011": //징병
case EncodeCommand(0, 0, 0, 11): //징병
$query = "select region from city where nation='{$general['nation']}' order by rand() limit 0,1";
$result = MYDB_query($query, $connect) or Error("processAI16 ".MYDB_error($connect),"");
$selRegion = MYDB_fetch_array($result);
+62 -37
View File
@@ -6,48 +6,57 @@ class GameUnitConstBase{
}
const T_CASTLE = 0;
const T_FOOTMAN = 1;
const T_ARCHER = 2;
const T_CAVALRY = 3;
const T_WIZARD = 4;
const T_SIEGE = 5;
const T_MISC = 6;
protected static $constID = null;
protected static $constName = null;
protected static $constCity = null;
protected static $constRegion = null;
protected static $constType = null;
protected static $_buildData = [
[ 0, '보병', 100, 150, 7, 10, 9, 9, 0, 0, true, ['표준적인 보병입니다.','보병은 방어특화입니다.']],
[ 1, '청주병', 100, 200, 7, 10, 10, 11, 1, '중원', true, ['저렴하고 튼튼합니다.']],
[ 2, '수병', 150, 150, 7, 10, 11, 10, 1, '오월', true, ['저렴하고 강력합니다.']],
[ 3, '자객병', 100, 150, 7, 20, 10, 10, 2, '저', true, ['은밀하고 날쌥니다.']],
[ 4, '근위병', 150, 200, 7, 10, 12, 12, 2, '낙양', true, ['최강의 보병입니다.']],
[ 5, '등갑병', 100, 250, 7, 5, 13, 10, 1, '남중', true, ['등갑을 두른 보병입니다.']],
[ 0, T_FOOTMAN, '보병', 100, 150, 7, 10, 9, 9, 0, 0, true, ['표준적인 보병입니다.','보병은 방어특화입니다.']],
[ 1, T_FOOTMAN, '청주병', 100, 200, 7, 10, 10, 11, 1, '중원', true, ['저렴하고 튼튼합니다.']],
[ 2, T_FOOTMAN, '수병', 150, 150, 7, 10, 11, 10, 1, '오월', true, ['저렴하고 강력합니다.']],
[ 3, T_FOOTMAN, '자객병', 100, 150, 7, 20, 10, 10, 2, '저', true, ['은밀하고 날쌥니다.']],
[ 4, T_FOOTMAN, '근위병', 150, 200, 7, 10, 12, 12, 2, '낙양', true, ['최강의 보병입니다.']],
[ 5, T_FOOTMAN, '등갑병', 100, 250, 7, 5, 13, 10, 1, '남중', true, ['등갑을 두른 보병입니다.']],
[10, '궁병', 100, 100, 7, 20, 10, 10, 0, 0, true, ['표준적인 궁병입니다.','궁병은 회피특화입니다.']],
[11, '궁기병', 100, 100, 8, 30, 11, 12, 1, '동이', true, ['말을 타고 잘 피합니다.']],
[12, '연노병', 150, 100, 8, 20, 12, 11, 1, '서촉', true, ['화살을 연사합니다.']],
[13, '강궁병', 150, 150, 7, 20, 13, 13, 2, '양양', true, ['강건한 궁병입니다.']],
[14, '석궁병', 200, 100, 7, 20, 13, 13, 2, '건업', true, ['강력한 화살을 쏩니다.']],
[10, T_ARCHER, '궁병', 100, 100, 7, 20, 10, 10, 0, 0, true, ['표준적인 궁병입니다.','궁병은 회피특화입니다.']],
[11, T_ARCHER, '궁기병', 100, 100, 8, 30, 11, 12, 1, '동이', true, ['말을 타고 잘 피합니다.']],
[12, T_ARCHER, '연노병', 150, 100, 8, 20, 12, 11, 1, '서촉', true, ['화살을 연사합니다.']],
[13, T_ARCHER, '강궁병', 150, 150, 7, 20, 13, 13, 2, '양양', true, ['강건한 궁병입니다.']],
[14, T_ARCHER, '석궁병', 200, 100, 7, 20, 13, 13, 2, '건업', true, ['강력한 화살을 쏩니다.']],
[20, '기병', 150, 100, 7, 5, 11, 11, 0, 0, true, ['표준적인 기병입니다.','기병은 공격특화입니다.']],
[21, '백마병', 200, 100, 7, 5, 12, 13, 1, '하북', true, ['백마의 위용을 보여줍니다.']],
[22, '중장기병', 150, 150, 7, 5, 13, 12, 1, '서북', true, ['갑주를 두른 기병입니다.']],
[23, '돌격기병', 200, 100, 8, 5, 13, 11, 2,'흉노', true, ['저돌적으로 공격합니다.']],
[24, '철기병', 100, 200, 7, 5, 11, 13, 2, '강', true, ['철갑을 두른 기병입니다.']],
[25, '수렵기병', 150, 100, 8, 15, 12, 12, 2, '산월', true, ['날쎄고 빠른 기병입니다.']],
[26, '맹수병', 250, 200, 6, 0, 16, 16, 2, '남만', true, ['어느 누구보다 강력합니다.']],
[27, '호표기병', 200, 150, 7, 5, 14, 14, 2, '허창', true, ['정예 기병입니다.']],
[20, T_CAVALRY, '기병', 150, 100, 7, 5, 11, 11, 0, 0, true, ['표준적인 기병입니다.','기병은 공격특화입니다.']],
[21, T_CAVALRY, '백마병', 200, 100, 7, 5, 12, 13, 1, '하북', true, ['백마의 위용을 보여줍니다.']],
[22, T_CAVALRY, '중장기병', 150, 150, 7, 5, 13, 12, 1, '서북', true, ['갑주를 두른 기병입니다.']],
[23, T_CAVALRY, '돌격기병', 200, 100, 8, 5, 13, 11, 2,'흉노', true, ['저돌적으로 공격합니다.']],
[24, T_CAVALRY, '철기병', 100, 200, 7, 5, 11, 13, 2, '강', true, ['철갑을 두른 기병입니다.']],
[25, T_CAVALRY, '수렵기병', 150, 100, 8, 15, 12, 12, 2, '산월', true, ['날쎄고 빠른 기병입니다.']],
[26, T_CAVALRY, '맹수병', 250, 200, 6, 0, 16, 16, 2, '남만', true, ['어느 누구보다 강력합니다.']],
[27, T_CAVALRY, '호표기병', 200, 150, 7, 5, 14, 14, 2, '허창', true, ['정예 기병입니다.']],
[30, '귀병', 80, 80, 7, 5, 9, 9, 0, 0, true, ['계략을 사용하는 병종입니다.']],
[31, '신귀병', 80, 80, 7, 20, 10, 10, 1,'초', true, ['신출귀몰한 귀병입니다.']],
[32, '백귀병', 80, 130, 7, 5, 9, 11, 2, '오환', true, ['저렴하고 튼튼합니다.']],
[33, '흑귀병', 130, 80, 7, 5, 11, 9, 2, '왜', true, ['저렴하고 강력합니다.']],
[34, '악귀병', 130, 130, 7, 0, 12, 12, 2, '장안', true, ['백병전에도 능숙합니다.']],
[35, '남귀병', 60, 60, 7, 10, 8, 8, 0, 1000, false, ['전투를 포기하고 계략에 몰두합니다.']],
[36, '황귀병', 110, 110, 7, 0, 13, 10, 2, '낙양', true, ['고도로 훈련된 귀병입니다.']],
[37, '천귀병', 80, 130, 7, 15, 11, 12, 2, '성도', true, ['갑주를 두른 귀병입니다.']],
[38, '마귀병', 130, 80, 7, 15, 12, 11, 2, '업', true, ['날카로운 무기를 가진 귀병입니다.']],
[30, T_WIZARD, '귀병', 80, 80, 7, 5, 9, 9, 0, 0, true, ['계략을 사용하는 병종입니다.']],
[31, T_WIZARD, '신귀병', 80, 80, 7, 20, 10, 10, 1,'초', true, ['신출귀몰한 귀병입니다.']],
[32, T_WIZARD, '백귀병', 80, 130, 7, 5, 9, 11, 2, '오환', true, ['저렴하고 튼튼합니다.']],
[33, T_WIZARD, '흑귀병', 130, 80, 7, 5, 11, 9, 2, '왜', true, ['저렴하고 강력합니다.']],
[34, T_WIZARD, '악귀병', 130, 130, 7, 0, 12, 12, 2, '장안', true, ['백병전에도 능숙합니다.']],
[35, T_WIZARD, '남귀병', 60, 60, 7, 10, 8, 8, 0, 1000, false, ['전투를 포기하고 계략에 몰두합니다.']],
[36, T_WIZARD, '황귀병', 110, 110, 7, 0, 13, 10, 2, '낙양', true, ['고도로 훈련된 귀병입니다.']],
[37, T_WIZARD, '천귀병', 80, 130, 7, 15, 11, 12, 2, '성도', true, ['갑주를 두른 귀병입니다.']],
[38, T_WIZARD, '마귀병', 130, 80, 7, 15, 12, 11, 2, '업', true, ['날카로운 무기를 가진 귀병입니다.']],
[40, '정란', 100, 100, 6, 0, 15, 5, 0, 0, false, ['높은 구조물 위에서 공격합니다.']],
[41, '충차', 150, 100, 6, 0, 20, 5, 0, 1000, false, ['엄청난 위력으로 성벽을 부수어버립니다.']],
[42, '벽력거', 200, 100, 6, 0, 25, 5, 2, '업', true, ['상대에게 돌덩이를 날립니다.']],
[43, '목우', 50, 200, 5, 0, 30, 5, 2, '성도', true, ['상대를 저지하는 특수병기입니다.']]
[40, T_SIEGE, '정란', 100, 100, 6, 0, 15, 5, 0, 0, false, ['높은 구조물 위에서 공격합니다.']],
[41, T_SIEGE, '충차', 150, 100, 6, 0, 20, 5, 0, 1000, false, ['엄청난 위력으로 성벽을 부수어버립니다.']],
[42, T_SIEGE, '벽력거', 200, 100, 6, 0, 25, 5, 2, '업', true, ['상대에게 돌덩이를 날립니다.']],
[43, T_SIEGE, '목우', 50, 200, 5, 0, 30, 5, 2, '성도', true, ['상대를 저지하는 특수병기입니다.']]
];
/**
@@ -68,19 +77,27 @@ class GameUnitConstBase{
return static::$constName[$name];
}
public static function byCity(int $city): GameUnitDetail{
public static function byCity(int $city): array{
static::_generate();
return static::$constCity[$city];
}
public static function byRegion(int $region): GameUnitDetail{
public static function byRegion(int $region): array{
static::_generate();
return static::$constRegion[$region];
}
public static function byType(int $type): array{
if(!key_exists($type, static::$constType)){
return [];
}
return static::$constType[$type];
}
protected static function _generate(){
if(static::$constID || static::$constName || static::$constCity || static::$constRegion){
if(static::$constID || static::$constName || static::$constCity || static::$constRegion || static::$constType){
return;
}
@@ -88,10 +105,12 @@ class GameUnitConstBase{
$constName = [];
$constCity = [];
$constRegion = [];
$constType = [];
foreach(static::$_buildData as $rawUnit){
list(
[
$id,
$armType,
$name,
$attack,
$defence,
@@ -103,7 +122,7 @@ class GameUnitConstBase{
$recruitCondition,
$recruitFirst,
$info
) = $rawUnit;
] = $rawUnit;
//0인 경우는 기술치이다.
if(!$recruitFirst){
@@ -123,6 +142,7 @@ class GameUnitConstBase{
$unit = new GameUnitDetail(
$id,
$armType,
$name,
$attack,
$defence,
@@ -138,6 +158,11 @@ class GameUnitConstBase{
$constID[$id] = $unit;
$constName[$name] = $unit;
if(!key_exists($armType, $constType)){
$constType[$armType] = [];
}
$constType[$armType][] = $unit;
if($recruitType == 1){
if(!key_exists($recruitCondition, $constRegion)){
$constRegion[$recruitCondition] = [];
+3
View File
@@ -3,6 +3,7 @@ namespace sammo;
class GameUnitDetail{
public $id;
public $armType;
public $name;
public $attack;
public $defence;
@@ -17,6 +18,7 @@ class GameUnitDetail{
public function __construct(
int $id,
int $armType,
string $name,
int $attack,
int $defence,
@@ -30,6 +32,7 @@ class GameUnitDetail{
array $info
){
$this->name = $name;
$this->armType = $armType;
$this->attack = $attack;
$this->defence = $defence;
$this->speed = $speed;
+120 -120
View File
@@ -124,30 +124,30 @@ CREATE TABLE `general` (
`betgold` INT(8) NULL DEFAULT '0',
`betwingold` INT(8) NULL DEFAULT '0',
`term` INT(4) NULL DEFAULT '0',
`turn0` CHAR(14) NULL DEFAULT '00000000000000',
`turn1` CHAR(14) NULL DEFAULT '00000000000000',
`turn2` CHAR(14) NULL DEFAULT '00000000000000',
`turn3` CHAR(14) NULL DEFAULT '00000000000000',
`turn4` CHAR(14) NULL DEFAULT '00000000000000',
`turn5` CHAR(14) NULL DEFAULT '00000000000000',
`turn6` CHAR(14) NULL DEFAULT '00000000000000',
`turn7` CHAR(14) NULL DEFAULT '00000000000000',
`turn8` CHAR(14) NULL DEFAULT '00000000000000',
`turn9` CHAR(14) NULL DEFAULT '00000000000000',
`turn10` CHAR(14) NULL DEFAULT '00000000000000',
`turn11` CHAR(14) NULL DEFAULT '00000000000000',
`turn12` CHAR(14) NULL DEFAULT '00000000000000',
`turn13` CHAR(14) NULL DEFAULT '00000000000000',
`turn14` CHAR(14) NULL DEFAULT '00000000000000',
`turn15` CHAR(14) NULL DEFAULT '00000000000000',
`turn16` CHAR(14) NULL DEFAULT '00000000000000',
`turn17` CHAR(14) NULL DEFAULT '00000000000000',
`turn18` CHAR(14) NULL DEFAULT '00000000000000',
`turn19` CHAR(14) NULL DEFAULT '00000000000000',
`turn20` CHAR(14) NULL DEFAULT '00000000000000',
`turn21` CHAR(14) NULL DEFAULT '00000000000000',
`turn22` CHAR(14) NULL DEFAULT '00000000000000',
`turn23` CHAR(14) NULL DEFAULT '00000000000000',
`turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn12` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn13` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn14` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn15` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn16` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn17` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn18` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn19` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn20` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn21` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn22` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`turn23` VARCHAR(30) NULL DEFAULT '[0,0,0,0]',
`recturn` CHAR(14) NULL DEFAULT '',
`resturn` CHAR(14) NULL DEFAULT '',
PRIMARY KEY (`no`),
@@ -330,106 +330,106 @@ CREATE TABLE `nation` (
`l11term` INT(4) NULL DEFAULT '0',
`l10term` INT(4) NULL DEFAULT '0',
`l9term` INT(4) NULL DEFAULT '0',
`l12turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l11turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l10turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l9turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l12turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l12turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l11turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l10turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l9turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8term` INT(4) NULL DEFAULT '0',
`l7term` INT(4) NULL DEFAULT '0',
`l6term` INT(4) NULL DEFAULT '0',
`l5term` INT(4) NULL DEFAULT '0',
`l8turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn0` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn1` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn2` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn3` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn4` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn5` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn6` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn7` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn8` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn9` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn10` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l7turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l6turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l5turn11` CHAR(14) NULL DEFAULT '00000000000099',
`l8turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn0` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn1` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn2` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn3` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn4` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn5` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn6` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn7` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn8` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn9` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn10` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l8turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l7turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l6turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`l5turn11` VARCHAR(30) NULL DEFAULT '[0,0,0,99]',
`aux` TEXT NOT NULL DEFAULT '{}',
PRIMARY KEY (`nation`)
)