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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user