override public void OnDamage(ref int howMuch, string type)
 {
     if (type == Simulator.DAMAGE_TYPE_COLD)
     {
         Parent.OutObject.ZIndex       -= 1;
         Parent.OutObject.IdleAnimation = "BASALT";
         Parent.OutObject.SetAnimation("SOLIDIFY");
         Parent.Dressing = true;
         Parent.Health   = 1;
         Parent.RemoveTag("ACTIVE");
         Parent.AddTag("DISABLED");
         var ai = new DestructibleAI(1, 1, Simulator.DAMAGE_TYPE_PHYSICAL);
         ai.DestructParticle = "p_explosion_basalt";
         Parent.AI           = ai;
     }
 }
 override public void OnRound()
 {
     foreach (var entity in Simulator.Instance.GetObjectsAt(Parent.X, Parent.Y))
     {
         if (entity != Parent && entity.HasTag("FLYING") == false && entity.Dressing == false)
         {
             entity.AddEffect(new BurningEffect());
         }
     }
     this.initiative   += Parent.Initiative - this.oldInitiative;
     this.oldInitiative = Parent.Initiative;
     if (Parent.Visible == false)
     {
         return;
     }
     //Logger.Info ("LavaEmitterAI", "onRound", "Current initiative " + this.startInitiative.ToString() + " parent " + this.Parent.GetHashCode().ToString());
     if (this.status == 0 && this.Generation > 0 && this.Generation < MAX_GENERATIONS && this.firstRound == false && this.hasSpawned == false)
     {
         Spawn();
     }
     if (this.CanHarden && this.initiative > this.hardenInitiative && this.status == 0)
     {
         this.status                    = 1;
         Parent.OutObject.ZIndex       -= 1;
         Parent.OutObject.IdleAnimation = "BASALT";
         Parent.OutObject.SetAnimation("SOLIDIFY");
         Parent.Dressing = true;
         Parent.Health   = 1;
         Parent.RemoveTag("ACTIVE");
         Parent.AddTag("DISABLED");
         var ai = new DestructibleAI(1, 1, Simulator.DAMAGE_TYPE_PHYSICAL);
         ai.DestructParticle = "p_explosion_basalt";
         Parent.AI           = ai;
     }
     this.firstRound = false;
 }