game: snipe_combat 제거거
This commit is contained in:
+31
-29
@@ -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;
|
||||||
|
|||||||
@@ -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, '천통 기여'],
|
||||||
|
|||||||
@@ -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: "전투 횟수입니다.",
|
||||||
|
|||||||
Reference in New Issue
Block a user