2 // CreateShipCommand.swift
5 // Created by Hori,Masaki on 2017/01/11.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class CreateShipCommand: JSONCommand {
13 override class func canExecuteAPI(_ api: API) -> Bool {
15 return api.endpoint == .createShip
18 override func execute() {
20 DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
25 private func afterExecute() {
27 guard let dockId = parameter["api_kdock_id"].int else {
29 return Logger.shared.log("api_kdock_id is wrong")
32 let store = ServerDataStore.default
34 guard let kenzoDock = store.kenzoDock(by: dockId),
35 let flagShip = store.deck(by: 1)?[0],
36 let basic = store.basic() else {
38 return Logger.shared.log("CreateShipCommand: CoreData is wrong")
41 let localStore = LocalDataStore.oneTimeEditor()
43 guard let newMark = localStore.kenzoMark(byDockId: dockId) ?? localStore.createKenzoMark() else {
45 return Logger.shared.log("Can not create KenzoMark")
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