This is City.h in view mode; [Download] [Up]
//
// $Id: City.h,v 1.8 1997/10/31 04:51:33 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 <Foundation/NSPortCoder.h>
#import "Empire.h"
@class EmPlayer;
@class Map;
@class MapView;
@class OMoveTo;
@class PathSegment;
@class Unit;
//======================================================================
@interface City : NSObject
{
EMMapLocation cityLocation;
BOOL port; // Is this city on a body of water?
NSString *cityName;
EmPlayer *owner;
NSMutableArray *cityUnits;
UnitType productionType;
BOOL firstUnit;
int turnsUntilConstructed;
NSMutableArray *observers;
OMoveTo *flightPath;
}
+ (void) initialize;
- initAtLocation:(EMMapLocation)cityLocation ofMap:(Map *)map;
- (void) dealloc;
- (void) encodeWithCoder:(NSCoder *)aCoder;
- initWithCoder:(NSCoder *)aDecoder;
- replacementObjectForPortCoder:(NSPortCoder *)encoder;
- (NSString *) description;
- (EMMapLocation) cityLocation;
- (BOOL) isAPort;
- (NSString *) cityName;
- (void) setCityName:(NSString *)aName;
- (EmPlayer *) owner;
- (void) setOwner:(EmPlayer *)aPlayer;
- (int) productionEfficiency;
- (float) productionTimeMultiplier;
- (int) turnsToConstruct:(int *)turnArray;
- (void) defaultTurnsToConstruct:(int *)turnArray;
- (NSArray *) cityUnits;
- (UnitType) productionType;
- (void) setProduction:(UnitType)productionType;
//======================================================================
// Turn phases
//======================================================================
- (void) startOfTurn;
//======================================================================
// ObserverPattern
//======================================================================
- (void) attach:observer;
- (void) detach:observer;
- (void) unitDidExit:(Unit *)aUnit;
- (void) unitDidEnter:(Unit *)aUnit;
- (void) cityWasLost;
- (void) unitIconHasChanged:(Unit *)aUnit;
- (PathSegment *) flightPathInMapView:(MapView *)mapView;
- (void) setFlightPath:(OMoveTo *)flightPath;
@end
//======================================================================
@interface City (Extensions)
- (NSString *) attributesInspectorClassName;
- (NSString *) unitsInspectorClassName;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.