F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C1190718A746EB005D5B25 /* HMJSONTracker.m */; };
F4C1190B18A74DF0005D5B25 /* HMJSONCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C1190A18A74DF0005D5B25 /* HMJSONCommand.m */; };
F4C3957418CDDFE500A1E918 /* HMKenzoDockStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C3957318CDDFE500A1E918 /* HMKenzoDockStatus.m */; };
+ F4C5A2231C3533E800533FB6 /* HMEnhancementListItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C5A2221C3533E800533FB6 /* HMEnhancementListItem.m */; };
F4C86B921C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C86B911C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m */; };
F4D2CBC218AD0E1A000EBC59 /* HMMasterSTypeCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC118AD0E1A000EBC59 /* HMMasterSTypeCommand.m */; };
F4D2CBC518AE2AE2000EBC59 /* HMCompositCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D2CBC418AE2AE2000EBC59 /* HMCompositCommand.m */; };
F4C1190A18A74DF0005D5B25 /* HMJSONCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMJSONCommand.m; sourceTree = "<group>"; };
F4C3957218CDDFE500A1E918 /* HMKenzoDockStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMKenzoDockStatus.h; sourceTree = "<group>"; };
F4C3957318CDDFE500A1E918 /* HMKenzoDockStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMKenzoDockStatus.m; sourceTree = "<group>"; };
+ F4C5A2211C3533E800533FB6 /* HMEnhancementListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMEnhancementListItem.h; sourceTree = "<group>"; };
+ F4C5A2221C3533E800533FB6 /* HMEnhancementListItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMEnhancementListItem.m; sourceTree = "<group>"; };
F4C86B901C1C445C00F260FE /* HMUpgradeShipExcludeColorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMUpgradeShipExcludeColorTransformer.h; sourceTree = "<group>"; };
F4C86B911C1C445D00F260FE /* HMUpgradeShipExcludeColorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMUpgradeShipExcludeColorTransformer.m; sourceTree = "<group>"; };
F4D2CBC018AD0E1A000EBC59 /* HMMasterSTypeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMasterSTypeCommand.h; sourceTree = "<group>"; };
F4F6E8071B2B17E50008B66E /* HMStrengthenListViewController.xib */,
F4F6E80D1B2C25D20008B66E /* HMStrengthenListItemCellView.h */,
F4F6E80E1B2C25D20008B66E /* HMStrengthenListItemCellView.m */,
+ F4C5A2211C3533E800533FB6 /* HMEnhancementListItem.h */,
+ F4C5A2221C3533E800533FB6 /* HMEnhancementListItem.m */,
F4D6BCA61AA298FD00742FEB /* HMShipDetailViewController.h */,
F4D6BCA71AA298FD00742FEB /* HMShipDetailViewController.m */,
F4BEF00A1B11A5DE004702B8 /* HMShipDetailViewController.xib */,
F4513EF618B9F29800073552 /* HMMemberShipCommand.m in Sources */,
F4F6E8081B2B17E50008B66E /* HMStrengthenListViewController.m in Sources */,
F4268034195332A000B2C27F /* HMPowerUpCommand.m in Sources */,
+ F4C5A2231C3533E800533FB6 /* HMEnhancementListItem.m in Sources */,
F43769E71AE7D22700DE6204 /* HMKCQuest.m in Sources */,
F43769E41AE7D01D00DE6204 /* HMUpdateQuestListCommand.m in Sources */,
F4C1190818A746EB005D5B25 /* HMJSONTracker.m in Sources */,
--- /dev/null
+//
+// HMEnhancementListItem.h
+// KCD
+//
+// Created by Hori,Masaki on 2015/12/31.
+// Copyright © 2015年 Hori,Masaki. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+typedef NS_ENUM(NSUInteger, EquipmentType) {
+ smallCaliberMainGun = 1,
+ mediumCaliberMainGun,
+ largeCaliberMainGun,
+ SecondaryGun,
+ torpedo = 8,
+ smallRadar = 16,
+ largeRadar,
+ sonar = 24,
+ depthCharge = 32,
+ armorPiercingShell = 40,
+ antiAircraftGun = 48,
+ antiAircraftFireDirector = 56,
+ searchlight = 64,
+};
+
+@interface HMRequiredEquipment : NSObject <NSCoding, NSCopying>
+
+@property (copy, nonatomic) NSString *identifire;
+
+@property (copy, nonatomic) NSString *currentLevelString;
+@property (copy, nonatomic) NSString *name;
+@property (copy, nonatomic) NSNumber *number;
+@property (copy, nonatomic) NSNumber *screw;
+@property (copy, nonatomic) NSNumber *ensureScrew;
+
+@end
+
+
+@interface HMRequiredEquipmentSet : NSObject <NSCoding>
+
+@property (copy, nonatomic) NSString *identifire;
+
+@property (strong, nonatomic) NSArray<HMRequiredEquipment *> *requiredEquipments;
+
+
+// for Cocoa Bindings
+@property (readonly) HMRequiredEquipment *requiredEquipment01;
+@property (readonly) HMRequiredEquipment *requiredEquipment02;
+@property (readonly) HMRequiredEquipment *requiredEquipment03;
+
+@end
+
+
+@interface HMEnhancementListItem : NSObject <NSCoding>
+
+@property (copy, nonatomic) NSString *identifire;
+
+@property (copy, nonatomic) NSNumber *weekday;
+
+@property (copy, nonatomic) NSNumber *equipmentType;
+
+@property (copy, nonatomic) NSString *targetEquipment;
+@property (copy, nonatomic) NSString *remodelEquipment;
+
+@property (strong, nonatomic) HMRequiredEquipmentSet *requiredEquipments;
+
+@property (strong, nonatomic) NSArray<NSString *> *secondsShipNames;
+
+
+// for Cocoa Bindings
+@property (readonly) NSString *secondsShipName01;
+@property (readonly) NSString *secondsShipName02;
+@property (readonly) NSString *secondsShipName03;
+
+
+@end
--- /dev/null
+//
+// HMEnhancementListItem.m
+// KCD
+//
+// Created by Hori,Masaki on 2015/12/31.
+// Copyright © 2015年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMEnhancementListItem.h"
+
+@implementation HMRequiredEquipment
+- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
+{
+ self = [super init];
+
+ self.identifire = [aDecoder decodeObjectForKey:@"HMRequiredEquipmentIdentifier"];
+ self.currentLevelString = [aDecoder decodeObjectForKey:@"currentLevelString"];
+ self.name = [aDecoder decodeObjectForKey:@"name"];
+ self.number = [aDecoder decodeObjectForKey:@"number"];
+ self.screw = [aDecoder decodeObjectForKey:@"screw"];
+ self.ensureScrew = [aDecoder decodeObjectForKey:@"ensureScrew"];
+
+ return self;
+}
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+ [aCoder encodeObject:self.identifire forKey:@"HMRequiredEquipmentIdentifier"];
+ [aCoder encodeObject:self.currentLevelString forKey:@"currentLevelString"];
+ [aCoder encodeObject:self.name forKey:@"name"];
+ [aCoder encodeObject:self.number forKey:@"number"];
+ [aCoder encodeObject:self.screw forKey:@"screw"];
+ [aCoder encodeObject:self.ensureScrew forKey:@"ensureScrew"];
+}
+
+- (instancetype)copyWithZone:(NSZone *)zone
+{
+ HMRequiredEquipment *obj = [HMRequiredEquipment new];
+ obj.identifire = self.identifire;
+ obj.currentLevelString = self.currentLevelString;
+ obj.name = self.name;
+ obj.number = self.number;
+ obj.screw = self.screw;
+ obj.ensureScrew = self.ensureScrew;
+
+ return obj;
+}
+
+- (id)description
+{
+ NSString *format =
+ @"{\n"
+ @"identifier = %@,\n"
+ @"currentLevelString = %@,\n"
+ @"name = %@,\n"
+ @"number = %@,\n"
+ @"screw = %@,\n"
+ @"ensureScrew = %@,\n"
+ @"}";
+
+ return [NSString stringWithFormat:format, _identifire, _currentLevelString, _name, _number, _screw, _ensureScrew];
+}
+
+@end
+
+@implementation HMRequiredEquipmentSet
+- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
+{
+ self = [super init];
+
+ self.identifire = [aDecoder decodeObjectForKey:@"HMRequiredEquipmentSetIdentifier"];
+ self.requiredEquipments = [aDecoder decodeObjectForKey:@"requiredEquipments"];
+
+ return self;
+}
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+ [aCoder encodeObject:self.identifire forKey:@"HMRequiredEquipmentSetIdentifier"];
+ [aCoder encodeObject:self.requiredEquipments forKey:@"requiredEquipments"];
+}
+
+- (id)description
+{
+ return [NSString stringWithFormat:@"{identifier = %@,\nrequiredEquipments = %@\n}", _identifire, _requiredEquipments];
+}
+
+- (HMRequiredEquipment *)requiredEquipment01
+{
+ if(self.requiredEquipments.count > 0) return self.requiredEquipments[0];
+ return nil;
+}
+- (HMRequiredEquipment *)requiredEquipment02
+{
+ if(self.requiredEquipments.count > 1) return self.requiredEquipments[1];
+ return nil;
+}
+- (HMRequiredEquipment *)requiredEquipment03
+{
+ if(self.requiredEquipments.count > 2) return self.requiredEquipments[2];
+ return nil;
+}
+@end
+
+@implementation HMEnhancementListItem
+- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
+{
+ self = [super init];
+
+ self.identifire = [aDecoder decodeObjectForKey:@"HMEnhancementListItemIdentifier"];
+ self.weekday = [aDecoder decodeObjectForKey:@"weekday"];
+ self.equipmentType = [aDecoder decodeObjectForKey:@"equipmentType"];
+ self.targetEquipment = [aDecoder decodeObjectForKey:@"targetEquipment"];
+ self.remodelEquipment = [aDecoder decodeObjectForKey:@"remodelEquipment"];
+ self.requiredEquipments = [aDecoder decodeObjectForKey:@"requiredEquipments"];
+ self.secondsShipNames = [aDecoder decodeObjectForKey:@"secondsShipNames"];
+
+ return self;
+}
+- (void)encodeWithCoder:(NSCoder *)aCoder
+{
+ [aCoder encodeObject:self.identifire forKey:@"HMEnhancementListItemIdentifier"];
+ [aCoder encodeObject:self.weekday forKey:@"weekday"];
+ [aCoder encodeObject:self.equipmentType forKey:@"equipmentType"];
+ [aCoder encodeObject:self.targetEquipment forKey:@"targetEquipment"];
+ [aCoder encodeObject:self.remodelEquipment forKey:@"remodelEquipment"];
+ [aCoder encodeObject:self.requiredEquipments forKey:@"requiredEquipments"];
+ [aCoder encodeObject:self.secondsShipNames forKey:@"secondsShipNames"];
+}
+
+- (id)description
+{
+ NSString *format =
+ @"{\n"
+ @"identifier = %@,\n"
+ @"weekday = %@,\n"
+ @"equipmentType = %@,\n"
+ @"targetEquipment = %@,\n"
+ @"remodelEquipment = %@,\n"
+ @"requiredEquipments = %@,\n"
+ @"secondsShipNames = %@,\n"
+ @"}";
+
+ return [NSString stringWithFormat:format,
+ _identifire, _weekday, _equipmentType, _targetEquipment,
+ _remodelEquipment, _requiredEquipments, _secondsShipNames];
+}
+
+
+- (NSString *)secondsShipName01
+{
+ if(self.secondsShipNames.count > 0) return self.secondsShipNames[0];
+ return nil;
+}
+- (NSString *)secondsShipName02
+{
+ if(self.secondsShipNames.count > 1) return self.secondsShipNames[1];
+ return nil;
+}
+- (NSString *)secondsShipName03
+{
+ if(self.secondsShipNames.count > 2) return self.secondsShipNames[2];
+ return nil;
+}
+@end