OSDN Git Service

関数名を変更
[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 final class RemodelSlotItemCommand: JSONCommand {
12     
13     override func execute() {
14         
15         guard let success = data["api_remodel_flag"].int, success != 0 else { return }
16         guard let slotItemId = parameter["api_slot_id"].int else {
17             
18             return Logger.shared.log("api_slot_id is wrong")
19         }
20         
21         let afterSlot = data["api_after_slot"]
22         let store = ServerDataStore.oneTimeEditor()
23         
24         guard let slotItem = store.slotItem(by: slotItemId) else {
25             
26             return Logger.shared.log("SlotItem not found")
27         }
28
29         if let locked = afterSlot["api_locked"].int {
30             
31             slotItem.locked = (locked != 0)
32         }
33         if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
34             masterSlotItemId != slotItem.slotitem_id,
35             let masterSlotItem = store.masterSlotItem(by: slotItemId) {
36             
37             slotItem.master_slotItem = masterSlotItem
38             slotItem.slotitem_id = slotItemId
39             
40         }
41         if let level = afterSlot["api_level"].int {
42             
43             slotItem.level = level
44         }
45         
46         // remove used slot items.
47         guard let useSlot = data["api_use_slot_id"].arrayObject as? [Int] else { return }
48         
49         store.slotItems(in: useSlot).forEach(store.delete)
50     }
51 }