OSDN Git Service

関数名を変更
[kcd/KCD.git] / KCD / CreateShipCommand.swift
1 //
2 //  CreateShipCommand.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/11.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 final class CreateShipCommand: JSONCommand {
12     
13     override class func canExecuteAPI(_ api: API) -> Bool {
14         
15         return api.endpoint == .createShip
16     }
17     
18     override func execute() {
19         
20         DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
21             self.afterExecute()
22         }
23     }
24     
25     private func afterExecute() {
26         
27         guard let dockId = parameter["api_kdock_id"].int else {
28             
29             return Logger.shared.log("api_kdock_id is wrong")
30         }
31         
32         let store = ServerDataStore.default
33         
34         guard let kenzoDock = store.kenzoDock(by: dockId),
35             let flagShip = store.deck(by: 1)?[0],
36             let basic = store.basic() else {
37                 
38                 return Logger.shared.log("CreateShipCommand: CoreData is wrong")
39         }
40         
41         let localStore = LocalDataStore.oneTimeEditor()
42         
43         guard let newMark = localStore.kenzoMark(byDockId: dockId) ?? localStore.createKenzoMark() else {
44             
45             return Logger.shared.log("Can not create KenzoMark")
46         }
47         
48         newMark.fuel = kenzoDock.item1
49         newMark.bull = kenzoDock.item2
50         newMark.steel = kenzoDock.item3
51         newMark.bauxite = kenzoDock.item4
52         newMark.kaihatusizai = kenzoDock.item5
53         newMark.created_ship_id = kenzoDock.created_ship_id
54         newMark.flagShipName = flagShip.name
55         newMark.flagShipLv = flagShip.lv
56         newMark.commanderLv = basic.level
57         newMark.kDockId = dockId
58     }
59 }