OSDN Git Service

コーディングスタイルを変更
[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:
29             Logger.shared.log("Missing API: \(apiResponse.api)")
30             
31         }
32     }
33     
34     private func checkGetShip() {
35         
36         DummyShipCommand.needsEnterDummy = data["api_get_ship"].exists()
37     }
38     
39     private func enterDummy() {
40         
41         guard DummyShipCommand.needsEnterDummy else {
42             
43             return
44         }
45         
46         let store = ServerDataStore.oneTimeEditor()
47         store.sync { store.createShip()?.id = -2 }
48         DummyShipCommand.needsEnterDummy = false
49     }
50     
51     private func removeDummy() {
52         
53         let store = ServerDataStore.oneTimeEditor()
54         store.sync { store.ships(by: -2).forEach(store.delete) }
55         DummyShipCommand.needsEnterDummy = false
56     }
57 }