00001
00002
00003
00004
00005
00006
00007
00008
00009 #import "Team.h"
00010
00011
00012 @implementation Team
00013
00014 - (id) init {
00015 self = [super init];
00016 if (self != nil) {
00017 players = [[NSMutableArray alloc] init];
00018 planets = [[NSMutableArray alloc] init];
00019 }
00020 return self;
00021 }
00022
00023 - (id) initWithTeamId:(int)team {
00024 self = [self init];
00025 if (self != nil) {
00026
00027 teamId = team;
00028 switch (teamId) {
00029 case TEAM_IND:
00030 abbrev = [NSString stringWithString:@"Ind"];
00031 break;
00032 case TEAM_FED:
00033 abbrev = [NSString stringWithString:@"Fed"];
00034 break;
00035 case TEAM_KLI:
00036 abbrev = [NSString stringWithString:@"Kli"];
00037 break;
00038 case TEAM_ROM:
00039 abbrev = [NSString stringWithString:@"Rom"];
00040 break;
00041 case TEAM_ORI:
00042 abbrev = [NSString stringWithString:@"Ori"];
00043 break;
00044 default:
00045 abbrev = [NSString stringWithString:@"???"];
00046 break;
00047 }
00048 [abbrev retain];
00049
00050 }
00051 return self;
00052 }
00053
00054 -(int) bitMask {
00055 switch (teamId) {
00056 case TEAM_IND:
00057 return 0x0;
00058 break;
00059 case TEAM_FED:
00060 return 0x1;
00061 break;
00062 case TEAM_KLI:
00063 return 0x4;
00064 break;
00065 case TEAM_ROM:
00066 return 0x2;
00067 break;
00068 case TEAM_ORI:
00069 return 0x8;
00070 break;
00071 default:
00072 return 0x0;
00073 break;
00074 }
00075 }
00076
00077 -(NSColor*) colorForTeam {
00078 switch (teamId) {
00079 case TEAM_IND:
00080 return [NSColor whiteColor];
00081 break;
00082 case TEAM_FED:
00083 return [NSColor yellowColor];
00084 break;
00085 case TEAM_KLI:
00086 return [NSColor greenColor];
00087 break;
00088 case TEAM_ROM:
00089 return [NSColor redColor];
00090 break;
00091 case TEAM_ORI:
00092 return [NSColor cyanColor];
00093 break;
00094 default:
00095
00096 return [NSColor whiteColor];
00097 break;
00098 }
00099 }
00100
00101 -(char)letterForTeam {
00102 switch (teamId) {
00103 case TEAM_IND:
00104 return 'I';
00105 break;
00106 case TEAM_FED:
00107 return 'F';
00108 break;
00109 case TEAM_KLI:
00110 return 'K';
00111 break;
00112 case TEAM_ROM:
00113 return 'R';
00114 break;
00115 case TEAM_ORI:
00116 return 'O';
00117 break;
00118 default:
00119 return '?';
00120 break;
00121 }
00122 }
00123
00124 -(char) letterForPlayer:(int)i {
00125
00126 char letters = "0123456789abcdefghijklmnopqrstuvwxyz";
00127 return letters;
00128 }
00129
00130 -(NSString *)mapCharsForPlayerWithId:(int)playerId {
00131 return [NSString stringWithFormat:@"%c%c", [self letterForTeam], [self letterForPlayer:playerId]];
00132 }
00133
00134 -(void) addPlanet:(Planet *)planet {
00135 if (![planets containsObject:planet]) {
00136 [planets addObject:planet];
00137 }
00138 }
00139
00140 -(NSString *)abbreviation {
00141 return abbrev;
00142 }
00143
00144 -(void) removePlanet:(Planet*)planet {
00145 [planets removeObject:planet];
00146 }
00147
00148 -(void) addPlayer:(Player *)player {
00149 if (![players containsObject:player]) {
00150 [players addObject:player];
00151 }
00152 }
00153
00154 -(int) teamId {
00155 return teamId;
00156 }
00157
00158 -(void) removePlayer:(Player*)player {
00159 [players removeObject:player];
00160 }
00161
00162 -(int) count {
00163 int activePlayers = 0;
00164 for (int i = 0; i < [players count]; i++) {
00165 if ([[players objectAtIndex:i] status] == PLAYER_ALIVE) {
00166 activePlayers++;
00167 }
00168 }
00169 return activePlayers;
00170 }
00171
00172 @end