Use IPositionable.CanExistInCell in Bridge/GroundLevelBridge

We don't care whether there's empty space for the actor now -- we care whether
the terrain the actor is ALREADY standing on remains suitable after the
bridge state change.
This commit is contained in:
Chris Forbes
2018-04-06 20:39:55 -07:00
committed by abcdefg30
parent dddd057e3d
commit 770f14fa2a
2 changed files with 2 additions and 2 deletions

View File

@@ -243,7 +243,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
foreach (var c in footprint.Keys) foreach (var c in footprint.Keys)
foreach (var a in self.World.ActorMap.GetActorsAt(c)) foreach (var a in self.World.ActorMap.GetActorsAt(c))
if (a.Info.HasTraitInfo<IPositionableInfo>() && !a.Trait<IPositionable>().CanEnterCell(c)) if (a.Info.HasTraitInfo<IPositionableInfo>() && !a.Trait<IPositionable>().CanExistInCell(c))
a.Kill(self, info.DamageTypes); a.Kill(self, info.DamageTypes);
} }

View File

@@ -97,7 +97,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
foreach (var c in cells) foreach (var c in cells)
foreach (var a in self.World.ActorMap.GetActorsAt(c)) foreach (var a in self.World.ActorMap.GetActorsAt(c))
if (a.Info.HasTraitInfo<IPositionableInfo>() && !a.Trait<IPositionable>().CanEnterCell(c)) if (a.Info.HasTraitInfo<IPositionableInfo>() && !a.Trait<IPositionable>().CanExistInCell(c))
a.Kill(self, Info.DamageTypes); a.Kill(self, Info.DamageTypes);
} }