diff --git a/hwe/b_myBossInfo.php b/hwe/b_myBossInfo.php
index be0ca319..8f83f7b2 100644
--- a/hwe/b_myBossInfo.php
+++ b/hwe/b_myBossInfo.php
@@ -217,12 +217,12 @@ echo "
";
$queries = [];
-$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
-$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
-$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
-$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
-$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
-$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
+$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
+$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
+$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
+$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
+$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
+$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
for($i=10; $i >= $lv; $i--) {
if($i % 2 == 0) { echo "
"; }
@@ -309,7 +309,7 @@ if($meLevel >= 5) {
____공석____
";
- $query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
+ $query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
for($i=0; $i < $count; $i++) {
@@ -363,7 +363,7 @@ if($meLevel >= 5) {
____공석____
";
- $query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
+ $query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$count = MYDB_num_rows($result);
for($i=0; $i < $count; $i++) {
diff --git a/hwe/c_myBossInfo.php b/hwe/c_myBossInfo.php
index 8bc7c92c..cf0db051 100644
--- a/hwe/c_myBossInfo.php
+++ b/hwe/c_myBossInfo.php
@@ -242,12 +242,12 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
if($genlist != 0) {
$valid = 0;
switch($level) {
- case 10: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
- case 9: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
- case 8: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
- case 7: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
- case 6: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
- case 5: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
+ case 10: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 9: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 8: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 7: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 6: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 5: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
if($valid == 1) {
@@ -299,8 +299,8 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
if($genlist != 0) {
$valid = 0;
switch($level) {
- case 4: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
- case 3: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
+ case 4: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
+ case 3: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
default: $valid = 1; break;
}
diff --git a/hwe/func_converter.php b/hwe/func_converter.php
index 83d45e69..78c98ebb 100644
--- a/hwe/func_converter.php
+++ b/hwe/func_converter.php
@@ -284,19 +284,19 @@ function getLevel($level, $nlevel=8) {
function getCall($leader, $power, $intel) {
$call = '평범';
- if($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
+ if($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '만능';
- } elseif($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower) {
+ } elseif($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin) {
$call = '용장';
- } elseif($leader >= GameConst::$goodgenleader && $intel >= GameConst::$goodgenintel) {
+ } elseif($leader >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '지장';
- } elseif($power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
+ } elseif($power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
$call = '명장';
- } elseif($leader >= GameConst::$goodgenleader) {
+ } elseif($leader >= GameConst::$chiefStatMin) {
$call = '명사';
- } elseif($power >= GameConst::$goodgenpower) {
+ } elseif($power >= GameConst::$chiefStatMin) {
$call = '용맹';
- } elseif($intel >= GameConst::$goodgenintel) {
+ } elseif($intel >= GameConst::$chiefStatMin) {
$call = '현명';
}
return $call;
diff --git a/hwe/func_gamerule.php b/hwe/func_gamerule.php
index 15bfeb5f..9ae272a6 100644
--- a/hwe/func_gamerule.php
+++ b/hwe/func_gamerule.php
@@ -5,77 +5,8 @@ namespace sammo;
* 게임 룰에 해당하는 함수 모음
*/
-// 37.5 ~ 75
-function abilityRand() {
- $total = 150;
- $leader = (rand()%100 + 1) / 100.0 + 1.0;
- $power = (rand()%100 + 1) / 100.0 + 1.0;
- $intel = (rand()%100 + 1) / 100.0 + 1.0;
- $rate = $leader + $power + $intel;
- $leader = intdiv($leader * $total, $rate);
- $power = intdiv($power * $total, $rate);
- $intel = intdiv($intel * $total, $rate);
- while($leader+$power+$intel < 150) {
- $leader++;
- }
-
- return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
-}
-
-// 14 ~ 75
-function abilityLeadpow() {
- $total = 150;
- $leader = (rand()%100 + 1) / 100.0 + 6.0;
- $power = (rand()%100 + 1) / 100.0 + 6.0;
- $intel = (rand()%100 + 1) / 100.0 + 1.0;
- $rate = $leader + $power + $intel;
- $leader = intdiv($leader * $total, $rate);
- $power = intdiv($power * $total, $rate);
- $intel = intdiv($intel * $total, $rate);
-
- while($leader+$power+$intel < 150) {
- $leader++;
- }
-
- return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
-}
-
-function abilityLeadint() {
- $total = 150;
- $leader = (rand()%100 + 1) / 100.0 + 6.0;
- $power = (rand()%100 + 1) / 100.0 + 1.0;
- $intel = (rand()%100 + 1) / 100.0 + 6.0;
- $rate = $leader + $power + $intel;
- $leader = intdiv($leader * $total, $rate);
- $power = intdiv($power * $total, $rate);
- $intel = intdiv($intel * $total, $rate);
-
- while($leader+$power+$intel < 150) {
- $leader++;
- }
-
- return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
-}
-
-function abilityPowint() {
- $total = 150;
- $leader = (rand()%100 + 1) / 100.0 + 1.0;
- $power = (rand()%100 + 1) / 100.0 + 6.0;
- $intel = (rand()%100 + 1) / 100.0 + 6.0;
- $rate = $leader + $power + $intel;
- $leader = intdiv($leader * $total, $rate);
- $power = intdiv($power * $total, $rate);
- $intel = intdiv($intel * $total, $rate);
-
- while($leader+$power+$intel < 150) {
- $leader++;
- }
-
- return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
-}
-
-/**
+ /**
* 게임 내부에 사용하는 유틸리티 함수들을 분리
*/
diff --git a/hwe/func_process_chief.php b/hwe/func_process_chief.php
index 7ded1719..3a9737c4 100644
--- a/hwe/func_process_chief.php
+++ b/hwe/func_process_chief.php
@@ -2059,19 +2059,19 @@ function process_76(&$general) {
$type = rand() % 10;
switch($type) {
case 0: case 1: case 2: case 3:
- $leader = 65 + rand()%11;
- $intel = 10 + rand()%6;
- $power = 150 - $leader - $intel;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 4: case 5: case 6: case 7:
- $leader = 65 + rand()%11;
- $power = 10 + rand()%6;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $power = GameConst::$defaultStatMin + rand()%6;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 8: case 9:
- $leader = 10 + rand()%6;
- $power = 65 + rand()%11;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
// 국내 최고능치 기준으로 랜덤성 스케일링
@@ -2111,14 +2111,14 @@ function process_76(&$general) {
$power = $power + $over1 + $over2 + $over3;
}
// 너무 높은 능치는 제한
- if($leader > 95) {
- $leader = 95;
+ if($leader > GameConst::$defaultStatNPCMax) {
+ $leader = GameConst::$defaultStatNPCMax;
}
- if($power > 95) {
- $power = 95;
+ if($power > GameConst::$defaultStatNPCMax) {
+ $power = GameConst::$defaultStatNPCMax;
}
- if($intel > 95) {
- $intel = 95;
+ if($intel > GameConst::$defaultStatNPCMax) {
+ $intel = GameConst::$defaultStatNPCMax;
}
$npccount = 10000 + $npcid;
diff --git a/hwe/func_process_personnel.php b/hwe/func_process_personnel.php
index 9b642a8e..ad22b2c6 100644
--- a/hwe/func_process_personnel.php
+++ b/hwe/func_process_personnel.php
@@ -276,37 +276,37 @@ function process_29(&$general) {
if($admin['scenario'] == 0) {
switch($type) {
case 0: case 1:
- $leader = 65 + rand()%11;
- $intel = 10 + rand()%6;
- $power = 150 - $leader - $intel;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 2: case 3:
- $leader = 65 + rand()%11;
- $power = 10 + rand()%6;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $power = GameConst::$defaultStatMin + rand()%6;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 4: case 5: case 6: case 7: case 8: case 9:
- $leader = 10 + rand()%6;
- $power = 65 + rand()%11;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
} else {
switch($type) {
case 0: case 1: case 2: case 3:
- $leader = 65 + rand()%11;
- $intel = 10 + rand()%6;
- $power = 150 - $leader - $intel;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatTotal - $leader - $intel;
break;
case 4: case 5: case 6: case 7:
- $leader = 65 + rand()%11;
- $power = 10 + rand()%6;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMax - 10 + rand()%11;
+ $power = GameConst::$defaultStatMin + rand()%6;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
case 8: case 9:
- $leader = 10 + rand()%6;
- $power = 65 + rand()%11;
- $intel = 150 - $leader - $power;
+ $leader = GameConst::$defaultStatMin + rand()%6;
+ $power = GameConst::$defaultStatMax - 10 + rand()%11;
+ $intel = GameConst::$defaultStatTotal - $leader - $power;
break;
}
}
diff --git a/hwe/join.php b/hwe/join.php
index 87de950c..7c38ef31 100644
--- a/hwe/join.php
+++ b/hwe/join.php
@@ -32,6 +32,11 @@ $connect=$db->get();
=UniqueConst::$serverName?>: 장수생성
+
=WebUtil::printCSS('../d_shared/common.css')?>
=WebUtil::printCSS('css/common.css')?>
=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
@@ -156,13 +161,13 @@ if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture']
- 모든 능력치는 ( 10 <= 능력치 <= 75 ) 사이로 잡으셔야 합니다.
+ 모든 능력치는 ( 10 <= 능력치 <= =GameConst::$defaultStatMax?> ) 사이로 잡으셔야 합니다.
그 외의 능력치는 가입되지 않습니다.
- 능력치의 총합은 150입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.
+ 능력치의 총합은 =GameConst::$defaultStatTotal?>입니다. 가입후 0~10의 능력치 보너스를 받게 됩니다.
임의의 도시에서 재야로 시작하며 건국과 임관은 게임 내에서 실행합니다.
diff --git a/hwe/join_post.php b/hwe/join_post.php
index 8a699fd6..ee7e359e 100644
--- a/hwe/join_post.php
+++ b/hwe/join_post.php
@@ -23,12 +23,12 @@ $v
'leader',
'power',
'intel'
-], 10)
+], GameConst::$defaultStatMin)
->rule('max', [
'leader',
'power',
'intel'
-], 75)
+], GameConst::$defaultStatMax)
->rule('min', 'character', 0)
->rule('max', 'character', 11);
@@ -109,9 +109,9 @@ if (mb_strlen($name) > 6) {
");
exit;
}
-if ($leader + $power + $intel > 150) {
+if ($leader + $power + $intel > GameConst::$defaultStatTotal) {
echo("");
exit;
diff --git a/hwe/js/join.js b/hwe/js/join.js
index 7bdff956..f2eb742a 100644
--- a/hwe/js/join.js
+++ b/hwe/js/join.js
@@ -1,7 +1,5 @@
jQuery(function($){
-
- var totalAbil = 150;
var $leader = $('#leader');
var $power = $('#power');
var $intel = $('#intel');
@@ -12,16 +10,16 @@ jQuery(function($){
var intel = Math.random()*65 + 10;
var rate = leader + power + intel;
- leader = Math.floor(leader / rate * totalAbil);
- power = Math.floor(power / rate * totalAbil);
- intel = Math.floor(intel / rate * totalAbil);
+ leader = Math.floor(leader / rate * defaultStatTotal);
+ power = Math.floor(power / rate * defaultStatTotal);
+ intel = Math.floor(intel / rate * defaultStatTotal);
- while(leader+power+intel < totalAbil){
+ while(leader+power+intel < defaultStatTotal){
leader+=1;
}
- if(leader > 75 || power > 75 || intel > 75 || leader < 10 || power < 10 || intel < 10){
+ if(leader > defaultStatMax || power > defaultStatMax || intel > defaultStatMax || leader < defaultStatMin || power < defaultStatMin || intel < defaultStatMin){
return abilityRand();
}
@@ -37,27 +35,32 @@ jQuery(function($){
var intel = Math.random() * 1;
var rate = leader + power + intel;
- leader = Math.floor(leader / rate * totalAbil);
- power = Math.floor(power / rate * totalAbil);
- intel = Math.floor(intel / rate * totalAbil);
+ leader = Math.floor(leader / rate * defaultStatTotal);
+ power = Math.floor(power / rate * defaultStatTotal);
+ intel = Math.floor(intel / rate * defaultStatTotal);
- while(leader+power+intel < totalAbil){
+ while(leader+power+intel < defaultStatTotal){
power+=1;
}
- if(intel < 10){
- leader -= 10 - intel;
- intel = 10;
+ if(intel < defaultStatMin){
+ leader -= defaultStatMin - intel;
+ intel = defaultStatMin;
}
- if(leader > 75){
- power += leader - 75;
- leader = 75;
+ if(leader > defaultStatMax){
+ power += leader - defaultStatMax;
+ leader = defaultStatMax;
}
- if(power > 75){
- leader += power - 75;
- power = 75;
+ if(power > defaultStatMax){
+ leader += power - defaultStatMax;
+ power = defaultStatMax;
+ }
+
+ if(leader > defaultStatMax){
+ intel += leader - defaultStatMax;
+ leader = defaultStatMax;
}
$leader.val(leader);
@@ -71,27 +74,32 @@ jQuery(function($){
var intel = Math.random() * 6;
var rate = leader + power + intel;
- leader = Math.floor(leader / rate * totalAbil);
- power = Math.floor(power / rate * totalAbil);
- intel = Math.floor(intel / rate * totalAbil);
+ leader = Math.floor(leader / rate * defaultStatTotal);
+ power = Math.floor(power / rate * defaultStatTotal);
+ intel = Math.floor(intel / rate * defaultStatTotal);
- while(leader+power+intel < totalAbil){
+ while(leader+power+intel < defaultStatTotal){
intel+=1;
}
- if(power < 10){
- leader -= 10 - power;
- power = 10;
+ if(power < defaultStatMin){
+ leader -= defaultStatMin - power;
+ power = defaultStatMin;
}
- if(leader > 75){
- intel += leader - 75;
- leader = 75;
+ if(leader > defaultStatMax){
+ intel += leader - defaultStatMax;
+ leader = defaultStatMax;
}
- if(intel > 75){
- leader += intel - 75;
- intel = 75;
+ if(intel > defaultStatMax){
+ leader += intel - defaultStatMax;
+ intel = defaultStatMax;
+ }
+
+ if(leader > defaultStatMax){
+ power += leader - defaultStatMax;
+ leader = defaultStatMax;
}
$leader.val(leader);
@@ -105,27 +113,32 @@ jQuery(function($){
var intel = Math.random() * 6;
var rate = leader + power + intel;
- leader = Math.floor(leader / rate * totalAbil);
- power = Math.floor(power / rate * totalAbil);
- intel = Math.floor(intel / rate * totalAbil);
+ leader = Math.floor(leader / rate * defaultStatTotal);
+ power = Math.floor(power / rate * defaultStatTotal);
+ intel = Math.floor(intel / rate * defaultStatTotal);
- while(leader+power+intel < totalAbil){
+ while(leader+power+intel < defaultStatTotal){
intel+=1;
}
- if(leader < 10){
- power -= 10 - leader;
- leader = 10;
+ if(leader < defaultStatMin){
+ power -= defaultStatMin - leader;
+ leader = defaultStatMin;
}
- if(power > 75){
- intel += power - 75;
- power = 75;
+ if(power > defaultStatMax){
+ intel += power - defaultStatMax;
+ power = defaultStatMax;
}
- if(intel > 75){
- power += intel - 75;
- intel = 75;
+ if(intel > defaultStatMax){
+ power += intel - defaultStatMax;
+ intel = defaultStatMax;
+ }
+
+ if(power > defaultStatMax){
+ leader += power - defaultStatMax;
+ power = defaultStatMax;
}
$leader.val(leader);
diff --git a/hwe/lib.php b/hwe/lib.php
index 434661b0..070f19e5 100644
--- a/hwe/lib.php
+++ b/hwe/lib.php
@@ -7,11 +7,9 @@ $loader->addPsr4('sammo\\', __DIR__.'/sammo', true);
$loader->addClassMap((function () {
$d_settingMap = [];
- foreach (glob(__dir__.'/d_setting/*.php') as $filepath) {
+ foreach (glob(__dir__.'/d_setting/*.orig.php') as $filepath) {
+ $filepath = str_replace('.orig.php', '.php', $filepath);
$filename = basename($filepath);
- if (Util::ends_with($filename, '.orig.php')) {
- continue;
- }
$classname = explode('.', $filename)[0];
$d_settingMap['sammo\\'.$classname] = $filepath;
};
diff --git a/hwe/sammo/GameConst.php b/hwe/sammo/GameConst.php
index 43d1615d..5588d451 100644
--- a/hwe/sammo/GameConst.php
+++ b/hwe/sammo/GameConst.php
@@ -1,7 +1,7 @@
getYear()??GameConst::$defaultStartYear;
+ $scenarioObj->buildConf();
+ $startyear = $scenarioObj->getYear()??GameConst::$defaultStartYear;
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
@@ -160,6 +161,8 @@ class ResetHelper{
$killturn = 4800 / $turnterm;
if($npcmode == 1) { $killturn = intdiv($killturn, 3); }
+
+
$env = [
'scenario'=>$scenario,
'scenario_text'=>$scenarioObj->getTitle(),
diff --git a/hwe/sammo/Scenario.php b/hwe/sammo/Scenario.php
index 6065c142..580fe1f3 100644
--- a/hwe/sammo/Scenario.php
+++ b/hwe/sammo/Scenario.php
@@ -148,6 +148,24 @@ class Scenario{
}, Util::array_get($data['events'], []));
}
+ private function getGameConf(){
+ $defaultPath = self::SCENARIO_PATH."/default.json";
+ if(!file_exists($defaultPath)){
+ throw new \RuntimeException('기본 시나리오 설정 파일 없음!');
+ }
+ $default = Json::decode(file_get_contents($defaultPath));
+
+ $stat = [
+ 'statTotal'=>$this->data['stat']['total']??$default['stat']['total'],
+ 'statMin'=>$this->data['stat']['min']??$default['stat']['min'],
+ 'statMax'=>$this->data['stat']['max']??$default['stat']['max'],
+ 'statNPCMax'=>$this->data['stat']['npcMax']??$default['stat']['npcMax'],
+ 'statChiefMin'=>$this->data['stat']['chiefMin']??$default['stat']['chiefMin'],
+ ];
+
+ $this->gameConf = array_merge($stat);
+ }
+
public function __construct(int $scenarioIdx, bool $lazyInit = true){
$scenarioPath = self::SCENARIO_PATH."/scenario_{$scenarioIdx}.json";
@@ -157,6 +175,8 @@ class Scenario{
$data = Json::decode(file_get_contents($scenarioPath));
$this->data = $data;
+ $this->getGameConf();
+
$this->year = Util::array_get($data['startYear']);
$this->title = Util::array_get($data['title'] , '');
@@ -292,7 +312,19 @@ class Scenario{
}
}
+ public function buildConf(){
+ $path = __dir__.'/../d_setting';
+ Util::generateFileUsingSimpleTemplate(
+ $path.'/GameCustomConst.orig.php',
+ $path.'/GameCustomConst.php',
+ $this->gameConf,
+ true
+ );
+ }
+
public function build($env=[]){
+
+
$this->initFull();
//NOTE: 초기화가 되어있다고 가정함.
@@ -306,6 +338,9 @@ class Scenario{
event변수 : currentEventID
*/
+
+
+
$db = DB::db();
foreach($this->nations as $id=>$nation){
diff --git a/hwe/scenario/default.json b/hwe/scenario/default.json
index 7dad565b..7fe2b57b 100644
--- a/hwe/scenario/default.json
+++ b/hwe/scenario/default.json
@@ -2,6 +2,8 @@
"stat":{
"total":150,
"min":10,
- "max":75
+ "max":75,
+ "npcMax":95,
+ "chiefMin":65
}
}
\ No newline at end of file
diff --git a/hwe/scenario/scenario_30.json b/hwe/scenario/scenario_30.json
index a6628031..317f129e 100644
--- a/hwe/scenario/scenario_30.json
+++ b/hwe/scenario/scenario_30.json
@@ -9,7 +9,8 @@
"stat":{
"total":220,
"min":10,
- "max":95
+ "max":95,
+ "npcMax":95
},
"general":[
[0, "김일융", -1, 0, null, 88, 83, 79, 0, 160, 300, null, null],
diff --git a/hwe/scenario/scenario_31.json b/hwe/scenario/scenario_31.json
index 14784cdb..fc5f4774 100644
--- a/hwe/scenario/scenario_31.json
+++ b/hwe/scenario/scenario_31.json
@@ -9,7 +9,8 @@
"stat":{
"total":220,
"min":10,
- "max":95
+ "max":95,
+ "npcMax":95
},
"general":[
[0, "가규", -1, 0, null, 78, 61, 84, 0, 160, 300, null, null],