ftp.nice.ch/Attic/openStep/games/Risk.0.98.m.NIS.bs.tar.gz#/Risk.0.98/src/Risk/RiskPlayer.h

This is RiskPlayer.h in view mode; [Download] [Up]

//
// $Id: RiskPlayer.h,v 1.6 1997/12/15 21:09:42 nygard Exp $
// This file is a part of Risk by Mike Ferris.
//

#import <AppKit/AppKit.h>

#import "Risk.h"

#define OPT_PLAYER_NONE             (1 << 0)
#define OPT_PLAYER_ONE              (1 << 1)
#define OPT_PLAYER_TWO              (1 << 2)
#define OPT_PLAYER_THREE            (1 << 3)
#define OPT_PLAYER_FOUR             (1 << 4)
#define OPT_PLAYER_FIVE             (1 << 5)
#define OPT_PLAYER_SIX              (1 << 6)
#define OPT_THIS_PLAYER             (1 << 7)
#define OPT_WITH_TROOPS             (1 << 8)
#define OPT_WITHOUT_TROOPS          (1 << 9)
#define OPT_WITH_MOVABLE_TROOPS     (1 << 10)
#define OPT_WITHOUT_MOVABLE_TROOPS  (1 << 11)
#define OPT_WITH_ENEMY_NEIGHBORS    (1 << 12)
#define OPT_WITHOUT_ENEMY_NEIGHBORS (1 << 13)

@class RiskGameManager, Country, RiskCard, CardSet;
@class SNRandom;

@interface RiskPlayer : NSObject
{
    NSString *playerName;
    Player playerNumber;
    NSMutableArray *playerCards;

    RiskGameManager *gameManager;

    // Default attack method (and optional value)
    AttackMethod attackMethod;
    int attackMethodValue;

    NSMenu *playerToolMenu;

    // Console
    IBOutlet NSWindow *consoleWindow;
    IBOutlet NSTextView *consoleMessageText;
    IBOutlet NSButton *continueButton;
    IBOutlet NSButton *pauseForContinueButton;

    // For convenient access to a random number generator
    SNRandom *rng;
}

+ (void) load;
+ (void) initialize;

- initWithPlayerName:(NSString *)aName number:(Player)number gameManager:(RiskGameManager *)aManager;
- (void) dealloc;

- (NSString *) playerName;
- (Player) playerNumber;
- (NSArray *) playerCards;

- (NSMenu *) playerToolMenu;
- (void) setPlayerToolMenu:(NSMenu *)theMenu;

- (AttackMethod) attackMethod;
- (void) setAttackMethod:(AttackMethod)newMethod;

- (int) attackMethodValue;
- (void) setAttackMethodValue:(int)newValue;

- (void) addCardToHand:(RiskCard *)newCard;
- (void) removeCardFromHand:(RiskCard *)aCard;

- (SNRandom *) rng;

- (void) turnDone;

- (void) mouseDown:(NSEvent *)theEvent inCountry:(Country *)aCountry;
- (void) mouseUp:(NSEvent *)theEvent inCountry:(Country *)aCountry;

- (void) windowWillClose:(NSNotification *)aNotification;

//======================================================================
// General methods for players
//======================================================================

- (NSSet *) ourCountries;

// - ours AND has enemy neighbors AND has armies
// - ours OR enemies
- (NSSet *) countriesWithAllOptions:(int)options from:(NSSet *)source;
- (NSSet *) countriesWithAnyOptions:(int)options from:(NSSet *)source;

- (BOOL) hasCountriesWithAllOptions:(int)options from:(NSSet *)source;
- (BOOL) hasCountriesWithAnyOptions:(int)options from:(NSSet *)source;

- (NSSet *) chooseCountriesInContinentNamed:(NSString *)continentName from:(NSSet *)source;
- (NSSet *) removeCountriesInContinentNamed:(NSString *)continentName from:(NSSet *)source;

//======================================================================
// Card set methods
//======================================================================

- (NSSet *) allOurCardSets;
- (CardSet *) bestSet;
- (BOOL) canTurnInCardSet;

//======================================================================
// Console
//======================================================================

- (void) showConsolePanel:sender;
- (void) logMessage:(NSString *)format, ...;

- (void) waitForContinue;
- (void) continueAction:sender;
- (void) pauseCheckAction:sender;

//======================================================================
// Subclass Responsibilities
//======================================================================

- (BOOL) isInteractive;

//----------------------------------------------------------------------
// Card management
//----------------------------------------------------------------------

- (void) mayTurnInCards; // Allows computer players to turn in card before they get -placeArmies:
- (void) mustTurnInCards;
- (void) didTurnInCards:(int)extraArmyCount;

//----------------------------------------------------------------------
// Initial game phases
//----------------------------------------------------------------------

- (void) willBeginChoosingCountries;
- (void) chooseCountry;
- (void) willEndChoosingCountries;

- (void) willBeginPlacingInitialArmies;
- (void) placeInitialArmies:(int)count;
- (void) willEndPlacingInitialArmies;

- (void) youLostGame;
- (void) youWonGame;

//----------------------------------------------------------------------
// Regular turn phases
//----------------------------------------------------------------------

- (void) willBeginTurn;

- (void) placeArmies:(int)count;
- (void) attackPhase;
- (void) moveAttackingArmies:(int)count between:(Country *)source:(Country *)destination;
- (void) fortifyPhase:(FortifyRule)fortifyRule;
- (void) placeFortifyingArmies:(int)count fromCountry:(Country *)source;

- (void) willEndTurn;

//======================================================================
// Inform computer players of important events that happed during other
// players turns.
//======================================================================

- (void) playerNumber:(Player)number attackedCountry:(Country *)attackedCountry;
- (void) playerNumber:(Player)number capturedCountry:(Country *)capturedCountry;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.