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 {
16             
17             return
18         }
19         guard let slotItemId = parameter["api_slot_id"].int else {
20             
21             Logger.shared.log("api_slot_id is wrong")
22             
23             return
24         }
25         
26         let afterSlot = data["api_after_slot"]
27         let store = ServerDataStore.oneTimeEditor()
28         store.sync {
29             guard let slotItem = store.slotItem(by: slotItemId) else {
30                 
31                 Logger.shared.log("SlotItem not found")
32                 
33                 return
34             }
35             
36             if let locked = afterSlot["api_locked"].int {
37                 
38                 slotItem.locked = (locked != 0)
39             }
40             if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
41                 masterSlotItemId != slotItem.slotitem_id,
42                 let masterSlotItem = store.masterSlotItem(by: slotItemId) {
43                 
44                 slotItem.master_slotItem = masterSlotItem
45                 slotItem.slotitem_id = slotItemId
46                 
47             }
48             if let level = afterSlot["api_level"].int {
49                 
50                 slotItem.level = level
51             }
52             
53             // remove used slot items.
54             guard let useSlot = self.data["api_use_slot_id"].arrayObject as? [Int] else {
55                 
56                 return
57             }
58             
59             store.slotItems(in: useSlot).forEach(store.delete)
60         }
61     }
62 }