From 612c3f3803391c140b13227b162cc7848bbafba3 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 19 Sep 2022 10:31:05 +0800 Subject: [PATCH] 1 --- webapp/services/BattleDataService.php | 73 ++++++++++++++++++--------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index b70bd997..9dbafb45 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -583,29 +583,48 @@ class BattleDataService extends BaseService { private function rewardCegPve() { - $pveShouYi = 0; - $heroQuality = $this->heroDto['quality']; - $instanceRank = 1; + $instanceRank = $this->getInstanceRank(); + { + $cond = $instanceRank > 0; + if (!$cond) { + return; + } + } $instanceLevel = $this->pveGeminiMeta['gemini_lv']; - $bossReward = 0; - $gun1Ceg = 0; - $gun2Ceg = 0; + $bossReward = getReqVal(pve_kill_boss) ? 1 : 0; - $heroRewardCeg = $pveShouYi * - max(1.15 - ($heroQuality - $instanceLevel) * 0.25, 0) * - (0.8 - ($instanceRank - 1) * 0.25 + $bossReward * 0.2) * - 1/10 - ; - $gun1RewardCeg = $gun1Ceg * - max(1.15 - ($heroQuality - $instanceLevel) * 0.25, 0) * - (0.8 - ($instanceRank - 1) * 0.25 + $bossReward * 0.2) * - 1/10 - ; - $gun2RewardCeg = $gun2Ceg * - max(1.15 - ($heroQuality - $instanceLevel) * 0.25, 0) * - (0.8 - ($instanceRank - 1) * 0.25 + $bossReward * 0.2) * - 1/10 - ; + $heroPveCeg = FormulaService::calcHeroPveCeg($this->heroDto, $instanceLevel, $instanceRank, $bossReward); + $weaponPveCeg1 = 0; + $weaponPveCeg2 = 0; + if ($this->weapon1Dto) { + $weaponPveCeg1 = FormulaService::calcWeaponPveCeg($this->weapon1Dto, $instanceLevel, $instanceRank, $bossReward); + } + if ($this->weapon2Dto) { + $weaponPveCeg2 = FormulaService::calcWeaponPveCeg($this->weapon2Dto, $instanceLevel, $instanceRank, $bossReward); + } + error_log(json_encode(array( + 'heroPveCeg' => $heroPveCeg, + 'weaponPveCeg1' => $weaponPveCeg1, + 'weaponPveCeg2' => $weaponPveCeg2, + ))); + if ($heroPveCeg > 0) { + $heroPveCeg = Hero::newGainGold($this->heroDto, $heroPveCeg); + } + if ($weaponPveCeg1 > 0) { + $weaponPveCeg1 = Gun::newGainGold($this->weapon1Dto, $weaponPveCeg1); + } + if ($weaponPveCeg2 > 0) { + $weaponPveCeg2 = Gun::newGainGold($this->weapon1Dto, $weaponPveCeg2); + } + error_log(json_encode(array( + 'new_heroPveCeg' => $heroPveCeg, + 'new_weaponPveCeg1' => $weaponPveCeg1, + 'new_weaponPveCeg2' => $weaponPveCeg2, + ))); + $gold = $heroPveCeg + $weaponPveCeg1 + $weaponPveCeg2; + if ($gold > 0) { + myself()->_addVirtualItem(V_ITEM_GOLD, $gold); + } } private function getOnlineNumber() @@ -634,12 +653,18 @@ class BattleDataService extends BaseService { return -1; } + private function GetInstanceRank() + { + $pveRankScore = getReqVal('pve_rank_score', 0); + $instanceRank = mt\PveGeminiMode::calcStar($this->pveGeminiModeMeta, $pveRankScore); + return $instanceRank; + } + private function getInstanceRankRate() { if ($this->pveGeminiModeMeta) { - $pveRankScore = getReqVal('pve_rank_score', 0); - $star = mt\PveGeminiMode::calcStar($this->pveGeminiModeMeta, $pveRankScore); - switch ($star) { + $instanceRank = $this->getInstanceRank(); + switch ($instanceRank) { case 1: { return 0.8;