From 81bb511c0714351844aca42bccd8efa3ad9745b5 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Fri, 24 Aug 2018 01:09:17 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=ED=88=AC=20=EC=8B=9C=EB=AE=AC?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=ED=84=B0=20=ED=8B=80=20=EC=9E=91=EC=84=B1=20?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/b_myBossInfo.php | 10 +- hwe/battle_simulator.php | 179 ++++++++++++++++++++++++++++++++++- hwe/css/battle_simulator.css | 4 + hwe/func_converter.php | 71 ++++---------- hwe/func_gamerule.php | 32 +++++++ hwe/js/battle_simulator.js | 0 6 files changed, 234 insertions(+), 62 deletions(-) create mode 100644 hwe/css/battle_simulator.css create mode 100644 hwe/js/battle_simulator.js diff --git a/hwe/b_myBossInfo.php b/hwe/b_myBossInfo.php index 4a181b40..25e83254 100644 --- a/hwe/b_myBossInfo.php +++ b/hwe/b_myBossInfo.php @@ -452,15 +452,7 @@ echo " "; -$citylevel = []; -$citylevel[1] = "수"; -$citylevel[2] = "진"; -$citylevel[3] = "관"; -$citylevel[4] = "이"; -$citylevel[5] = "소"; -$citylevel[6] = "중"; -$citylevel[7] = "대"; -$citylevel[8] = "특"; +$citylevel = getCityLevelList(); $query = "select city,name,gen1,gen2,gen3,level,region,gen1set,gen2set,gen3set from city where nation='{$nation['nation']}' order by region,level desc,binary(name)"; // 도시 이름 목록 $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); diff --git a/hwe/battle_simulator.php b/hwe/battle_simulator.php index e49abe68..b43f51d4 100644 --- a/hwe/battle_simulator.php +++ b/hwe/battle_simulator.php @@ -1,2 +1,179 @@ setReadOnly(); +$db = DB::db(); +$gameStor = KVStorage::getStorage($db, 'game_env'); + +$startYear = $gameStor->getValue('startyear'); + +?> + + + +<?=UniqueConst::$serverName?>: 전투 시뮬레이터 + + + + + + + + + + + + + + + +
+
+
+ 전역 설정 +
+
+
+
+
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+ 출병국 설정 +
+
+
+
+ 기술 +
+ +
+ 등급 +
+
+
+
+ 국가 성향 +
+ +
+
+
+ 도시 규모 +
+ +
+ 수도 +
+
+ + +
+
+
+
+
+
+
+
+ 수비국 설정 +
+
+
+
+ 기술 +
+ +
+ 등급 +
+
+
+
+ 국가 성향 +
+ +
+
+
+ 도시 규모 +
+ +
+ 수도 +
+
+ + +
+
+
+
+ 수비 +
+ +
+ 성벽 +
+ +
+
+
+
+
+
+ + \ No newline at end of file diff --git a/hwe/css/battle_simulator.css b/hwe/css/battle_simulator.css new file mode 100644 index 00000000..65ea0a7c --- /dev/null +++ b/hwe/css/battle_simulator.css @@ -0,0 +1,4 @@ +#container{ + width:1024px; + margin:auto; +} \ No newline at end of file diff --git a/hwe/func_converter.php b/hwe/func_converter.php index 563d0061..78689a74 100644 --- a/hwe/func_converter.php +++ b/hwe/func_converter.php @@ -8,25 +8,14 @@ namespace sammo; * Side effect 없이 값의 변환만을 수행하는 함수들의 모음. */ - function NationCharCall($call) { - switch($call) { - case '명가': $type =13; break; - case '음양가': $type =12; break; - case '종횡가': $type =11; break; - case '불가': $type =10; break; - case '도적': $type = 9; break; - case '오두미도':$type = 8; break; - case '태평도': $type = 7; break; - case '도가': $type = 6; break; - case '묵가': $type = 5; break; - case '덕가': $type = 4; break; - case '병가': $type = 3; break; - case '유가': $type = 2; break; - case '법가': $type = 1; break; - default: $type = 0; break; + static $invTable = []; + if(!$invTable){ + foreach(getNationTypeList() as $typeID => [$name, $pros, $cons]){ + $invTable[$name] = $typeID; + } } - return $type; + return $invTable[$name]??0; } function CharCall($call) { @@ -251,24 +240,17 @@ function getSpecialInfo(?int $type):?string{ return $infoText[$type][1]??null; } -function getNationType($type) { - switch($type) { - case 13: $call = '명 가'; break; - case 12: $call = '음 양 가'; break; - case 11: $call = '종 횡 가'; break; - case 10: $call = '불 가'; break; - case 9: $call = '도 적'; break; - case 8: $call = '오 두 미 도'; break; - case 7: $call = '태 평 도'; break; - case 6: $call = '도 가'; break; - case 5: $call = '묵 가'; break; - case 4: $call = '덕 가'; break; - case 3: $call = '병 가'; break; - case 2: $call = '유 가'; break; - case 1: $call = '법 가'; break; - case 0: $call = '-'; break; +function getNationType(int $type) { + static $cache = []; + if(\key_exists($type, $cache)){ + return $cache[$type]; } - return $call; + + $text = getNationTypeList()[$type][0]??'-'; + $text = join(' ', StringUtil::splitString($text)); + $cache[$type] = $text; + + return $text; } @@ -287,24 +269,9 @@ function getConnect($con) { return $conname; } -function getNationType2($type) { - switch($type) { - case 13: $call = '기술↑ 인구↑ 쌀수입↓ 수성↓'; break; - case 12: $call = '내정↑ 인구↑ 기술↓ 전략↓'; break; - case 11: $call = '전략↑ 수성↑ 금수입↓ 내정↓'; break; - case 10: $call = '민심↑ 수성↑ 금수입↓'; break; - case 9: $call = '계략↑ 금수입↓ 치안↓ 민심↓'; break; - case 8: $call = '쌀수입↑ 인구↑ 기술↓ 수성↓ 내정↓'; break; - case 7: $call = '인구↑ 민심↑ 기술↓ 수성↓'; break; - case 6: $call = '인구↑ 기술↓ 치안↓'; break; - case 5: $call = '수성↑ 기술↓'; break; - case 4: $call = '치안↑인구↑ 민심↑ 쌀수입↓ 수성↓'; break; - case 3: $call = '기술↑ 수성↑ 인구↓ 민심↓'; break; - case 2: $call = '내정↑ 민심↑ 쌀수입↓'; break; - case 1: $call = '금수입↑ 치안↑ 인구↓ 민심↓'; break; - case 0: $call = '-'; break; - } - return $call; +function getNationType2(int $type) { + [$name, $pros, $cons] = getNationTypeList()[$type]??['-', '', '']; + return "{$pros} {$cons}"; } function getLevel($level, $nlevel=8) { diff --git a/hwe/func_gamerule.php b/hwe/func_gamerule.php index dd173aae..06f7d18b 100644 --- a/hwe/func_gamerule.php +++ b/hwe/func_gamerule.php @@ -6,6 +6,38 @@ namespace sammo; */ +function getNationTypeList():array{ + $table = [ + 13=>['명가', '기술↑ 인구↑', '쌀수입↓ 수성↓'], + 12=>['음양가', '내정↑ 인구↑', '기술↓ 전략↓'], + 11=>['종횡가', '전략↑ 수성↑', '금수입↓ 내정↓'], + 10=>['불가', '민심↑ 수성↑', '금수입↓'], + 9=>['도적', '계략↑', '금수입↓ 치안↓ 민심↓'], + 8=>['오두미도', '쌀수입↑ 인구↑', '기술↓ 수성↓ 내정↓'], + 7=>['태평도', '인구↑ 민심↑', '기술↓ 수성↓'], + 6=>['도가', '인구↑', '기술↓ 치안↓'], + 5=>['묵가', '수성↑', '기술↓'], + 4=>['덕가', '치안↑인구↑ 민심↑', '쌀수입↓ 수성↓'], + 3=>['병가', '기술↑ 수성↑', '인구↓ 민심↓'], + 2=>['유가', '내정↑ 민심↑', '쌀수입↓'], + 1=>['법가', '금수입↑ 치안↑', '인구↓ 민심↓'], + ]; + return $table; +} + +function getCityLevelList():array{ + return [ + 1 => '수', + 2 => '진', + 3 => '관', + 4 => '이', + 5 => '소', + 6 => '중', + 7 => '대', + 8 => '특' + ]; +} + /** * 게임 내부에 사용하는 유틸리티 함수들을 분리 */ diff --git a/hwe/js/battle_simulator.js b/hwe/js/battle_simulator.js new file mode 100644 index 00000000..e69de29b