1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/****************************************************************
**
** Attal : Lords of Doom
**
** fightAnalyst.h
** analyst for the fight phase
**
** Version : $Id: fightAnalyst.h,v 1.4 2004/10/28 13:06:33 lusum Exp $
**
** Author(s) : Pascal Audoux - Sardi Carlo
**
** Date : 05/01/2002
**
** Licence :
** 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, 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.
**
****************************************************************/
#ifndef FIGHTANALYST_H
#define FIGHTANALYST_H
// generic include files
// include files for QT
// application specific include files
#include "libCommon/attalSocket.h"
#include "libCommon/define.h"
class GameData;
class GenericLord;
class GenericFightMap;
class GenericFightUnit;
class FightEngine;
/** Fake socket, for AI of fightAnalyst */
class FakeSocket : public AttalSocket
{
public:
/** Constructor */
FakeSocket();
protected:
/** As it is a 'fake' socket, it doesn't send anything */
virtual void send();
};
/* ------------------------------
* FightAnalyst
* ------------------------------ */
/** comment for the class */
class FightAnalyst
{
public:
/** Constructor (for AI fights) */
FightAnalyst( GameData * data );
/** constructor for creatures fights */
FightAnalyst( GameData data, FightEngine * engine );
/** Destructor */
virtual ~FightAnalyst();
void setSocket( AttalSocket * sock ) {
_socket = sock;
}
void handleFightSocket();
void handleFightData( FakeSocket * data );
void initCreatures( GenericLord * lord );
void updateUnits( void );
bool IsCreature() { return (_lordDefense == 0) ? true : false;}
protected:
void handleInit();
void handleOpponent();
void handleCell();
void handleNewUnit();
void handleMove();
void handleDamage();
void handleActive();
void playUnit( GenericFightUnit * unit , int pos,int flags);
GenericFightUnit * getUnit( int num, CLASS_FIGHTER fighter );
bool _oppIsAtt;
bool _isCreature;
AttalSocket * _socket;
GameData * _data;
GenericFightMap * _map;
CLASS_FIGHTER _fighter;
GenericLord * _lordAttack, * _lordDefense, * _lordOpp;
GenericFightUnit * _unitsAtt[MAX_UNIT], * _unitsDef[MAX_UNIT];
bool _ownData;
FightEngine * _engine;
};
#endif // FIGHTANALYST_H
|