OSDN Git Service

新しい改修工廠メニュー用データクラスを追加
authormasakih <masakih@users.sourceforge.jp>
Sun, 3 Jan 2016 14:15:48 +0000 (23:15 +0900)
committermasakih <masakih@users.sourceforge.jp>
Sun, 3 Jan 2016 14:15:48 +0000 (23:15 +0900)
KCD.xcodeproj/project.pbxproj
KCD/HMEnhancementListItem.h [new file with mode: 0644]
KCD/HMEnhancementListItem.m [new file with mode: 0644]

index 8620237..dfd1b6e 100644 (file)
                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 */,
diff --git a/KCD/HMEnhancementListItem.h b/KCD/HMEnhancementListItem.h
new file mode 100644 (file)
index 0000000..ca19220
--- /dev/null
@@ -0,0 +1,78 @@
+//
+//  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
diff --git a/KCD/HMEnhancementListItem.m b/KCD/HMEnhancementListItem.m
new file mode 100644 (file)
index 0000000..ee23351
--- /dev/null
@@ -0,0 +1,163 @@
+//
+//  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