game: snipe_combat 제거거

This commit is contained in:
2021-11-08 23:31:56 +09:00
parent 8e927831f5
commit 07e8511ce1
3 changed files with 35 additions and 33 deletions
+31 -29
View File
@@ -19,7 +19,7 @@ function processWar(General $attackerGeneral, array $rawAttackerNation, array $r
'rice'=>10000, 'rice'=>10000,
'type'=>GameConst::$neutralNationType, 'type'=>GameConst::$neutralNationType,
'tech'=>0, 'tech'=>0,
'gennum'=>1 'gennum'=>1
]; ];
} }
else{ else{
@@ -89,7 +89,7 @@ function processWar(General $attackerGeneral, array $rawAttackerNation, array $r
$rice *= getTechCost($rawDefenderNation['tech']); $rice *= getTechCost($rawDefenderNation['tech']);
$rice *= $cityRate / 100 - 0.2; $rice *= $cityRate / 100 - 0.2;
Util::setRound($rice); Util::setRound($rice);
$updateDefenderNation['rice'] = max(0, $rawDefenderNation['rice'] - $rice); $updateDefenderNation['rice'] = max(0, $rawDefenderNation['rice'] - $rice);
} }
else if($conquerCity){ else if($conquerCity){
@@ -169,7 +169,7 @@ function processWar(General $attackerGeneral, array $rawAttackerNation, array $r
if(!$conquerCity){ if(!$conquerCity){
return; return;
} }
ConquerCity([ ConquerCity([
'startyear'=>$startYear, 'startyear'=>$startYear,
'year'=>$year, 'year'=>$year,
@@ -207,7 +207,7 @@ function extractBattleOrder(General $general){
function processWar_NG( function processWar_NG(
WarUnitGeneral $attacker, WarUnitGeneral $attacker,
callable $getNextDefender, callable $getNextDefender,
WarUnitCity $city, WarUnitCity $city,
int $relYear int $relYear
):bool{ ):bool{
@@ -216,7 +216,7 @@ function processWar_NG(
$logger = $attacker->getLogger(); $logger = $attacker->getLogger();
//$attacker->useBattleInitItem(); //$attacker->useBattleInitItem();
$date = $attacker->getGeneral()->getTurnTime(General::TURNTIME_HM); $date = $attacker->getGeneral()->getTurnTime(General::TURNTIME_HM);
$attackerNationUpdate = []; $attackerNationUpdate = [];
@@ -224,7 +224,7 @@ function processWar_NG(
$defender = ($getNextDefender)(null, true); $defender = ($getNextDefender)(null, true);
$conquerCity = false; $conquerCity = false;
$josaRo = JosaUtil::pick($city->getName(), '로'); $josaRo = JosaUtil::pick($city->getName(), '로');
$josaYi = JosaUtil::pick($attacker->getName(), '이'); $josaYi = JosaUtil::pick($attacker->getName(), '이');
@@ -234,7 +234,7 @@ function processWar_NG(
for($currPhase = 0; $currPhase < $attacker->getMaxPhase(); $currPhase+=1){ for($currPhase = 0; $currPhase < $attacker->getMaxPhase(); $currPhase+=1){
if($defender === null){ if($defender === null){
$defender = $city; $defender = $city;
if($city->getNationVar('rice') <= 0 && $city->getVar('supply')){ if($city->getNationVar('rice') <= 0 && $city->getVar('supply')){
//병량 패퇴 //병량 패퇴
$attacker->setOppose($defender); $attacker->setOppose($defender);
@@ -261,15 +261,17 @@ function processWar_NG(
$attacker->addTrain(1); $attacker->addTrain(1);
$defender->addTrain(1); $defender->addTrain(1);
$attackerCrewTypeCoef = $attacker->getCrewType()->getAttackCoef($defender->getCrewType()) * $defender->getCrewType()->getDefenceCoef($attacker->getCrewType()); $attackerCrewTypeCoef = $attacker->getCrewType()->getAttackCoef($defender->getCrewType()) * $defender->getCrewType()->getDefenceCoef($attacker->getCrewType());
$defenderCrewTypeCoef = $defender->getCrewType()->getAttackCoef($attacker->getCrewType()) * $attacker->getCrewType()->getDefenceCoef($defender->getCrewType()); $defenderCrewTypeCoef = $defender->getCrewType()->getAttackCoef($attacker->getCrewType()) * $attacker->getCrewType()->getDefenceCoef($defender->getCrewType());
/*
if($attackerCrewTypeCoef > $defenderCrewTypeCoef && $attacker instanceof WarUnitGeneral){ if($attackerCrewTypeCoef > $defenderCrewTypeCoef && $attacker instanceof WarUnitGeneral){
$attacker->getGeneral()->increaseInheritancePoint('snipe_combat', 1); $attacker->getGeneral()->increaseInheritancePoint('snipe_combat', 1);
} }
if($defenderCrewTypeCoef > $attackerCrewTypeCoef && $defender instanceof WarUnitGeneral){ if($defenderCrewTypeCoef > $attackerCrewTypeCoef && $defender instanceof WarUnitGeneral){
$defender->getGeneral()->increaseInheritancePoint('snipe_combat', 1); $defender->getGeneral()->increaseInheritancePoint('snipe_combat', 1);
} }
*/
$attackerName = $attacker->getName(); $attackerName = $attacker->getName();
$attackerCrewTypeName = $attacker->getCrewTypeName(); $attackerCrewTypeName = $attacker->getCrewTypeName();
@@ -315,7 +317,7 @@ function processWar_NG(
$battleCaller->merge($defender->getGeneral()->getBattlePhaseSkillTriggerList($defender)); $battleCaller->merge($defender->getGeneral()->getBattlePhaseSkillTriggerList($defender));
$battleCaller->fire([], [$attacker, $defender]); $battleCaller->fire([], [$attacker, $defender]);
$deadDefender = $attacker->calcDamage(); $deadDefender = $attacker->calcDamage();
$deadAttacker = $defender->calcDamage(); $deadAttacker = $defender->calcDamage();
@@ -339,7 +341,7 @@ function processWar_NG(
} }
$deadAttacker = min(ceil($deadAttacker), $attackerHP); $deadAttacker = min(ceil($deadAttacker), $attackerHP);
$deadDefender = min(ceil($deadDefender), $defenderHP); $deadDefender = min(ceil($deadDefender), $defenderHP);
$attacker->decreaseHP($deadAttacker); $attacker->decreaseHP($deadAttacker);
$defender->decreaseHP($deadDefender); $defender->decreaseHP($deadDefender);
@@ -353,12 +355,12 @@ function processWar_NG(
$attacker->getLogger()->pushGeneralBattleDetailLog( $attacker->getLogger()->pushGeneralBattleDetailLog(
"$phaseNickname : <Y1>【{$attacker->getName()}】</> <C>{$attacker->getHP()} (-$deadAttacker)</> VS <C>{$defender->getHP()} (-$deadDefender)</> <Y1>【{$defender->getName()}】</>" "$phaseNickname : <Y1>【{$attacker->getName()}】</> <C>{$attacker->getHP()} (-$deadAttacker)</> VS <C>{$defender->getHP()} (-$deadDefender)</> <Y1>【{$defender->getName()}】</>"
); );
$defender->getLogger()->pushGeneralBattleDetailLog( $defender->getLogger()->pushGeneralBattleDetailLog(
"$phaseNickname : <Y1>【{$defender->getName()}】</> <C>{$defender->getHP()} (-$deadDefender)</> VS <C>{$attacker->getHP()} (-$deadAttacker)</> <Y1>【{$attacker->getName()}】</>" "$phaseNickname : <Y1>【{$defender->getName()}】</> <C>{$defender->getHP()} (-$deadDefender)</> VS <C>{$attacker->getHP()} (-$deadAttacker)</> <Y1>【{$attacker->getName()}】</>"
); );
} }
$attacker->addPhase(); $attacker->addPhase();
$defender->addPhase(); $defender->addPhase();
@@ -369,7 +371,7 @@ function processWar_NG(
$attacker->addLose(); $attacker->addLose();
$defender->addWin(); $defender->addWin();
$attacker->tryWound(); $attacker->tryWound();
$defender->tryWound(); $defender->tryWound();
@@ -404,7 +406,7 @@ function processWar_NG(
} }
$josaYi = JosaUtil::pick($defender->getCrewTypeName(), '이'); $josaYi = JosaUtil::pick($defender->getCrewTypeName(), '이');
if($noRice){ if($noRice){
$logger->pushGlobalActionLog("<Y>{$defender->getName()}</>의 {$defender->getCrewTypeName()}{$josaYi} 패퇴했습니다."); $logger->pushGlobalActionLog("<Y>{$defender->getName()}</>의 {$defender->getCrewTypeName()}{$josaYi} 패퇴했습니다.");
$attacker->getLogger()->pushGeneralActionLog("<Y>{$defender->getName()}</>의 {$defender->getCrewTypeName()}{$josaYi} 패퇴했습니다.", ActionLogger::PLAIN); $attacker->getLogger()->pushGeneralActionLog("<Y>{$defender->getName()}</>의 {$defender->getCrewTypeName()}{$josaYi} 패퇴했습니다.", ActionLogger::PLAIN);
@@ -426,9 +428,9 @@ function processWar_NG(
if($defender !== null && !($defender instanceof WarUnitGeneral)){ if($defender !== null && !($defender instanceof WarUnitGeneral)){
throw new \RuntimeException('다음 수비자를 받아오는데 실패'); throw new \RuntimeException('다음 수비자를 받아오는데 실패');
} }
} }
} }
if($currPhase == $attacker->getMaxPhase()){ if($currPhase == $attacker->getMaxPhase()){
@@ -442,7 +444,7 @@ function processWar_NG(
$attacker->finishBattle(); $attacker->finishBattle();
$defender->finishBattle(); $defender->finishBattle();
if($defender instanceof WarUnitCity){ if($defender instanceof WarUnitCity){
$newConflict = $defender->addConflict(); $newConflict = $defender->addConflict();
if($newConflict){ if($newConflict){
@@ -501,7 +503,7 @@ function ConquerCity(array $admin, General $general, array $city) {
$defenderNationID = $city['nation']; $defenderNationID = $city['nation'];
$defenderStaticNation = getNationStaticInfo($defenderNationID); $defenderStaticNation = getNationStaticInfo($defenderNationID);
$defenderNationName = $defenderStaticNation['name']; $defenderNationName = $defenderStaticNation['name'];
$defenderNationLogger = new ActionLogger(0, $defenderNationID, $year, $month); $defenderNationLogger = new ActionLogger(0, $defenderNationID, $year, $month);
if($defenderNationID) { if($defenderNationID) {
@@ -535,7 +537,7 @@ function ConquerCity(array $admin, General $general, array $city) {
$defenderNationID, $defenderNationID,
12 12
), null, $city, $loseNation, $year, $month, false); ), null, $city, $loseNation, $year, $month, false);
$josaUl = JosaUtil::pick($defenderNationName, '을'); $josaUl = JosaUtil::pick($defenderNationName, '을');
$attackerLogger->pushNationalHistoryLog("<D><b>{$defenderNationName}</b></>{$josaUl} 정복"); $attackerLogger->pushNationalHistoryLog("<D><b>{$defenderNationName}</b></>{$josaUl} 정복");
$attackerLogger->flush(); $attackerLogger->flush();
@@ -585,19 +587,19 @@ function ConquerCity(array $admin, General $general, array $city) {
// 승전국 보상 // 승전국 보상
$loseNationGold = Util::valueFit($loseNation['gold'] - GameConst::$basegold, 0); $loseNationGold = Util::valueFit($loseNation['gold'] - GameConst::$basegold, 0);
$loseNationRice = Util::valueFit($loseNation['rice'] - GameConst::$baserice, 0); $loseNationRice = Util::valueFit($loseNation['rice'] - GameConst::$baserice, 0);
$loseNationGold += $loseGeneralGold; $loseNationGold += $loseGeneralGold;
$loseNationRice += $loseGeneralRice; $loseNationRice += $loseGeneralRice;
$loseNationGold = intdiv($loseNationGold, 2); $loseNationGold = intdiv($loseNationGold, 2);
$loseNationRice = intdiv($loseNationRice, 2); $loseNationRice = intdiv($loseNationRice, 2);
// 기본량 제외 금쌀50% + 장수들 분실 금쌀50% 흡수 // 기본량 제외 금쌀50% + 장수들 분실 금쌀50% 흡수
$db->update('nation', [ $db->update('nation', [
'gold'=>$db->sqleval('gold + %i', $loseNationGold), 'gold'=>$db->sqleval('gold + %i', $loseNationGold),
'rice'=>$db->sqleval('rice + %i', $loseNationRice), 'rice'=>$db->sqleval('rice + %i', $loseNationRice),
], 'nation=%i', $attackerNationID); ], 'nation=%i', $attackerNationID);
//아국 수뇌부에게 로그 전달 //아국 수뇌부에게 로그 전달
$loseNationGoldText = number_format($loseNationGold); $loseNationGoldText = number_format($loseNationGold);
$loseNationRiceText = number_format($loseNationRice); $loseNationRiceText = number_format($loseNationRice);
@@ -622,7 +624,7 @@ function ConquerCity(array $admin, General $general, array $city) {
'officer_level'=>1, 'officer_level'=>1,
'officer_city'=>0, 'officer_city'=>0,
], 'officer_city = %i',$cityID); ], 'officer_city = %i',$cityID);
//수도였으면 긴급 천도 //수도였으면 긴급 천도
if($defenderNationID && $defenderStaticNation['capital'] == $cityID) { if($defenderNationID && $defenderStaticNation['capital'] == $cityID) {
$minCity = findNextCapital($cityID, $defenderNationID); $minCity = findNextCapital($cityID, $defenderNationID);
@@ -686,7 +688,7 @@ function ConquerCity(array $admin, General $general, array $city) {
$conquerNationLogger->pushNationalHistoryLog("<D><b>{$attackerNationName}</b></>에서 <G><b>{$city['name']}</b></>{$josaUl} <S>양도</> 받음"); $conquerNationLogger->pushNationalHistoryLog("<D><b>{$attackerNationName}</b></>에서 <G><b>{$city['name']}</b></>{$josaUl} <S>양도</> 받음");
$attackerLogger->pushNationalHistoryLog("<G><b>{$city['name']}</b></>{$josaUl} <D><b>{$conquerNationName}</b></>에 <Y>양도</>"); $attackerLogger->pushNationalHistoryLog("<G><b>{$city['name']}</b></>{$josaUl} <D><b>{$conquerNationName}</b></>에 <Y>양도</>");
} }
$query = [ $query = [
'supply'=>1, 'supply'=>1,
'term'=>0, 'term'=>0,
@@ -704,7 +706,7 @@ function ConquerCity(array $admin, General $general, array $city) {
$query['def'] = $db->sqleval('def_max/2'); $query['def'] = $db->sqleval('def_max/2');
$query['wall'] = $db->sqleval('wall_max/2'); $query['wall'] = $db->sqleval('wall_max/2');
} }
$db->update('city', $query, 'city=%i', $cityID); $db->update('city', $query, 'city=%i', $cityID);
//전방설정 //전방설정
@@ -726,8 +728,8 @@ function findNextCapital(int $capitalID, int $nationID):int{
$cities = []; $cities = [];
foreach( foreach(
DB::db()->query( DB::db()->query(
'SELECT city, pop FROM city WHERE nation=%i and city!=%i', 'SELECT city, pop FROM city WHERE nation=%i and city!=%i',
$nationID, $nationID,
$capitalID $capitalID
) as $row ) as $row
){ ){
@@ -737,7 +739,7 @@ function findNextCapital(int $capitalID, int $nationID):int{
foreach($distList as $dist=>$distSubList){ foreach($distList as $dist=>$distSubList){
$maxCityPop = 0; $maxCityPop = 0;
$minCity = 0; $minCity = 0;
foreach($distSubList as $cityID){ foreach($distSubList as $cityID){
if(!key_exists($cityID, $cities)){ if(!key_exists($cityID, $cities)){
continue; continue;
+1 -1
View File
@@ -58,7 +58,7 @@ class General implements iAction
'lived_month' => [true, 1, '생존'], 'lived_month' => [true, 1, '생존'],
'max_belong' => [false, 10, '최대 임관년 수'], 'max_belong' => [false, 10, '최대 임관년 수'],
'max_domestic_critical' => [true, 1, '최대 연속 내정 성공'], 'max_domestic_critical' => [true, 1, '최대 연속 내정 성공'],
'snipe_combat' => [true, 10, '병종 상성 우위 횟수'], //'snipe_combat' => [true, 10, '병종 상성 우위 횟수'],
'combat' => [['rank', 'warnum'], 5, '전투 횟수'], 'combat' => [['rank', 'warnum'], 5, '전투 횟수'],
'sabotage' => [['rank', 'firenum'], 20, '계략 성공 횟수'], 'sabotage' => [['rank', 'firenum'], 20, '계략 성공 횟수'],
'unifier' => [true, 1, '천통 기여'], 'unifier' => [true, 1, '천통 기여'],
+3 -3
View File
@@ -272,7 +272,7 @@ type InheritanceType =
| "lived_month" | "lived_month"
| "max_belong" | "max_belong"
| "max_domestic_critical" | "max_domestic_critical"
| "snipe_combat" // | "snipe_combat"
| "combat" | "combat"
| "sabotage" | "sabotage"
| "unifier" | "unifier"
@@ -320,10 +320,10 @@ const inheritanceViewText: Record<
title: "최대 연속 내정 성공", title: "최대 연속 내정 성공",
info: "성공한 내정 중 최대 연속값입니다.", info: "성공한 내정 중 최대 연속값입니다.",
}, },
snipe_combat: { /* snipe_combat: {
title: "병종 상성 우위 횟수", title: "병종 상성 우위 횟수",
info: "유리한 상성을 가지고 전투했습니다.", info: "유리한 상성을 가지고 전투했습니다.",
}, },*/
combat: { combat: {
title: "전투 횟수", title: "전투 횟수",
info: "전투 횟수입니다.", info: "전투 횟수입니다.",