enum BattleFleet {
- case first
- case second
- case each
+ case normal
+ case secondOnly
}
final class DamageCalculator {
calculateFDam(baseKeyPath: "api_data.api_kouku.api_stage3")
calculateFDam(baseKeyPath: "api_data.api_kouku2.api_stage3")
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第2
- // 連合vs通常(機動) 第2
- // 連合vs連合(水上) 第2 全体 use kouku nor kouku2
- // 連合vs連合(機動) 第1 全体 use kouku nor kouku2
let bf: () -> BattleFleet = {
switch self.battleType {
.combinedAir,
.eachCombinedWater,
.eachCombinedAir:
- return .second
+ return .secondOnly
- default: return .first
+ default: return .normal
}
}
calculateFDam(baseKeyPath: "api_data.api_kouku.api_stage3_combined", bf)
private func calcOpeningAttack() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第2
- // 連合vs通常(機動) 第2
- // 連合vs連合(水上) 第2 全体
- // 連合vs連合(機動) 第2 全体
calculateFDam(baseKeyPath: "api_data.api_opening_atack")
-// {
-//
-// switch battleType {
-// case .combinedWater, .combinedAir: return .second
-//
-// case .eachCombinedWater, .eachCombinedAir: return .each
-//
-// default: return .first
-// }
-// }
}
private func calcOpeningTaisen() {
calculateHogeki(baseKeyPath: "api_data.api_opening_taisen")
-// {
-//
-// isCombinedBattle ? .second : .first
-// }
}
private func calcHougeki1() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第1
- // 連合vs通常(機動) 第2
- // 連合vs連合(水上) 第1
- // 連合vs連合(機動) 第1
calculateHogeki(baseKeyPath: "api_data.api_hougeki1")
-// {
-//
-// switch battleType {
-// case .combinedAir: return .second
-//
-// default: return .first
-// }
-// }
}
private func calcHougeki2() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第1
- // 連合vs通常(機動) 第1
- // 連合vs連合(水上) 第1 全体
- // 連合vs連合(機動) 第2
calculateHogeki(baseKeyPath: "api_data.api_hougeki2")
-// {
-//
-// switch battleType {
-// case .eachCombinedWater: return .each
-//
-// case .eachCombinedAir: return .each
-//
-// default: return .first
-// }
-// }
}
private func calcHougeki3() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第2
- // 連合vs通常(機動) 第1
- // 連合vs連合(水上) 第2
- // 連合vs連合(機動) 第1 全体
calculateHogeki(baseKeyPath: "api_data.api_hougeki3")
-// {
-//
-// switch battleType {
-// case .combinedWater: return .second
-//
-//// case .eachCombinedWater: return .second // 1~12
-// case .eachCombinedAir: return .each
-//
-// default: return .first
-// }
-// }
}
private func calcNightHogeki1() {
private func calcRaigeki() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第2
- // 連合vs通常(機動) 第2
- // 連合vs連合(水上) 第2 全体
- // 連合vs連合(機動) 第2 全体
calculateFDam(baseKeyPath: "api_data.api_raigeki")
-// {
-//
-// switch battleType {
-// case .combinedWater, .combinedAir: return .second
-//
-// case .eachCombinedWater, .eachCombinedAir: return .each
-//
-// default: return .first
-// }
-// }
}
private func calculateMidnightBattle() {
- // 艦隊 戦闘艦隊
- // 連合vs通常(水上) 第2
- // 連合vs通常(機動) 第2
- // 連合vs連合(水上) 第2
- // 連合vs連合(機動) 第2
calculateHogeki(baseKeyPath: "api_data.api_hougeki")
-// {
-//
-// isCombinedBattle ? .second : .first
-// }
}
}
private func position(_ pos: Int, in fleet: BattleFleet) -> Int? {
- let damagePos = (fleet == .second ? pos + 6 : pos)
+ let damagePos = (fleet == .secondOnly ? pos + 6 : pos)
guard case 0..<damages.count = damagePos else { return nil }
return zip(zip(targetPosLists, damageLists), eFlags).filter { $0.1 == 1 }.map { $0.0 }
}
- private func calculateHogeki(baseKeyPath: String, battleFleet: BattleFleet = .first) {
+ private func calculateHogeki(baseKeyPath: String, battleFleet: BattleFleet = .normal) {
let baseValue = json[baseKeyPath.components(separatedBy: ".")]
calcHP(damage: damages[damagePos], receive: damage)
- Debug.excute(level: .debug) {
-
- print("Hougeki \(targetPos) -> \(damage)")
- }
+ Debug.print("Hougeki \(targetPos) -> \(damage)", level: .debug)
}
}
calculateFDam(baseKeyPath: baseKeyPath, battleFleet: bf())
}
- private func calculateFDam(baseKeyPath: String, battleFleet: BattleFleet = .first) {
+ private func calculateFDam(baseKeyPath: String, battleFleet: BattleFleet = .normal) {
let baseValue = json[baseKeyPath.components(separatedBy: ".")]
calcHP(damage: damages[damagePos], receive: damage)
- Debug.excute(level: .debug) {
-
- print("FDam \(idx) -> \(damage)")
- }
+ Debug.print("FDam \(idx) -> \(damage)", level: .debug)
}
}
}