// 현재 메시지를 처리 할 수 없으면 전역 엔티티로 변경되서 메시지를 처리함 public bool HandleMessage(MAGADATA.Telegram msg) { /// 현재상태에서 처리가능한지 체크 if (mCurrentState != null && mCurrentState.OnMessage(mEntity, msg)) { return(true); } /// 전역 상태의 메시지로 넘겨 처리 if (mGlobalState != null && mGlobalState.OnMessage(mEntity, msg)) { return(true); } return(false); }
// 다른에이전트에게 메시지를 보냄 public void DispatchMessage(float delayTime, int Sender, int Receiver, int Msg, object Extrainfo) { Miner ReceiverMiner = MinerGameManager.I.GetMiner(Receiver); MAGADATA.Telegram tel = new MAGADATA.Telegram(0, Sender, Receiver, Msg, Extrainfo); // 지연될 필요가 없으면 발송 if (delayTime <= 0.0f) { Discharge(ReceiverMiner, tel); } else //시간 계산 { tel.DispatchTime = delayTime; mListDelayMsg.Add(tel); } }
public abstract bool HandleMessage(MAGADATA.Telegram msg);
// 전보전달 void Discharge(Miner Reciver, MAGADATA.Telegram msg) { }
public override bool OnMessage(Miner t, MAGADATA.Telegram tel) { return(false); }
public override bool HandleMessage(MAGADATA.Telegram msg) { return(mStateMachine.HandleMessage(msg)); }
public bool HandleMessage(MAGADATA.Telegram tel) { return(false); }
public abstract bool OnMessage(T t, MAGADATA.Telegram tel);