feat, refac(wip): 징병 기준을 GameUnitConstraint 기반으로 변경
This commit is contained in:
+14
-7
@@ -2558,8 +2558,11 @@ class GeneralAI
|
||||
$cities = [];
|
||||
$regions = [];
|
||||
|
||||
foreach ($db->queryAllLists('SELECT city, region FROM city WHERE nation = %i', $nationID) as [$cityID, $regionID]) {
|
||||
$cities[$cityID] = true;
|
||||
foreach ($db->queryAllLists('SELECT city, region, secu, level FROM city WHERE nation = %i', $nationID) as [$cityID, $regionID, $secu, $level]) {
|
||||
$cities[$cityID] = [
|
||||
'secu' => $secu,
|
||||
'level' => $level,
|
||||
];
|
||||
$regions[$regionID] = true;
|
||||
}
|
||||
$relYear = Util::valueFit($env['year'] - $env['startyear'], 0);
|
||||
@@ -2582,11 +2585,15 @@ class GeneralAI
|
||||
if ($this->generalPolicy->can고급병종) {
|
||||
$currCrewType = $general->getCrewTypeObj();
|
||||
if ($currCrewType->isValid($cities, $regions, $relYear, $tech)) {
|
||||
if ($currCrewType->reqTech >= 2000) {
|
||||
$type = $currCrewType->id;
|
||||
} else if ($currCrewType->armType != $armType && $currCrewType->reqTech >= 1000) {
|
||||
//굳이 뽑은 이유가 있겠지
|
||||
$type = $currCrewType->id;
|
||||
$reqTechObj = $currCrewType->reqConstraints['reqTech'] ?? null;
|
||||
if($reqTechObj){
|
||||
$reqTech = $reqTechObj->getValue($tech);
|
||||
if ($reqTech >= 2000) {
|
||||
$type = $currCrewType->id;
|
||||
} else if ($currCrewType->armType != $armType && $reqTech >= 1000) {
|
||||
//굳이 뽑은 이유가 있겠지
|
||||
$type = $currCrewType->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user