Exemple #1
0
    //显示士兵信息
    public void showUnitInformation(bool bShowInformation)
    {
        if (selectedUnit == null)
        {
            return;
        }

        if (bShowInformation == true)
        {
            SoldierType.Soldiers thisUnit = selectedUnit.m_pSoldier;
            int maxHP = thisUnit.getMaxHP();
            UIManager.Instance.maxHP.GetComponent <Text>().text = maxHP.ToString();
            int attack = thisUnit.getAttack();
            UIManager.Instance.attackValue.GetComponent <Text>().text = attack.ToString();
            int maxStep = thisUnit.getMaxMoveStep();
            UIManager.Instance.maxMoveStep.GetComponent <Text>().text     = maxStep.ToString();
            UIManager.Instance.soldierTypeName.GetComponent <Text>().text = thisUnit.returnTypeName();
            int currentHP = thisUnit.getCurrentHP();
            UIManager.Instance.currentHP.GetComponent <Text>().text = currentHP.ToString();
            int currentMoveStep = thisUnit.getCurrentMoveStep();
            UIManager.Instance.currentMoveStep.GetComponent <Text>().text = currentMoveStep.ToString();
            UIManager.Instance.soldierTypeImage.sprite = UIManager.Instance.unitSprites[thisUnit.returnSpriteIndex()];
        }
        else
        {
            UIManager.Instance.maxHP.GetComponent <Text>().text           = null;
            UIManager.Instance.attackValue.GetComponent <Text>().text     = null;
            UIManager.Instance.maxMoveStep.GetComponent <Text>().text     = null;
            UIManager.Instance.soldierTypeName.GetComponent <Text>().text = null;
            UIManager.Instance.soldierTypeImage.sprite = UIManager.Instance.noSprite;
            UIManager.Instance.currentMoveStep.GetComponent <Text>().text = null;
            UIManager.Instance.currentHP.GetComponent <Text>().text       = null;
        }
    }
Exemple #2
0
 public void setEntity(int nType, int nAlign)
 {
     entityType  = nType;
     unitAlign   = GameManager.Instance.getTurn();
     m_pSoldier  = new SoldierType.Soldiers(entityType, nAlign);
     spriteIndex = m_pSoldier.returnSpriteIndex();
     // gameObject.GetComponent<SpriteRenderer>().sprite = UIManager.Instance.unitSprites[spriteIndex];
 }
Exemple #3
0
    void mouseClickHex(GameObject pTile)
    {
        if (Input.GetMouseButton(0))
        {
            //pTile.GetComponent<SpriteRenderer>().color = Color.red;
            if (selectedUnit == null)
            {
                return;
            }

            SoldierType.Soldiers thisSelectedUnitType = selectedUnit.m_pSoldier;
            if (clickUnit == false && !CheckIfHasSoldierInGrid() && soldierActionScript.actionModeName != "Attack" &&
                thisSelectedUnitType.getCurrentMoveStep() > 0)

            {
                if (selectedUnit.greenTiles.Contains(pTile))
                {
                    if (selectedUnitObject == null)
                    {
                        return;
                    }
                    selectedUnit.destination = pTile.transform.position;
                    int x = GameManager.Instance.getTileIndexXDic(pTile.name);
                    GameManager.Instance.setUnitPosXIndex(selectedUnitObject.name, x);
                    int y = GameManager.Instance.getTileIndexYDic(pTile.name);
                    GameManager.Instance.setUnitPosYIndex(selectedUnitObject.name, y);
                    selectedUnit.destinationXIndex = x;
                    selectedUnit.destinationYIndex = y;
                    selectedUnit.indexX            = x;
                    selectedUnit.indexY            = y;
                    Debug.Log("Destination: " + "xIndex: " + x + " yIndex: " + y);
                    if (selectedUnit.entityType == 1 || selectedUnit.entityType == 2 || selectedUnit.entityType == 4 ||
                        selectedUnit.entityType == 6 || selectedUnit.entityType == 8)
                    {
                        SoundEffectManager.Instance.playAudio(4);
                    }
                    else if (selectedUnit.entityType == 3)
                    {
                        SoundEffectManager.Instance.playAudio(11);
                    }
                    else if (selectedUnit.entityType == 7 || selectedUnit.entityType == 5)
                    {
                        SoundEffectManager.Instance.playAudio(7);
                    }
                    //thisSelectedUnitType.setCurrentMoveStep(1);
                }
            }
        }
    }
    /*
     * 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());
                }
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (actionModeName != "Attack")
        {
            destroyAttackArrow();
        }
        selectedSoldier = myMouseControllerScript.selectedUnitObject;
        if (selectedSoldier == null || selectedSoldier.GetComponent <Unit>() == null)
        {
            return;
        }
        m_pUnit = selectedSoldier.GetComponent <Unit>().m_pSoldier;
        attackMode();


        if (actionModeName != "Attack")
        {
            if (GameObject.Find(selectedSoldier.name + "_attackArrow") != null)
            {
                Destroy(GameObject.Find(selectedSoldier.name + "_attackArrow"));
            }
        }

        /*
         * if (bCancelAttackMode == true) {
         *  float curTimeStamp = Time.time;
         *  if (curTimeStamp > nCancelAttackModeTimeStamp + 20f)
         *  {
         *      actionModeName = null;
         *      Reset();
         *  }
         * }
         */
        if (attackEndFrame != 0)
        {
            if (Time.frameCount - attackEndFrame > 60)
            {
                Reset();
                attackEndFrame = 0;
            }
        }
    }
 //左键攻击
 void pressLeftMouseButtonToAttack(GameObject enemyObj)
 {
     if (Input.GetMouseButtonUp(0))
     {
         if (enemyObj.GetComponent <Unit>() == null || selectedSoldier.GetComponent <Unit>() == null)
         {
             return;
         }
         SoldierType.Soldiers thisEnemyObj = enemyObj.GetComponent <Unit>().m_pSoldier;
         SoldierType.Soldiers mySoldier    = selectedSoldier.GetComponent <Unit>().m_pSoldier;
         int attack = mySoldier.getAttack();
         Debug.Log("attack: " + attack);
         int defense = thisEnemyObj.getDefense();
         if (defense > 0)
         {
             if (attack > defense)
             {
                 attack -= defense;
                 thisEnemyObj.setDefense(0);
             }
             else
             {
                 attack = 0;
                 thisEnemyObj.modifyDefense(-attack);
             }
         }
         thisEnemyObj.modifyHP(-attack);
         GameObject floatingTextObj = Instantiate(floatingText, enemyObj.transform.position, Quaternion.identity);
         floatingTextObj.GetComponent <TextMesh>().text = "-" + attack.ToString();
         Instantiate(bloodPS, enemyObj.transform.position, Quaternion.identity);
         int selectedSoldierType = selectedSoldier.GetComponent <Unit>().entityType;
         //攻击音效
         if (selectedSoldierType == 1 || selectedSoldierType == 2 || selectedSoldierType == 3)
         {
             SoundEffectManager.Instance.playAudio(5);
         }
         else if (selectedSoldierType == 4)
         {
             SoundEffectManager.Instance.playAudio(8);
         }
         else if (selectedSoldierType == 5 || selectedSoldierType == 7)
         {
             SoundEffectManager.Instance.playAudio(6);
         }
         else if (selectedSoldierType == 6)
         {
             SoundEffectManager.Instance.playAudio(9);
         }
         else if (selectedSoldierType == 8)
         {
             SoundEffectManager.Instance.playAudio(10);
         }
         selectedSoldier.GetComponent <Unit>().m_pSoldier.modifyCurrentMoveStep(-1);
         myCamShakeScript.shake(0.15f, 0.3f);
         //bCancelAttackMode = true;
         // actionModeName = null;
         destroyAttackArrow();
         attackEndFrame = Time.frameCount;
         //Reset();
     }
 }
    void tilesAroundUnit()
    {
        int a = GameManager.Instance.getUnitPosXIndex(selectedUnitObject.name);
        int b = GameManager.Instance.getUnitPosYIndex(selectedUnitObject.name);

        SoldierType.Soldiers mySoldier = selectedUnitObject.GetComponent <Unit>().m_pSoldier;

        if (mySoldier.getView() == 1)
        {
            if (b % 2 == 1)
            {
                removeTiles(a + 1, b);
                removeTiles(a, b + 1);
                removeTiles(a + 1, b + 1);
                removeTiles(a + 1, b - 1);
                removeTiles(a, b - 1);
                removeTiles(a, b);
                removeTiles(a - 1, b);
            }
            else
            {
                removeTiles(a, b + 1);
                removeTiles(a + 1, b);
                removeTiles(a - 1, b + 1);
                removeTiles(a - 1, b);
                removeTiles(a - 1, b - 1);
                removeTiles(a, b - 1);
                removeTiles(a, b);
            }
        }
        else if (mySoldier.getView() == 2)
        {
            if (b % 2 == 1)
            {
                removeTiles(a + 1, b);
                removeTiles(a, b + 1);
                removeTiles(a + 1, b + 1);
                removeTiles(a + 1, b - 1);
                removeTiles(a, b - 1);
                removeTiles(a, b);
                removeTiles(a - 1, b);
                removeTiles(a + 2, b);
                removeTiles(a + 2, b - 1);
                removeTiles(a + 1, b - 2);
                removeTiles(a, b - 2);
                removeTiles(a - 1, b - 2);
                removeTiles(a - 1, b - 1);
                removeTiles(a - 2, b);
                removeTiles(a - 1, b + 1);
                removeTiles(a - 1, b + 2);
                removeTiles(a, b + 2);
                removeTiles(a + 1, b + 2);
                removeTiles(a + 2, b + 1);
            }
            else
            {
                removeTiles(a, b + 1);
                removeTiles(a + 1, b);
                removeTiles(a - 1, b + 1);
                removeTiles(a - 1, b);
                removeTiles(a - 1, b - 1);
                removeTiles(a, b - 1);
                removeTiles(a, b);
                removeTiles(a + 2, b);
                removeTiles(a + 1, b - 1);
                removeTiles(a + 1, b - 2);
                removeTiles(a, b - 2);
                removeTiles(a - 1, b - 2);
                removeTiles(a - 2, b - 1);
                removeTiles(a - 2, b);
                removeTiles(a - 2, b + 1);
                removeTiles(a - 1, b + 2);
                removeTiles(a, b + 2);
                removeTiles(a + 1, b + 2);
                removeTiles(a + 1, b + 1);
            }
        }
    }