OSDN Git Service

guard の書き方を統一した
[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             print("api_slot_id is wrong")
19             return
20         }
21         
22         let afterSlot = data["api_after_slot"]
23         let store = ServerDataStore.oneTimeEditor()
24         
25         guard let slotItem = store.slotItem(by: slotItemId) else {
26             
27             print("SlotItem not found")
28             return
29         }
30
31         if let locked = afterSlot["api_locked"].int {
32             
33             slotItem.locked = locked != 0
34             
35         }
36         if let masterSlotItemId = afterSlot["api_slotitem_id"].int,
37             masterSlotItemId != slotItem.slotitem_id,
38             let masterSlotItem = store.masterSlotItem(by: slotItemId) {
39             
40             slotItem.master_slotItem = masterSlotItem
41             slotItem.slotitem_id = slotItemId
42             
43         }
44         if let level = afterSlot["api_level"].int {
45             
46             slotItem.level = level
47             
48         }
49         
50         // remove used slot items.
51         guard let useSlot = data["api_use_slot_id"].arrayObject as? [Int] else { return }
52         
53         store.slotItems(in: useSlot).forEach { store.delete($0) }
54     }
55 }