diff --git a/hwe/func_command.php b/hwe/func_command.php index de2b9b72..b176c2f1 100644 --- a/hwe/func_command.php +++ b/hwe/func_command.php @@ -471,7 +471,7 @@ function processCommand($no) { $gameStor = KVStorage::getStorage($db, 'game_env'); $connect=$db->get(); - $query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'"; + $query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar from general where no='$no'"; $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $general = MYDB_fetch_array($result); diff --git a/hwe/process_war.php b/hwe/process_war.php index 5d03b971..04ae3ad2 100644 --- a/hwe/process_war.php +++ b/hwe/process_war.php @@ -5,12 +5,12 @@ namespace sammo; function processWar(array $rawAttacker, array $rawDefenderCity){ $db = DB::db(); - $rawAttackerCity = $db->queryFullColumns('SELECT * FROM city WHERE city = %i', $rawAttacker['city']); + $rawAttackerCity = $db->queryFirstRow('SELECT * FROM city WHERE city = %i', $rawAttacker['city']); $attackerNationID = $rawAttacker['nation']; $defenderNationID = $rawDefenderCity['nation']; - $rawAttackerNation = $db->queryFullColumns('SELECT nation,`level`,`name`,capital,totaltech,gennum,tech,`type`,gold,rice FROM nation WHERE nation = %i', $attackerNationID); + $rawAttackerNation = $db->queryFirstRow('SELECT nation,`level`,`name`,capital,totaltech,gennum,tech,`type`,gold,rice FROM nation WHERE nation = %i', $attackerNationID); if($defenderNationID == 0){ $rawDefenderNation = [ @@ -27,17 +27,17 @@ function processWar(array $rawAttacker, array $rawDefenderCity){ ]; } else{ - $rawDefenderNation = $db->queryFullColumns('SELECT nation,`level`,`name`,capital,totaltech,gennum,tech,`type`,gold,rice FROM nation WHERE nation = %i', $defenderNationID); + $rawDefenderNation = $db->queryFirstRow('SELECT nation,`level`,`name`,capital,totaltech,gennum,tech,`type`,gold,rice FROM nation WHERE nation = %i', $defenderNationID); } $gameStor = KVStorage::getStorage($db, 'game_env'); - [$startYear, $year, $month, $cityRate] = $gameStor->getValuesAsArray('startyear', 'year', 'month', 'city_rate'); + [$startYear, $year, $month, $cityRate] = $gameStor->getValuesAsArray(['startyear', 'year', 'month', 'city_rate']); $attacker = new WarUnitGeneral($rawAttacker, $rawAttackerCity, $rawAttackerNation, true, $year, $month); $city = new WarUnitCity($rawDefenderCity, $rawAttackerNation, $year, $month, $cityRate); - $defenderList = $db->query('SELECT no,name,turntime,personal,special2,crew,crewtype,atmos,train,intel,intel2,book,power,power2,weap,injury,leader,leader2,horse,item,explevel,level,rice,dex0,dex10,dex20,dex30,dex40 FROM general WHERE city=%i AND nation=%i AND nation!=0 and crew > 0 and rice>(crew/100) and ((train>=60 and atmos>=60 and mode=1) or (train>=80 and atmos>=80 and mode=2))'); + $defenderList = $db->query('SELECT no,name,turntime,personal,special2,crew,crewtype,atmos,train,intel,intel2,book,power,power2,weap,injury,leader,leader2,horse,item,explevel,level,rice,dex0,dex10,dex20,dex30,dex40,warnum,killnum,deathnum,killcrew,deathcrew,recwar FROM general WHERE city=%i AND nation=%i AND nation!=0 and crew > 0 and rice>(crew/100) and ((train>=60 and atmos>=60 and mode=1) or (train>=80 and atmos>=80 and mode=2))', $city->getVar('nation'), $city->getVar('city')); usort($defenderList, function($lhs, $rhs){ return -(extractBattleOrder($lhs) <=> extractBattleOrder($rhs)); @@ -45,7 +45,7 @@ function processWar(array $rawAttacker, array $rawDefenderCity){ $iterDefender = new \ArrayIterator($defenderList); - $getNextDefender = function(?WarUnit $prevDefender, bool $reqNext) use ($iterDefender) { + $getNextDefender = function(?WarUnit $prevDefender, bool $reqNext) use ($iterDefender, $db) { if($prevDefender !== null){ $prevDefender->applyDB($db); } @@ -111,8 +111,8 @@ function processWar(array $rawAttacker, array $rawDefenderCity){ $attackerTotalTech = $rawAttackerNation['totaltech'] + $attackerIncTech; $defenderTotalTech = $rawDefenderNation['totaltech'] + $defenderIncTech; - $updateAttackerNation['totaltech'] = Utill::round($attackerTotalTech); - $updateDefenderNation['totaltech'] = Utill::round($defenderTotalTech); + $updateAttackerNation['totaltech'] = Util::round($attackerTotalTech); + $updateDefenderNation['totaltech'] = Util::round($defenderTotalTech); $updateAttackerNation['tech'] = Util::round($attackerTotalTech / max(GameConst::$initialNationGenLimit, $rawAttackerNation['gennum'])); $updateDefenderNation['tech'] = Util::round($defenderTotalTech / max(GameConst::$initialNationGenLimit, $rawDefenderNation['gennum'])); @@ -133,11 +133,11 @@ function processWar(array $rawAttacker, array $rawDefenderCity){ } //XXX: 새 도시점령 코드 작성하기 전까지 유지 - $rawAttackerCity = $db->queryFullColumns('SELECT * FROM city WHERE city = %i', $rawAttacker['city']); - $rawAttackerNation = $db->queryFullColumns('SELECT nation,`level`,`name`,capital,tech,`type` FROM nation WHERE nation = %i', $attackerNationID); + $rawAttackerCity = $db->queryFirstRow('SELECT * FROM city WHERE city = %i', $rawAttacker['city']); + $rawAttackerNation = $db->queryFirstRow('SELECT nation,`level`,`name`,capital,tech,`type` FROM nation WHERE nation = %i', $attackerNationID); if($defenderNationID !== 0){ - $rawDefenderNation = $db->queryFullColumns('SELECT nation,`level`,`name`,capital,tech,`type` FROM nation WHERE nation = %i', $defenderNationID); + $rawDefenderNation = $db->queryFirstRow('SELECT nation,`level`,`name`,capital,tech,`type` FROM nation WHERE nation = %i', $defenderNationID); } ConquerCity([ @@ -165,7 +165,7 @@ function processWar_NG( callable $getNextDefender, WarUnitCity $city, int $relYear -):array{ +):bool{ $templates = new \League\Plates\Engine(__dir__.'/templates'); $logger = $attacker->getLogger(); @@ -180,11 +180,11 @@ function processWar_NG( $defender = ($getNextDefender)(null, true); $conquerCity = false; - $josaRo = JosaUtil::pick($city->name, '로'); - $josaYi = JosaUtil::pick($attacker->name, '이'); + $josaRo = JosaUtil::pick($city->getName(), '로'); + $josaYi = JosaUtil::pick($attacker->getName(), '이'); - $logger->pushGlobalActionLog("{$attacker->getNationVar('name')}{$attacker->name}{$josaYi} {$city->name}{$josaRo} 진격합니다."); - $logger->pushGeneralActionLog("{$city->name}{$josaRo} 진격합니다. <1>$date"); + $logger->pushGlobalActionLog("{$attacker->getNationVar('name')}{$attacker->getName()}{$josaYi} {$city->getName()}{$josaRo} 진격합니다."); + $logger->pushGeneralActionLog("{$city->getName()}{$josaRo} 진격합니다. <1>$date"); $battleBegin = false; @@ -227,10 +227,10 @@ function processWar_NG( $logger->pushGlobalActionLog("{$attacker->getName()}의 {$attacker->getCrewTypeName()}{$josaWa} {$defender->getName()}의 {$defender->getCrewTypeName()}{$josaYi} 대결합니다."); $josaRo = JosaUtil::pick($attacker->getCrewTypeName(), '로'); $josaUl = JosaUtil::pick($defender->getCrewTypeName(), '을'); - $attacker->getLogger()->pushGeneralActionLog("{$attacker->getCrewTypeName()}{$josaRo} {$defender->name}의 {$defender->getCrewTypeName()}{$josaUl} 공격합니다."); + $attacker->getLogger()->pushGeneralActionLog("{$attacker->getCrewTypeName()}{$josaRo} {$defender->getName()}의 {$defender->getCrewTypeName()}{$josaUl} 공격합니다."); $josaRo = JosaUtil::pick($defender->getCrewTypeName(), '로'); $josaUl = JosaUtil::pick($attacker->getCrewTypeName(), '을'); - $defender->getLogger()->pushGeneralActionLog("{$defender->getCrewTypeName()}{$josaRo} {$attacker->name}의 {$attacker->getCrewTypeName()}{$josaUl} 수비합니다."); + $defender->getLogger()->pushGeneralActionLog("{$defender->getCrewTypeName()}{$josaRo} {$attacker->getName()}의 {$attacker->getCrewTypeName()}{$josaUl} 수비합니다."); } else{ $josaYi = JosaUtil::pick($attacker->getName(), '이'); @@ -268,7 +268,7 @@ function processWar_NG( $defender->checkPostActiveSkill(); //NOTE: 반계류 등의 스킬을 post에서 반영 - $activeSkillIterator = new AppendIterator(); + $activeSkillIterator = new \AppendIterator(); $activeSkillIterator->append($attacker->applyActiveSkill()); $activeSkillIterator->append($defender->applyActiveSkill()); foreach($activeSkillIterator as $b){ @@ -393,7 +393,7 @@ function processWar_NG( return false; } - if($currPhase == $maxPhase){ + if($currPhase == $attacker->getMaxPhase()){ //마지막 페이즈의 전투 마무리 $attacker->tryWound(); $defender->tryWound(); diff --git a/hwe/sammo/WarUnit.php b/hwe/sammo/WarUnit.php index 5730910f..7a14291c 100644 --- a/hwe/sammo/WarUnit.php +++ b/hwe/sammo/WarUnit.php @@ -100,7 +100,7 @@ class WarUnit{ $this->updateVar($key, $targetValue); } - function getNationVar(string $key):array{ + function getNationVar(string $key){ return $this->rawNation[$key]; } @@ -311,13 +311,13 @@ class WarUnit{ return $this->activatedSkill[$skillName] ?? false; } - function activateSkill(... $skillNames):bool{ + function activateSkill(... $skillNames){ foreach($skillNames as $skillName){ $this->activatedSkill[$skillName] = true; } } - function deactivateSkill(... $skillNames):bool{ + function deactivateSkill(... $skillNames){ foreach($skillNames as $skillName){ $this->activatedSkill[$skillName] = false; } @@ -336,6 +336,7 @@ class WarUnit{ } function applyActiveSkill(){ + yield true; } function getHP():int{ diff --git a/hwe/sammo/WarUnitGeneral.php b/hwe/sammo/WarUnitGeneral.php index 7d57749d..7d08d30a 100644 --- a/hwe/sammo/WarUnitGeneral.php +++ b/hwe/sammo/WarUnitGeneral.php @@ -49,7 +49,7 @@ class WarUnitGeneral extends WarUnit{ return $this->getVar('name'); } - function getCityVar(string $key):array{ + function getCityVar(string $key){ return $this->rawCity[$key]; } @@ -88,7 +88,7 @@ class WarUnitGeneral extends WarUnit{ if($this->getSpecialWar() == 60){ $phase += 1; } - return $phase + $bonusPhase; + return $phase + $this->bonusPhase; } function addTrain(int $train){