OSDN Git Service

次のレベルに上がるのに必要な経験値用のキーと艦種の省略名のキーを追加
authormasakih <masakih@users.sourceforge.jp>
Wed, 26 Feb 2014 14:55:54 +0000 (23:55 +0900)
committermasakih <masakih@users.sourceforge.jp>
Wed, 26 Feb 2014 14:55:54 +0000 (23:55 +0900)
KCD/HMKCShipObject.m

index 8e4ec41..1d29738 100644 (file)
@@ -8,21 +8,49 @@
 
 #import "HMKCShipObject.h"
 
-@implementation HMKCShipObject
+static NSArray *shortSTypeNames = nil;
+static NSArray *levelUpExps = nil;
 
+@implementation HMKCShipObject
++ (void)load
+{
+       static dispatch_once_t onceToken;
+       dispatch_once(&onceToken, ^{
+               NSBundle *mainBundle = [NSBundle mainBundle];
+               NSURL *url = [mainBundle URLForResource:@"STypeShortName" withExtension:@"plist"];
+               NSArray *array = [[NSArray alloc] initWithContentsOfURL:url];
+               if(!array) {
+                       NSLog(@"Can not load STypeShortName.plist.");
+               }
+               shortSTypeNames = [array copy];
+               
+               url = [mainBundle URLForResource:@"LevelUpExp" withExtension:@"plist"];
+               array = [[NSArray alloc] initWithContentsOfURL:url];
+               if(!array) {
+                       NSLog(@"Can not load LevelUpExp.plist.");
+               }
+               levelUpExps = [array copy];
+       });
+}
 - (NSNumber *)master_sortno
 {
        return nil;
 }
-- (NSString *)type
+- (NSString *)shortTypeName
 {
-       //
-       return nil;
+       NSNumber *idValue = [self valueForKeyPath:@"master_ship.stype.id"];
+       if(!idValue || [idValue isKindOfClass:[NSNull class]]) return nil;
+       
+       if([shortSTypeNames count] < [idValue integerValue]) return nil;
+       
+       return shortSTypeNames[[idValue integerValue] - 1];
 }
 
 - (NSNumber *)next
 {
-       return nil;
+       NSUInteger nextExp = [[levelUpExps objectAtIndex:[[self valueForKey:@"lv"] integerValue]] integerValue];
+       
+       return [NSNumber numberWithInteger:nextExp - [[self valueForKey:@"exp"] integerValue]];
 }
 
 @end