Exemplo n.º 1
0
    void grenadeUpdate()
    {
        bool activated = false;

        TutorialCombat.updateAoE(GetComponent <TutorialManager>(), ref activated);

        if (activated)
        {
            List <GameObject> targets = TutorialCombat.getTargets();

            foreach (GameObject target in targets)
            {
                TutorialManager enemy = target.GetComponent <TutorialManager>();
                ShotsFired      shot  = new ShotsFired(this.transform.position,
                                                       enemy.transform.position,
                                                       enemy.getActiveUnitsCount(),
                                                       BalanceConstants.Ability.GRENADE_HIT_CHANCE,
                                                       enemy.dodgeChance, false);
                int damage = TutorialCombat.calculateDamage(shot);

                //enemy.nView.RPC("takeDamage", RPCMode.All, damage, false);
                enemy.takeDamage(damage, false);
            }

            squad.skipAction();
            gameLogic.checkStateEndOfAction();
            gameLogic.updateUI();
        }
    }
Exemplo n.º 2
0
 private void checkNewAction()
 {
     //start move
     if (Input.GetAxis("DpadH") == -1)
     {
         if (getSelectedManager().numActions > 0)
         {
             move.Play();
             changeUnit.enabled = false;
             currentStage       = TurnStage.Moving;
             getSelectedManager().startMovement();
             updateUI();
         }
     }
     //start start combat
     if (Input.GetAxis("DpadH") == 1)
     {
         if (getSelectedManager().numActions > 0)
         {
             attack.Play();
             currentStage = TurnStage.Combat;
             TutorialCombat.findTargets(selectedRB.gameObject);
             updateUI();
         }
     }
 }
Exemplo n.º 3
0
    public void checkStateEndOfAction()
    {
        TutorialCombat.reset();
        currentAttack = AttackType.Basic;
        getSelectedManager().disableSelect();
        attackProj.enabled = false;
        changeUnit.enabled = false;

        if (GameObject.FindGameObjectsWithTag("Player0Squad").Length == 0)
        {
            gameOver(2);
            return;
        }

        if (GameObject.FindGameObjectsWithTag("Player1Squad").Length == 0)
        {
            gameOver(1);
            return;
        }

        if (getSelectedManager().numActions == SquadManager.MAX_ACTIONS)
        {
            currentStage = TurnStage.None;
        }
        else if (getSelectedManager().numActions == 0)
        {
            //getSelectedManager().nView.RPC("activeSquadColor", RPCMode.All, false);
            getSelectedManager().activeSquadColor(false);
            nextTurn();
        }
        else
        {
            currentStage = TurnStage.InBetween;
        }

        updateUI();
    }
Exemplo n.º 4
0
 void grenade()
 {
     TutorialCombat.setupAoE(gameObject, 10, 5);
 }
Exemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        if (!isRunning)
        {
            return;
        }
        if (squads == null || !isTurn)
        {
            //checkRound();
            return;
        }
        if (squads.Length > 0)
        {
            if (currentStage == TurnStage.None)
            {
                //skip turn button
                if (Input.GetButtonDown("Select"))
                {
                    nextTurn();
                }
                if (isRoundOver)
                {
                    nextTurn();
                }
                checkChangeSquad();
                checkNewAction();
            }
            else if (currentStage == TurnStage.InBetween)
            {
                checkNewAction();
            }
            else if (currentStage == TurnStage.Moving)
            {
                //if the squad is no longer moving (triggered if max distance is met)
                if (!getSelectedManager().midMovement)
                {
                    //if we have another action
                    if (getSelectedManager().numActions > 0)
                    {
                        currentStage = TurnStage.InBetween;
                    }
                    else
                    {
                        currentStage = TurnStage.None;
                    }
                }
                //user undo
                else if (Input.GetButtonDown("Circle")) //B
                {
                    getSelectedManager().undoMove();
                    checkStateEndOfAction();
                    getMainCamController().setCameraTarget(squads[selectedSquadIndex].transform.position);
                    changeUnit.enabled = true;
                }
                //user ends early
                else if (Input.GetButtonDown("Cross"))  //A
                {
                    getSelectedManager().endMovement();
                    changeUnit.enabled = true;
                    checkStateEndOfAction();
                }
                else
                {
                    selectedRB = squads[selectedSquadIndex].GetComponent <Rigidbody>();
                    float v = Input.GetAxis("JoystickLV");
                    float h = Input.GetAxis("JoystickLH");
                    selectedRB.velocity = (Quaternion.Euler(0, getMainCamController().angle, 0) * new Vector3(h, 0, v).normalized) * 20;
                    getMainCamController().setCameraTarget(squads[selectedSquadIndex].transform.position, true);
                    attackProj.transform.position = new Vector3(getSelectedManager().transform.position.x, 9, getSelectedManager().transform.position.z);
                }
            }
            else if (currentStage == TurnStage.Combat)
            {
                //TODO: enable combat in squad
                //skip

                if (Input.GetAxis("DpadV") == -1)
                {
                    getSelectedManager().skipAction();
                    checkStateEndOfAction();
                }
                if (currentAttack == AttackType.Basic)
                {
                    if (TutorialCombat.UpdateTarget(selectedRB.GetComponent <TutorialManager>()))                      //A
                    {
                        getMainCamController().freezeCamera(2);
                        Debug.Log("I shot someone!");
                        StartCoroutine(TutorialCombat.fightTarget(selectedRB.gameObject, getSelectedManager().getPower()));
                        getSelectedManager().skipAction();
                        checkStateEndOfAction();
                        updateUI();
                    }
                    if (Input.GetButtonDown("Circle"))  //B
                    {
                        if (getSelectedManager().numActions == 2)
                        {
                            currentStage = TurnStage.None;
                        }
                        if (getSelectedManager().numActions == 1)
                        {
                            currentStage = TurnStage.InBetween;
                        }
                        //getSelectedManager().skipAction();
                        checkStateEndOfAction();
                        getMainCamController().setCameraTarget(squads[selectedSquadIndex].transform.position, true);
                    }
                    if (Input.GetButtonUp("Square"))
                    {
                        currentAttack = AttackType.Unit;
                        TutorialCombat.reset();
                        attackProj.enabled = false;
                        Debug.Log("Unit Ability");
                        getSelectedManager().unitAbility();
                    }
                    if (Input.GetButtonUp("Triangle"))
                    {
                        currentAttack = AttackType.Squad;
                        TutorialCombat.reset();
                        attackProj.enabled = false;
                        changeUnit.enabled = true;
                        getSelectedManager().squadAbility();
                        Debug.Log("Squad Ability");
                    }
                }
                else if (currentAttack == AttackType.Squad && getSelectedManager() != null) // && Input.GetButtonUp("Triangle")
                {
                    getSelectedManager().squadAbilityUpdate();
                }
                //else if(currentAttack == AttackType.Unit && getSelectedManager() != null) // && Input.GetButtonUp("Square")
                //{
                //    getSelectedManager().unitAbilityUpdate();
                //}

                if (Input.GetButtonUp("Circle")) //Reset to basic ability
                {
                    currentAttack = AttackType.Basic;
                    TutorialCombat.findTargets(selectedRB.gameObject);
                }
            }
            setLight();
        }
    }