Merge pull request #9036 from reaperrr/heli-reserve
Improve aircraft unreserving of structures
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user