PDA

View Full Version : get damage initiator OnAircraftDead



_1SMV_Poppy_64
May-11-2014, 08:31
Hi all,

my last question (I hope) about initiators:

how to get the damage initiators OnAircraftDead?



public override void OnAircraftKilled(int missionNumber, string shortName, AiAircraft aircraft)
{
base.OnAircraftKilled(missionNumber, shortName, aircraft);
// code here
}



no initiators here!
:D
Thank you!

Salmo
May-11-2014, 09:47
Hi all,

my last question (I hope) about initiators:

how to get the damage initiators OnAircraftDead?

no initiators here!
:D
Thank you!

No need to test seperately for 'dead' aircraft in the OnAircraftDead method. Aircraft are 'actors' so use the OnActorDead method instead ....



public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);
string damageinitiators = GetDamageInitiators(damages);

if (actor is AiAircraft) // dead actor is an aircraft
{
string initiators = GetDamageInitiators(damages);
// Your code here for dead aircraft ....

}
if (actor is AiGroundActor) // dead actor is some sort of ground actor
{ // tanks, vehicles etc
string initiators = GetDamageInitiators(damages);
// Your code here for dead ground actors....

}
}

public string GetDamageInitiators(List<DamagerScore> damages)
{ // returns a string of damage initiators
string damageinitiators = string.Empty;
for (int i = 0; i < damages.Count; i++)
{
if (damages[i].initiator.Player != null)
{ // damage initiator is a player
damageinitiators = string.Concat(damageinitiators, ", ", damages[i].initiator.Player.Name());
}
else
{ // damage initiator is some sort of Ai (or nothing)
AiActor AiDamager = damages[i].initiator.Actor;
if (AiDamager is AiAircraft)
{
damageinitiators = string.Concat(damageinitiators, ", ", (AiDamager as AiAircraft).TypedName());
}
else if (AiDamager is AiGroundActor)
{
AiGroundActor ga = AiDamager as AiGroundActor;
damageinitiators = string.Concat(damageinitiators, ", ", ga.Type());
}
else
{
damageinitiators = string.Concat(damageinitiators, " Unknown");
}
}
}
return damageinitiators;
}

_1SMV_Poppy_64
May-20-2014, 10:20
Thank you!