OSDN Git Service

UAをVersion/10.0.3 Safari/602.4.8に変更
[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 success = data["api_remodel_flag"].int,
14             success != 0
15             else { return }
16         
17         guard let slotItemId = parameter["api_slot_id"].int
18             else { return print("api_slot_id is wrong") }
19         
20         let afterSlot = data["api_after_slot"]
21         let store = ServerDataStore.oneTimeEditor()
22         guard let slotItem = store.slotItem(byId: slotItemId)
23             else { return print("SlotItem not found") }
24
25         if let locked = afterSlot["api_locked"].int {
26             slotItem.locked = locked != 0
27         }
28         if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
29             masterSlotItemId != slotItem.slotitem_id,
30             let masterSlotItem = store.masterSlotItem(by: slotItemId) {
31             slotItem.master_slotItem = masterSlotItem
32             slotItem.slotitem_id = slotItemId
33         }
34         if let level = afterSlot["api_level"].int {
35             slotItem.level = level
36         }
37         
38         // remove used slot items.
39         guard let useSlot = data["api_use_slot_id"].arrayObject as? [Int]
40             else { return }
41         store.slotItems(in: useSlot).forEach { store.delete($0) }
42     }
43 }