OSDN Git Service

guard の書き方を統一した
[kcd/KCD.git] / KCD / SeikuCalclator.swift
index 1700563..69e95be 100644 (file)
@@ -8,28 +8,28 @@
 
 import Foundation
 
-fileprivate let seikuEffectiveTypes = [6, 7, 8, 11, 45, 56, 57, 58]
+private let seikuEffectiveTypes = [6, 7, 8, 11, 45, 56, 57, 58]
 
-fileprivate let fighterTypes =              [ 6]
-fileprivate let bomberTypes =               [ 7]
-fileprivate let attackerTypes =             [ 8]
-fileprivate let floatplaneBomberTypes =     [11]
-fileprivate let floatplaneFighterTypes =    [45]
-fileprivate let jetFighter =                [56]
-fileprivate let jetBomberTypes =            [57]
-fileprivate let jetAttackerTypes =          [58]
+private let fighterTypes =              [ 6]
+private let bomberTypes =               [ 7]
+private let attackerTypes =             [ 8]
+private let floatplaneBomberTypes =     [11]
+private let floatplaneFighterTypes =    [45]
+private let jetFighter =                [56]
+private let jetBomberTypes =            [57]
+private let jetAttackerTypes =          [58]
 
 // swiftlint:disable comma
-fileprivate let fighterBonus: [Double] =            [0, 0, 2, 5, 9, 14, 14, 22]
-fileprivate let bomberBonus: [Double] =             [0, 0, 0, 0, 0,  0,  0,  0]
-fileprivate let attackerBonus: [Double] =           [0, 0, 0, 0, 0,  0,  0,  0]
-fileprivate let floatplaneBomberBonus: [Double] =   [0, 0, 1, 1, 1,  3,  3,  6]
-fileprivate let floatplaneFighterBonus: [Double] =  [0, 0, 2, 5, 9, 14, 14, 22]
-fileprivate let jetBomberBonus: [Double] =          [0, 0, 0, 0, 0,  0,  0,  0]
+private let fighterBonus: [Double] =            [0, 0, 2, 5, 9, 14, 14, 22]
+private let bomberBonus: [Double] =             [0, 0, 0, 0, 0,  0,  0,  0]
+private let attackerBonus: [Double] =           [0, 0, 0, 0, 0,  0,  0,  0]
+private let floatplaneBomberBonus: [Double] =   [0, 0, 1, 1, 1,  3,  3,  6]
+private let floatplaneFighterBonus: [Double] =  [0, 0, 2, 5, 9, 14, 14, 22]
+private let jetBomberBonus: [Double] =          [0, 0, 0, 0, 0,  0,  0,  0]
 // swiftlint:enable comma
 
 //                            sqrt 0, 1,     2.5,   4,     5.5,   7,     8.5,   10
-fileprivate let bonus: [Double] = [0, 1.000, 1.581, 2.000, 2.345, 2.645, 2.915, 3.162]
+private let bonus: [Double] = [0, 1.000, 1.581, 2.000, 2.345, 2.645, 2.915, 3.162]
 
 
 final class SeikuCalclator {
@@ -43,11 +43,17 @@ final class SeikuCalclator {
     
     var seiku: Int {
         
+        let guardEscaped = TemporaryDataStore.default.ensuredGuardEscaped(byShipId: ship.id)
+        guard guardEscaped == nil else { return 0 }
+        
         return (0...4).map(normalSeiku).map { Int($0) }.reduce(0, +)
     }
     
     var totalSeiku: Int {
         
+        let guardEscaped = TemporaryDataStore.default.ensuredGuardEscaped(byShipId: ship.id)
+        guard guardEscaped == nil else { return 0 }
+        
         return (0...4).map(seiku).reduce(0, +)
     }
     
@@ -76,13 +82,11 @@ final class SeikuCalclator {
         
         if itemCount == 0 { return 0 }
         
-        guard let item = slotItem(index)
-            else { return 0 }
+        guard let item = slotItem(index) else { return 0 }
         
         let type2 = item.master_slotItem.type_2
         
-        guard seikuEffectiveTypes.contains(type2)
-            else { return 0 }
+        guard seikuEffectiveTypes.contains(type2) else { return 0 }
         
         let taiku = Double(item.master_slotItem.tyku)
         let lv = Double(item.level)
@@ -98,13 +102,11 @@ final class SeikuCalclator {
         
         if itemCount == 0 { return 0 }
         
-        guard let item = slotItem(index)
-            else { return 0 }
+        guard let item = slotItem(index) else { return 0 }
         
         let type2 = item.master_slotItem.type_2
         
-        guard let typeBonus = typeBonus(type2)
-            else { return 0 }
+        guard let typeBonus = typeBonus(type2) else { return 0 }
         
         let airLevel = item.alv