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