diff --git a/twe/processing.php b/twe/processing.php
index 63049316..c3397842 100644
--- a/twe/processing.php
+++ b/twe/processing.php
@@ -240,11 +240,6 @@ function command_11($connect, $turn, $command) {
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
- //현재 도시
- $query = "select city,region from city where city='{$me['city']}'";
- $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
- $curCity = MYDB_fetch_array($result);
-
$query = "select level,tech from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error("process53 ".MYDB_error($connect),"");
$nation = MYDB_fetch_array($result);
@@ -257,80 +252,14 @@ function command_11($connect, $turn, $command) {
$lbonus = 0;
}
- $explain = GetExplain();
+ $ownCities = [];
+ $ownRegions = [];
+ $relativeYear = $admin['year'] - $admin['startyear'];
+ $tech = $nation['tech'];
- if($admin['year'] < $admin['startyear']+3) {
- //그 국가에서 그 병종 가능한지
- $valid[0] = 1; $color[0] = $_basecolor2;
- $valid[10] = 1; $color[10] = $_basecolor2;
- $valid[20] = 1; $color[20] = $_basecolor2;
- $valid[30] = 1; $color[30] = $_basecolor2;
- $valid[40] = 1; $color[40] = "red"; // 정란
- $valid[41] = 1; $color[41] = "red"; // 충차
- } else {
- // 아국 도시 구분
- $query = "select city,level,region from city where nation='{$me['nation']}'";
- $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
- $citycount = MYDB_num_rows($result);
-
- for($i=0; $i < $citycount; $i++) {
- $city = MYDB_fetch_array($result);
- // 기술 1000 이상부터 지역병
- if($nation['tech'] >= 1000) {
- $myregion[$city['region']] = 1;
- }
- // 기술 2000 이상부터 이민족병
- if($city['level'] == 4 && $nation['tech'] >= 2000) {
- $mycity[$city['city']] = 1;
- }
- // 기술 3000 이상부터 특수병
- if($city['level'] == 8 && $nation['tech'] >= 3000) {
- $mycity[$city['city']] = 1;
- }
- }
-
- //그 국가에서 그 병종 가능한지
- $valid[0] = 1; $color[0] = $_basecolor2;
- $valid[1] = $myregion[2]; $color[1] = "limegreen"; // 청주병(중원)
- $valid[2] = $myregion[7]; $color[2] = "limegreen"; // 수병(오월)
- $valid[3] = $mycity[64]; $color[3] = "limegreen"; // 자객병(저)
- $valid[4] = $mycity[3]; $color[4] = "limegreen"; // 근위병(낙양)
- $valid[5] = $myregion[5]; $color[5] = "limegreen"; // 등갑병(남중)
- $valid[10] = 1; $color[10] = $_basecolor2;
- $valid[11] = $myregion[8]; $color[11] = "limegreen"; // 궁기병(동이)
- $valid[12] = $myregion[4]; $color[12] = "limegreen"; // 연노병(서촉)
- $valid[13] = $mycity[6]; $color[13] = "limegreen"; // 강궁병(양양)
- $valid[14] = $mycity[7]; $color[14] = "limegreen"; // 석궁병(건업)
- $valid[20] = 1; $color[20] = $_basecolor2;
- $valid[21] = $myregion[1]; $color[21] = "limegreen"; // 백마병(하북)
- $valid[22] = $myregion[3]; $color[22] = "limegreen"; // 중장기병(서북)
- $valid[23] = $mycity[65]; $color[23] = "limegreen"; // 돌격기병(흉노)
- $valid[24] = $mycity[63]; $color[24] = "limegreen"; // 철기병(강)
- $valid[25] = $mycity[67]; $color[25] = "limegreen"; // 수렵기병(산월)
- $valid[26] = $mycity[66]; $color[26] = "limegreen"; // 맹수병(남만)
- $valid[27] = $mycity[2]; $color[27] = "limegreen"; // 호표기병(허창)
- $valid[30] = 1; $color[30] = $_basecolor2;
- $valid[31] = $myregion[6]; $color[31] = "limegreen"; // 신귀병(초)
- $valid[32] = $mycity[68]; $color[32] = "limegreen"; // 백귀병(오환)
- $valid[33] = $mycity[69]; $color[33] = "limegreen"; // 흑귀병(왜)
- $valid[34] = $mycity[4]; $color[34] = "limegreen"; // 악귀병(장안)
- $valid[35] = 1; $color[35] = $_basecolor2;// 남귀병
- $valid[36] = $mycity[3]; $color[36] = "limegreen"; // 황귀병(낙양)
- $valid[37] = $mycity[5]; $color[37] = "limegreen"; // 천귀병(성도)
- $valid[38] = $mycity[1]; $color[38] = "limegreen"; // 마귀병(업)
- $valid[40] = 1; $color[40] = $_basecolor2;// 정란
- $valid[41] = 1; $color[41] = $_basecolor2;// 충차
- $valid[42] = $mycity[1]; $color[42] = "limegreen"; // 벽력거(업)
- $valid[43] = $mycity[5]; $color[43] = "limegreen"; // 목우(성도)
-
- // 남귀병은 기술1등급부터
- if($nation['tech'] < 1000) {
- $valid[35] = 0;
- }
- // 충차는 기술1등급부터
- if($nation['tech'] < 1000) {
- $valid[41] = 0;
- }
+ foreach(DB::db()->query('SELECT city, region from city where nation = %i', $me['nation']) as $city){
+ $ownCities[$city['city']] = 1;
+ $ownRegions[$city['region']] = 1;
}
$leader = floor($me['leader'] * (100 - $me['injury'])/100) + getHorseEff($me['horse']) + $lbonus;
@@ -406,254 +335,97 @@ function calc(cost, formnum) {
특징 |
";
- echo "
- | 보병 계열 |
";
-
- for($i=0; $i <= 5; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 보병, 징병
- if($me['special2'] == 50) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ foreach(GameUnitConst::all() as $i=>$unit) {
+ if($i == 0){
+ echo '| 보병 계열 |
';
}
- }
-
- echo "
- | 궁병 계열 |
";
-
- for($i=10; $i <= 14; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 궁병, 징병
- if($me['special2'] == 51) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 10){
+ echo '| 궁병 계열 |
';
}
- }
-
- echo "
- | 기병 계열 |
";
-
- for($i=20; $i <= 27; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 기병, 징병
- if($me['special2'] == 52) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 20){
+ echo '| 기병 계열 |
';
}
- }
-
- echo "
- | 귀병 계열 |
";
-
- for($i=30; $i <= 38; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 귀병, 징병
- if($me['special2'] == 40) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 30){
+ echo '| 귀병 계열 |
';
}
- }
-
- echo "
- | 차 계열 |
";
-
- for($i=40; $i <= 43; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 공성, 징병
- if($me['special2'] == 53) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 40){
+ echo '| 차병 계열 |
';
}
+
+ if(!$unit->isValid($ownCities, $ownRegions, $relativeYear, $tech)){
+ continue; //TODO: 불가능한 병종도 보여줄 필요가 있음.
+ }
+
+ if($unit->recruitType == 0){
+ $l = 'green';
+ }
+ else{
+ $l = 'limegreen';
+ }
+
+ $baseRice = $unit->rice * $cost;
+ $baseCost = $unit->cost * $cost;
+ $baseCost = CharCost($baseCost, $me['personal']);
+
+ $unitBaseType = intdiv($this->id, 10);
+ if($me['special2'] == 50 && $unitBaseType == 0){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 51 && $unitBaseType == 1){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 52 && $unitBaseType == 2){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 53 && $unitBaseType == 3){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 54 && $unitBaseType == 4){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 72) {
+ $baseCost *= 0.5;
+ }
+
+ $name = $this->name;
+ $att = $this->attack + $abil;
+ $def = $this->defence + $abil;
+ $spd = $this->speed;
+ $avd = $this->avoid;
+ $weapImage = "{$images}/weap{$i}.jpg";
+ if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
+
+ $baseRiceShort = round($baseRice, 1);
+ $baseCostShort = round($baseCost, 1);
+
+ $info = join('
', $this->info);
+
+ echo "
+
+ |
+ {$name} |
+ {$att} |
+ {$def} |
+ {$spd} |
+ {$avd} |
+ {$baseRiceShort} |
+ {$baseCostShort} |
+
+ $info |
+
";
}
echo "
@@ -669,14 +441,9 @@ function command_12($connect, $turn, $command) {
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
- $query = "select no,nation,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where owner='{$_SESSION['userID']}'";
- $result = MYDB_query($query, $connect) or Error("command_12 ".MYDB_error($connect),"");
- $me = MYDB_fetch_array($result);
-
- //현재 도시
- $query = "select city,region from city where city='{$me['city']}'";
+ $query = "select no,nation,level,personal,special2,level,city,crew,horse,injury,leader,crewtype,gold from general where owner='{$_SESSION['userID']}'";
$result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
- $curCity = MYDB_fetch_array($result);
+ $me = MYDB_fetch_array($result);
$query = "select level,tech from nation where nation='{$me['nation']}'";
$result = MYDB_query($query, $connect) or Error("process53 ".MYDB_error($connect),"");
@@ -690,80 +457,14 @@ function command_12($connect, $turn, $command) {
$lbonus = 0;
}
- $explain = GetExplain();
+ $ownCities = [];
+ $ownRegions = [];
+ $relativeYear = $admin['year'] - $admin['startyear'];
+ $tech = $nation['tech'];
- if($admin['year'] < $admin['startyear']+3) {
- //그 국가에서 그 병종 가능한지
- $valid[0] = 1; $color[0] = $_basecolor2;
- $valid[10] = 1; $color[10] = $_basecolor2;
- $valid[20] = 1; $color[20] = $_basecolor2;
- $valid[30] = 1; $color[30] = $_basecolor2;
- $valid[40] = 1; $color[40] = "red"; // 정란
- $valid[41] = 1; $color[41] = "red"; // 충차
- } else {
- // 아국 도시 구분
- $query = "select city,level,region from city where nation='{$me['nation']}'";
- $result = MYDB_query($query, $connect) or Error("aaa_processing.php ".MYDB_error($connect),"");
- $citycount = MYDB_num_rows($result);
-
- for($i=0; $i < $citycount; $i++) {
- $city = MYDB_fetch_array($result);
- // 기술 1000 이상부터 지역병
- if($nation['tech'] >= 1000) {
- $myregion[$city['region']] = 1;
- }
- // 기술 2000 이상부터 이민족병
- if($city['level'] == 4 && $nation['tech'] >= 2000) {
- $mycity[$city['city']] = 1;
- }
- // 기술 3000 이상부터 특수병
- if($city['level'] == 8 && $nation['tech'] >= 3000) {
- $mycity[$city['city']] = 1;
- }
- }
-
- //그 국가에서 그 병종 가능한지
- $valid[0] = 1; $color[0] = $_basecolor2;
- $valid[1] = $myregion[2]; $color[1] = "limegreen"; // 청주병(중원)
- $valid[2] = $myregion[7]; $color[2] = "limegreen"; // 수병(오월)
- $valid[3] = $mycity[64]; $color[3] = "limegreen"; // 자객병(저)
- $valid[4] = $mycity[3]; $color[4] = "limegreen"; // 근위병(낙양)
- $valid[5] = $myregion[5]; $color[5] = "limegreen"; // 등갑병(남중)
- $valid[10] = 1; $color[10] = $_basecolor2;
- $valid[11] = $myregion[8]; $color[11] = "limegreen"; // 궁기병(동이)
- $valid[12] = $myregion[4]; $color[12] = "limegreen"; // 연노병(서촉)
- $valid[13] = $mycity[6]; $color[13] = "limegreen"; // 강궁병(양양)
- $valid[14] = $mycity[7]; $color[14] = "limegreen"; // 석궁병(건업)
- $valid[20] = 1; $color[20] = $_basecolor2;
- $valid[21] = $myregion[1]; $color[21] = "limegreen"; // 백마병(하북)
- $valid[22] = $myregion[3]; $color[22] = "limegreen"; // 중장기병(서북)
- $valid[23] = $mycity[65]; $color[23] = "limegreen"; // 돌격기병(흉노)
- $valid[24] = $mycity[63]; $color[24] = "limegreen"; // 철기병(강)
- $valid[25] = $mycity[67]; $color[25] = "limegreen"; // 수렵기병(산월)
- $valid[26] = $mycity[66]; $color[26] = "limegreen"; // 맹수병(남만)
- $valid[27] = $mycity[2]; $color[27] = "limegreen"; // 호표기병(허창)
- $valid[30] = 1; $color[30] = $_basecolor2;
- $valid[31] = $myregion[6]; $color[31] = "limegreen"; // 신귀병(초)
- $valid[32] = $mycity[68]; $color[32] = "limegreen"; // 백귀병(오환)
- $valid[33] = $mycity[69]; $color[33] = "limegreen"; // 흑귀병(왜)
- $valid[34] = $mycity[4]; $color[34] = "limegreen"; // 악귀병(장안)
- $valid[35] = 1; $color[35] = $_basecolor2;// 남귀병
- $valid[36] = $mycity[3]; $color[36] = "limegreen"; // 황귀병(낙양)
- $valid[37] = $mycity[5]; $color[37] = "limegreen"; // 천귀병(성도)
- $valid[38] = $mycity[1]; $color[38] = "limegreen"; // 마귀병(업)
- $valid[40] = 1; $color[40] = $_basecolor2;// 정란
- $valid[41] = 1; $color[41] = $_basecolor2;// 충차
- $valid[42] = $mycity[1]; $color[42] = "limegreen"; // 벽력거(업)
- $valid[43] = $mycity[5]; $color[43] = "limegreen"; // 목우(성도)
-
- // 남귀병은 기술1등급부터
- if($nation['tech'] < 1000) {
- $valid[35] = 0;
- }
- // 충차는 기술1등급부터
- if($nation['tech'] < 1000) {
- $valid[41] = 0;
- }
+ foreach(DB::db()->query('SELECT city, region from city where nation = %i', $me['nation']) as $city){
+ $ownCities[$city['city']] = 1;
+ $ownRegions[$city['region']] = 1;
}
$leader = floor($me['leader'] * (100 - $me['injury'])/100) + getHorseEff($me['horse']) + $lbonus;
@@ -840,254 +541,98 @@ function calc(cost, formnum) {
특징 |
";
- echo "
- | 보병 계열 |
";
-
- for($i=0; $i <= 5; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 보병, 징병
- if($me['special2'] == 50) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+
+ foreach(GameUnitConst::all() as $i=>$unit) {
+ if($i == 0){
+ echo '| 보병 계열 |
';
}
- }
-
- echo "
- | 궁병 계열 |
";
-
- for($i=10; $i <= 14; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 궁병, 징병
- if($me['special2'] == 51) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 10){
+ echo '| 궁병 계열 |
';
}
- }
-
- echo "
- | 기병 계열 |
";
-
- for($i=20; $i <= 27; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 기병, 징병
- if($me['special2'] == 52) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 20){
+ echo '| 기병 계열 |
';
}
- }
-
- echo "
- | 귀병 계열 |
";
-
- for($i=30; $i <= 38; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 귀병, 징병
- if($me['special2'] == 40) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 30){
+ echo '| 귀병 계열 |
';
}
- }
-
- echo "
- | 차 계열 |
";
-
- for($i=40; $i <= 43; $i++) {
- if($valid[$i] == 1) {
- $ric = $admin["ric{$i}"] * $cost;
- $cst = $admin["cst{$i}"] * $cost;
- //성격 보정
- $cst = CharCost($cst, $me['personal']);
- //특기 보정 : 공성, 징병
- if($me['special2'] == 53) { $cst *= 0.9; }
- if($me['special2'] == 72) { $cst *= 0.5; }
- $att = $admin["att{$i}"] + $abil;
- $def = $admin["def{$i}"] + $abil;
- $spd = $admin["spd{$i}"];
- $avd = $admin["avd{$i}"];
- $ric = round($ric);
- $cst = round($cst);
- $l = $color[$i];
- $weapImage = "{$images}/weap{$i}.jpg";
- if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
- echo "
-
- |
- ".getTypename($i)." |
- {$att} |
- {$def} |
- {$spd} |
- {$avd} |
- {$ric} |
- {$cst} |
-
- $explain[$i] |
-
";
+ else if($i == 40){
+ echo '| 차병 계열 |
';
}
+
+ if(!$unit->isValid($ownCities, $ownRegions, $relativeYear, $tech)){
+ continue; //TODO: 불가능한 병종도 보여줄 필요가 있음.
+ }
+
+ if($unit->recruitType == 0){
+ $l = 'green';
+ }
+ else{
+ $l = 'limegreen';
+ }
+
+ $baseRice = $unit->rice * $cost;
+ $baseCost = $unit->cost * $cost;
+ $baseCost = CharCost($baseCost, $me['personal']);
+
+ $unitBaseType = intdiv($this->id, 10);
+ if($me['special2'] == 50 && $unitBaseType == 0){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 51 && $unitBaseType == 1){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 52 && $unitBaseType == 2){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 53 && $unitBaseType == 3){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 54 && $unitBaseType == 4){
+ $baseCost *= 0.9;
+ }
+ else if($me['special2'] == 72) {
+ $baseCost *= 0.5;
+ }
+
+ $name = $this->name;
+ $att = $this->attack + $abil;
+ $def = $this->defence + $abil;
+ $spd = $this->speed;
+ $avd = $this->avoid;
+ $weapImage = "{$images}/weap{$i}.jpg";
+ if($admin['show_img_level'] < 2) { $weapImage = "{$image}/default.jpg"; }
+
+ $baseRiceShort = round($baseRice, 1);
+ $baseCostShort = round($baseCost, 1);
+
+ $info = join('
', $this->info);
+
+ echo "
+
+ |
+ {$name} |
+ {$att} |
+ {$def} |
+ {$spd} |
+ {$avd} |
+ {$baseRiceShort} |
+ {$baseCostShort} |
+
+ $info |
+
";
}
echo "
diff --git a/twe/sammo/GameUnitConst.php b/twe/sammo/GameUnitConst.php
index 0b1de144..972f914b 100644
--- a/twe/sammo/GameUnitConst.php
+++ b/twe/sammo/GameUnitConst.php
@@ -45,42 +45,42 @@ class GameUnitConst{
}
$list = [
- [ 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, '보병', 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, ['등갑을 두른 보병입니다.']],
- [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, '궁병', 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, ['강력한 화살을 쏩니다.']],
- [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, '기병', 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, ['정예 기병입니다.']],
- [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, 0, 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, '귀병', 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, 0, 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, ['날카로운 무기를 가진 귀병입니다.']],
- [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, '업', false],
- [43, '목우', 50, 200, 5, 0, 30, 5, 2, '성도', false]
+ [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, ['상대를 저지하는 특수병기입니다.']]
];
$constID = [];
@@ -100,17 +100,26 @@ class GameUnitConst{
$rice,
$recruitType,
$recruitCondition,
- $recruitFirst
+ $recruitFirst,
+ $info
) = $rawUnit;
//0인 경우는 기술치이다.
+ if(!$recruitFirst){
+ $info[] = "일정 시간이 지나야 사용 가능";
+ }
+
if($recruitType == 1){
+ $info[] = "{$recruitCondition}지역 소유시 가능";
$recruitCondition = CityConst::byName($recruitCondition)->id;
}
else if($recruitType == 2){
+ $info[] = "{$recruitCondition} 소유시 가능";
$recruitCondition = CityConst::$regionMap[$recruitCondition]->id;
}
+
+
$unit = new GameUnitDetail(
$id,
$name,
@@ -122,7 +131,8 @@ class GameUnitConst{
$rice,
$recruitType,
$recruitCondition,
- $recruitFirst
+ $recruitFirst,
+ $info
);
$constID[$id] = $unit;
diff --git a/twe/sammo/GameUnitDetail.php b/twe/sammo/GameUnitDetail.php
index 7d03c042..215f48de 100644
--- a/twe/sammo/GameUnitDetail.php
+++ b/twe/sammo/GameUnitDetail.php
@@ -25,7 +25,8 @@ class GameUnitDetail{
int $rice,
int $recruitType,
int $recruitCondition,
- bool $recruitFirst
+ bool $recruitFirst,
+ array $info
){
$this->name = $name;
$this->attack = $attack;
@@ -37,6 +38,7 @@ class GameUnitDetail{
$this->recruitType = $recruitType;
$this->recruitCondition = $recruitCondition;
$this->recruitFirst = $recruitFirst;
+ $this->info = $info;
}
public function isValid($ownCities, $ownRegions, $relativeYear, $tech){