OSDN Git Service

AppDelegateからウインドウに関する部分を分離した
[kcd/KCD.git] / KCD / Ship.swift
index 408d72a..02f46cf 100644 (file)
@@ -93,15 +93,17 @@ extension Ship {
         return ["ship_id"]
     }
     dynamic var shortTypeName: String? {
-        if shortSTypeNames.count < master_ship.stype.id { return nil }
-        return shortSTypeNames[master_ship.stype.id - 1]
+        let index = master_ship.stype.id - 1
+        guard 0..<shortSTypeNames.count ~= index
+            else { return nil }
+        return shortSTypeNames[index]
     }
     
     class func keyPathsForValuesAffectingNext() -> Set<String> {
         return ["exp"]
     }
     dynamic var next: NSNumber? {
-        if lv >= levelUpExps.count { return nil }
+        guard 0..<levelUpExps.count ~= lv else { return nil }
         if lv == 99 { return nil }
         let nextExp = levelUpExps[lv]
         if lv < 99 { return (nextExp - exp) as NSNumber }
@@ -252,7 +254,7 @@ extension Ship {
 }
 
 
-fileprivate let seikuEffectiveTypes: [Int] = [6, 7, 8, 11, 45]
+fileprivate let seikuEffectiveTypes: [Int] = [6, 7, 8, 11, 45, 56, 57, 58]
 
 fileprivate let fighterTypes: [Int] = [6]
 fileprivate let bomberTypes: [Int] = [7]
@@ -320,7 +322,7 @@ extension Ship {
     }
     
     private func slotItem(_ index: Int) -> SlotItem? {
-        return ServerDataStore.default.slotItem(byId: slotItemId(index))
+        return ServerDataStore.default.slotItem(by: slotItemId(index))
     }
     private func typeBonus(_ type: Int) -> [Double]? {
         switch type {
@@ -409,8 +411,9 @@ extension Ship {
         if itemId == -1 { return .notEquip(maxCount) }
         
         if let item = slotItem(index),
-            allPlaneTypes.contains(item.master_slotItem.type_2)
-        { return .equiped(slotItemCount(index), maxCount) }
+            allPlaneTypes.contains(item.master_slotItem.type_2) {
+            return .equiped(slotItemCount(index), maxCount)
+        }
         return .notEquip(maxCount)
     }
     private func planeString(_ index: Int) -> String? {