From 288910f41401b25f20b282ca9dc52cbe3dbc8875 Mon Sep 17 00:00:00 2001 From: Andrew Salamon Date: Mon, 11 May 2015 14:54:13 -0700 Subject: [PATCH] Added fields for max # of clones and jump delay along with tooltips to show relevant skills. --- src/Windows/METJumpClone.xib | 45 ++++++++++++++++++++-------- src/Windows/METJumpCloneController.h | 3 +- src/Windows/METJumpCloneController.m | 39 ++++++++++++++++++++++-- 3 files changed, 71 insertions(+), 16 deletions(-) diff --git a/src/Windows/METJumpClone.xib b/src/Windows/METJumpClone.xib index b495b78..94312b7 100644 --- a/src/Windows/METJumpClone.xib +++ b/src/Windows/METJumpClone.xib @@ -7,8 +7,9 @@ - + + @@ -92,36 +93,36 @@ - - + + - + - - + + - + - - - - + + + + - - + + @@ -129,6 +130,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/Windows/METJumpCloneController.h b/src/Windows/METJumpCloneController.h index 2aa8785..510d648 100644 --- a/src/Windows/METJumpCloneController.h +++ b/src/Windows/METJumpCloneController.h @@ -16,8 +16,9 @@ NSArray *_jumpClones; //< We need this so we have a fixed order for the jump clones IBOutlet NSOutlineView *jumpCloneView; IBOutlet NSImageView *portrait; - IBOutlet NSTextField *characterName; IBOutlet NSTextField *nextJumpDate; + IBOutlet NSTextField *maxClones; + IBOutlet NSTextField *jumpDelay; NSTimer *_jumpDateTimer; } diff --git a/src/Windows/METJumpCloneController.m b/src/Windows/METJumpCloneController.m index 63e9652..41b5765 100644 --- a/src/Windows/METJumpCloneController.m +++ b/src/Windows/METJumpCloneController.m @@ -7,11 +7,13 @@ // #import "METJumpCloneController.h" +#import "GlobalData.h" #import "Character.h" #import "METJumpClone.h" #import "CCPImplant.h" #import "Skill.h" #import "SkillTree.h" +#import "Helpers.h" @interface METJumpCloneController () @property (retain,readwrite) NSArray *jumpClones; @@ -60,7 +62,8 @@ - (void)windowDidLoad [[self window] setTitle:[NSString stringWithFormat:@"%@: Jump Clones",[[self character] characterName]]]; [portrait setImage:[[self character] portrait]]; - [characterName setStringValue:[[self character] characterName]]; + [self updateMaxJumpClonesField]; + [self updateJumpDelayField]; [self updateNextJumpCloneDateField:nil]; } @@ -69,11 +72,43 @@ - (void)windowWillClose:(NSNotification *)notification [self autorelease]; } +static const NSInteger infomorphPsychologyID = 24242; +static const NSInteger advancedInfomorphPsychologyID = 33407; +static const NSInteger infomorphSynchronizingID = 33399; + +- (void)updateMaxJumpClonesField +{ + SkillTree *globalSkills = [[GlobalData sharedInstance] skillTree]; + SkillTree *skillTree = [[self character] skillTree]; + Skill *infomorphPsychology = [skillTree skillForIdInteger:infomorphPsychologyID]; + Skill *advanced = [skillTree skillForIdInteger:advancedInfomorphPsychologyID]; + [maxClones setObjectValue:[NSNumber numberWithInteger:([infomorphPsychology skillLevel] + [advanced skillLevel])]]; + + NSString *name1 = infomorphPsychology?[infomorphPsychology skillName]:[[globalSkills skillForIdInteger:infomorphPsychologyID] skillName]; + NSString *name2 = advanced?[advanced skillName]:[[globalSkills skillForIdInteger:advancedInfomorphPsychologyID] skillName]; + NSString *desc = [NSString stringWithFormat:@"%@ %@\n%@ %@", name1, romanForInteger([infomorphPsychology skillLevel]), + name2, romanForInteger([advanced skillLevel])]; + [maxClones setToolTip:desc]; +} + +- (void)updateJumpDelayField +{ + SkillTree *globalSkills = [[GlobalData sharedInstance] skillTree]; + SkillTree *skillTree = [[self character] skillTree]; + Skill *infomorphSync = [skillTree skillForIdInteger:infomorphSynchronizingID]; + + [jumpDelay setStringValue:[NSString stringWithFormat:@"%d %@", (24 - (int)[infomorphSync skillLevel]), NSLocalizedString( @"hours", @"Jump clone delay units" )]]; + + NSString *name1 = infomorphSync?[infomorphSync skillName]:[[globalSkills skillForIdInteger:infomorphSynchronizingID] skillName]; + NSString *desc = [NSString stringWithFormat:@"%@ %@", name1, romanForInteger([infomorphSync skillLevel])]; + [jumpDelay setToolTip:desc]; +} + - (void)updateNextJumpCloneDateField:(NSTimer *)timer { NSDate *jumpDate = [[self character] jumpCloneDate]; // date-time of last clone jump SkillTree *skillTree = [[self character] skillTree]; - Skill *informorphSynchronizing = [skillTree skillForIdInteger:33399]; // [skillTree skillForName:@"Infomorph Synchronizing"]; + Skill *informorphSynchronizing = [skillTree skillForIdInteger:infomorphSynchronizingID]; // [skillTree skillForName:@"Infomorph Synchronizing"]; // add 24 hours to last clone jump date, then subtract 1 hour per level of Infomorph Synchronizing jumpDate = [jumpDate dateByAddingTimeInterval:SEC_DAY-([informorphSynchronizing skillLevel]*SEC_HOUR)];