public Script_Condition_IsThreatOverThreshold(Script_BehaviourTree p_tree, blackboard_flags p_entityListFlag, Script_IEnemy p_threatReceiver, int p_threshold) { _tree = p_tree; _entityListFlag = p_entityListFlag; _threatReceiver = p_threatReceiver; _threatThreshold = p_threshold; }
public override NodeState RunNode(float p_delta) { List <Script_IEntity> enemyList = _tree.GetBlackBoardElement <List <Script_IEntity> > (_enemyListFlag); if (_targetEntity == null) { return(NodeState.Failed); } if (enemyList.Count == 0 || enemyList == null) { return(NodeState.Failed); } foreach (Script_IEntity enemyEntity in enemyList.ToList()) { Script_IEnemy enemy = enemyEntity as Script_IEnemy; Assert.IsNotNull(enemy); if (enemy.GetTargetToAttack() == _targetEntity) { _tree.SetBlackboardElement(_targetToAttackFlag, enemy); return(NodeState.Success); } } return(NodeState.Failed); }
public Script_Action_SetHighestThreatTargetFromList(Script_BehaviourTree p_tree, blackboard_flags p_entityListFlag, Script_IEnemy p_threatReceiver, blackboard_flags p_entityWithHighestThreatFlag) { _tree = p_tree; _entityListFlag = p_entityListFlag; _threatReceiver = p_threatReceiver; _entityWithHighestThreatFlag = p_entityWithHighestThreatFlag; }
public override void TakeDamage(Script_IEntity p_attacker, int p_damage) { Script_IEnemy attacker = p_attacker as Script_IEnemy; Assert.IsNotNull(attacker); _health -= p_damage; }
public override NodeState RunNode(float p_delta) { Script_IEntity targetToAttack = _tree.GetBlackBoardElement <Script_IEntity> (_targetToAttackFlag); if (targetToAttack == null) { return(NodeState.Failed); } Script_IEnemy enemyToSet = _enemyToSet as Script_IEnemy; enemyToSet.SetTargetToAttack(targetToAttack); return(NodeState.Success); }