2 // MapStartCommand.swift
5 // Created by Hori,Masaki on 2017/01/18.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
12 case start = "/kcsapi/api_req_map/start"
13 case next = "/kcsapi/api_req_map/next"
16 class MapStartCommand: JSONCommand {
17 private let store = TemporaryDataStore.oneTimeEditor()
19 override class func canExecuteAPI(_ api: String) -> Bool {
20 return MapAPI(rawValue: api) != nil ? true : false
23 override func execute() {
24 MapAPI(rawValue: api).map {
26 case .start: startBattle()
32 GuardShelterCommand(apiResponse: apiResponse).execute()
35 private func startBattle() {
36 store.battles().forEach { store.delete($0) }
38 guard let deckId = parameter["api_deck_id"].int,
39 let mapArea = parameter["api_maparea_id"].int,
40 let mapInfo = parameter["api_mapinfo_no"].int
41 else { return print("startBattle Arguments is wrong") }
43 guard let no = data["api_no"].int
44 else { return print("startBattle JSON is wrong") }
45 guard let battle = store.createBattle()
46 else { return print("Can not create Battle") }
47 battle.deckId = deckId
48 battle.mapArea = mapArea
49 battle.mapInfo = mapInfo
52 private func nextCell() {
53 guard let cellNumber = data["api_no"].int,
54 let eventId = data["api_event_id"].int
55 else { return print("updateBattleCell JSON is wrong") }
56 guard let battle = store.battle()
57 else { return print("Battle is invalid.") }
58 battle.no = cellNumber
59 battle.isBossCell = (eventId == 5)
61 private func updateBattleCell() {
62 store.battle().map { $0.battleCell = nil }