public override void doAction(Comedian bot)
        {
            //Go to Sleep State if bedtime
            if ((bot.WakeTime > bot.SleepTime && (DateTime.Now.TimeOfDay < bot.WakeTime && DateTime.Now.TimeOfDay >= bot.SleepTime)) || (bot.WakeTime < bot.SleepTime && (DateTime.Now.TimeOfDay < bot.WakeTime || DateTime.Now.TimeOfDay >= bot.SleepTime)))
            {
                attentionCounter = ++attentionCounter % 4;

                if (attentionCounter == 0) //8 seconds elapsed
                {
                    //Say Good Night
                    lock (bot.OutgoingMessage)
                    {
                        bot.OutgoingMessage.Enqueue(new ChatMessage(bot.PSource, bot.retrieve(bot.PSource)[0], bot.PSource.MasterAccount, new TextMessage(getAIMLResponse("SayStatementPattern sleepy", getPrimaryUser(bot), bot))));
                    }
                    bot.setNextState(StateFactory.getBotState("Sleep", bot));
                }
            }
            else if ((bot.OffWorkTime > bot.WorkTime && (DateTime.Now.TimeOfDay < bot.OffWorkTime && DateTime.Now.TimeOfDay >= bot.WorkTime)) || (bot.OffWorkTime < bot.WorkTime && (DateTime.Now.TimeOfDay < bot.OffWorkTime || DateTime.Now.TimeOfDay >= bot.WorkTime)))
            {
                attentionCounter = ++attentionCounter % 30;

                if (attentionCounter == 0) //1 minute elapsed
                {
                    //Say Time for Work
                    lock (bot.OutgoingMessage)
                    {
                        bot.OutgoingMessage.Enqueue(new ChatMessage(bot.PSource, bot.retrieve(bot.PSource)[0], bot.PSource.MasterAccount, new TextMessage(getAIMLResponse("SayStatementPattern time for work", getPrimaryUser(bot), bot))));
                    }
                    bot.setNextState(StateFactory.getBotState("Busy", bot));
                }
            }
        }
 public override void doAction(Comedian bot)
 {
     if ((bot.WakeTime > bot.SleepTime && (DateTime.Now.TimeOfDay < bot.WakeTime && DateTime.Now.TimeOfDay >= bot.SleepTime)) || (bot.WakeTime < bot.SleepTime && (DateTime.Now.TimeOfDay < bot.WakeTime || DateTime.Now.TimeOfDay >= bot.SleepTime)))
     {
         bot.setNextState(StateFactory.getBotState("Sleep", bot));
     }
     else
     {
         bot.setNextState(StateFactory.getBotState("Greeting", bot));
     }
 }
예제 #3
0
        public override void doAction(Comedian bot)
        {
            lock (bot.OutgoingMessage)
            {
                bot.OutgoingMessage.Enqueue(new ChatMessage(bot.PSource, bot.retrieve(bot.PSource)[0], bot.PSource.MasterAccount, new TextMessage(getAIMLResponse("SayStatementPattern hello", getPrimaryUser(bot), bot))));
            }

            bot.setNextState(StateFactory.getBotState("Available", bot));
        }
예제 #4
0
        public override void doAction(Comedian bot)
        {
            workCounter = ++workCounter % 2700;

            //Time to get off work?
            if ((bot.OffWorkTime > bot.WorkTime && (DateTime.Now.TimeOfDay >= bot.OffWorkTime || DateTime.Now.TimeOfDay < bot.WorkTime)) || (bot.OffWorkTime < bot.WorkTime && (DateTime.Now.TimeOfDay >= bot.OffWorkTime && DateTime.Now.TimeOfDay < bot.WorkTime)))
            {
                bot.setNextState(StateFactory.getBotState("Available", bot));
            }
            //Time for a break from work
            else if (workCounter == 0) //90 minutes elapsed
            {
                if (new Random().Next(0, 2) == 0)
                {
                    bot.setNextState(StateFactory.getBotState("Social", bot));
                }
                else
                {
                    bot.setNextState(StateFactory.getBotState("Rest", bot));
                }
            }
        }
예제 #5
0
        public override void doAction(Comedian bot)
        {
            restCounter = ++restCounter % 300;

            if (restCounter == 0) //10 minutes elapsed
            {
                //Say Back to Work
                lock (bot.OutgoingMessage)
                {
                    bot.OutgoingMessage.Enqueue(new ChatMessage(bot.PSource, bot.retrieve(bot.PSource)[0], bot.PSource.MasterAccount, new TextMessage(getAIMLResponse("SayStatement Back to work", getPrimaryUser(bot), bot))));
                }
                bot.setNextState(StateFactory.getBotState("Busy", bot));
            }
        }