Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }