1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 |
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();
}
}
} |