From: masakih Date: Wed, 10 Feb 2016 10:59:35 +0000 (+0900) Subject: 轟沈時耐久値がマイナスになる問題を修正 X-Git-Tag: 1.5b8~8 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=d320c7a4f64950e9616ff66bae6a07e0674ed280;p=kcd%2FKCD.git 轟沈時耐久値がマイナスになる問題を修正 ダメコン発動時に耐久値を補正 --- diff --git a/KCD/HMCalculateDamageCommand.m b/KCD/HMCalculateDamageCommand.m index f5feeed9..956a1a90 100644 --- a/KCD/HMCalculateDamageCommand.m +++ b/KCD/HMCalculateDamageCommand.m @@ -11,6 +11,9 @@ #import "HMTemporaryDataStore.h" #import "HMServerDataStore.h" +#import "HMKCShipObject+Extensions.h" +#import "HMKCSlotItemObject+Extensions.h" + #define DAMAGE_CHECK 0 @@ -333,9 +336,29 @@ typedef NS_ENUM(NSUInteger, HMBattleType) { [self.store saveAction:nil]; } -- (NSArray *)deckWithNumber:(NSNumber *)number +NSInteger damageControlIfPossible(NSInteger nowhp, HMKCShipObject *ship) { - return [NSArray array]; + if(nowhp < 0) nowhp = 0; + + NSInteger maxhp = ship.maxhp.integerValue; + + NSOrderedSet *items = ship.equippedItem; + for(HMKCSlotItemObject *item in items) { + NSInteger itemID = item.id.integerValue; + if(itemID == 42) { + return maxhp * 0.2; + } else if(itemID == 43) { + return maxhp; + } + } + NSInteger exItem = ship.slot_ex.integerValue; + if(exItem == 42) { + return maxhp * 0.2; + } else if(exItem == 43) { + return maxhp; + } + + return nowhp; } - (void)applyDamage { @@ -415,11 +438,15 @@ typedef NS_ENUM(NSUInteger, HMBattleType) { NSUInteger shipCount = ships.count; NSUInteger offset = (self.isCombinedBattle && !firstRun) ? 6 : 0; for(NSInteger i = 0; i < shipCount; i++) { - id ship = ships[i]; + HMKCShipObject *ship = ships[i]; NSInteger damage = [[damages[i + offset] valueForKey:@"damage"] integerValue]; NSInteger nowhp = [[ship valueForKey:@"nowhp"] integerValue]; nowhp -= damage; [ship setValue:@(nowhp) forKeyPath:@"nowhp"]; + if(nowhp <= 0) { + nowhp = damageControlIfPossible(nowhp, ship); + } + ship.nowhp = @(nowhp); } predicate = [NSPredicate predicateWithFormat:@"id = %@", @2]; diff --git a/KCD/HMKCShipObject.h b/KCD/HMKCShipObject.h index b414d565..06c2be3c 100644 --- a/KCD/HMKCShipObject.h +++ b/KCD/HMKCShipObject.h @@ -50,6 +50,7 @@ @property (nonatomic, retain) NSNumber * slot_2; @property (nonatomic, retain) NSNumber * slot_3; @property (nonatomic, retain) NSNumber * slot_4; +@property (nonatomic, retain) NSNumber * slot_ex; @property (nonatomic, retain) NSNumber * sortno; @property (nonatomic, retain) NSNumber * soukou_0; @property (nonatomic, retain) NSNumber * soukou_1; diff --git a/KCD/HMKCShipObject.m b/KCD/HMKCShipObject.m index b1603d97..9e594396 100644 --- a/KCD/HMKCShipObject.m +++ b/KCD/HMKCShipObject.m @@ -51,6 +51,7 @@ @dynamic slot_2; @dynamic slot_3; @dynamic slot_4; +@dynamic slot_ex; @dynamic sortno; @dynamic soukou_0; @dynamic soukou_1;