root/src/AIDemos/GameClasses/Behaviors/Attack.cs

User picture

Author: conkerjo

Revision: 30 («Previous)


File Size: 1.43 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 Brains.Framework.Behaviors;
using Microsoft.Xna.Framework;
using Brains.Framework;

namespace AIDemos.GameClasses.Behaviors
{
    [Brains.Framework.Designer.Behavior("AttackBehavior")]
    public class AttackBehavior : BehaviorTask
    {
        public AttackBehavior()
        {
        }

        public override void Update(GameTime gameTime)
        {

            Agent target = ((Soldier)Owner).Target;
            if (target == null)
                State = BehaviorState.Success;
            else
            {
                ((Brains.Framework.Locomotion.LocomtionSteering)Owner.Locomotion).TurnOnSeek(target.Position);

                BoundingSphere _sp = new BoundingSphere(target.Position.ToVector3(), target.Radius);
                BoundingSphere _sp1 = new BoundingSphere(Owner.Position.ToVector3(), Owner.Radius);
                if (_sp.Intersects(_sp1))
                {
                    target.RootBehavior = new DieBehavior();
                    target = null;
                    State = BehaviorState.Success;
                    ((Brains.Framework.Locomotion.LocomtionSteering)Owner.Locomotion).TurnOffSeek();
                }

            }

            base.Update(gameTime);
        }
        public override void OnSuccess()
        {
            base.OnSuccess();
        }
    }
}