Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
    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;
 }
Exemplo n.º 4
0
    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);
    }