Exemplo n.º 1
0
    private void Bomb(GameObject target)
    {
        BuildingHPBehavior targetHP = target.GetComponent <BuildingHPBehavior>();

        if (targetHP != null)
        {
            targetHP.DecreaseHP(this.CharacterAI.AttackBehavior.AttackValue, this.CharacterAI.AttackBehavior.AttackCategory);
        }
        KodoHPBehavior hp = this.m_AIBehavior.GetComponent <KodoHPBehavior>();

        hp.Bomb();
    }
Exemplo n.º 2
0
    public override void AICalculate()
    {
        if (this.m_IsFindInstantly || this.m_AIBehavior.CanTakeResponse)
        {
            CharacterAI ai = (CharacterAI)this.m_AIBehavior;

            TilePosition currentPosition = PositionConvertor.GetActorTileIndexFromWorldPosition(this.m_AIBehavior.transform.position);
            if (!BattleMapData.Instance.ActorCanPass(currentPosition.Row, currentPosition.Column))
            {
                GameObject         go       = BattleMapData.Instance.GetBulidingObjectFromActorObstacleMap(currentPosition.Row, currentPosition.Column);
                BuildingHPBehavior targetHP = go.GetComponent <BuildingHPBehavior>();
                if (targetHP != null)
                {
                    CharacterAttack attack = ai.AttackBehavior;
                    targetHP.DecreaseHP(attack.AttackValue, attack.AttackCategory);
                }

                KodoHPBehavior hp = this.m_AIBehavior.GetComponent <KodoHPBehavior>();
                hp.Bomb();
            }
            else
            {
                List <GameObject> targets = BattleSceneHelper.Instance.GetBuildingsOfCategory(ai.FavoriteCategory);
                if (targets.Count > 0)
                {
                    int        i        = BattleRandomer.Instance.GetRandomNumber(0, targets.Count);
                    GameObject targetGo = targets[i];
                    BuildingBasePropertyBehavior targetProperty = targetGo.GetComponent <BuildingBasePropertyBehavior>();
                    i = BattleRandomer.Instance.GetRandomNumber(0, targetProperty.ActorObstacleList.Count);
                    TilePosition targetTile     = targetProperty.ActorPosition + targetProperty.ActorObstacleList[i];
                    Vector2      targetPosition = PositionConvertor.GetWorldPositionFromActorTileIndex(targetTile);

                    CrazyKodoWalkState walkState = new CrazyKodoWalkState(this.m_AIBehavior, targetGo, targetPosition);
                    this.m_AIBehavior.ChangeState(walkState);
                }
            }
        }
    }