root/src/AIDemos/GameClasses/Behaviors/Conditions/EnemyNearby.cs

User picture

Author: conkerjo

Revision: 30 («Previous)


File Size: 1.35 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;

namespace AIDemos.GameClasses.Behaviors.Conditions
{
    [Brains.Framework.Designer.Behavior("EnemyNearby")]
    public class EnemyNearby:ConditionBehavior
    {
        public EnemyNearby()
        {
        }
        public override void Update(GameTime gameTime)
        {
            float viewdistance = 100;
            foreach (var item in Owner.ParentWorld.Actors)
            {
                if (item == Owner)
                    continue;
                float dist = Vector2.Distance(Owner.Position, item.Position);
                if (dist < viewdistance)
                {
                    if (ConditionCheck)
                    {
                        ((Soldier)Owner).Target = item;
                        State = BehaviorState.Success;
                        return;
                    }
                    else
                    {
                        State = BehaviorState.Failed;
                        return;
                    }
                }
            }
            if (ConditionCheck)
                State = BehaviorState.Failed;
            else
                State = BehaviorState.Success;
            
        }   
    }
}