public override bool OnMessage(BaseGameEntity pEntity, Telegram pTelegram) { BarFlyJoe joe = (BarFlyJoe)pEntity; switch (pTelegram.Msg) { case (int)message_type.Msg_DeclineFight: { DebugMessages.Instance.WriteLine(String.Format("{0}: Har har, ya'll a bunch o' yellow bellied chickens!", MainSM.GetEntityName(pEntity.ID()))); joe.GetFSM().ChangeState(new JoeDoChillin()); return(true); } case (int)message_type.Msg_AcceptFight: { joe.GetFSM().ChangeState(new JoeFight()); return(true); } } return(false); }
public override bool OnMessage(BaseGameEntity pEntity, Telegram pTelegram) { BarFlyJoe joe = (BarFlyJoe)pEntity; switch (pTelegram.Msg) { case (int)message_type.Msg_IncomingPunch: { if (Utils.RandFloat() <= 0.5) { joe.HP = joe.HP - 1; DebugMessages.Instance.WriteLine(String.Format("{0}: Gaah Im hit!", MainSM.GetEntityName(pEntity.ID()))); } else { DebugMessages.Instance.WriteLine(String.Format("{0}: Missed me, sucker!", MainSM.GetEntityName(pEntity.ID()))); } return(true); } case (int)message_type.Msg_DeclineFight: { DebugMessages.Instance.WriteLine(String.Format("{0}: That'll teach ya to mess with an alchoholic!", MainSM.GetEntityName(pEntity.ID()))); joe.GetFSM().ChangeState(new JoeDoChillin()); return(true); } } return(false); }
public override void Execute(BaseGameEntity pEntity) { BarFlyJoe joe = (BarFlyJoe)pEntity; if (joe.HP == 1) { // Lost fight! Tell Bob we are done. DebugMessages.Instance.WriteLine(String.Format("{0}: Ok ok Im beat! Mercy!", MainSM.GetEntityName(pEntity.ID()))); MessageDispatcher.Instance.DispatchMessage((int)MessageDispatcher.SEND_MSG_IMMEDIATELY, pEntity.ID(), (int)EntityName.ent_Miner_Bob, (int)message_type.Msg_DeclineFight, (int)MessageDispatcher.NO_ADDITIONAL_INFO); joe.GetFSM().ChangeState(new JoeDoChillin()); } else { // Throw a punch DebugMessages.Instance.WriteLine(String.Format("{0}: Eat mah knuckle!", MainSM.GetEntityName(pEntity.ID()))); MessageDispatcher.Instance.DispatchMessage((int)MessageDispatcher.SEND_MSG_IMMEDIATELY, pEntity.ID(), (int)EntityName.ent_Miner_Bob, (int)message_type.Msg_IncomingPunch, (int)MessageDispatcher.NO_ADDITIONAL_INFO); } }
public frmMinerDemo() { InitializeComponent(); mHighResTimer = new HighResTimer(); // m_AsyncWorker will be used to perform the AI work on a background thread. m_AsyncWorker = new BackgroundWorker(); m_AsyncWorker.WorkerReportsProgress = true; m_AsyncWorker.ProgressChanged += new ProgressChangedEventHandler(Thread_ProgressChanged); m_AsyncWorker.DoWork += new DoWorkEventHandler(Thread_DoWork); m_AsyncWorker.WorkerSupportsCancellation = true; // Just direct all debug output to our Message Writer Debug.Listeners.Clear(); Debug.Listeners.Add(new TextWriterTraceListener(DebugMessages.Instance)); groupBox1.ForeColor = mColourBob; groupBox2.ForeColor = mColourElsa; groupBox3.ForeColor = mColourBarFly; //create a miner Bob = new Miner((int)EntityName.ent_Miner_Bob); //create his wife Elsa = new MinersWife((int)EntityName.ent_Elsa); Joe = new BarFlyJoe((int)EntityName.ent_BarFly); //register them with the Message Dispatcher MessageDispatcher.Instance.RegisterEntity(Bob); MessageDispatcher.Instance.RegisterEntity(Elsa); MessageDispatcher.Instance.RegisterEntity(Joe); }
public override void Enter(BaseGameEntity pEntity) { BarFlyJoe joe = (BarFlyJoe)pEntity; // reset Stats joe.Drunkeness = -joe.Drunkeness; joe.Angered = false; DebugMessages.Instance.WriteLine(String.Format("{0}: Time to do some chillin'!", MainSM.GetEntityName(pEntity.ID()))); }
public override void Execute(BaseGameEntity pEntity) { BarFlyJoe joe = (BarFlyJoe)pEntity; if (!joe.Angered) { DebugMessages.Instance.WriteLine(String.Format("{0}: Ahh, jus' drinkin'", MainSM.GetEntityName(pEntity.ID()))); joe.Drunkeness = joe.Drunkeness + 1; if (joe.Drunkeness > BarFlyJoe.AlchoAngerSwitch) { DebugMessages.Instance.WriteLine(String.Format("{0}: Feelin drunk and angry! I need a fight...", MainSM.GetEntityName(pEntity.ID()))); joe.Angered = true; } } if (joe.Angered) { Miner bob = (Miner)MessageDispatcher.Instance.GetRegisteredEntityFromID((int)EntityName.ent_Miner_Bob); if (bob.Location != location_type.saloon) { if (Utils.RandFloat() <= 0.5) { DebugMessages.Instance.WriteLine(String.Format("{0}: Damnit no one here to fight with!", MainSM.GetEntityName(pEntity.ID()))); } else { DebugMessages.Instance.WriteLine(String.Format("{0}: Burp! Grr Im not a happy *hic* cowboy.", MainSM.GetEntityName(pEntity.ID()))); } } else { joe.GetFSM().ChangeState(new JoeDoAntagonizin()); } } }
public override void Exit(BaseGameEntity pEntity) { BarFlyJoe joe = (BarFlyJoe)pEntity; joe.HP = Miner.HPFull; }