OSDN Git Service

staticプロパティをインスタンスプロパティに変更
[kcd/KCD.git] / KCD / TemporaryDataStoreAccessor.swift
1 //
2 //  TemporaryDataStoreAccessor.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/10/25.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Doutaku
10
11 extension TemporaryDataStore {
12     
13     func battle() -> Battle? {
14         
15         return battles().first
16     }
17     
18     func battles() -> [Battle] {
19         
20         guard let battles = try? self.objects(of: Battle.self) else {
21             
22             return []
23         }
24         
25         return battles
26     }
27     
28     func resetBattle() {
29         
30         battles().forEach { delete($0) }
31     }
32     
33     func createBattle() -> Battle? {
34         
35         return insertNewObject(for: Battle.self)
36     }
37     
38     func sortedDamagesById() -> [Damage] {
39         
40         let sortDescriptors = SortDescriptors(keyPath: \Damage.id, ascending: true)
41         
42         guard let damages = try? objects(of: Damage.self, sortDescriptors: sortDescriptors) else {
43             
44             return []
45         }
46         
47         return damages
48     }
49     
50     func damages() -> [Damage] {
51         
52         guard let damages = try? objects(of: Damage.self) else {
53             
54             return []
55         }
56         
57         return damages
58     }
59     
60     func createDamage() -> Damage? {
61         
62         return insertNewObject(for: Damage.self)
63     }
64     
65     func guardEscaped() -> [GuardEscaped] {
66         
67         guard let escapeds = try? objects(of: GuardEscaped.self) else {
68             
69             return []
70         }
71         
72         return escapeds
73     }
74     
75     func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
76         
77         let predicate = Predicate(\GuardEscaped.shipID, equalTo: shipId)
78             .and(Predicate(true: \GuardEscaped.ensured))
79         
80         guard let escapes = try? objects(of: GuardEscaped.self, predicate: predicate) else {
81             
82             return nil
83         }
84         
85         return escapes.first
86     }
87     
88     func notEnsuredGuardEscaped() -> [GuardEscaped] {
89         
90         let predicate = Predicate(false: \GuardEscaped.ensured)
91         
92         guard let escapeds = try? objects(of: GuardEscaped.self, predicate: predicate) else {
93             
94             return []
95         }
96         
97         return escapeds
98     }
99     
100     func createGuardEscaped() -> GuardEscaped? {
101         
102         return insertNewObject(for: GuardEscaped.self)
103     }
104 }