protected virtual bool OnPerish(ActorBase collider) { EventMap events = api.EventMap; if (events != null && (flags & ActorInstantiationFlags.IsCreatedFromEventMap) != 0) { events.Deactivate(originTile.X, originTile.Y); events.StoreTileEvent(originTile.X, originTile.Y, EventType.Empty); } api.RemoveActor(this); return(true); }
public void DeactivateBoss() { if ((flags & (ActorInstantiationFlags.IsCreatedFromEventMap | ActorInstantiationFlags.IsFromGenerator)) != 0) { EventMap events = api.EventMap; if (events != null) { if ((flags & ActorInstantiationFlags.IsFromGenerator) != 0) { events.ResetGenerator(originTile.X, originTile.Y); } events.Deactivate(originTile.X, originTile.Y); } api.RemoveActor(this); } }
public override bool OnTileDeactivate(int x, int y, int tileDistance) { if ((flags & ActorInstantiationFlags.IsCreatedFromEventMap) != 0 && (Math.Abs(x - originTile.X) > tileDistance) || (Math.Abs(y - originTile.Y) > tileDistance)) { EventMap events = api.EventMap; if (events != null) { events.Deactivate(originTile.X, originTile.Y); } for (int i = 0; i < bridgePieces.Count; ++i) { api.RemoveActor(bridgePieces[i]); } api.RemoveActor(this); return(true); } return(false); }
public virtual bool OnTileDeactivate(int tx, int ty, int tileDistance) { if ((flags & (ActorInstantiationFlags.IsCreatedFromEventMap | ActorInstantiationFlags.IsFromGenerator)) != 0 && ((MathF.Abs(tx - originTile.X) > tileDistance) || (MathF.Abs(ty - originTile.Y) > tileDistance))) { EventMap events = api.EventMap; if (events != null) { if ((flags & ActorInstantiationFlags.IsFromGenerator) != 0) { events.ResetGenerator(originTile.X, originTile.Y); } events.Deactivate(originTile.X, originTile.Y); } api.RemoveActor(this); return(true); } return(false); }
public override bool OnTileDeactivate(int tx1, int ty1, int tx2, int ty2) { if ((flags & ActorInstantiationFlags.IsCreatedFromEventMap) != 0) { if (originTile.X < tx1 || originTile.Y < ty1 || originTile.X > tx2 || originTile.Y > ty2) { EventMap events = api.EventMap; if (events != null) { events.Deactivate(originTile.X, originTile.Y); } for (int i = 0; i < bridgePieces.Count; ++i) { api.RemoveActor(bridgePieces[i]); } api.RemoveActor(this); return(true); } } return(false); }
public bool HandlePlayerDied() { if ((flags & (ActorInstantiationFlags.IsCreatedFromEventMap | ActorInstantiationFlags.IsFromGenerator)) != 0) { EventMap events = levelHandler.EventMap; if (events != null) { if ((flags & ActorInstantiationFlags.IsFromGenerator) != 0) { events.ResetGenerator(originTile.X, originTile.Y); } events.Deactivate(originTile.X, originTile.Y); } OnBossDeactivated(); levelHandler.RemoveActor(this); return(true); } return(false); }