/// <summary> /// The main interface for communicating between behaviours. Using polymorphism, we /// define a bunch of different messages deriving from BehaviourMessage. Each behaviour /// can then check for particular upcasted messahe types, and either grab some data /// from it (set message) or store some data in it (get message). /// </summary> /// <param name="msg">The message being communicated to the behaviour.</param> public override void OnMessage(ref BehaviourMessage msg) { if (msg is GetGunLevelsRemainingMessage) { GetGunLevelsRemainingMessage temp = (GetGunLevelsRemainingMessage)msg; temp.mLevelsRemaining = mDef.mLevels.Length - pNextLevel; } else { base.OnMessage(ref msg); } }
/// <summary> /// The main interface for communicating between behaviours. Using polymorphism, we /// define a bunch of different messages deriving from BehaviourMessage. Each behaviour /// can then check for particular upcasted messahe types, and either grab some data /// from it (set message) or store some data in it (get message). /// </summary> /// <param name="msg">The message being communicated to the behaviour.</param> public override void OnMessage(ref BehaviourMessage msg) { // Which type of message was sent to us? if (msg is Health.OnZeroHealthMessage) { DebugMessageDisplay.pInstance.AddConstantMessage("GAME OVER - Player Died"); } else if (msg is IncrementGunLevelMessage) { IncrementGunLevelMessage temp = (IncrementGunLevelMessage)msg; mGunLevel = System.Math.Min(mGunLevelInfo.Length - 1, mGunLevel + temp.mIncrementAmount_In); } else if (msg is GetGunLevelsRemainingMessage) { GetGunLevelsRemainingMessage temp = (GetGunLevelsRemainingMessage)msg; temp.mLevelRemaining_In = (mGunLevelInfo.Length - 1) - mGunLevel; } }