Merge pull request #9036 from reaperrr/heli-reserve

Improve aircraft unreserving of structures
This commit is contained in:
abcdefg30
2015-08-11 23:36:32 +02:00
3 changed files with 13 additions and 6 deletions

View File

@@ -194,6 +194,7 @@ namespace OpenRA.Mods.Common.Traits
public void RemovedFromWorld(Actor self)
{
UnReserve();
self.World.ActorMap.RemoveInfluence(self, this);
self.World.ActorMap.RemovePosition(self, this);
self.World.ScreenMap.Remove(self);

View File

@@ -133,8 +133,10 @@ namespace OpenRA.Mods.Common.Traits
if (firstTick)
{
firstTick = false;
if (!self.HasTrait<FallsToEarth>()) // TODO: Aircraft husks don't properly unreserve.
ReserveSpawnBuilding();
if (self.HasTrait<FallsToEarth>()) // TODO: Aircraft husks don't properly unreserve.
return;
ReserveSpawnBuilding();
var host = GetActorBelow();
if (host == null)

View File

@@ -43,8 +43,10 @@ namespace OpenRA.Mods.Common.Traits
if (firstTick)
{
firstTick = false;
if (!self.HasTrait<FallsToEarth>()) // TODO: Aircraft husks don't properly unreserve.
ReserveSpawnBuilding();
if (self.HasTrait<FallsToEarth>()) // TODO: Aircraft husks don't properly unreserve.
return;
ReserveSpawnBuilding();
var host = GetActorBelow();
if (host == null)
@@ -93,7 +95,8 @@ namespace OpenRA.Mods.Common.Traits
}
else if (order.OrderString == "Enter")
{
if (Reservable.IsReserved(order.TargetActor)) return;
if (Reservable.IsReserved(order.TargetActor))
return;
UnReserve();
@@ -111,7 +114,8 @@ namespace OpenRA.Mods.Common.Traits
else if (order.OrderString == "ReturnToBase")
{
var airfield = ReturnToBase.ChooseAirfield(self, true);
if (airfield == null) return;
if (airfield == null)
return;
UnReserve();
self.CancelActivity();