OSDN Git Service

HMRemodelSlotItemCommandクラスをSwiftで書き換え
[kcd/KCD.git] / KCD / HMRemodelSlotItemCommand.swift
1 //
2 //  HMRemodelSlotItemCommand.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2015/01/22.
6 //  Copyright (c) 2015年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class HMRemodelSlotItemCommand: HMJSONCommand {
12         override func execute() {
13                 let data = json[dataKey] as NSDictionary?
14                 if data == nil {
15                         NSLog("data is not dictionary")
16                         return
17                 }
18                 
19                 let success = data!["api_remodel_flag"] as NSNumber?
20                 if success == nil || !success!.boolValue {
21                         NSLog("Remodel is failed.")
22                         return
23                 }
24                 
25                 if let slotItemID = arguments["api_slot_id"] as? String {
26                         let store = HMServerDataStore.oneTimeEditor()
27                         let predicate = NSPredicate(format: "id = \(slotItemID)")
28                         var error: NSError? = nil
29                         let array = store.objectsWithEntityName("SlotItem",
30                                 sortDescriptors: nil,
31                                 predicate: predicate,
32                                 error: &error)
33                         if array.count == 0 {
34                                 NSLog("Could not find SlotItem number \(slotItemID)")
35                                 if error != nil {
36                                         NSLog("Fetch error: \(error!)")
37                                 }
38                                 return
39                         }
40                         
41                         if let item = array[0] as? HMKCSlotItemObject {
42                                 if let afterSlot = data!["api_after_slot"] as? NSDictionary {
43                                         if let locked = afterSlot["api_locked"] as? NSNumber {
44                                                 item.locked = locked
45                                         }
46                                         if let level = afterSlot["api_level"] as? NSNumber {
47                                                 item.level = level
48                                         }
49                                 }
50                                 if let masterSoltItemID = data!["api_slotitem_id"] as? NSNumber {
51                                         setMasterSlotItemForItemID(masterSoltItemID, item: item, store: store)
52                                 }
53                         }
54                 }
55         }
56         
57         func setMasterSlotItemForItemID(slotItemID: NSNumber, item: HMKCSlotItemObject, store: HMServerDataStore) {
58                 let predicate = NSPredicate(format: "id = \(slotItemID)")
59                 var error: NSError? = nil
60                 let array = store.objectsWithEntityName("MasterSlotItem",
61                         sortDescriptors: nil,
62                         predicate: predicate,
63                         error: &error)
64                 if array.count == 0 {
65                         NSLog("Could not find MasterSlotItem number \(slotItemID)")
66                         if error != nil {
67                                 NSLog("Fetch error: \(error!)")
68                         }
69                         return
70                 }
71                 if let master = array[0] as? HMKCMasterSlotItemObject {
72                         item.master_slotItem = master
73                         item.slotitem_id = slotItemID
74                 }
75         }
76 }