PDA

View Full Version : ABattle - For Reference



ATAG_Bliss
Dec-24-2011, 20:13
namespace maddox.game
{
using maddox.game.world;
using part;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

public class ABattle : MarshalByRefObject, IBattle
{
protected List<AMission> missions = new List<AMission>();
protected TimeoutItem timeoutList;

public virtual bool? checkBattleGoal()
{
return null;
}

public virtual double ComputePlayerScore(Player player, AiActor victim)
{
return 0.0;
}

public virtual void creatingMissionScript(AMission mission, int missionNumber)
{
mission.Init(this, missionNumber);
this.missions.Add(mission);
}

public virtual void doSingleBattleSuccess(bool success)
{
foreach (AMission mission in this.missions)
{
mission.OnSingleBattleSuccess(success);
}
}

public virtual ArrayList GetDamageInitiators(AiActor victim)
{
return null;
}

public virtual ArrayList GetDamageVictims()
{
return null;
}

public virtual ArrayList GetEnemyAirGroupIDs(Player player)
{
return null;
}

public virtual void Init(IGamePlay gamePlay)
{
this.GamePlay = gamePlay;
this.Time = gamePlay.gpTime();
this.Inited();
}

public virtual void Inited()
{
}

public sealed override object InitializeLifetimeService()
{
return null;
}

public virtual void OnActorCreated(int missionNumber, string shortName, AiActor actor)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnActorCreated(missionNumber, shortName, actor);
}
}
}

public virtual void OnActorDamaged(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator, NamedDamageTypes damageType)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnActorDamaged(missionNumber, shortName, actor, initiator, damageType);
}
}
}

public virtual void OnActorDead(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator)
{
DamagerScore score = new DamagerScore(initiator, 1.0, this.Time.current());
List<DamagerScore> damages = new List<DamagerScore>(1) {
score
};
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnActorDead(missionNumber, shortName, actor, damages);
}
}
}

public virtual void OnActorDestroyed(int missionNumber, string shortName, AiActor actor)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnActorDestroyed(missionNumber, shortName, actor);
}
}
}

public virtual void OnActorTaskCompleted(int missionNumber, string shortName, AiActor actor)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnActorTaskCompleted(missionNumber, shortName, actor);
}
}
}

public virtual void OnAiAirNewEnemy(AiAirEnemyElement element, int army)
{
foreach (AMission mission in this.missions)
{
mission.OnAiAirNewEnemy(element, army);
}
}

public virtual void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
}
}
}

public virtual void OnAircraftCutLimb(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, LimbNames limbName)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftCutLimb(missionNumber, shortName, aircraft, initiator, limbName);
}
}
}

public virtual void OnAircraftDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, NamedDamageTypes damageType)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftDamaged(missionNumber, shortName, aircraft, initiator, damageType);
}
}
}

public virtual void OnAircraftKilled(int missionNumber, string shortName, AiAircraft aircraft)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftKilled(missionNumber, shortName, aircraft);
}
}
}

public virtual void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftLanded(missionNumber, shortName, aircraft);
}
}
}

public virtual void OnAircraftLimbDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftLimbDamaged(missionNumber, shortName, aircraft, limbDamage);
}
}
}

public virtual void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnAircraftTookOff(missionNumber, shortName, aircraft);
}
}
}

public virtual void OnAutopilotOff(AiActor actor, int placeIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnAutopilotOff(actor, placeIndex);
}
}

public virtual void OnAutopilotOn(AiActor actor, int placeIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnAutopilotOn(actor, placeIndex);
}
}

public virtual void OnBattleInit()
{
foreach (AMission mission in this.missions)
{
mission.OnBattleInit();
}
}

public virtual void OnBattleStarted()
{
foreach (AMission mission in this.missions)
{
mission.OnBattleStarted();
}
}

public virtual void OnBattleStoped()
{
foreach (AMission mission in this.missions)
{
mission.OnBattleStoped();
}
}

public virtual void OnCarter(AiActor actor, int placeIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnCarter(actor, placeIndex);
}
}

public virtual void OnEventGame(GameEventId eventId, object eventArg0, object eventArg1, int eventArgInt)
{
int num;
string str;
switch (eventId)
{
case GameEventId.BattleInit:
this.OnBattleInit();
return;

case GameEventId.BattleStarted:
this.OnBattleStarted();
return;

case GameEventId.BattleStoped:
this.OnBattleStoped();
return;

case GameEventId.MissionLoaded:
this.OnMissionLoaded(eventArgInt);
return;

case GameEventId.PlayerConnected:
this.OnPlayerConnected(eventArg0 as Player);
return;

case GameEventId.ClientAddInActivated:
case GameEventId.AdminIn:
case GameEventId.AdminOut:
break;

case GameEventId.PlayerDisconnected:
this.OnPlayerDisconnected(eventArg0 as Player, eventArg1 as string);
return;

case GameEventId.PlayerArmy:
this.OnPlayerArmy(eventArg0 as Player, eventArgInt);
return;

case GameEventId.ActorCreated:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnActorCreated(num, str, eventArg0 as AiActor);
return;

case GameEventId.ActorDestroyed:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnActorDestroyed(num, str, eventArg0 as AiActor);
return;

case GameEventId.ActorDamaged:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnActorDamaged(num, str, eventArg0 as AiActor, eventArg1 as AiDamageInitiator, (NamedDamageTypes) eventArgInt);
return;

case GameEventId.ActorDead:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnActorDead(num, str, eventArg0 as AiActor, eventArg1 as AiDamageInitiator);
return;

case GameEventId.ActorTaskCompleted:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnActorTaskCompleted(num, str, eventArg0 as AiActor);
return;

case GameEventId.Trigger:
ActorName.Parce(eventArg0 as string, out num, out str);
this.OnTrigger(num, str, eventArgInt != 0);
return;

case GameEventId.AircraftDamaged:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftDamaged(num, str, eventArg0 as AiAircraft, eventArg1 as AiDamageInitiator, (NamedDamageTypes) eventArgInt);
return;

case GameEventId.AircraftLimbDamaged:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftLimbDamaged(num, str, eventArg0 as AiAircraft, eventArg1 as AiLimbDamage);
return;

case GameEventId.AircraftCutLimb:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftCutLimb(num, str, eventArg0 as AiAircraft, eventArg1 as AiDamageInitiator, (LimbNames) eventArgInt);
return;

case GameEventId.AircraftTookOff:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftTookOff(num, str, eventArg0 as AiAircraft);
return;

case GameEventId.AircraftLanded:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftLanded(num, str, eventArg0 as AiAircraft);
return;

case GameEventId.AircraftCrashLanded:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftCrashLanded(num, str, eventArg0 as AiAircraft);
return;

case GameEventId.AircraftKilled:
ActorName.Parce((eventArg0 as AiActor).Name(), out num, out str);
this.OnAircraftKilled(num, str, eventArg0 as AiAircraft);
return;

case GameEventId.PersonMoved:
this.OnPersonMoved(eventArg0 as AiPerson, eventArg1 as AiActor, eventArgInt);
return;

case GameEventId.PersonHealth:
this.OnPersonHealth(eventArg0 as AiPerson, eventArg1 as AiDamageInitiator, ((float) eventArgInt) / 255f);
return;

case GameEventId.PersonParachuteLanded:
this.OnPersonParachuteLanded(eventArg0 as AiPerson);
return;

case GameEventId.PersonParachuteFailed:
this.OnPersonParachuteFailed(eventArg0 as AiPerson);
return;

case GameEventId.PlaceEnter:
this.OnPlaceEnter(eventArg0 as Player, eventArg1 as AiActor, eventArgInt);
return;

case GameEventId.PlaceLeave:
this.OnPlaceLeave(eventArg0 as Player, eventArg1 as AiActor, eventArgInt);
return;

case GameEventId.Carter:
this.OnCarter(eventArg0 as AiActor, eventArgInt);
return;

case GameEventId.AutopilotOn:
this.OnAutopilotOn(eventArg0 as AiActor, eventArgInt);
return;

case GameEventId.AutopilotOff:
this.OnAutopilotOff(eventArg0 as AiActor, eventArgInt);
return;

case GameEventId.AiAirNewEnemy:
this.OnAiAirNewEnemy(eventArg0 as AiAirEnemyElement, eventArgInt);
return;

case GameEventId.OrderMissionMenuSelected:
this.OnOrderMissionMenuSelected(eventArg0 as Player, (int) eventArg1, eventArgInt);
break;

default:
return;
}
}

public virtual void OnMissionLoaded(int missionNumber)
{
foreach (AMission mission in this.missions)
{
mission.OnMissionLoaded(missionNumber);
}
}

public virtual void OnOrderMissionMenuSelected(Player player, int ID, int menuItemIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnOrderMissionMenuSelected(player, ID, menuItemIndex);
}
}

public virtual void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth)
{
foreach (AMission mission in this.missions)
{
mission.OnPersonHealth(person, initiator, deltaHealth);
}
}

public virtual void OnPersonMoved(AiPerson person, AiActor fromCart, int fromPlaceIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnPersonMoved(person, fromCart, fromPlaceIndex);
}
}

public virtual void OnPersonParachuteFailed(AiPerson person)
{
foreach (AMission mission in this.missions)
{
mission.OnPersonParachuteFailed(person);
}
}

public virtual void OnPersonParachuteLanded(AiPerson person)
{
foreach (AMission mission in this.missions)
{
mission.OnPersonParachuteLanded(person);
}
}

public virtual void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnPlaceEnter(player, actor, placeIndex);
}
}

public virtual void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
{
foreach (AMission mission in this.missions)
{
mission.OnPlaceLeave(player, actor, placeIndex);
}
}

public virtual void OnPlayerArmy(Player player, int army)
{
foreach (AMission mission in this.missions)
{
mission.OnPlayerArmy(player, army);
}
}

public virtual void OnPlayerConnected(Player player)
{
foreach (AMission mission in this.missions)
{
mission.OnPlayerConnected(player);
}
}

public virtual void OnPlayerDisconnected(Player player, string diagnostic)
{
foreach (AMission mission in this.missions)
{
mission.OnPlayerDisconnected(player, diagnostic);
}
}

public virtual void OnTickGame()
{
foreach (AMission mission in this.missions)
{
mission.OnTickGame();
}
this.TimeoutProcess();
}

public virtual void OnTickReal()
{
foreach (AMission mission in this.missions)
{
mission.OnTickReal();
}
}

public virtual void OnTrigger(int missionNumber, string shortName, bool active)
{
if (this.missions.Count > 0)
{
foreach (AMission mission in this.missions)
{
if (mission.IsMissionListener(missionNumber))
{
mission.OnTrigger(missionNumber, shortName, active);
}
}
}
else if (active)
{
AiAction action = this.GamePlay.gpGetAction(ActorName.Full(missionNu mber, shortName));
if (action != null)
{
action.Do();
}
}
}

public virtual void Timeout(double sec, DoTimeout doTimeout)
{
TimeoutItem item = new TimeoutItem(this.Time.current() + sec, doTimeout);
TimeoutItem item2 = null;
TimeoutItem timeoutList = this.timeoutList;
while ((timeoutList != null) && (item.time >= timeoutList.time))
{
item2 = timeoutList;
timeoutList = timeoutList.next;
}
if (item2 != null)
{
item.next = item2.next;
item2.next = item;
}
else
{
this.timeoutList = item;
item.next = timeoutList;
}
}

protected virtual void TimeoutProcess()
{
if (this.timeoutList != null)
{
double num = this.Time.current();
while (this.timeoutList != null)
{
if (this.timeoutList.time > num)
{
return;
}
TimeoutItem timeoutList = this.timeoutList;
this.timeoutList = timeoutList.next;
try
{
timeoutList.doTimeout();
continue;
}
catch
{
continue;
}
}
}
}

public IGamePlay GamePlay { get; private set; }

public ITime Time { get; private set; }

protected class TimeoutItem
{
public DoTimeout doTimeout;
public ABattle.TimeoutItem next = null;
public double time;

public TimeoutItem(double time, DoTimeout doTimeout)
{
this.time = time;
this.doTimeout = doTimeout;
}
}
}
}

E69_pupo
Jun-09-2013, 08:24
hello bliss, old thread revival time.

what is th edifference between Amission and Abattle?

can i use both for multiplayer?

there are certain things that seem to be only present in the Abattle functions

cheers

Salmo
Jul-20-2013, 19:48
hello bliss, old thread revival time.

what is th edifference between Amission and Abattle?

can i use both for multiplayer?

there are certain things that seem to be only present in the Abattle functions

cheers

bump

ATAG_Colander
Jul-20-2013, 20:10
a Battle can have many missions.

In other words, aBattle is the owner of all the aMissions.

AKA_Recon
Sep-13-2013, 13:20
since this is a container over missions, where would this code go in the folder structure ?