root/src/BRAINSFramework/Behaviors/SequenceBehavior.cs
| 13 | 22 | ||
|---|---|---|---|
8 | 8 | ||
9 | namespace Brains.Framework.Behaviors | 9 | namespace Brains.Framework.Behaviors |
10 | { | 10 | { |
11 | /// <summary> | ||
12 | /// The sequence behavior runs a sub behavior until it is complete, then moves onto the next sub behavior. | ||
13 | /// </summary> | ||
11 | [BehaviorAttribute("Sequence")] | 14 | [BehaviorAttribute("Sequence")] |
12 | public class SequenceBehavior : BehaviorBase, ICompositeBehavior | 15 | public class SequenceBehavior : CompositeBehavior, ICompositeBehavior |
13 | { | 16 | { |
14 | 17 | ||
15 | public SequenceBehavior() | 18 | public SequenceBehavior() |
16 | { | 19 | { |
17 | 20 | | |
18 | } | 21 | } |
19 | 22 | ||
20 | public override void Update(GameTime gameTime) | 23 | public override void Update(GameTime gameTime) |
... | ... | ||
47 | public override void OnSubBehaviorSuccess() | 50 | public override void OnSubBehaviorSuccess() |
48 | { | 51 | { |
49 | //Reset the current sub behavior to idle | 52 | //Reset the current sub behavior to idle |
50 | SubBehaviors[CurrentSubBehavior].State = BehaviorState.Idle; | 53 | SubBehaviors[CurrentSubBehavior].Reset(); |
51 | 54 | ||
52 | //If it's the last behavior the sequence is a success | 55 | //If it's the last behavior the sequence is a success |
53 | if (CurrentSubBehavior == Count - 1) | 56 | if (CurrentSubBehavior == Count - 1) |
... | ... | ||
55 | State = BehaviorState.Success; | 58 | State = BehaviorState.Success; |
56 | } | 59 | } |
57 | else //Move onto the next item in the sequence. | 60 | else //Move onto the next item in the sequence. |
61 | { | ||
58 | CurrentSubBehavior++; | 62 | CurrentSubBehavior++; |
63 | } | ||
59 | 64 | ||
60 | } | 65 | } |
61 | } | 66 | } |
Download diff