F4CF25BF1E36428400C02A66 /* MissionStatus.swift */,
F4CF25BD1E361F4600C02A66 /* NyukyoDockStatus.swift */,
F4CF25BB1E34F67400C02A66 /* KenzoDockStatus.swift */,
- F42CFE1B1E3CB495000B4F9B /* BookmarkItem.swift */,
F4CF25B91E34EB6600C02A66 /* BookmarkManager.swift */,
F45771221E1BCC7C008A9215 /* PeriodicNotifier.swift */,
F4CF25B51E34BAD500C02A66 /* AnchorageRepairManager.swift */,
children = (
F495462C1B1894DD00E0D8D0 /* Bookmark.xcdatamodeld */,
F47215A71E1F947A0083D3BC /* BookmarkDataStore.swift */,
+ F42CFE1B1E3CB495000B4F9B /* BookmarkItem.swift */,
);
name = Bookmark;
sourceTree = "<group>";
class AirBaseMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCAirBase.self,
+ let configuration = MappingConfiguration(entityType: AirBase.self,
dataKey: "api_data.api_air_base",
compositPrimaryKeys: ["area_id", "rid"],
editorStore: ServerDataStore.oneTimeEditor())
func handleExtraValue(_ value: Any, forKey key: String, to object: NSManagedObject) -> Bool {
if key != "api_plane_info" { return false }
- guard let airbase = object as? KCAirBase else {
+ guard let airbase = object as? AirBase else {
print("object is not AirBase")
return false
}
if airbase.planeInfo.count == 0 {
if let store = configuration.editorStore as? ServerDataStore {
- let new: [KCAirBasePlaneInfo] = (0..<4).flatMap {_ in
+ let new: [AirBasePlaneInfo] = (0..<4).flatMap {_ in
store.createAirBasePlaneInfo()
}
airbase.planeInfo = NSOrderedSet(array: new)
print("value is wrong")
return false
}
- guard let infos = airbase.planeInfo.array as? [KCAirBasePlaneInfo]
+ guard let infos = airbase.planeInfo.array as? [AirBasePlaneInfo]
else { print("airbase is wrong")
return false
}
}
private func updateAreaRadio() {
- guard let content = airBaseController.content as? [KCAirBase]
+ guard let content = airBaseController.content as? [AirBase]
else { return }
let areas = content
.flatMap { $0.area_id }
guard let content = airBaseController.content as? NSArray else { return }
let area = NSCountedSet()
content.forEach {
- if let i = ($0 as? KCAirBase)?.area_id {
+ if let i = ($0 as? AirBase)?.area_id {
area.add(i)
}
}
squadronIds.enumerated().forEach {
guard planes.count >= $0.element,
planeInfos.count > $0.offset,
- let plane = planes[$0.element - 1] as? KCAirBasePlaneInfo
+ let plane = planes[$0.element - 1] as? AirBasePlaneInfo
else { return }
let planeInfo = planeInfos[$0.offset]
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCBasic.self,
+ self.configuration = MappingConfiguration(entityType: Basic.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11759" systemVersion="16D32" minimumToolsVersion="Xcode 4.3" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
- <entity name="Bookmark" representedClassName="KCD.BookmarkItem" syncable="YES">
+ <entity name="Bookmark" representedClassName="KCD.Bookmark" syncable="YES">
<attribute name="canResize" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
<attribute name="canScroll" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
<attribute name="contentVisibleRectString" attributeType="String" syncable="YES"/>
<elements>
<element name="Bookmark" positionX="-63" positionY="-18" width="128" height="180"/>
</elements>
-</model>
+</model>
\ No newline at end of file
var managedObjectContext: NSManagedObjectContext
}
-extension BookmarkItem: EntityProvider {
+extension Bookmark: EntityProvider {
override class var entityName: String { return "Bookmark" }
}
extension BookmarkDataStore {
- func createBookmark() -> BookmarkItem? {
- return insertNewObject(for: BookmarkItem.entity)
+ func createBookmark() -> Bookmark? {
+ return insertNewObject(for: Bookmark.entity)
}
}
import Cocoa
-class BookmarkItem: NSManagedObject {
+class Bookmark: NSManagedObject {
@NSManaged var identifier: String
@NSManaged var name: String
@NSManaged var urlString: String
@NSManaged var scrollDelayValue: Float
}
-extension BookmarkItem {
+extension Bookmark {
var windowContentSize: NSSize {
get { return NSSizeFromString(windowContentSizeString) }
set { windowContentSizeString = NSStringFromSize(newValue) }
}
}
-extension BookmarkItem: NSPasteboardWriting {
+extension Bookmark: NSPasteboardWriting {
func writableTypes(for pasteboard: NSPasteboard) -> [String] {
return ["com.masakih.KCD.BookmarkItem"]
}
import Cocoa
protocol BookmarkListViewControllerDelegate {
- func didSelectBookmark(_ bookmark: BookmarkItem)
+ func didSelectBookmark(_ bookmark: Bookmark)
}
fileprivate struct DragingType {
extension BookmarkListViewController: NSTableViewDelegate, NSTableViewDataSource {
func reorderingBoolmarks() {
- guard let objects = bookmarkController.arrangedObjects as? [BookmarkItem] else { return }
+ guard let objects = bookmarkController.arrangedObjects as? [Bookmark] else { return }
var order = 100
objects.forEach {
$0.order = order
func tableViewSelectionDidChange(_ notification: Notification) {
guard let tableView = notification.object as? NSTableView,
- let bookmarks = bookmarkController.arrangedObjects as? [BookmarkItem]
+ let bookmarks = bookmarkController.arrangedObjects as? [Bookmark]
else { return }
let selection = tableView.selectedRow
tableView.deselectAll(nil)
let targetOrder: Int = {
guard let objects = bookmarkController.arrangedObjects as? [Any],
1...objects.count ~= row,
- let target = objects[row - 1] as? BookmarkItem
+ let target = objects[row - 1] as? Bookmark
else { return 0 }
return target.order
}()
guard let data = $0.element.data(forType: DragingType.bookmarkItem),
let uri = NSKeyedUnarchiver.unarchiveObject(with: data) as? URL,
let oID = managedObjectContext.persistentStoreCoordinator?.managedObjectID(forURIRepresentation: uri),
- let bookmark = store.object(with: oID) as? BookmarkItem
+ let bookmark = store.object(with: oID) as? Bookmark
else { return }
bookmark.order = targetOrder + $0.offset + 1
}
bookmarksController = NSArrayController()
super.init()
bookmarksController.managedObjectContext = self.manageObjectContext
- bookmarksController.entityName = BookmarkItem.entityName
+ bookmarksController.entityName = Bookmark.entityName
let sort = NSSortDescriptor(key: "order", ascending: true)
bookmarksController.sortDescriptors = [sort]
let mainMenu = NSApplication.shared().mainMenu
private(set) var editorStore: BookmarkDataStore = BookmarkDataStore.oneTimeEditor()
private var bookmarkMenu: NSMenu!
var manageObjectContext = BookmarkDataStore.default.managedObjectContext
- var bookmarks: [BookmarkItem] {
+ var bookmarks: [Bookmark] {
bookmarksController.fetch(nil)
- guard let items = bookmarksController.arrangedObjects as? [BookmarkItem]
+ guard let items = bookmarksController.arrangedObjects as? [Bookmark]
else { return [] }
return items
}
- func createNewBookmark() -> BookmarkItem? {
+ func createNewBookmark() -> Bookmark? {
guard let maxOrder = bookmarksController.value(forKeyPath: "arrangedObjects.@max.order") as? Int
else {
print("BookmarkManager: Can no convert max order to Int")
private let store = TemporaryDataStore.oneTimeEditor()
private var battleType: BattleType = .normal
- private var damages: [KCDamage] {
+ private var damages: [Damage] {
let array = store.sortedDamagesById()
if array.count != 12 {
buildDamagedEntity()
else { return print("Can not create Damage") }
damage.battle = battle
damage.id = $0.offset
- if let ship = $0.element as? KCShipObject {
+ if let ship = $0.element as? Ship {
damage.hp = ship.nowhp
damage.shipID = ship.id
}
}
// MARK: - Damage control
- private func damageControlIfPossible(nowhp: Int, ship: KCShipObject) -> Int {
+ private func damageControlIfPossible(nowhp: Int, ship: Ship) -> Int {
var nowHp = nowhp
if nowHp < 0 { nowHp = 0 }
let maxhp = ship.maxhp
var useDamageControl = false
ship.equippedItem.forEach {
if useDamageControl { return }
- guard let master = $0 as? KCSlotItemObject else { return }
+ guard let master = $0 as? SlotItem else { return }
let masterSlotItemId = store.masterSlotItemID(bySlotItemId: master.id)
guard let type = DamageControlID(rawValue: masterSlotItemId)
else { return }
}
return nowHp
}
- private func removeFirstDamageControl(of ship: KCShipObject) {
+ private func removeFirstDamageControl(of ship: Ship) {
let equiped = ship.equippedItem
let newEquiped = equiped.mutableCopy() as! NSMutableOrderedSet
let store = ServerDataStore.default
var useDamageControl = false
equiped.forEach {
if useDamageControl { return }
- guard let master = $0 as? KCSlotItemObject else { return }
+ guard let master = $0 as? SlotItem else { return }
let masterSlotItemId = store.masterSlotItemID(bySlotItemId: master.id)
guard let type = DamageControlID(rawValue: masterSlotItemId)
else { return }
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCDeck.self,
+ self.configuration = MappingConfiguration(entityType: Deck.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
return "DocksViewController"
}
- var battle: KCBattle? {
+ var battle: Battle? {
return TemporaryDataStore.default.battle()
}
}
fileprivate var bookmarkShowing: Bool = false
- fileprivate var waitingBookmarkItem: BookmarkItem?
+ fileprivate var waitingBookmarkItem: Bookmark?
private lazy var bookmarkListViwController: BookmarkListViewController? = {
[weak self] in
}
}
- fileprivate func move(bookmark: BookmarkItem) {
+ fileprivate func move(bookmark: Bookmark) {
if !canMovePage {
let appDelegate = NSApp.delegate as! AppDelegate
appDelegate.createNewBrowser().move(bookmark: bookmark)
// MARK: - IBAction
@IBAction func selectBookmark(_ sender: AnyObject?) {
- guard let item = sender?.representedObject as? BookmarkItem
+ guard let item = sender?.representedObject as? Bookmark
else { return }
move(bookmark: item)
}
}
extension ExternalBrowserWindowController: BookmarkListViewControllerDelegate {
- func didSelectBookmark(_ bookmark: BookmarkItem) {
+ func didSelectBookmark(_ bookmark: Bookmark) {
move(bookmark: bookmark)
}
}
extension ExternalBrowserWindowController: WebFrameLoadDelegate, WebPolicyDelegate {
func updateContentVisibleRect(_ timer: Timer) {
- guard let item = timer.userInfo as? BookmarkItem else { return }
+ guard let item = timer.userInfo as? Bookmark else { return }
contentVisibleRect = item.contentVisibleRect
}
func webView(_ sender: WebView!, didFinishLoadFor frame: WebFrame!) {
deckController = NSObjectController()
super.init()
- deckController.entityName = KCDeck.entityName
+ deckController.entityName = Deck.entityName
deckController.managedObjectContext = ServerDataStore.default.managedObjectContext
deckController.fetchPredicate = NSPredicate(format: "id = %ld", number)
let req = NSFetchRequest<NSFetchRequestResult>()
- req.entity = NSEntityDescription.entity(forEntityName: KCDeck.entityName, in: deckController.managedObjectContext!)
+ req.entity = NSEntityDescription.entity(forEntityName: Deck.entityName, in: deckController.managedObjectContext!)
req.predicate = deckController.fetchPredicate
do {
try deckController.fetch(with: req, merge: false)
print("Fetch error")
return nil
}
- deck = deckController.content as? KCDeck
+ deck = deckController.content as? Deck
deckObserveKeys.forEach { deckController.addObserver(self, forKeyPath: $0, context: &DeckContext) }
}
deinit {
deckObserveKeys.forEach { deckController.removeObserver(self, forKeyPath: $0) }
}
- dynamic private(set) var ships: [KCShipObject] = []
+ dynamic private(set) var ships: [Ship] = []
private let deckController: NSObjectController
- private weak var deck: KCDeck?
+ private weak var deck: Deck?
dynamic var name: String? { return deck?.name }
func keyPathsForValuesAffectingName() -> Set<String> {
return ["deck.id"]
}
- subscript(_ index: Int) -> KCShipObject? { return deck?[index] }
+ subscript(_ index: Int) -> Ship? { return deck?[index] }
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if context == &DeckContext {
.map { fleet = $0 }
}
}
- dynamic var fleet: KCDeck? {
+ dynamic var fleet: Deck? {
get {
- return representedObject as? KCDeck
+ return representedObject as? Deck
}
set {
representedObject = newValue
var totalLevel: Int { return ships.reduce(0) { $0 + $1.lv } }
var totalDrums: Int { return ships.reduce(0) { $0 + $1.totalDrums } }
- fileprivate var ships: [KCShipObject] = [] {
+ fileprivate var ships: [Ship] = [] {
willSet {
ships.forEach { (ship) in
shipObserveKeys.forEach {
}
private func setupShips() {
- let array: [KCShipObject?] = (0..<6).map { fleet?[$0] }
+ let array: [Ship?] = (0..<6).map { fleet?[$0] }
zip(details, array).forEach { $0.0.ship = $0.1 }
ships = array.flatMap { $0 }
import Foundation
-class KCAirBase: KCManagedObject {
+class AirBase: KCManagedObject {
@NSManaged var rid: Int
@NSManaged var name: String
@NSManaged var area_id: Int
import Foundation
import CoreData
-class KCAirBasePlaneInfo: KCManagedObject {
+class AirBasePlaneInfo: KCManagedObject {
@NSManaged var squadron_id: Int
@NSManaged var state: Int
@NSManaged var slotid: Int
@NSManaged var cond: Int
@NSManaged var count: Int
@NSManaged var max_count: Int
- @NSManaged var airBase: KCAirBase
+ @NSManaged var airBase: AirBase
}
import Foundation
-class KCBasic: KCManagedObject {
+class Basic: KCManagedObject {
@NSManaged var active_flag: NSNumber?
@NSManaged var comment: String?
@NSManaged var comment_id: NSNumber?
import Foundation
-class KCBattle: KCManagedObject {
+class Battle: KCManagedObject {
@NSManaged var battleCell: NSNumber?
@NSManaged var deckId: Int
@NSManaged var isBossCell: Bool
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11759" systemVersion="16D32" minimumToolsVersion="Xcode 4.3" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
- <entity name="AirBase" representedClassName="KCD.KCAirBase" syncable="YES">
+ <entity name="AirBase" representedClassName="KCD.AirBase" syncable="YES">
<attribute name="action_kind" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="area_id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="distance" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="rid" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<relationship name="planeInfo" optional="YES" toMany="YES" maxCount="4" deletionRule="Cascade" ordered="YES" destinationEntity="AirBasePlaneInfo" inverseName="airBase" inverseEntity="AirBasePlaneInfo" syncable="YES"/>
</entity>
- <entity name="AirBasePlaneInfo" representedClassName="KCD.KCAirBasePlaneInfo" syncable="YES">
+ <entity name="AirBasePlaneInfo" representedClassName="KCD.AirBasePlaneInfo" syncable="YES">
<attribute name="cond" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="count" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="max_count" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="state" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<relationship name="airBase" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="AirBase" inverseName="planeInfo" inverseEntity="AirBase" syncable="YES"/>
</entity>
- <entity name="Basic" representedClassName="KCD.KCBasic" syncable="YES">
+ <entity name="Basic" representedClassName="KCD.Basic" syncable="YES">
<attribute name="active_flag" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
<attribute name="comment" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="comment_id" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="tutorial" optional="YES" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
<attribute name="tutorial_progress" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="Deck" representedClassName="KCD.KCDeck" syncable="YES">
+ <entity name="Deck" representedClassName="KCD.Deck" syncable="YES">
<attribute name="flagship" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="member_id" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="ship_4" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="ship_5" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="KenzoDock" representedClassName="KCD.KCKenzoDock" syncable="YES">
+ <entity name="KenzoDock" representedClassName="KCD.KenzoDock" syncable="YES">
<attribute name="complete_time" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="complete_time_str" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="created_ship_id" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="title" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="type" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="MasterMapArea" representedClassName="KCD.KCMasterMapArea" syncable="YES">
+ <entity name="MasterMapArea" representedClassName="KCD.MasterMapArea" syncable="YES">
<attribute name="id" attributeType="Integer 64" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="name" attributeType="String" syncable="YES"/>
<attribute name="type" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="mapinfo_no" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="no" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="MasterMapInfo" representedClassName="KCD.KCMasterMapInfo" syncable="YES">
+ <entity name="MasterMapInfo" representedClassName="KCD.MasterMapInfo" syncable="YES">
<attribute name="id" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="infotext" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="item_0" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="sally_flag_0" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="sally_flag_1" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="MasterMission" representedClassName="KCD.KCMasterMission" syncable="YES">
+ <entity name="MasterMission" representedClassName="KCD.MasterMission" syncable="YES">
<attribute name="details" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="difficulty" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="win_item2_0" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="win_item2_1" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="MasterShip" representedClassName="KCD.KCMasterShipObject" syncable="YES">
+ <entity name="MasterShip" representedClassName="KCD.MasterShip" syncable="YES">
<attribute name="afterbull" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="afterfuel" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="afterlv" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<relationship name="ships" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Ship" inverseName="master_ship" inverseEntity="Ship" syncable="YES"/>
<relationship name="stype" maxCount="1" deletionRule="Nullify" destinationEntity="MasterSType" inverseName="ships" inverseEntity="MasterSType" syncable="YES"/>
</entity>
- <entity name="MasterSlotItem" representedClassName="KCD.KCMasterSlotItemObject" syncable="YES">
+ <entity name="MasterSlotItem" representedClassName="KCD.MasterSlotItem" syncable="YES">
<attribute name="atap" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="bakk" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="baku" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="usebull" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<relationship name="slotItems" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="SlotItem" inverseName="master_slotItem" inverseEntity="SlotItem" syncable="YES"/>
</entity>
- <entity name="MasterSlotItemEquipType" representedClassName="KCD.KCMasterSlotItemEquipTypeObject" syncable="YES">
+ <entity name="MasterSlotItemEquipType" representedClassName="KCD.MasterSlotItemEquipType" syncable="YES">
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="name" attributeType="String" syncable="YES"/>
<attribute name="show_flg" attributeType="Boolean" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="MasterSType" representedClassName="KCD.KCMasterSType" syncable="YES">
+ <entity name="MasterSType" representedClassName="KCD.MasterSType" syncable="YES">
<attribute name="id" attributeType="Integer 64" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="kcnt" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="name" attributeType="String" indexed="YES" syncable="YES"/>
<attribute name="price" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="usetype" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="Material" representedClassName="KCD.KCMaterial" syncable="YES">
+ <entity name="Material" representedClassName="KCD.Material" syncable="YES">
<attribute name="bauxite" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="bull" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="fuel" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="screw" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="steel" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="NyukyoDock" representedClassName="KCD.KCNyukyoDock" syncable="YES">
+ <entity name="NyukyoDock" representedClassName="KCD.NyukyoDock" syncable="YES">
<attribute name="complete_time" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="complete_time_str" optional="YES" attributeType="String" syncable="YES"/>
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="ship_id" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="state" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="Quest" representedClassName="KCD.KCQuest" syncable="YES">
+ <entity name="Quest" representedClassName="KCD.Quest" syncable="YES">
<attribute name="bonus_flag" attributeType="Boolean" usesScalarValueType="NO" syncable="YES"/>
<attribute name="category" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="detail" attributeType="String" defaultValueString=" " syncable="YES"/>
<attribute name="title" attributeType="String" defaultValueString=" " syncable="YES"/>
<attribute name="type" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
</entity>
- <entity name="Ship" representedClassName="KCD.KCShipObject" syncable="YES">
+ <entity name="Ship" representedClassName="KCD.Ship" syncable="YES">
<attribute name="bull" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="cond" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="exp" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<relationship name="extraItem" optional="YES" maxCount="1" deletionRule="Cascade" destinationEntity="SlotItem" inverseName="extraEquippedShip" inverseEntity="SlotItem" syncable="YES"/>
<relationship name="master_ship" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="MasterShip" inverseName="ships" inverseEntity="MasterShip" syncable="YES"/>
</entity>
- <entity name="SlotItem" representedClassName="KCD.KCSlotItemObject" syncable="YES">
+ <entity name="SlotItem" representedClassName="KCD.SlotItem" syncable="YES">
<attribute name="alv" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" indexed="YES" syncable="YES"/>
<attribute name="level" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
import Foundation
-class KCDamage: KCManagedObject {
+class Damage: KCManagedObject {
@NSManaged var id: Int
- @NSManaged var battle: KCBattle
+ @NSManaged var battle: Battle
@NSManaged var hp: Int
@NSManaged var shipID: Int
@NSManaged var useDamageControl: Bool
import Cocoa
-class KCDeck: KCManagedObject {
+class Deck: KCManagedObject {
@NSManaged var flagship: NSNumber?
@NSManaged var id: Int
@NSManaged var member_id: NSNumber?
@NSManaged var ship_5: Int
}
-extension KCDeck {
+extension Deck {
private func shipId(ofPosition position: Int) -> Int? {
switch position {
case 0: return ship_0
default: return nil
}
}
- private func ship(ofId identifier: Int) -> KCShipObject? {
+ private func ship(ofId identifier: Int) -> Ship? {
guard let moc = self.managedObjectContext else { return nil }
- let req = NSFetchRequest<KCShipObject>(entityName: "Ship")
+ let req = NSFetchRequest<Ship>(entityName: "Ship")
req.predicate = NSPredicate(format: "id = %ld", identifier)
guard let ships = try? moc.fetch(req),
let ship = ships.first
else { return nil }
- return ship as KCShipObject
+ return ship as Ship
}
- subscript(_ index: Int) -> KCShipObject? {
+ subscript(_ index: Int) -> Ship? {
guard let shipId = shipId(ofPosition: index) else { return nil }
return ship(ofId: shipId)
}
import Foundation
-class KCGuardEscaped: KCManagedObject {
+class GuardEscaped: KCManagedObject {
@NSManaged var ensured: Bool
@NSManaged var shipID: Int
}
import Foundation
-class KCKenzoDock: KCManagedObject {
+class KenzoDock: KCManagedObject {
@NSManaged var complete_time: Int
@NSManaged var complete_time_str: String?
@NSManaged var created_ship_id: Int
import Foundation
-class KCMasterMapArea: KCManagedObject {
+class MasterMapArea: KCManagedObject {
@NSManaged var id: Int
@NSManaged var name: String
@NSManaged var type: NSNumber?
import Foundation
-class KCMasterMapInfo: KCManagedObject {
+class MasterMapInfo: KCManagedObject {
@NSManaged var id: Int
@NSManaged var infotext: String
@NSManaged var item_0: NSNumber?
import Foundation
-class KCMasterMission: KCManagedObject {
+class MasterMission: KCManagedObject {
@NSManaged var details: String?
@NSManaged var difficulty: NSNumber?
@NSManaged var id: Int
import Foundation
-class KCMasterSType: KCManagedObject {
+class MasterSType: KCManagedObject {
@NSManaged var id: Int
@NSManaged var kcnt: NSNumber?
@NSManaged var name: String
@NSManaged var scnt: NSNumber?
@NSManaged var sortno: NSNumber?
- @NSManaged var ships: Set<KCMasterShipObject>
+ @NSManaged var ships: Set<MasterShip>
}
import Foundation
-class KCMasterShipObject: KCManagedObject {
+class MasterShip: KCManagedObject {
@NSManaged var afterbull: NSNumber?
@NSManaged var afterfuel: NSNumber?
@NSManaged var afterlv: Int
@NSManaged var tyku_1: Int
@NSManaged var voicef: NSNumber?
@NSManaged var yomi: String?
- @NSManaged var ships: Set<KCShipObject>
- @NSManaged var stype: KCMasterSType
+ @NSManaged var ships: Set<Ship>
+ @NSManaged var stype: MasterSType
}
import Foundation
-class KCMasterSlotItemEquipTypeObject: KCManagedObject {
+class MasterSlotItemEquipType: KCManagedObject {
@NSManaged var id: Int
@NSManaged var name: String
@NSManaged var show_flg: NSNumber?
import Foundation
-class KCMasterSlotItemObject: KCManagedObject {
+class MasterSlotItem: KCManagedObject {
@NSManaged var atap: NSNumber?
@NSManaged var bakk: NSNumber?
@NSManaged var baku: NSNumber?
@NSManaged var type_2: Int
@NSManaged var type_3: Int
@NSManaged var usebull: NSNumber?
- @NSManaged var slotItems: Set<KCSlotItemObject>
+ @NSManaged var slotItems: Set<SlotItem>
}
import Foundation
-class KCMaterial: KCManagedObject {
+class Material: KCManagedObject {
@NSManaged var bauxite: Int
@NSManaged var bull: Int
@NSManaged var fuel: Int
import Foundation
-class KCNyukyoDock: KCManagedObject {
+class NyukyoDock: KCManagedObject {
@NSManaged var complete_time: Int
@NSManaged var complete_time_str: String?
@NSManaged var id: Int
import Foundation
-class KCQuest: KCManagedObject {
+class Quest: KCManagedObject {
@NSManaged var bonus_flag: Bool
@NSManaged var category: Int
@NSManaged var detail: String
@NSManaged var type: Int
}
-extension KCQuest {
+extension Quest {
class func keyPathsForValuesAffectingCompositStatus() -> Set<String> {
return ["state", "progress_flag"]
}
import Cocoa
-class KCResource: NSManagedObject {
+class Resource: NSManagedObject {
@NSManaged var steel: Int
@NSManaged var fuel: Int
@NSManaged var bull: Int
import Cocoa
-class KCShipObject: KCManagedObject {
+class Ship: KCManagedObject {
@NSManaged dynamic var bull: Int
@NSManaged dynamic var cond: Int
@NSManaged dynamic var exp: Int
@NSManaged dynamic var taisen_0: Int
@NSManaged dynamic var taisen_1: NSNumber?
@NSManaged dynamic var equippedItem: NSOrderedSet
- @NSManaged dynamic var master_ship: KCMasterShipObject
- @NSManaged dynamic var extraItem: KCSlotItemObject?
+ @NSManaged dynamic var master_ship: MasterShip
+ @NSManaged dynamic var extraItem: SlotItem?
}
fileprivate let shortSTypeNames: [String] = {
return array
}()
-extension KCShipObject {
+extension Ship {
class func keyPathsForValuesAffectingName() -> Set<String> {
return ["ship_id"]
}
}
-extension KCShipObject {
+extension Ship {
dynamic var maxBull: Int { return master_ship.bull_max }
dynamic var maxFuel: Int { return master_ship.fuel_max }
fileprivate let bonus: [Double] = [0, 1.000, 1.581, 2.000, 2.345, 2.645, 2.915, 3.162]
-extension KCShipObject {
+extension Ship {
private func slotItemCount(_ index: Int) -> Int {
switch index {
}
}
- private func slotItem(_ index: Int) -> KCSlotItemObject? {
+ private func slotItem(_ index: Int) -> SlotItem? {
return ServerDataStore.default.slotItem(byId: slotItemId(index))
}
private func typeBonus(_ type: Int) -> [Double]? {
import Foundation
-class KCSlotItemObject: KCManagedObject {
+class SlotItem: KCManagedObject {
@NSManaged var alv: Int
@NSManaged var id: Int
@NSManaged var level: Int
@NSManaged var locked: Bool
@NSManaged var slotitem_id: Int
- @NSManaged var equippedShip: KCShipObject?
- @NSManaged var master_slotItem: KCMasterSlotItemObject
- @NSManaged var extraEquippedShip: KCShipObject?
+ @NSManaged var equippedShip: Ship?
+ @NSManaged var master_slotItem: MasterSlotItem
+ @NSManaged var extraEquippedShip: Ship?
}
-extension KCSlotItemObject {
+extension SlotItem {
dynamic var name: String {
return master_slotItem.name
}
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCKenzoDock.self,
+ self.configuration = MappingConfiguration(entityType: KenzoDock.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
controller = NSArrayController()
super.init()
controller.managedObjectContext = ServerDataStore.default.managedObjectContext
- controller.entityName = KCKenzoDock.entityName
+ controller.entityName = KenzoDock.entityName
controller.fetchPredicate = NSPredicate(format: "id = %ld", number)
controller.automaticallyRearrangesObjects = true
controller.fetch(nil)
class MasterMapAreaMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterMapArea.self,
+ let configuration = MappingConfiguration(entityType: MasterMapArea.self,
dataKey: "api_data.api_mst_maparea",
editorStore: ServerDataStore.oneTimeEditor())
class MasterMapInfoMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterMapInfo.self,
+ let configuration = MappingConfiguration(entityType: MasterMapInfo.self,
dataKey: "api_data.api_mst_mapinfo",
editorStore: ServerDataStore.oneTimeEditor())
class MasterMissionMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterMission.self,
+ let configuration = MappingConfiguration(entityType: MasterMission.self,
dataKey: "api_data.api_mst_mission",
editorStore: ServerDataStore.oneTimeEditor())
class MasterSTypeMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterSType.self,
+ let configuration = MappingConfiguration(entityType: MasterSType.self,
dataKey: "api_data.api_mst_stype",
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys: ["api_equip_type"])
class MasterShipMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterShipObject.self,
+ let configuration = MappingConfiguration(entityType: MasterShip.self,
dataKey: "api_data.api_mst_ship",
editorStore: ServerDataStore.oneTimeEditor())
self.apiResponse = apiResponse
}
- private lazy var masterSTypes: [KCMasterSType] = {
+ private lazy var masterSTypes: [MasterSType] = {
return ServerDataStore.default.sortedMasterSTypesById()
}()
print("MasterShipMapper: value is not Int")
return false
}
- guard let masterShip = object as? KCMasterShipObject
+ guard let masterShip = object as? MasterShip
else {
print("MasterShipMapper: object is not KCMasterShipObject")
return false
return true
}
- private func setStype(_ stypeID: Int, to masterShip: KCMasterShipObject) {
+ private func setStype(_ stypeID: Int, to masterShip: MasterShip) {
if masterShip.stype.id == stypeID { return }
guard let stype = masterSTypes.binarySearch(comparator: { $0.id ==? stypeID })
else { return print("MasterShipMapper: Can not find MasterSType") }
- guard let masterSType = configuration.editorStore.object(with: stype.objectID) as? KCMasterSType
+ guard let masterSType = configuration.editorStore.object(with: stype.objectID) as? MasterSType
else { return print("MasterShipMapper: Can not convert to current moc object masterSType") }
masterShip.stype = masterSType
}
class MasterSlotItemEquipTypeMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterSlotItemEquipTypeObject.self,
+ let configuration = MappingConfiguration(entityType: MasterSlotItemEquipType.self,
dataKey: "api_data.api_mst_slotitem_equiptype",
editorStore: ServerDataStore.oneTimeEditor())
class MasterSlotItemMapper: JSONMapper {
let apiResponse: APIResponse
- let configuration = MappingConfiguration(entityType: KCMasterSlotItemObject.self,
+ let configuration = MappingConfiguration(entityType: MasterSlotItem.self,
dataKey: "api_data.api_mst_slotitem",
editorStore: ServerDataStore.oneTimeEditor())
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCMaterial.self,
+ self.configuration = MappingConfiguration(entityType: Material.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
}
}
- private func register(_ material: KCMaterial, data: [Int]) {
+ private func register(_ material: Material, data: [Int]) {
data.enumerated().forEach {
guard $0.offset < keys.count
else { return }
material.setValue($0.element as NSNumber, forKey: keys[$0.offset])
}
}
- private func register(_ material: KCMaterial, data: [[String: Any]]) {
+ private func register(_ material: Material, data: [[String: Any]]) {
data.forEach {
guard let i = $0["api_id"] as? Int,
i != 0,
controller = NSArrayController()
super.init()
controller.managedObjectContext = ServerDataStore.default.managedObjectContext
- controller.entityName = KCDeck.entityName
+ controller.entityName = Deck.entityName
controller.fetchPredicate = NSPredicate(format: "id = %ld", number)
controller.automaticallyRearrangesObjects = true
controller.fetch(nil)
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCNyukyoDock.self,
+ self.configuration = MappingConfiguration(entityType: NyukyoDock.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
controller = NSArrayController()
super.init()
controller.managedObjectContext = ServerDataStore.default.managedObjectContext
- controller.entityName = KCNyukyoDock.entityName
+ controller.entityName = NyukyoDock.entityName
controller.fetchPredicate = NSPredicate(format: "id = %ld", number)
controller.automaticallyRearrangesObjects = true
controller.fetch(nil)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11759" systemVersion="16D32" minimumToolsVersion="Xcode 4.3" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
- <entity name="Resource" representedClassName="KCD.KCResource" syncable="YES">
+ <entity name="Resource" representedClassName="KCD.Resource" syncable="YES">
<attribute name="bauxite" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="bull" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="date" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
<elements>
<element name="Resource" positionX="-63" positionY="-18" width="128" height="210"/>
</elements>
-</model>
+</model>
\ No newline at end of file
var managedObjectContext: NSManagedObjectContext
}
-extension KCResource: EntityProvider {
+extension Resource: EntityProvider {
override class var entityName: String { return "Resource" }
}
extension ResourceHistoryDataStore {
- func resources(in minites: [Int], older: Date) -> [KCResource] {
+ func resources(in minites: [Int], older: Date) -> [Resource] {
let p = NSPredicate(format: "minute IN %@ AND date < %@", minites, older as NSDate)
- guard let resources = try? objects(with: KCResource.entity, predicate: p)
+ guard let resources = try? objects(with: Resource.entity, predicate: p)
else { return [] }
return resources
}
- func cerateResource() -> KCResource? {
- return insertNewObject(for: KCResource.entity)
+ func cerateResource() -> Resource? {
+ return insertNewObject(for: Resource.entity)
}
}
//
// ServerDataStore.swift
-// KCD
+// D
//
// Created by Hori,Masaki on 2017/01/07.
// Copyright © 2017年 Hori,Masaki. All rights reserved.
var managedObjectContext: NSManagedObjectContext
}
-extension KCAirBase: EntityProvider {
+extension AirBase: EntityProvider {
override class var entityName: String { return "AirBase" }
}
-extension KCAirBasePlaneInfo: EntityProvider {
+extension AirBasePlaneInfo: EntityProvider {
override class var entityName: String { return "AirBasePlaneInfo" }
}
-extension KCBasic: EntityProvider {
+extension Basic: EntityProvider {
override class var entityName: String { return "Basic" }
}
-extension KCDeck: EntityProvider {
+extension Deck: EntityProvider {
override class var entityName: String { return "Deck" }
}
-extension KCKenzoDock: EntityProvider {
+extension KenzoDock: EntityProvider {
override class var entityName: String { return "KenzoDock" }
}
extension MasterFurniture: EntityProvider {
override class var entityName: String { return "MasterFurniture" }
}
-extension KCMasterMapArea: EntityProvider {
+extension MasterMapArea: EntityProvider {
override class var entityName: String { return "MasterMapArea" }
}
-extension KCMasterMapInfo: EntityProvider {
+extension MasterMapInfo: EntityProvider {
override class var entityName: String { return "MasterMapInfo" }
}
-extension KCMasterMission: EntityProvider {
+extension MasterMission: EntityProvider {
override class var entityName: String { return "MasterMission" }
}
-extension KCMasterShipObject: EntityProvider {
+extension MasterShip: EntityProvider {
override class var entityName: String { return "MasterShip" }
}
-extension KCMasterSlotItemObject: EntityProvider {
+extension MasterSlotItem: EntityProvider {
override class var entityName: String { return "MasterSlotItem" }
}
-extension KCMasterSType: EntityProvider {
+extension MasterSType: EntityProvider {
override class var entityName: String { return "MasterSType" }
}
-extension KCMasterSlotItemEquipTypeObject: EntityProvider {
+extension MasterSlotItemEquipType: EntityProvider {
override class var entityName: String { return "MasterSlotItemEquipType" }
}
extension MasterUseItem: EntityProvider {
override class var entityName: String { return "MasterUseItem" }
}
-extension KCMaterial: EntityProvider {
+extension Material: EntityProvider {
override class var entityName: String { return "Material" }
}
-extension KCNyukyoDock: EntityProvider {
+extension NyukyoDock: EntityProvider {
override class var entityName: String { return "NyukyoDock" }
}
-extension KCShipObject: EntityProvider {
+extension Ship: EntityProvider {
override class var entityName: String { return "Ship" }
}
-extension KCSlotItemObject: EntityProvider {
+extension SlotItem: EntityProvider {
override class var entityName: String { return "SlotItem" }
}
-extension KCQuest: EntityProvider {
+extension Quest: EntityProvider {
override class var entityName: String { return "Quest" }
}
extension ServerDataStore {
- func airBases() -> [KCAirBase] {
- guard let airbase = try? objects(with: KCAirBase.entity)
+ func airBases() -> [AirBase] {
+ guard let airbase = try? objects(with: AirBase.entity)
else { return [] }
return airbase
}
- func airBase(area: Int, base: Int) -> KCAirBase? {
+ func airBase(area: Int, base: Int) -> AirBase? {
let p = NSPredicate(format: "area_id == %ld AND rid == %ld", area, base)
- guard let airBases = try? objects(with: KCAirBase.entity, predicate: p)
+ guard let airBases = try? objects(with: AirBase.entity, predicate: p)
else { return nil }
return airBases.first
}
- func createAirBasePlaneInfo() -> KCAirBasePlaneInfo? {
- return insertNewObject(for: KCAirBasePlaneInfo.entity)
+ func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
+ return insertNewObject(for: AirBasePlaneInfo.entity)
}
- func basic() -> KCBasic? {
- guard let basics = try? objects(with: KCBasic.entity)
+ func basic() -> Basic? {
+ guard let basics = try? objects(with: Basic.entity)
else { return nil }
return basics.first
}
- func createBasic() -> KCBasic? {
- return insertNewObject(for: KCBasic.entity)
+ func createBasic() -> Basic? {
+ return insertNewObject(for: Basic.entity)
}
- func decksSortedById() -> [KCDeck] {
+ func decksSortedById() -> [Deck] {
let sortDec = NSSortDescriptor(key: "id", ascending: true)
- guard let decks = try? objects(with: KCDeck.entity, sortDescriptors: [sortDec])
+ guard let decks = try? objects(with: Deck.entity, sortDescriptors: [sortDec])
else { return [] }
return decks
}
- func deck(byId id: Int) -> KCDeck? {
+ func deck(byId id: Int) -> Deck? {
let p = NSPredicate(format: "id = %ld", id)
- guard let decks = try? objects(with: KCDeck.entity, predicate: p)
+ guard let decks = try? objects(with: Deck.entity, predicate: p)
else { return nil }
return decks.first
}
- func kenzoDock(byDockId dockId: Int) -> KCKenzoDock? {
+ func kenzoDock(byDockId dockId: Int) -> KenzoDock? {
let dockPredicate = NSPredicate(format: "id = %ld", dockId)
- guard let kenzoDocks = try? objects(with: KCKenzoDock.entity, predicate: dockPredicate)
+ guard let kenzoDocks = try? objects(with: KenzoDock.entity, predicate: dockPredicate)
else { return nil }
return kenzoDocks.first
}
- func mapArea(byId id: Int) -> KCMasterMapArea? {
+ func mapArea(byId id: Int) -> MasterMapArea? {
let predicate = NSPredicate(format: "id = %ld", id)
- guard let mapAreas = try? objects(with: KCMasterMapArea.entity, predicate: predicate)
+ guard let mapAreas = try? objects(with: MasterMapArea.entity, predicate: predicate)
else { return nil }
return mapAreas.first
}
- func mapInfo(area: Int, no: Int) -> KCMasterMapInfo? {
+ func mapInfo(area: Int, no: Int) -> MasterMapInfo? {
let predicate = NSPredicate(format: "maparea_id = %ld AND %K = %ld", area, "no", no)
- guard let mapInfos = try? objects(with: KCMasterMapInfo.entity, predicate: predicate)
+ guard let mapInfos = try? objects(with: MasterMapInfo.entity, predicate: predicate)
else { return nil }
return mapInfos.first
}
- func masterMission(by id: Int) -> KCMasterMission? {
+ func masterMission(by id: Int) -> MasterMission? {
let p = NSPredicate(format: "id = %ld", id)
- guard let missions = try? objects(with: KCMasterMission.entity, predicate: p)
+ guard let missions = try? objects(with: MasterMission.entity, predicate: p)
else { return nil }
return missions.first
}
- func masterShips() -> [KCMasterShipObject] {
- guard let ships = try? objects(with: KCMasterShipObject.entity)
+ func masterShips() -> [MasterShip] {
+ guard let ships = try? objects(with: MasterShip.entity)
else { return [] }
return ships
}
- func sortedMasterShipsById() -> [KCMasterShipObject] {
+ func sortedMasterShipsById() -> [MasterShip] {
let sortDesc = NSSortDescriptor(key: "id", ascending: true)
- guard let ships = try? objects(with: KCMasterShipObject.entity, sortDescriptors: [sortDesc])
+ guard let ships = try? objects(with: MasterShip.entity, sortDescriptors: [sortDesc])
else { return [] }
return ships
}
- func masterShip(byId id: Int) -> KCMasterShipObject? {
+ func masterShip(byId id: Int) -> MasterShip? {
let p = NSPredicate(format: "id = %ld", id)
- guard let ships = try? objects(with: KCMasterShipObject.entity, predicate: p)
+ guard let ships = try? objects(with: MasterShip.entity, predicate: p)
else { return nil }
return ships.first
}
- func sortedMasterSlotItemsById() -> [KCMasterSlotItemObject] {
+ func sortedMasterSlotItemsById() -> [MasterSlotItem] {
let sortDesc = NSSortDescriptor(key: "id", ascending: true)
- guard let masterSlotItems = try? objects(with: KCMasterSlotItemObject.entity, sortDescriptors: [sortDesc])
+ guard let masterSlotItems = try? objects(with: MasterSlotItem.entity, sortDescriptors: [sortDesc])
else { return [] }
return masterSlotItems
}
- func masterSlotItems() -> [KCMasterSlotItemObject] {
- guard let masterSlotItems = try? objects(with: KCMasterSlotItemObject.entity)
+ func masterSlotItems() -> [MasterSlotItem] {
+ guard let masterSlotItems = try? objects(with: MasterSlotItem.entity)
else { return [] }
return masterSlotItems
}
- func masterSlotItem(by id: Int) -> KCMasterSlotItemObject? {
+ func masterSlotItem(by id: Int) -> MasterSlotItem? {
let p = NSPredicate(format: "id = %ld", id)
- guard let masterSlotItems = try? objects(with: KCMasterSlotItemObject.entity, predicate: p)
+ guard let masterSlotItems = try? objects(with: MasterSlotItem.entity, predicate: p)
else { return nil }
return masterSlotItems.first
}
- func masterSlotItemEquipType(by id: Int) -> KCMasterSlotItemEquipTypeObject? {
+ func masterSlotItemEquipType(by id: Int) -> MasterSlotItemEquipType? {
let predicate = NSPredicate(format: "id = %ld", id)
- guard let types = try? objects(with: KCMasterSlotItemEquipTypeObject.entity, predicate: predicate)
+ guard let types = try? objects(with: MasterSlotItemEquipType.entity, predicate: predicate)
else { return nil }
return types.first
}
- func masterSTypes() -> [KCMasterSType] {
- guard let masterSTypes = try? objects(with: KCMasterSType.entity)
+ func masterSTypes() -> [MasterSType] {
+ guard let masterSTypes = try? objects(with: MasterSType.entity)
else { return [] }
return masterSTypes
}
- func sortedMasterSTypesById() -> [KCMasterSType] {
+ func sortedMasterSTypesById() -> [MasterSType] {
let sortDesc = NSSortDescriptor(key: "id", ascending: true)
- guard let masterSTypes = try? objects(with: KCMasterSType.entity, sortDescriptors: [sortDesc])
+ guard let masterSTypes = try? objects(with: MasterSType.entity, sortDescriptors: [sortDesc])
else { return [] }
return masterSTypes
}
- func material() -> KCMaterial? {
- guard let materials = try? objects(with: KCMaterial.entity)
+ func material() -> Material? {
+ guard let materials = try? objects(with: Material.entity)
else { return nil }
return materials.first
}
- func createMaterial() -> KCMaterial? {
- return insertNewObject(for: KCMaterial.entity)
+ func createMaterial() -> Material? {
+ return insertNewObject(for: Material.entity)
}
- func nyukyoDock(by id: Int) -> KCNyukyoDock? {
+ func nyukyoDock(by id: Int) -> NyukyoDock? {
let p = NSPredicate(format: "id = %ld", id)
- guard let ndocks = try? objects(with: KCNyukyoDock.entity, predicate: p)
+ guard let ndocks = try? objects(with: NyukyoDock.entity, predicate: p)
else { return nil }
return ndocks.first
}
- func ships(byDeckId deckId: Int) -> [KCShipObject] {
+ func ships(byDeckId deckId: Int) -> [Ship] {
let predicate = NSPredicate(format: "id = %d", deckId)
- guard let decks = try? objects(with: KCDeck.entity, predicate: predicate),
+ guard let decks = try? objects(with: Deck.entity, predicate: predicate),
let deck = decks.first
else { return [] }
return (0..<6).flatMap { deck[$0] }
}
- func ship(byId shipId: Int) -> KCShipObject? {
+ func ship(byId shipId: Int) -> Ship? {
if shipId < 1 { return nil }
let predicate = NSPredicate(format: "id = %d", shipId)
- guard let ships = try? objects(with: KCShipObject.entity, predicate: predicate)
+ guard let ships = try? objects(with: Ship.entity, predicate: predicate)
else { return nil }
return ships.first
}
- func ships(byId shipId: Int) -> [KCShipObject] {
+ func ships(byId shipId: Int) -> [Ship] {
let predicate = NSPredicate(format: "id = %d", shipId)
- guard let ships = try? objects(with: KCShipObject.entity, predicate: predicate)
+ guard let ships = try? objects(with: Ship.entity, predicate: predicate)
else { return [] }
return ships
}
- func ships(exclude shipIds: [Int]) -> [KCShipObject] {
+ func ships(exclude shipIds: [Int]) -> [Ship] {
let predicate = NSPredicate(format: "NOT id IN %@", shipIds)
- guard let ships = try? objects(with: KCShipObject.entity, predicate: predicate)
+ guard let ships = try? objects(with: Ship.entity, predicate: predicate)
else { return [] }
return ships
}
- func shipsInFleet() -> [KCShipObject] {
+ func shipsInFleet() -> [Ship] {
let predicate = NSPredicate(format: "NOT fleet = 0")
- guard let ships = try? objects(with: KCShipObject.entity, predicate: predicate)
+ guard let ships = try? objects(with: Ship.entity, predicate: predicate)
else { return [] }
return ships
}
- func createShip() -> KCShipObject? {
- return insertNewObject(for: KCShipObject.entity)
+ func createShip() -> Ship? {
+ return insertNewObject(for: Ship.entity)
}
func masterSlotItemID(bySlotItemId slotItemId: Int) -> Int {
if slotItemId < 1 { return 0 }
let predicate = NSPredicate(format: "id = %d", argumentArray: [slotItemId])
- guard let slotItems = try? objects(with: KCSlotItemObject.entity, predicate: predicate),
+ guard let slotItems = try? objects(with: SlotItem.entity, predicate: predicate),
let slotItem = slotItems.first
else { return 0 }
return slotItem.master_slotItem.id
}
- func slotItem(byId itemId: Int) -> KCSlotItemObject? {
+ func slotItem(byId itemId: Int) -> SlotItem? {
let p = NSPredicate(format: "id = %ld", itemId)
- guard let slotItems = try? objects(with: KCSlotItemObject.entity, predicate: p)
+ guard let slotItems = try? objects(with: SlotItem.entity, predicate: p)
else { return nil }
return slotItems.first
}
- func sortedSlotItemsById() -> [KCSlotItemObject] {
+ func sortedSlotItemsById() -> [SlotItem] {
let sortDesc = NSSortDescriptor(key: "id", ascending: true)
- guard let slotItems = try? objects(with: KCSlotItemObject.entity, sortDescriptors: [sortDesc])
+ guard let slotItems = try? objects(with: SlotItem.entity, sortDescriptors: [sortDesc])
else { return [] }
return slotItems
}
- func slotItems() -> [KCSlotItemObject] {
- guard let slotItems = try? objects(with: KCSlotItemObject.entity)
+ func slotItems() -> [SlotItem] {
+ guard let slotItems = try? objects(with: SlotItem.entity)
else { return [] }
return slotItems
}
- func slotItems(in itemIds: [Int]) -> [KCSlotItemObject] {
+ func slotItems(in itemIds: [Int]) -> [SlotItem] {
let predicate = NSPredicate(format: "id IN %@", itemIds)
- guard let slotItems = try? objects(with: KCSlotItemObject.entity, predicate: predicate)
+ guard let slotItems = try? objects(with: SlotItem.entity, predicate: predicate)
else { return [] }
return slotItems
}
- func slotItems(exclude itemIds: [Int]) -> [KCSlotItemObject] {
+ func slotItems(exclude itemIds: [Int]) -> [SlotItem] {
let predicate = NSPredicate(format: "NOT id IN %@", itemIds)
- guard let slotItems = try? objects(with: KCSlotItemObject.entity, predicate: predicate)
+ guard let slotItems = try? objects(with: SlotItem.entity, predicate: predicate)
else { return [] }
return slotItems
}
- func createSlotItem() -> KCSlotItemObject? {
- return insertNewObject(for: KCSlotItemObject.entity)
+ func createSlotItem() -> SlotItem? {
+ return insertNewObject(for: SlotItem.entity)
}
- func quests() -> [KCQuest] {
- guard let quests = try? objects(with: KCQuest.entity)
+ func quests() -> [Quest] {
+ guard let quests = try? objects(with: Quest.entity)
else { return [] }
return quests
}
- func quest(by no: Int) -> KCQuest? {
+ func quest(by no: Int) -> Quest? {
let p = NSPredicate(format: "%K = %ld", "no", no)
- guard let quests = try? objects(with: KCQuest.entity, predicate: p)
+ guard let quests = try? objects(with: Quest.entity, predicate: p)
else { return nil }
return quests.first
}
- func quests(in range: CountableClosedRange<Int>) -> [KCQuest] {
+ func quests(in range: CountableClosedRange<Int>) -> [Quest] {
let p = NSPredicate(format: "%K In %@", "no", range.map {$0})
- guard let quests = try? objects(with: KCQuest.entity, predicate: p)
+ guard let quests = try? objects(with: Quest.entity, predicate: p)
else { return [] }
return quests
}
- func sortedQuestByNo() -> [KCQuest] {
+ func sortedQuestByNo() -> [Quest] {
let sortDesc = NSSortDescriptor(key: "no", ascending: true)
- guard let quests = try? objects(with: KCQuest.entity, sortDescriptors: [sortDesc])
+ guard let quests = try? objects(with: Quest.entity, sortDescriptors: [sortDesc])
else { return [] }
return quests
}
- func createQuest() -> KCQuest? {
- return insertNewObject(for: KCQuest.entity)
+ func createQuest() -> Quest? {
+ return insertNewObject(for: Quest.entity)
}
}
else { return print("AirBase is not found") }
let planes = airbase.planeInfo
guard planes.count >= squadronId,
- let plane = planes[squadronId - 1] as? KCAirBasePlaneInfo
+ let plane = planes[squadronId - 1] as? AirBasePlaneInfo
else { return print("AirBase is wrong") }
plane.cond = cond
plane.slotid = slotid
guardEscapedView.isHidden = !guardEscaped
}
}
- dynamic var ship: KCShipObject? {
+ dynamic var ship: Ship? {
get {
- return shipController.content as? KCShipObject
+ return shipController.content as? Ship
}
set {
shipController.fetchPredicate = NSPredicate(format: "id = %ld", newValue?.id ?? 0)
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCShipObject.self,
+ self.configuration = MappingConfiguration(entityType: Ship.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor(),
ignoreKeys:
}
private var registerIds: [Int] = []
- private lazy var masterShips: [KCMasterShipObject] = {
+ private lazy var masterShips: [MasterShip] = {
return ServerDataStore.default.sortedMasterShipsById()
}()
- private lazy var slotItems: [KCSlotItemObject] = {
+ private lazy var slotItems: [SlotItem] = {
return ServerDataStore.default.sortedSlotItemsById()
}()
private var isDeleteNotExist: Bool {
}
func beginRegister(_ object: NSManagedObject) {
- guard let ship = object as? KCShipObject
+ guard let ship = object as? Ship
else { return }
ship.sally_area = nil
}
func handleExtraValue(_ value: Any, forKey key: String, to object: NSManagedObject) -> Bool {
- guard let ship = object as? KCShipObject
+ guard let ship = object as? Ship
else { return false }
// 取得後破棄した装備のデータを削除するため保有IDを保存
store?.ships(exclude: registerIds).forEach { store?.delete($0) }
}
- private func setMaster(_ masterId: Int, to ship: KCShipObject) {
+ private func setMaster(_ masterId: Int, to ship: Ship) {
if ship.ship_id == masterId { return }
guard let mShip = masterShips.binarySearch(comparator: { $0.id ==? masterId }),
- let masterShip = store?.object(with: mShip.objectID) as? KCMasterShipObject
+ let masterShip = store?.object(with: mShip.objectID) as? MasterShip
else { return print("Can not convert to current moc object masterShip") }
ship.master_ship = masterShip
ship.ship_id = masterId
}
- private func setSlot(_ slotItems: [Any], to ship: KCShipObject) {
+ private func setSlot(_ slotItems: [Any], to ship: Ship) {
guard let converSlotItems = slotItems as? [Int],
let store = store
else { return }
- let newItems: [KCSlotItemObject] =
+ let newItems: [SlotItem] =
converSlotItems.flatMap { (item: Int) in
if item == 0 || item == -1 { return nil }
guard let found = self.slotItems.binarySearch(comparator: { $0.id ==? item }),
- let slotItem = store.object(with: found.objectID) as? KCSlotItemObject
+ let slotItem = store.object(with: found.objectID) as? SlotItem
else {
let maxV = converSlotItems.last
if maxV != nil && maxV! < item {
}
ship.equippedItem = NSOrderedSet(array: newItems)
}
- private func setExtraSlot(_ exSlotItem: Int, to ship: KCShipObject) {
+ private func setExtraSlot(_ exSlotItem: Int, to ship: Ship) {
guard exSlotItem != -1,
exSlotItem != 0
else { return }
guard let found = slotItems.binarySearch(comparator: { $0.id ==? exSlotItem }),
- let ex = store?.object(with: found.objectID) as? KCSlotItemObject
+ let ex = store?.object(with: found.objectID) as? SlotItem
else { return print("Can not convert to current moc object") }
ship.extraItem = ex
}
return "ShipMasterDetailWindowController"
}
- dynamic var selectedShip: KCShipObject? {
+ dynamic var selectedShip: Ship? {
didSet { buildSpec() }
}
dynamic var spec: [[String: AnyObject]] = []
@IBAction func applySally(_ sender: AnyObject?) {
let store = ServerDataStore.oneTimeEditor()
guard let i = selectedShip?.objectID,
- let ship = store.object(with: i) as? KCShipObject
+ let ship = store.object(with: i) as? Ship
else { return }
ship.sally_area = sally.integerValue as NSNumber
}
]
.filter { $0.0 == tableView }
.first
- guard let selectedObjects = controller?.1.selectedObjects as? [KCShipObject],
+ guard let selectedObjects = controller?.1.selectedObjects as? [Ship],
selectedObjects.count != 0 else { return }
selectedShip = selectedObjects[0]
}
}
var standardDeviation: Double {
- guard let ships = shipController.arrangedObjects as? [KCShipObject],
+ guard let ships = shipController.arrangedObjects as? [Ship],
!ships.isEmpty,
let avg = shipController.value(forKeyPath: "arrangedObjects.@avg.lv") as? Double
else { return 0.0 }
required init(_ apiResponse: APIResponse) {
self.apiResponse = apiResponse
- self.configuration = MappingConfiguration(entityType: KCSlotItemObject.self,
+ self.configuration = MappingConfiguration(entityType: SlotItem.self,
dataKey: dataKey(apiResponse),
editorStore: ServerDataStore.oneTimeEditor())
}
private var registerIds: [Int] = []
- private lazy var masterSlotItems: [KCMasterSlotItemObject] = {
+ private lazy var masterSlotItems: [MasterSlotItem] = {
return ServerDataStore.default.sortedMasterSlotItemsById()
}()
func beginRegister(_ object: NSManagedObject) {
- guard let slotItem = object as? KCSlotItemObject
+ guard let slotItem = object as? SlotItem
else { return }
slotItem.alv = 0
}
}
private func setMaster(_ masterId: Int, to object: NSManagedObject?) {
- guard let slotItem = object as? KCSlotItemObject
+ guard let slotItem = object as? SlotItem
else { return print("argument is wrong") }
if slotItem.slotitem_id == masterId { return }
guard let mSlotItem = masterSlotItems.binarySearch(comparator: { $0.id ==? masterId })
else { return print("Can not find MasterSlotItem") }
guard let moc = slotItem.managedObjectContext,
- let masterSlotItem = moc.object(with: mSlotItem.objectID) as? KCMasterSlotItemObject
+ let masterSlotItem = moc.object(with: mSlotItem.objectID) as? MasterSlotItem
else { return print("Can not convert to current moc object") }
slotItem.master_slotItem = masterSlotItem
slotItem.slotitem_id = masterId
let storedSlotItems = store.sortedSlotItemsById()
let newSet = slotItems
- .flatMap { (slotItem) -> KCSlotItemObject? in
+ .flatMap { (slotItem) -> SlotItem? in
let found = storedSlotItems.binarySearch { $0.id ==? slotItem }
if let item = found {
return item
private let borderColor = NSColor(calibratedWhite: 0.632, alpha: 1.0)
private let backgroundColor = NSColor(calibratedWhite: 0.948, alpha: 1.0)
- dynamic var shipStatus: KCShipObject?
+ dynamic var shipStatus: Ship?
private var fuelStatusColor: NSColor {
guard let s = shipStatus else { return redColor }
return statusColor(withValue: s.fuel, max: s.maxFuel)
}
}
- var shipStatus: KCShipObject? {
+ var shipStatus: Ship? {
get {
return suppliesCell.shipStatus
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11759" systemVersion="16D32" minimumToolsVersion="Xcode 4.3" sourceLanguage="Objective-C" userDefinedModelVersionIdentifier="">
- <entity name="Battle" representedClassName="KCD.KCBattle" syncable="YES">
+ <entity name="Battle" representedClassName="KCD.Battle" syncable="YES">
<attribute name="battleCell" optional="YES" attributeType="Integer 64" usesScalarValueType="NO" syncable="YES"/>
<attribute name="deckId" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="isBossCell" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
<attribute name="no" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<relationship name="damages" optional="YES" toMany="YES" maxCount="12" deletionRule="Cascade" ordered="YES" destinationEntity="Damage" inverseName="battle" inverseEntity="Damage" syncable="YES"/>
</entity>
- <entity name="Damage" representedClassName="KCD.KCDamage" syncable="YES">
+ <entity name="Damage" representedClassName="KCD.Damage" syncable="YES">
<attribute name="hp" attributeType="Integer 64" defaultValueString="0.0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="id" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="shipID" attributeType="Integer 64" defaultValueString="0.0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="useDamageControl" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
<relationship name="battle" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Battle" inverseName="damages" inverseEntity="Battle" syncable="YES"/>
</entity>
- <entity name="GuardEscaped" representedClassName="KCD.KCGuardEscaped" syncable="YES">
+ <entity name="GuardEscaped" representedClassName="KCD.GuardEscaped" syncable="YES">
<attribute name="ensured" attributeType="Boolean" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="shipID" attributeType="Integer 64" defaultValueString="-1" usesScalarValueType="NO" syncable="YES"/>
</entity>
<element name="Damage" positionX="-54" positionY="18" width="128" height="120"/>
<element name="GuardEscaped" positionX="-54" positionY="27" width="128" height="75"/>
</elements>
-</model>
+</model>
\ No newline at end of file
//
// TemporaryDataStore.swift
-// KCD
+// D
//
// Created by Hori,Masaki on 2017/01/06.
// Copyright © 2017年 Hori,Masaki. All rights reserved.
var managedObjectContext: NSManagedObjectContext
}
-extension KCBattle: EntityProvider {
+extension Battle: EntityProvider {
override class var entityName: String { return "Battle" }
}
-extension KCDamage: EntityProvider {
+extension Damage: EntityProvider {
override class var entityName: String { return "Damage" }
}
-extension KCGuardEscaped: EntityProvider {
+extension GuardEscaped: EntityProvider {
override class var entityName: String { return "GuardEscaped" }
}
extension TemporaryDataStore {
- func battle() -> KCBattle? {
+ func battle() -> Battle? {
return battles().first
}
- func battles() -> [KCBattle] {
- guard let battles = try? self.objects(with: KCBattle.entity)
+ func battles() -> [Battle] {
+ guard let battles = try? self.objects(with: Battle.entity)
else { return [] }
return battles
}
func resetBattle() {
battles().forEach { delete($0) }
}
- func createBattle() -> KCBattle? {
- return insertNewObject(for: KCBattle.entity)
+ func createBattle() -> Battle? {
+ return insertNewObject(for: Battle.entity)
}
- func sortedDamagesById() -> [KCDamage] {
+ func sortedDamagesById() -> [Damage] {
let sortDescriptor = NSSortDescriptor(key: "id", ascending: true)
- guard let damages = try? objects(with: KCDamage.entity, sortDescriptors: [sortDescriptor])
+ guard let damages = try? objects(with: Damage.entity, sortDescriptors: [sortDescriptor])
else { return [] }
return damages
}
- func damages() -> [KCDamage] {
- guard let damages = try? objects(with: KCDamage.entity)
+ func damages() -> [Damage] {
+ guard let damages = try? objects(with: Damage.entity)
else { return [] }
return damages
}
- func createDamage() -> KCDamage? {
- return insertNewObject(for: KCDamage.entity)
+ func createDamage() -> Damage? {
+ return insertNewObject(for: Damage.entity)
}
- func guardEscaped() -> [KCGuardEscaped] {
- guard let escapeds = try? objects(with: KCGuardEscaped.entity)
+ func guardEscaped() -> [GuardEscaped] {
+ guard let escapeds = try? objects(with: GuardEscaped.entity)
else { return [] }
return escapeds
}
- func ensuredGuardEscaped(byShipId shipId: Int) -> KCGuardEscaped? {
+ func ensuredGuardEscaped(byShipId shipId: Int) -> GuardEscaped? {
let p = NSPredicate(format: "shipID = %ld AND ensured = TRUE", shipId)
- guard let escapes = try? objects(with: KCGuardEscaped.entity, predicate: p)
+ guard let escapes = try? objects(with: GuardEscaped.entity, predicate: p)
else { return nil }
return escapes.first
}
- func notEnsuredGuardEscaped() -> [KCGuardEscaped] {
+ func notEnsuredGuardEscaped() -> [GuardEscaped] {
let predicate = NSPredicate(format: "ensured = FALSE")
- guard let escapeds = try? objects(with: KCGuardEscaped.entity, predicate: predicate)
+ guard let escapeds = try? objects(with: GuardEscaped.entity, predicate: predicate)
else { return [] }
return escapeds
}
- func createGuardEscaped() -> KCGuardEscaped? {
- return insertNewObject(for: KCGuardEscaped.entity)
+ func createGuardEscaped() -> GuardEscaped? {
+ return insertNewObject(for: GuardEscaped.entity)
}
}
@IBAction func showHideShip(_ sender: AnyObject?) {
let row = tableView.clickedRow
- guard let ships = shipsController.arrangedObjects as? [KCShipObject],
+ guard let ships = shipsController.arrangedObjects as? [Ship],
0..<ships.count ~= row
else { return }
let shipID = ships[row].id
override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
if menuItem.action == .showHideShip {
let row = tableView.clickedRow
- guard let ships = shipsController.arrangedObjects as? [KCShipObject],
+ guard let ships = shipsController.arrangedObjects as? [Ship],
0..<ships.count ~= row
else { return false }
let shipID = ships[row].id