Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        private void Thread_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            ArrayList arrReturnValue = DebugMessages.Instance.FlushMessages();

            foreach (string strLine in arrReturnValue)
            {
                if (strLine.StartsWith(MainSM.GetEntityName((int)EntityName.ent_Miner_Bob)))
                {
                    txtUpdates.SelectionColor = mColourBob;
                }
                else if (strLine.StartsWith(MainSM.GetEntityName((int)EntityName.ent_Elsa)))
                {
                    txtUpdates.SelectionColor = mColourElsa;
                }
                else if (strLine.StartsWith(MainSM.GetEntityName((int)EntityName.ent_BarFly)))
                {
                    txtUpdates.SelectionColor = mColourBarFly;
                }
                else
                {
                    txtUpdates.SelectionColor = Color.Black;
                }

                txtUpdates.AppendText(strLine + Environment.NewLine);
            }

            if (e.ProgressPercentage == 100)
            {
                txtUpdates.SelectionColor = Color.Black;
                txtUpdates.AppendText(Environment.NewLine + "Demo Complete!" + Environment.NewLine);
            }
            else
            {
                lblLocationBob.Text = MainSM.GetLocation((int)Bob.Location);
                lblStatusBob.Text   = Bob.GetFSM().CurrentState.GetType().Name.ToString();

                lblLocationWife.Text = MainSM.GetLocation((int)Elsa.Location);
                lblStatusWife.Text   = Elsa.GetFSM().CurrentState.GetType().Name.ToString();

                lblLocationBarFly.Text = MainSM.GetLocation((int)Joe.Location);
                lblStatusBarFly.Text   = Joe.GetFSM().CurrentState.GetType().Name.ToString();
            }
        }
Ejemplo n.º 5
0
        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());
                }
            }
        }