OSDN Git Service

endpointを文字列のまま扱わないようにした
[kcd/KCD.git] / KCD / DummyShipCommand.swift
1 //
2 //  DummyShipCommand.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/15.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 /**
12  * 出撃中にドロップした艦をマスクした上で入居数に反映させるためのダミーデータの生成と削除を行う
13  **/
14 final class DummyShipCommand: JSONCommand {
15     
16     private static var needsEnterDummy = false
17     
18     override func execute() {
19         
20         switch api.endpoint {
21             
22         case .battleResult, .combinedBattleResult: checkGetShip()
23         
24         case .shipDeck: enterDummy()
25         
26         case .port: removeDummy()
27         
28         default: return Logger.shared.log("Missing API: \(apiResponse.api)")
29         }
30     }
31     
32     private func checkGetShip() {
33         
34         DummyShipCommand.needsEnterDummy = data["api_get_ship"].exists()
35     }
36     
37     private func enterDummy() {
38         
39         guard DummyShipCommand.needsEnterDummy else { return }
40         
41         let store = ServerDataStore.oneTimeEditor()
42         
43         store.createShip()?.id = -2
44         DummyShipCommand.needsEnterDummy = false
45     }
46     
47     private func removeDummy() {
48         
49         let store = ServerDataStore.oneTimeEditor()
50         
51         store.ships(by: -2).forEach(store.delete)
52         DummyShipCommand.needsEnterDummy = false
53     }
54 }