Quote:
public class Mission : AMission
I assume the : symbol means extending a class, right?
|
Mission is derived from AMission.
the abstract class AMission contains:
Code:
public abstract class AMission
{
// Methods
protected AMission();
public virtual void Init(ABattle battle, int missionNumber);
public virtual void Inited();
public virtual bool IsMissionListener(int missionNumber);
public virtual void OnActorCreated(int missionNumber, string shortName, AiActor actor);
public virtual void OnActorDamaged(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator, NamedDamageTypes damageType);
public virtual void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages);
public virtual void OnActorDestroyed(int missionNumber, string shortName, AiActor actor);
public virtual void OnActorTaskCompleted(int missionNumber, string shortName, AiActor actor);
public virtual void OnAiAirNewEnemy(AiAirEnemyElement element, int army);
public virtual void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft);
public virtual void OnAircraftCutLimb(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, LimbNames limbName);
public virtual void OnAircraftDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, NamedDamageTypes damageType);
public virtual void OnAircraftKilled(int missionNumber, string shortName, AiAircraft aircraft);
public virtual void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft);
public virtual void OnAircraftLimbDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage);
public virtual void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft);
public virtual void OnAutopilotOff(AiActor actor, int placeIndex);
public virtual void OnAutopilotOn(AiActor actor, int placeIndex);
public virtual void OnBattleInit();
public virtual void OnBattleStarted();
public virtual void OnBattleStoped();
public virtual void OnCarter(AiActor actor, int placeIndex);
public virtual void OnMissionLoaded(int missionNumber);
public virtual void OnOrderMissionMenuSelected(Player player, int ID, int menuItemIndex);
public virtual void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth);
public virtual void OnPersonMoved(AiPerson person, AiActor fromCart, int fromPlaceIndex);
public virtual void OnPersonParachuteFailed(AiPerson person);
public virtual void OnPersonParachuteLanded(AiPerson person);
public virtual void OnPlaceEnter(Player player, AiActor actor, int placeIndex);
public virtual void OnPlaceLeave(Player player, AiActor actor, int placeIndex);
public virtual void OnPlayerArmy(Player player, int army);
public virtual void OnPlayerConnected(Player player);
public virtual void OnPlayerDisconnected(Player player, string diagnostic);
public virtual void OnSingleBattleSuccess(bool success);
public virtual void OnTickGame();
public virtual void OnTickReal();
public virtual void OnTrigger(int missionNumber, string shortName, bool active);
public virtual void Timeout(double sec, DoTimeout doTimeout);
// Properties
public ABattle Battle { get; private set; }
public IGamePlay GamePlay { get; }
public int MissionNumber { get; private set; }
public int MissionNumberListener { get; protected set; }
public ITime Time { get; }
}
the virtual methods are called by events (Player enters an AiActor, Plane is Landing etc.) and can replaced by the programmer (override) so you can react to the game events.
AMission and in addition the GamePlay Object (from interface class IGamePlay) are the two important classes to get informations from the Game.
IGamePlay:
Code:
public interface IGamePlay
{
// Methods
AiActor gpActorByName(string actorName);
bool gpActorIsValid(AiActor actor);
AiAirGroup gpAiAirGroup(int ID, int army);
AiAirGroup[] gpAirGroups(int Army);
AiAirport[] gpAirports();
int[] gpArmies();
string gpArmyName(int army);
void gpAviPlay(string args);
bool gpBattleIsRun();
void gpBattleStop();
AiBirthPlace[] gpBirthPlaces();
ISectionFile gpConfigUserFile();
ISectionFile gpCreateSectionFile();
ISectionFile gpCreateSectionFile(string line, out string firstWord);
DifficultySetting gpDifficultyGet();
IRecalcPathParams gpFindPath(Point2d a, double ra, Point2d b, double rb, PathType type, int army);
int gpFrontArmy(double x, double y);
double gpFrontDistance(int army, double x, double y);
bool gpFrontExist();
AiAction gpGetAction(string name);
AiTrigger gpGetTrigger(string name);
AiGroundGroup[] gpGroundGroups(int Army);
void gpHUDLogCenter(string msg);
void gpHUDLogCenter(Player[] to, string msg);
void gpHUDLogCenter(Player[] to, string msg, object[] parms);
void gpHUDLogCenter(Player[] to, string msg, object[] parms, double lifeTime);
object[] gpInvoke(object[] args);
bool gpIsServerDedicated();
bool gpIsServerSingle();
bool gpIsValidAccess();
LandTypes gpLandType(double x, double y);
ISectionFile gpLoadSectionFile(string fileName);
void gpLogServer(Player[] to, string format, object[] args);
void gpLogServerArg(bool newArg, string format, object[] parms);
void gpLogServerBegin(Player[] to, string format);
void gpLogServerEnd();
AiAirGroup gpMakeAirGroup(AiAircraft[] items, AiAirWayPoint[] way);
int gpNextMissionNumber();
Player gpPlayer();
void gpPostMissionLoad(ISectionFile file);
void gpPostMissionLoad(string fileName);
Player[] gpRemotePlayers();
string gpSectorName(double x, double y);
void gpSetOrderMissionMenu(Player player, bool thisSubMenu, int ID, string[] keys, bool[] bSubMenu);
ITime gpTime();
}