public void addSceneComponent(Scenes.SceneComponent sc) { AI.IAIEntity ai = sc as AI.IAIEntity; if (ai != null) { objectList.Add(ai); heroPositionListners.addMessageProcessor(ai); } Levels.Characters.Hero h = sc as Levels.Characters.Hero; if (h != null) { hero = h; } }
public void removeSceneComponent(Scenes.SceneComponent sc) { AI.IAIEntity ai = sc as AI.IAIEntity; if (ai != null) { objectList.Remove(ai); heroPositionListners.removeMessageProcessor(ai); } Levels.Characters.Hero h = sc as Levels.Characters.Hero; if (h != null) { hero = null; } }
public bool OnCollision(DrawableSceneComponent dsc) { Ground g = dsc as Ground; if (g != null) { return(true); } Levels.Characters.Hero h = dsc as Levels.Characters.Hero; if (life <= 0) { if (h != null) { if (hasPaint) { Levels.Characters.Hero.IncreaseLife(); hasPaint = false; this.Visible = false; } } return(false); } AI.AIMonster ai = dsc as AI.AIMonster; if (ai != null) { return(true); } if (h == null) { if (dsc.PhysicsBody.LinearVelocity.Length() * dsc.PhysicsBody.Mass > minLinearMoment) { life--; if (life == 0) { Message m = new Message { MessageType = MessageTypes.die, timeDelivery = 0, to = this }; AIManager.messageQueue.sendMessage(m); } return(false); } } return(true); }