/Volumes/Plantain/MyDocuments/Projects/MacTrek/MacTrek/Data/Ship.m

00001 //
00002 //  Ship.m
00003 //  MacTrek
00004 //
00005 //  Created by Aqua on 22/04/2006.
00006 //  Copyright 2006 __MyCompanyName__. All rights reserved.
00007 //
00008 
00009 #import "Ship.h"
00010 
00011 
00012 @implementation Ship
00013 
00014 - (id) init {
00015     self = [super init];
00016     if (self != nil) {
00017         abbrev = nil;      
00018         phaserdamage = 0;
00019         maxspeed = 0;
00020         maxfuel = 0;
00021         maxshield = 0;
00022         maxdamage = 0;
00023         maxegntemp = 0;
00024         maxwpntemp = 0;
00025         maxarmies = 0;
00026         width = 0;
00027         height = 0;
00028         type = 0;             
00029         torpspeed = 0;
00030         phaserfuse = 0;
00031     }
00032     return self;
00033 }
00034 
00035 - (id) initWithType:(int)shiptype {
00036     self = [self init];
00037     if (self != nil) {
00038         type = shiptype;
00039         
00040         switch (type) {
00041         case SHIP_SC:
00042             abbrev = [NSString stringWithString:@"SC"];
00043             phaserdamage = 75;
00044             torpspeed = 16;
00045             maxspeed = 12;       
00046             maxfuel = 5000;      
00047             maxarmies = 2;       
00048             maxshield = 75;
00049             maxdamage = 75;      
00050             maxwpntemp = 1000;   
00051             maxegntemp = 1000;   
00052             width = 20;          
00053             height = 20;         
00054             phaserfuse = 10;
00055             break;
00056         case SHIP_DD:
00057             abbrev = [NSString stringWithString:@"DD"];
00058             phaserdamage = 85;
00059             torpspeed = 14;  
00060             maxspeed = 10;   
00061             maxfuel = 7000;  
00062             maxarmies = 5;   
00063             maxshield = 85;  
00064             maxdamage = 85;                                                                                        
00065             maxwpntemp = 1000;                                                                                    
00066             maxegntemp = 1000;
00067             width = 20;      
00068             height = 20;                                                                                           
00069             phaserfuse = 10;
00070             break;
00071         case SHIP_CA:
00072             abbrev = [NSString stringWithString:@"CA"];
00073             phaserdamage = 100;
00074             torpspeed = 12;    
00075             maxspeed = 9;      
00076             maxfuel = 10000;   
00077             maxarmies = 10;    
00078             maxshield = 100;   
00079             maxdamage = 100;                                              
00080             maxwpntemp = 1000;                                          
00081             maxegntemp = 1000;
00082             width = 20;        
00083             height = 20;       
00084             phaserfuse = 10;            
00085             break;
00086         case SHIP_BB:
00087             abbrev = [NSString stringWithString:@"BB"];
00088             phaserdamage = 105;                                                                                    
00089             torpspeed = 12;
00090             maxspeed = 8;                                                                                         
00091             maxfuel = 14000;
00092             maxarmies = 6;                                                                                         
00093             maxshield = 130;                                                                                       
00094             maxdamage = 130;                                                                                       
00095             maxwpntemp = 1000;                                                                                    
00096             maxegntemp = 1000;
00097             width = 20;     
00098             height = 20;                                                                                           
00099             phaserfuse = 10;            
00100             break;
00101         case SHIP_AS:
00102             abbrev = [NSString stringWithString:@"AS"];
00103             phaserdamage = 80;
00104             torpspeed = 16;
00105             maxspeed = 8;      
00106             maxfuel = 6000;    
00107             maxarmies = 20;    
00108             maxshield = 80;    
00109             maxdamage = 200;
00110             maxwpntemp = 1000;                                                                                     
00111             maxegntemp = 1200;
00112             width = 20;        
00113             height = 20;       
00114             phaserfuse = 10;
00115             break;
00116         case SHIP_SB:
00117             abbrev = [NSString stringWithString:@"SB"];
00118             phaserdamage = 120;
00119             torpspeed = 14;   
00120             maxfuel = 60000;  
00121             maxarmies = 25;   
00122             maxshield = 500;  
00123             maxdamage = 600;  
00124             maxspeed = 2;                                                                                          
00125             maxwpntemp = 1300;                                                                                     
00126             maxegntemp = 1000;
00127             width = 20;       
00128             height = 20;      
00129             phaserfuse = 4;
00130             break;
00131         case SHIP_GA:
00132             abbrev = [NSString stringWithString:@"GA"];
00133             phaserdamage = 100;
00134             torpspeed = 13;    
00135             maxspeed = 9;      
00136             maxfuel = 12000;   
00137             maxarmies = 12;    
00138             maxshield = 140;   
00139             maxdamage = 120;   
00140             maxwpntemp = 1000;
00141             maxegntemp = 1000;
00142             width = 20;        
00143             height = 20;       
00144             phaserfuse = 10;
00145             break;
00146         case SHIP_AT:
00147             abbrev = [NSString stringWithString:@"AT"];
00148             phaserdamage = 10000;  
00149             torpspeed = 30;        
00150             maxspeed = 60;         
00151             maxfuel = 12000;       
00152             maxarmies = 1000;      
00153             maxshield = 30000;     
00154             maxdamage = 30000;     
00155             maxwpntemp = 10000;    
00156             maxegntemp = 10000;    
00157             width = 28;            
00158             height = 28;           
00159             phaserfuse = 1;
00160             break;
00161         default:
00162             abbrev = [NSString stringWithString:@"??"];
00163             NSLog(@"Ship.initWithType: unknown %d", type);
00164             break;
00165         }
00166         [abbrev retain];
00167     }
00168     return self;
00169 }
00170 
00171 - (void) setTorpSpeed: (int) newSpeed {
00172     torpspeed = newSpeed;
00173 }
00174 
00175 - (void) setPhaserDamage: (int) newPhaserDamage {
00176     phaserdamage = newPhaserDamage;
00177 }
00178 
00179 - (int) phaserDamage {
00180     return phaserdamage;
00181 }
00182 
00183 - (int) phaserRange {
00184     return 6000*phaserdamage/100;
00185 }
00186 
00187 - (void) setMaxSpeed: (int) newMaxSpeed {
00188     maxspeed = newMaxSpeed;
00189 }
00190 
00191 - (void) setMaxFuel: (int) newMaxFuel {
00192     maxfuel = newMaxFuel;
00193 }
00194 
00195 - (void) setMaxShield: (int) newMaxShield {
00196     maxshield = newMaxShield;
00197 }
00198 
00199 - (void) setMaxDamage: (int) newMaxDamage {
00200     maxdamage = newMaxDamage;
00201 }
00202 
00203 - (void) setMaxWeaponTemp: (int) newMaxWeaponTemp {
00204     maxwpntemp = newMaxWeaponTemp;
00205 }
00206 
00207 - (void) setMaxEngineTemp: (int) newMaxEngineTemp {
00208     maxegntemp = newMaxEngineTemp;
00209 }
00210 
00211 - (void) setWidth: (int) newWidth {
00212     width = newWidth;
00213 }
00214 
00215 - (void) setHeight: (int) newHeight {
00216     height = newHeight;
00217 }
00218 
00219 // original netrek sizes are scaled at a factor 40 fix!
00220 - (NSSize) size {
00221     return NSMakeSize(width*40, height*40);
00222 }
00223 
00224 - (int) type {
00225     return type;
00226 }
00227 
00228 - (int) maxDamage {
00229     return maxdamage; 
00230 }
00231 
00232 - (int) maxPhaserFuse {
00233     // always 100 % though it might depend on shiptype...
00234     return 100; 
00235 }
00236 
00237 - (NSString*)longName {
00238     return [NSString stringWithFormat:@"[%@]", abbrev];
00239 }
00240 
00241 - (int) maxShield {
00242     return maxshield;
00243 }
00244 
00245 - (int) maxHull {
00246     return maxdamage;
00247 }
00248 
00249 - (int) maxFuel {
00250     return maxfuel;
00251 }
00252 
00253 - (int) maxSpeed {
00254     return maxspeed;
00255 }
00256 
00257 - (int) maxEngineTemp {
00258     return maxegntemp;
00259 }
00260 
00261 - (int) maxWeaponTemp {
00262     return maxwpntemp;
00263 }
00264 
00265 - (int) maxArmies {
00266     return maxarmies;
00267 }
00268 
00269 - (void) setMaxArmies: (int) newMaxArmies {
00270     maxarmies = newMaxArmies;
00271 }
00272 
00273 - (int) maxTorps {
00274     // $$ ok very bad this should have been TORP_MAX, but for some crasy reason
00275     // i cant get it imported
00276     return 8;
00277 }
00278 
00279 @end

Generated on Fri Jul 28 19:15:17 2006 for MacTrek by  doxygen 1.4.7