public void CharacterEntered(DungeonMaster DM, Character guy) { if (Name == "Entrance" && guy.HasCondition("Treasure")) { guy.ReduceCondition("Treasure", 1); DM.ScorePoint(guy.SideID, 1); } if (Properties.Contains(TileProperties.Teleportal) && Target != null) { if (guy.HasCondition("Teleported")) { guy.ReduceCondition("Teleported", 1); } else { guy.AddCondition("Teleported", 1); //telefrag nerds var nerd = DM.Characters.FirstOrDefault(c => c.Pos == Target); if (nerd != null) { nerd.TakeDamage(Mechanics.Effects.DamageEffect.DamageType.True, 999); } DM.TeleportTo(guy, Target); } } if (Properties.Contains(TileProperties.OnFire) && !guy.HasTrait("Firedance")) { guy.TakeDamage(Mechanics.Effects.DamageEffect.DamageType.Fire, 1); } //TODO: use properties? if (Name == "Shallow Pool" && guy.HasTrait("Weakness to Water")) { guy.TakeDamage(Mechanics.Effects.DamageEffect.DamageType.True, 5); //TODO: magic number } if (Properties.Contains(TileProperties.Ooze) && !guy.HasTrait("One with Filth")) { guy.TakeDamage(Mechanics.Effects.DamageEffect.DamageType.Magic, 1); guy.Stamina.Value -= 1; } if (Properties.Contains(TileProperties.Treasure) && !guy.HasTrait("Mindless") && guy.Stamina.Value > 0 && !guy.HasCondition("Treasure")) { guy.Stamina.Value -= 1; guy.AddCondition("Treasure", 1); var floor = DM.data.GetTileByName("Floor"); DM.map.MakeTile(DM, floor, guy.Pos, DM.data); } }