OSDN Git Service

Merge pull request #1 from masakih/newCoreDataManager
[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.entity) else { return [] }
21         
22         return battles
23     }
24     
25     func resetBattle() {
26         
27         battles().forEach { delete($0) }
28     }
29     
30     func createBattle() -> Battle? {
31         
32         return insertNewObject(for: Battle.entity)
33     }
34     
35     func sortedDamagesById() -> [Damage] {
36         
37         let sortDescriptors = SortDescriptors(keyPath: \Damage.id, ascending: true)
38         
39         guard let damages = try? objects(of: Damage.entity, sortDescriptors: sortDescriptors) else { return [] }
40         
41         return damages
42     }
43     
44     func damages() -> [Damage] {
45         
46         guard let damages = try? objects(of: Damage.entity) else { return [] }
47         
48         return damages
49     }
50     
51     func createDamage() -> Damage? {
52         
53         return insertNewObject(for: Damage.entity)
54     }
55     
56     func guardEscaped() -> [GuardEscaped] {
57         
58         guard let escapeds = try? objects(of: GuardEscaped.entity) else { return [] }
59         
60         return escapeds
61     }
62     
63     func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
64         
65         let predicate = Predicate(\GuardEscaped.shipID, equalTo: shipId)
66             .and(Predicate(true: \GuardEscaped.ensured))
67         
68         guard let escapes = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return nil }
69         
70         return escapes.first
71     }
72     
73     func notEnsuredGuardEscaped() -> [GuardEscaped] {
74         
75         let predicate = Predicate(false: \GuardEscaped.ensured)
76         
77         guard let escapeds = try? objects(of: GuardEscaped.entity, predicate: predicate) else { return [] }
78         
79         return escapeds
80     }
81     
82     func createGuardEscaped() -> GuardEscaped? {
83         
84         return insertNewObject(for: GuardEscaped.entity)
85     }
86 }