root/src/AIDemos/GameClasses/Behaviors/Decorators/TimerBehavior.cs

User picture

Author: conkerjo

Revision: 30 («Previous)


File Size: 1.21 KB

(July 08, 2009 19:40 UTC) Almost 3 years ago


  

 
Show/hide line numbers
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Xna.Framework;
using Brains.Framework.Behaviors;

namespace AIDemos.GameClasses.Behaviors.Decorators
{
    public class TimerBehavior:DecoratorBehavior
    {
        [Brains.Framework.Designer.BehaviorParameter("Time")]
        public float Time { get; set; }
        float timer;
        public TimerBehavior()
        {
        }

        public override void Update(GameTime gameTime)
        {
            timer += gameTime.GetElapsed();
            if (timer >= Time)
            {
                State = Brains.Framework.Behaviors.BehaviorState.Success;
                return;
            }
            base.Update(gameTime);
            SubBehaviors[0].Update(gameTime);
            if (SubBehaviors[0].State == Brains.Framework.Behaviors.BehaviorState.Success ||
                SubBehaviors[0].State ==Brains.Framework.Behaviors.BehaviorState.Failed)
            {
                State = Brains.Framework.Behaviors.BehaviorState.Success;
            }
        }
        public override void Reset()
        {
            timer = 0;
            base.Reset();
        }
    }
}