OSDN Git Service

処理を簡素化
authormasakih <masakih@users.sourceforge.jp>
Sun, 30 Apr 2017 08:14:32 +0000 (17:14 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sun, 30 Apr 2017 08:20:13 +0000 (17:20 +0900)
KCD/Ship.swift
KCD/SlotItemLevelView.swift

index 02f46cf..fab7afc 100644 (file)
@@ -361,7 +361,7 @@ extension Ship {
     }
     
     dynamic var totalEquipment: Int {
-        return (0...4).reduce(0) { $0 + slotItemMax($1) }
+        return (0...4).map(slotItemMax).reduce(0, +)
     }
     
     class func keyPathsForValuesAffectingSeiku() -> Set<String> {
@@ -369,33 +369,28 @@ extension Ship {
                    "onslot_0", "onslot_1", "onslot_2", "onslot_3", "onslot_4"]
     }
     dynamic var seiku: Int {
-        return (0...4).reduce(0) { $0 + Int(normalSeiku($1)) }
+        return (0...4).map(normalSeiku).map { Int($0) }.reduce(0, +)
     }
     
     class func keyPathsForValuesAffectingExtraSeiku() -> Set<String> {
         return ["seiku"]
     }
     dynamic var extraSeiku: Int {
-        return (0...4).reduce(0) { $0 + Int(extraSeiku($1)) }
+        return (0...4).map(extraSeiku).map { Int($0) }.reduce(0, +)
     }
     
     class func keyPathsForValuesAffectingTotalSeiku() -> Set<String> {
         return ["seiku", "extraSeiku"]
     }
     dynamic var totalSeiku: Int {
-        return (0...4).reduce(0) { $0 + seiku($1) }
+        return (0...4).map(seiku).reduce(0, +)
     }
     
     class func keyPathsForValuesAffectingTotalDrums() -> Set<String> {
         return ["slot_0", "slot_1", "slot_2", "slot_3", "slot_4"]
     }
     dynamic var totalDrums: Int {
-        return (0...4).reduce(0) {
-            guard let item = slotItem($1),
-                item.slotitem_id == 75
-                else { return $0 }
-            return $0 + 1
-        }
+        return (0...4).flatMap(slotItem).filter { $0.slotitem_id == 75 }.count
     }
     
     // MARK: - Plane count strings
index 2213273..fc43990 100644 (file)
@@ -18,13 +18,11 @@ class SlotItemLevelView: NSTextField {
     private let anglePoint: CGFloat = 4.0
     
     override init(frame frameRect: NSRect) {
-        slotItemController = NSObjectController()
         super.init(frame: frameRect)
         bind(#keyPath(slotItemLevel), to: slotItemController, withKeyPath: "selection.level", options: nil)
         bind(#keyPath(slotItemAlv), to: slotItemController, withKeyPath: "selection.alv", options: nil)
     }
     required init?(coder: NSCoder) {
-        slotItemController = NSObjectController()
         super.init(coder: coder)
         bind(#keyPath(slotItemLevel), to: slotItemController, withKeyPath: "selection.level", options: nil)
         bind(#keyPath(slotItemAlv), to: slotItemController, withKeyPath: "selection.alv", options: nil)
@@ -35,7 +33,7 @@ class SlotItemLevelView: NSTextField {
     }
     
     // MARK: - Variable
-    dynamic var slotItemController: NSObjectController
+    dynamic var slotItemController = NSObjectController()
     dynamic var slotItemLevel: NSNumber? {
         didSet { needsDisplay = true }
     }