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); } } }
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(); }