Data/Team.m

00001 //
00002 //  Team.m
00003 //  MacTrek
00004 //
00005 //  Created by Aqua on 22/04/2006.
00006 //  Copyright 2006 Luky Soft. All rights reserved.
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             //return [NSColor orangeColor];
00096             return [NSColor whiteColor]; // use IND
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

Generated on Sat Aug 26 21:14:11 2006 for MacTrek by  doxygen 1.4.7