Code:
/// @author Varrattu
/// @version 1.10
/// @date 2019-11-22
using maddox.game;
using maddox.game.world;
using maddox.GP;
using part;
public class Mission : AMission
{
int Hits = 0;
public override void OnAircraftDamaged( int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator DamageFrom, part.NamedDamageTypes WhatDamaged)
{
base.OnAircraftDamaged(
missionNumber,
shortName, aircraft,
DamageFrom,
WhatDamaged
);
if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
&& (aircraft != DamageFrom.Actor))
{
ShowDamgeEvent((DamageFrom.Actor as AiAircraft), (DamageFrom.Person as AiPerson), aircraft);
}
}
public override void OnAircraftLimbDamaged( int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage)
{
base.OnAircraftLimbDamaged(
missionNumber,
shortName,
aircraft, limbDamage
);
if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
&& (aircraft != limbDamage.Initiator.Actor))
{
ShowDamgeEvent((limbDamage.Initiator.Actor as AiAircraft), (limbDamage.Initiator.Person as AiPerson), aircraft);
}
}
public override void OnAircraftCutLimb( int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, LimbNames limbName) {
base.OnAircraftCutLimb(
missionNumber,
shortName,
aircraft,
initiator,
limbName);
if (aircraft != (AiAircraft)GamePlay.gpPlayer().Place()
&& (aircraft != initiator.Actor))
{
ShowDamgeEvent((initiator.Actor as AiAircraft), (initiator.Person as AiPerson), aircraft);
}
}
public override void OnPersonHealth( AiPerson person, AiDamageInitiator initiator, float deltaHealth) {
base.OnPersonHealth(
person,
initiator,
deltaHealth
);
if (initiator.Actor == (AiAircraft)GamePlay.gpPlayer().Place()
&& person.Cart() != initiator.Actor)
{
Hits++;
GamePlay.gpLogServer(
null,
"({0}) in " +
"({1}) getroffen von " +
"({2}) in " +
"({3}), " +
"insgesamt [{4}] Treffer" +
"\n",
new object[] {
person,
person.Cart(),
initiator.Person,
initiator.Actor,
Hits
}
);
}
}
public void ShowDamgeEvent( AiAircraft playerAircraft, AiPerson person, AiAircraft targetAircraft) {
Point3d playerAircraftPoint3d = playerAircraft.Pos();
Point3d targetAircraftPoint3d = targetAircraft.Pos();
Hits++;
GamePlay.gpLogServer(
null,
"({0}) getroffen " +
"von ({1}) " +
"in ({2}), " +
"Entfernung: ({3}m), " +
"insgesamt [{4}] Treffer" +
"\n",
new object[] {
targetAircraft,
person,
playerAircraft,
string.Format("{0:0}", DistanceP2P3d(playerAircraftPoint3d, targetAircraftPoint3d)),
Hits
}
);
}
/// Find the Distance Between Two Points
public double DistanceP2P3d(Point3d pointA, Point3d pointB) {
double d = pointA.distance(ref pointB); return d;
}
}
Bookmarks