/*
     * public void setAttackDistanceIndex() {
     *  int a = GameManager.Instance.getUnitPosXIndex(selectedSoldier.name);
     *  int b = GameManager.Instance.getUnitPosYIndex(selectedSoldier.name);
     *  SoldierType.Soldiers mySoldier = selectedSoldier.GetComponent<Unit>().m_pSoldier;
     *  if (mySoldier.getAttackDistance() == 1) {
     *      if (b % 2 == 1)
     *      {
     *          checkEnemyWithinAttackDistance(a + 1, b);
     *          checkEnemyWithinAttackDistance(a, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b - 1);
     *          checkEnemyWithinAttackDistance(a, b - 1);
     *          checkEnemyWithinAttackDistance(a, b);
     *          checkEnemyWithinAttackDistance(a - 1, b);
     *      }
     *      else
     *      {
     *          checkEnemyWithinAttackDistance(a, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b);
     *          checkEnemyWithinAttackDistance(a - 1, b + 1);
     *          checkEnemyWithinAttackDistance(a - 1, b);
     *          checkEnemyWithinAttackDistance(a - 1, b - 1);
     *          checkEnemyWithinAttackDistance(a, b - 1);
     *          checkEnemyWithinAttackDistance(a, b);
     *      }
     *  } else if (mySoldier.getAttackDistance() == 2) {
     *      if (b % 2 == 1)
     *      {
     *          checkEnemyWithinAttackDistance(a + 1, b);
     *          checkEnemyWithinAttackDistance(a, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b - 1);
     *          checkEnemyWithinAttackDistance(a, b - 1);
     *          checkEnemyWithinAttackDistance(a, b);
     *          checkEnemyWithinAttackDistance(a - 1, b);
     *          checkEnemyWithinAttackDistance(a + 2, b);
     *          checkEnemyWithinAttackDistance(a + 2,b - 1);
     *          checkEnemyWithinAttackDistance(a + 1, b - 2 );
     *          checkEnemyWithinAttackDistance(a,b-2);
     *          checkEnemyWithinAttackDistance(a-1,b-2 );
     *          checkEnemyWithinAttackDistance(a-1,b-1 );
     *          checkEnemyWithinAttackDistance(a-2,b );
     *          checkEnemyWithinAttackDistance(a-1,b+1 );
     *          checkEnemyWithinAttackDistance(a - 1,b+2 );
     *          checkEnemyWithinAttackDistance(a,b+2 );
     *          checkEnemyWithinAttackDistance(a + 1,b + 2);
     *          checkEnemyWithinAttackDistance(a + 2, b + 1);
     *
     *      }
     *      else
     *      {
     *          checkEnemyWithinAttackDistance(a, b + 1);
     *          checkEnemyWithinAttackDistance(a + 1, b);
     *          checkEnemyWithinAttackDistance(a - 1, b + 1);
     *          checkEnemyWithinAttackDistance(a - 1, b);
     *          checkEnemyWithinAttackDistance(a - 1, b - 1);
     *          checkEnemyWithinAttackDistance(a, b - 1);
     *          checkEnemyWithinAttackDistance(a, b);
     *          checkEnemyWithinAttackDistance(a+2, b);
     *          checkEnemyWithinAttackDistance(a+1,b-1 );
     *          checkEnemyWithinAttackDistance(a+1,b-2 );
     *          checkEnemyWithinAttackDistance(a,b-2 );
     *          checkEnemyWithinAttackDistance(a-1,b-2 );
     *          checkEnemyWithinAttackDistance(a-2,b-1 );
     *          checkEnemyWithinAttackDistance(a-2, b);
     *          checkEnemyWithinAttackDistance(a-2,b+1 );
     *          checkEnemyWithinAttackDistance(a-1,b+2 );
     *          checkEnemyWithinAttackDistance(a,b+2 );
     *          checkEnemyWithinAttackDistance(a+1, b+2);
     *          checkEnemyWithinAttackDistance(a+1, b+1);
     *      }
     *  }
     * }
     *
     *
     * void checkEnemyWithinAttackDistance(int x, int y) {
     *  int enemyXindex = GameManager.Instance.getUnitPosXIndex(preEnemyObject.name);
     *  int enemyYindex = GameManager.Instance.getUnitPosYIndex(preEnemyObject.name);
     * }
     */

    //升级,最大血量和当前血量各加5
    public void addHealth()
    {
        if (selectedSoldier.GetComponent <Unit>() == null || selectedSoldier == null)
        {
            return;
        }
        if (selectedSoldier.GetComponent <Unit>().beenUpgraded == false)
        {
            if (GameManager.Instance.getTurn() == 0)
            {
                if (selectedSoldier.GetComponent <Unit>().m_pSoldier.getXPToLevelUp() > m_player1.getXP())
                {
                    return;
                }
                else
                {
                    SoldierType.Soldiers mySoldier = selectedSoldier.GetComponent <Unit>().m_pSoldier;
                    mySoldier.modifyMaxHP(5);
                    mySoldier.modifyHP(5);
                    selectedSoldier.GetComponent <Unit>().beenUpgraded = true;
                    GameObject popText = Instantiate(floatingText, selectedSoldier.transform.position, Quaternion.identity);
                    popText.GetComponent <TextMesh>().text  = "Max HP + 5";
                    popText.GetComponent <TextMesh>().color = Color.green;
                    SoundEffectManager.Instance.playAudio(2);
                    m_player1.modifyXP(-selectedSoldier.GetComponent <Unit>().m_pSoldier.getXPToLevelUp());
                }
            }
            else if (GameManager.Instance.getTurn() == 1)
            {
                if (selectedSoldier.GetComponent <Unit>().m_pSoldier.getXPToLevelUp() > m_player2.getXP())
                {
                    return;
                }
                else
                {
                    SoldierType.Soldiers mySoldier = selectedSoldier.GetComponent <Unit>().m_pSoldier;
                    mySoldier.modifyMaxHP(5);
                    mySoldier.modifyHP(5);
                    selectedSoldier.GetComponent <Unit>().beenUpgraded = true;
                    GameObject popText = Instantiate(floatingText, selectedSoldier.transform.position, Quaternion.identity);
                    popText.GetComponent <TextMesh>().text  = "Max HP + 5";
                    popText.GetComponent <TextMesh>().color = Color.green;
                    SoundEffectManager.Instance.playAudio(2);
                    m_player2.modifyXP(-selectedSoldier.GetComponent <Unit>().m_pSoldier.getXPToLevelUp());
                }
            }
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x == destination.x && transform.position.y == destination.y)
        {
            if (bMoving)
            {
                bMoving = false;
                whenUnitFirstArriveDestination();
            }
        }
        else
        {
            bMoving = true;
        }


        Vector2 dir      = new Vector2(destination.x - transform.position.x, destination.y - transform.position.y);
        Vector2 velocity = dir.normalized * speed * Time.deltaTime;

        velocity = Vector2.ClampMagnitude(velocity, dir.magnitude);

        transform.Translate(velocity);

        gameObject.GetComponent <SpriteRenderer>().sprite = UIManager.Instance.unitSprites[spriteIndex];

        thisUnitHasBeenClicked = false;

        if (m_pSoldier != null && m_pSoldier.getCurrentHP() <= 0)
        {
            int money = m_pSoldier.getMoneyByKillingEnemy();
            int xp    = m_pSoldier.getXPByKillingEnemy();
            if (unitAlign == 0)
            {
                m_player2.setMoney(money + m_player2.getMoney());
                m_player2.setXP(xp + m_player2.getXP());
            }
            else if (unitAlign == 1)
            {
                m_player1.setMoney(money + m_player1.getMoney());
                m_player1.setXP(xp + m_player1.getXP());
            }
            GameManager.Instance.modifyUnitDic(unitAlign, gameObject.name);
            Destroy(gameObject);
        }
    }
Beispiel #3
0
    // Update is called once per frame
    void Update()
    {
        if (GameManager.Instance == null)
        {
            return;
        }
        int currentAlign = GameManager.Instance.getTurn();

        if (currentAlign == 0)
        {
            if (m_Player1 == null)
            {
                return;
            }
            UIManager.Instance.alignImage.sprite = m_Player1.getAlignImage();
            UIManager.Instance.money.text        = m_Player1.getMoney().ToString();
            UIManager.Instance.level.text        = m_Player1.getLevel().ToString();
            UIManager.Instance.xp.text           = m_Player1.getXP().ToString();
            m_Player1.checkLevel();
            m_Player1.unlockSoldierTypes();
        }
        else if (currentAlign == 1)
        {
            if (m_Player2 == null)
            {
                return;
            }
            UIManager.Instance.alignImage.sprite = m_Player2.getAlignImage();
            UIManager.Instance.money.text        = m_Player2.getMoney().ToString();
            UIManager.Instance.level.text        = m_Player2.getLevel().ToString();
            UIManager.Instance.xp.text           = m_Player2.getXP().ToString();

            m_Player2.checkLevel();
            m_Player2.unlockSoldierTypes();
        }
    }