This is Unit.h in view mode; [Download] [Up]
//
// $Id: Unit.h,v 1.5 1997/10/27 08:28:27 nygard Exp $
//
//
// This file is a part of Empire, a game of exploration and conquest.
// Copyright (C) 1996 Steve Nygard
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// You may contact the author by:
// e-mail: nygard@telusplanet.net
//
#import <AppKit/AppKit.h>
#import "Empire.h"
@class City;
@class EmPlayer;
@class Order;
//======================================================================
@interface Unit : NSObject
{
UnitType unitType;
EmPlayer *owner;
NSString *unitName;
EMMapLocation unitLocation;
int currentHitPoints;
int currentRange;
int fuel;
Order *order;
BOOL isDestroyed;
BOOL isDoneTurn;
NSMutableArray *cargo;
Unit *onBoard; // The ship we are on board, if any.
City *withinCity;
}
+ (void) initialize;
- initWithUnitType:(UnitType)aUnitType inCity:(City *)producingCity;
- (void) dealloc;
- (NSString *) description;
//======================================================================
// General static values
//======================================================================
- (UnitType) unitType;
- (EmPlayer *) owner;
- (Player) playerNumber;
- (NSString *) unitName;
- (BOOL) isAShip;
//======================================================================
// Combat information
//======================================================================
- (int) currentHitPoints;
// Intrinsic values
- (int) maxHitPoints;
- (int) damagePerHit;
// These values have NOT been adjusted by player efficiencies.
- (float) attackFactor;
- (float) defenseFactor:(BOOL)bombardment;
- (BOOL) canBombard;
//======================================================================
// Movement information
//======================================================================
- (int) currentRange;
- (int) remainingFuel;
- (BOOL) canMoveOnTerrain:(Terrain)terrain;
- (MovementType) movementType;
- (EMMapLocation) unitLocation;
- (void) setLocation:(EMMapLocation)newLocation;
- (void) takeLocationFromTransport;
//======================================================================
// Display
//======================================================================
- (Icon) icon;
- (NSImage *) iconImage;
//======================================================================
// Order support
//======================================================================
- (void) setOrder:(Order *)newOrder;
- (Order *) currentOrder;
- (BOOL) isSentried;
- (int) remainingCargoCapacity;
- (BOOL) isFull;
//======================================================================
// Turn handling
//======================================================================
- (void) repairDamage;
- (void) refuel;
- (void) resetRange;
- (void) skipMove;
- (void) useSkippedFuel;
- (void) moved;
- (BOOL) isFinishedMoving;
- (void) setUnitFinishedMoving:(BOOL)flag;
- (BOOL) tryToMove; // Maybe under order support?
//======================================================================
// Human UI support
//======================================================================
- (NSString *) statusLine;
//======================================================================
// Commands
//======================================================================
- (void) unloadShip;
- (void) destroyUnit:(BOOL)disbanded;
- (BOOL) loadUnit:(Unit *)aUnit;
//======================================================================
// Combat Support
//======================================================================
- (BOOL) hitForDamage:(int)damage;
- (CombatProfile) combatProfileAgainstBombardment:(BOOL)bombarding;
//======================================================================
// Other
//======================================================================
- (BOOL) isOnBoardShip;
- (BOOL) isInCity;
- (BOOL) hasBeenDestroyed;
- (City *) city;
- (void) setCity:(City *)aCity;
// If this unit is aboard a ship, this method returns the containing ship.
- (Unit *) shipOnBoard;
- (void) setOnBoardShip:(Unit *)ship;
// Shared with City..
- (void) unitDidExit:(Unit *)aUnit;
- (void) unitDidEnter:(Unit *)aUnit;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.