Skip to content

Commit

Permalink
Add FlyCircleOnIdle
Browse files Browse the repository at this point in the history
Code by rob-v.
  • Loading branch information
MustaphaTR committed Feb 14, 2018
1 parent 4f330f4 commit e309304
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions OpenRA.Mods.Gen/OpenRA.Mods.Gen.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@
<Compile Include="Traits\EmitInfantryOnDeath.cs" />
<Compile Include="Traits\Air\BlimpFallsToEarth.cs" />
<Compile Include="Traits\Air\AutoTakesOff.cs" />
<Compile Include="Traits\Air\FlyCircleOnIdle.cs" />
<Compile Include="Traits\CargoCashTrickler.cs" />
<Compile Include="Traits\CargoTransformer.cs" />
<Compile Include="Traits\Conditions\GrantTimedConditionOnDeploy.cs" />
Expand Down
42 changes: 42 additions & 0 deletions OpenRA.Mods.Gen/Traits/Air/FlyCircleOnIdle.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#region Copyright & License Information
/*
* Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion

using OpenRA.Mods.Common.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;

namespace OpenRA.Mods.Yupgi_alert.Traits
{
[Desc("Fly in circle while idle (on stop,..).")]
public class FlyCircleOnIdleInfo : ITraitInfo, Requires<AircraftInfo>
{
public object Create(ActorInitializer init) { return new FlyCircleOnIdle(init.Self, this); }
}

public class FlyCircleOnIdle : INotifyIdle
{
readonly AircraftInfo aircraftInfo;

public FlyCircleOnIdle(Actor self, FlyCircleOnIdleInfo info)
{
aircraftInfo = self.Info.TraitInfo<AircraftInfo>();
}

public void TickIdle(Actor self)
{
// We're on the ground, let's stay there.
if (self.World.Map.DistanceAboveTerrain(self.CenterPosition).Length < aircraftInfo.MinAirborneAltitude)
return;

self.QueueActivity(new FlyCircle(self));
}
}
}

0 comments on commit e309304

Please sign in to comment.