public MobBehavior GetFirstChildOfType(Type behaviorType) { MobBehavior matchingBehavior = null; if (behaviorType == null) { return(null); } else if (this.GetType() == behaviorType) { matchingBehavior = this; } else if (m_children != null) { foreach (MobBehavior childBehavior in m_children) { matchingBehavior = childBehavior.GetFirstChildOfType(behaviorType); if (matchingBehavior != null) { break; } } } return(matchingBehavior); }
public MobBehavior GetFirstChildOfName(String behaviorName) { MobBehavior matchingBehavior = null; if (behaviorName == "") { matchingBehavior = null; } else if (this.GetType().Name == behaviorName) { matchingBehavior = this; } else if (m_children != null) { foreach (MobBehavior childBehavior in m_children) { matchingBehavior = childBehavior.GetFirstChildOfName(behaviorName); if (matchingBehavior != null) { break; } } } return(matchingBehavior); }
public MobSearchBehavior(MobBehavior parent) : base(parent) { m_children = new MobBehavior[] { new MobInvestigateEnemyStimuli(this), new MobInvestigateFriendlyStimuli(this), }; }
public MobPatrolBehavior(MobBehavior parent) : base(parent) { m_children = new MobBehavior[] { new MobDrainEnergyTankBehavior(this), new MobHackEnergyTankBehavior(this), new MobAimlessWanderBehavior(this), }; }
public MobCombatBehavior(MobBehavior parent) : base(parent) { m_children = new MobBehavior[] { new MobRepairFriendBehavior(this), new MobGiveEnergyToFriendBehavior(this), new MobSpawnHelperBotBehavior(this), new MobAttackEnemyBehavior(this) }; }
public MobSelfPreserveBehavior(MobBehavior parent) : base(parent) { m_children = new MobBehavior[] { new MobTakeEnergyFromTankBehavior(this), new MobRequestRepairBehavior(this), new MobRequestEnergyBehavior(this), new MobFleeBehavior(this) }; }
private bool ActivateBehaviors( MobUpdateContext context, MobBehavior behavior) { bool foundBehaviorToActivate = false; // Can the behavior be activated if (behavior.CanActivate(context)) { foundBehaviorToActivate = true; // Perform the behavior we can activate behavior.Perform(context); // Add the behavior to the list of behaviors that was activated if (context.mob.AIState.behavior_data.active_behavior_stack.Length > 0) { context.mob.AIState.behavior_data.active_behavior_stack += "."; } context.mob.AIState.behavior_data.active_behavior_stack += behavior.GetType().Name; // Try to activate children behaviors if (behavior.Children != null) { foreach (MobBehavior childBehavior in behavior.Children) { // Stop searching if this child behavior could be activated if (ActivateBehaviors(context, childBehavior)) { break; } } } } return(foundBehaviorToActivate); }
private MobBehaviorTree() { m_root = new MobRootBehavior(); }
public MobDrainEnergyTankBehavior(MobBehavior parent) : base(parent) { }
public MobHackEnergyTankBehavior(MobBehavior parent) : base(parent) { }
public MobBehavior(MobBehavior parent) { m_priority = -1; m_parent = parent; m_children = null; }
public MobInvestigateEnemyStimuli(MobBehavior parent) : base(parent) { }
public MobTakeEnergyFromTankBehavior(MobBehavior parent) : base(parent) { }
public MobRequestEnergyBehavior(MobBehavior parent) : base(parent) { }
public MobAimlessWanderBehavior(MobBehavior parent) : base(parent) { }
private bool ActivateBehaviors( MobUpdateContext context, MobBehavior behavior) { bool foundBehaviorToActivate = false; // Can the behavior be activated if (behavior.CanActivate(context)) { foundBehaviorToActivate = true; // Perform the behavior we can activate behavior.Perform(context); // Add the behavior to the list of behaviors that was activated if (context.mob.AIState.behavior_data.active_behavior_stack.Length > 0) { context.mob.AIState.behavior_data.active_behavior_stack += "."; } context.mob.AIState.behavior_data.active_behavior_stack += behavior.GetType().Name; // Try to activate children behaviors if (behavior.Children != null) { foreach (MobBehavior childBehavior in behavior.Children) { // Stop searching if this child behavior could be activated if (ActivateBehaviors(context, childBehavior)) { break; } } } } return foundBehaviorToActivate; }
public MobFleeBehavior(MobBehavior parent) : base(parent) { }
public MobInvestigateFriendlyStimuli(MobBehavior parent) : base(parent) { }
public MobRequestRepairBehavior(MobBehavior parent) : base(parent) { }
public MobRepairFriendBehavior(MobBehavior parent) : base(parent) { }
public MobGiveEnergyToFriendBehavior(MobBehavior parent) : base(parent) { }
public MobAttackEnemyBehavior(MobBehavior parent) : base(parent) { }
public MobSpawnHelperBotBehavior(MobBehavior parent) : base(parent) { }