OSDN Git Service

swiftlint 'opening_brace'の警告を修正
[kcd/KCD.git] / KCD / RemodelSlotItemCommand.swift
1 //
2 //  RemodelSlotItemCommand.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/09.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class RemodelSlotItemCommand: JSONCommand {
12     override func execute() {
13         guard let data = json[dataKey] as? [String: Any]
14             else { return print("JSON is wrong") }
15         
16         guard let success = data["api_remodel_flag"] as? Int,
17             success != 0
18             else { return }
19         
20         guard let slotItemId = arguments["api_slot_id"].flatMap({ Int($0) }),
21             let afterSlot = data["api_after_slot"] as? [String: Any]
22             else { return print("api_slot_id is wrong") }
23         
24         let store = ServerDataStore.oneTimeEditor()
25         guard let slotItem = store.slotItem(byId: slotItemId)
26             else { return print("SlotItem not found") }
27
28         if let locked = afterSlot["api_locked"] as? Bool {
29             slotItem.locked = locked
30         }
31         if let masterSlotItemId = afterSlot["api_slotitem_id"] as? Int,
32             masterSlotItemId != slotItem.slotitem_id,
33             let masterSlotItem = store.masterSlotItem(by: slotItemId) {
34             slotItem.master_slotItem = masterSlotItem
35             slotItem.slotitem_id = slotItemId
36         }
37         if let level = afterSlot["api_level"] as? Int {
38             slotItem.level = level
39         }
40         
41         // remove used slot items.
42         guard let useSlot = data["api_use_slot_id"] as? [Int]
43             else { return }
44         store.slotItems(in: useSlot).forEach { store.delete($0) }
45     }
46 }