}
- (NSNumber *)isMaxKaryoku
{
- [self willAccessValueForKey:@"master_ship"];
- [self willAccessValueForKey:@"karyoku_1"];
- [self willAccessValueForKey:@"kyouka_0"];
NSInteger defaultValue = [self.master_ship.houg_0 integerValue];
NSInteger maxValue = [self.karyoku_1 integerValue];
NSInteger growth = [self.kyouka_0 integerValue];
- [self didAccessValueForKey:@"kyouka_0"];
- [self didAccessValueForKey:@"karyoku_1"];
- [self didAccessValueForKey:@"master_ship"];
return @(defaultValue + growth >= maxValue);
}
}
- (NSNumber *)isMaxRaisou
{
- [self willAccessValueForKey:@"master_ship"];
- [self willAccessValueForKey:@"raisou_1"];
- [self willAccessValueForKey:@"kyouka_1"];
NSInteger defaultValue = [self.master_ship.raig_0 integerValue];
NSInteger maxValue = [self.raisou_1 integerValue];
NSInteger growth = [self.kyouka_1 integerValue];
- [self didAccessValueForKey:@"kyouka_1"];
- [self didAccessValueForKey:@"raisou_1"];
- [self didAccessValueForKey:@"master_ship"];
return @(defaultValue + growth >= maxValue);
}
}
- (NSNumber *)isMaxTaiku
{
- [self willAccessValueForKey:@"master_ship"];
- [self willAccessValueForKey:@"taiku_1"];
- [self willAccessValueForKey:@"kyouka_2"];
NSInteger defaultValue = [self.master_ship.tyku_0 integerValue];
NSInteger maxValue = [self.taiku_1 integerValue];
NSInteger growth = [self.kyouka_2 integerValue];
- [self didAccessValueForKey:@"kyouka_2"];
- [self didAccessValueForKey:@"taiku_1"];
- [self didAccessValueForKey:@"master_ship"];
return @(defaultValue + growth >= maxValue);
}
}
- (NSNumber *)isMaxSoukou
{
- [self willAccessValueForKey:@"master_ship"];
- [self willAccessValueForKey:@"soukou_1"];
- [self willAccessValueForKey:@"kyouka_3"];
NSInteger defaultValue = [self.master_ship.souk_0 integerValue];
NSInteger maxValue = [self.soukou_1 integerValue];
NSInteger growth = [self.kyouka_3 integerValue];
- [self didAccessValueForKey:@"kyouka_3"];
- [self didAccessValueForKey:@"soukou_1"];
- [self didAccessValueForKey:@"master_ship"];
return @(defaultValue + growth >= maxValue);
}
}
- (NSNumber *)isMaxLucky
{
- [self willAccessValueForKey:@"master_ship"];
- [self willAccessValueForKey:@"lucky_1"];
- [self willAccessValueForKey:@"kyouka_4"];
NSInteger defaultValue = [self.master_ship.luck_0 integerValue];
NSInteger maxValue = [self.lucky_1 integerValue];
NSInteger growth = [self.kyouka_4 integerValue];
- [self didAccessValueForKey:@"kyouka_4"];
- [self didAccessValueForKey:@"lucky_1"];
- [self didAccessValueForKey:@"master_ship"];
return @(defaultValue + growth >= maxValue);
}
}
- (NSString *)shortTypeName
{
- [self willAccessValueForKey:@"master_ship"];
NSNumber *idValue = self.master_ship.stype.id;
- [self didAccessValueForKey:@"master_ship"];
if(!idValue || [idValue isKindOfClass:[NSNull class]]) return nil;
if([shortSTypeNames count] < [idValue integerValue]) return nil;
}
- (NSNumber *)next
{
- [self willAccessValueForKey:@"lv"];
id lvValue = self.lv;
- [self didAccessValueForKey:@"lv"];
- [self willAccessValueForKey:@"exp"];
id expValue = self.exp;
- [self didAccessValueForKey:@"exp"];
NSUInteger currentLevel = [lvValue integerValue];
if(currentLevel >= [levelUpExps count]) {
}
- (NSInteger)status
{
- [self willAccessValueForKey:@"maxhp"];
- [self willAccessValueForKey:@"nowhp"];
NSInteger maxhp = [self.maxhp integerValue];
CGFloat nowhp = [self.nowhp integerValue];
- [self didAccessValueForKey:@"nowhp"];
- [self didAccessValueForKey:@"maxhp"];
CGFloat status = nowhp / maxhp;
if(status <= 0.25) {
}
- (NSColor *)statusColor
{
- [self willAccessValueForKey:@"maxhp"];
- [self willAccessValueForKey:@"nowhp"];
NSInteger maxhp = [self.maxhp integerValue];
CGFloat nowhp = [self.nowhp integerValue];
- [self didAccessValueForKey:@"nowhp"];
- [self didAccessValueForKey:@"maxhp"];
CGFloat status = nowhp / maxhp;
if(status <= 0.25) {
{
if(!HMStandardDefaults.showsPlanColor) return [NSColor controlTextColor];
- [self willAccessValueForKey:@"sally_area"];
NSInteger planType = [self.sally_area integerValue];
- [self didAccessValueForKey:@"sally_area"];
+
if(planType == 1) return HMStandardDefaults.plan01Color;
if(planType == 2) return HMStandardDefaults.plan02Color;
if(planType == 3) return HMStandardDefaults.plan03Color;
- (NSNumber *)maxFuel
{
- [self willAccessValueForKey:@"master_ship"];
NSNumber *number = self.master_ship.fuel_max;
- [self didAccessValueForKey:@"master_ship"];
return number;
}
- (NSNumber *)maxBull
{
- [self willAccessValueForKey:@"master_ship"];
NSNumber *number = self.master_ship.bull_max;
- [self didAccessValueForKey:@"master_ship"];
return number;
}
- (NSNumber *)upgradeLevel
{
- [self willAccessValueForKey:@"master_ship"];
NSNumber *number = self.master_ship.afterlv;
- [self didAccessValueForKey:@"master_ship"];
return number;
}
+ (NSSet *)keyPathsForValuesAffectingUpgradeExp
- (NSNumber *)totalEquipment
{
NSInteger total = 0;
- [self willAccessValueForKey:@"master_ship"];
total += self.master_ship.maxeq_0.integerValue;
total += self.master_ship.maxeq_1.integerValue;
total += self.master_ship.maxeq_2.integerValue;
total += self.master_ship.maxeq_3.integerValue;
total += self.master_ship.maxeq_4.integerValue;
- [self didAccessValueForKey:@"master_ship"];
return @(total);
}
@implementation HMKCSlotItemObject (Extensions)
- (NSString *)name
{
- [self willAccessValueForKey:@"master_slotItem"];
- NSString *name = [self.master_slotItem valueForKey:@"name"];
- [self didAccessValueForKey:@"master_slotItem"];
+ NSString *name = self.master_slotItem.name;
return name;
}
- (NSString *)equippedShipName
{
- [self willAccessValueForKey:@"equippedShip"];
NSString *equippedShipName = self.equippedShip.name;
- [self didAccessValueForKey:@"equippedShip"];
if(!equippedShipName) {
- [self willAccessValueForKey:@"extraEquippedShip"];
equippedShipName = self.extraEquippedShip.name;
- [self didAccessValueForKey:@"extraEquippedShip"];
}
return equippedShipName;
}
- (NSNumber *)equippedShipLv
{
- [self willAccessValueForKey:@"equippedShip"];
NSNumber *equippedShipLv = self.equippedShip.lv;
- [self didAccessValueForKey:@"equippedShip"];
if(!equippedShipLv) {
- [self willAccessValueForKey:@"extraEquippedShip"];
equippedShipLv = self.extraEquippedShip.lv;
- [self didAccessValueForKey:@"extraEquippedShip"];
}
return equippedShipLv;
}
- (NSNumber *)masterSlotItemRare
{
- [self willAccessValueForKey:@"master_slotItem"];
- NSNumber *masterSlotItemRare = [self.master_slotItem valueForKey:@"rare"];
- [self didAccessValueForKey:@"master_slotItem"];
+ NSNumber *masterSlotItemRare = self.master_slotItem.rare;
return masterSlotItemRare;
}
-- (NSString *)typeName
+- (NSNumber *)typeName
{
- [self willAccessValueForKey:@"master_slotItem"];
- NSString *typeName = [self.master_slotItem valueForKey:@"type_2"];
- [self didAccessValueForKey:@"master_slotItem"];
+ NSNumber *typeName = self.master_slotItem.type_2;
return typeName;
}
- (NSNumber *)isLocked
{
- [self willAccessValueForKey:@"locked"];
NSNumber *locked = self.locked;
- [self didAccessValueForKey:@"locked"];
return locked;
}
-- (void)setIsLocked:(NSNumber *)isLocked {}
@end