Exemple #1
0
        public override void Activate(Character ch)
        {
            base.Activate(ch);

            PathFinder.BuildDistanceMap(Pos, BArray.not(Level.losBlocking, null), 1);

            var fire = (Fire)Dungeon.Level.Blobs[typeof(Fire)];

            for (var i = 0; i < Level.Length; i++)
            {
                if (PathFinder.Distance[i] < int.MaxValue)
                {
                    Freezing.Affect(i, fire);
                }
            }
        }
        public void Freeze()
        {
            lock (m_lock)
            {
                if (m_bFrozen)
                {
                    return;
                }

                try
                {
                    Freezing.Raise(this, EventArgs.Empty);
                }
                finally
                {
                    m_bFrozen = true;
                }
            }
        }
Exemple #3
0
        protected internal override void Shatter(int cell)
        {
            PathFinder.BuildDistanceMap(cell, BArray.not(Level.losBlocking, null), Distance);

            var fire = (Fire)Dungeon.Level.Blobs[typeof(Fire)];

            for (var i = 0; i < Level.Length; i++)
            {
                if (PathFinder.Distance[i] < int.MaxValue)
                {
                    Freezing.Affect(i, fire);
                }
            }

            splash(cell);
            Sample.Instance.Play(Assets.SND_SHATTER);

            SetKnown();
        }