コード例 #1
0
    public void chooseActionMode(string actionMode)
    {
        if (strLastSelectSoldierName != "")
        {
            destroyAttackArrow();
        }

        actionModeName = actionMode;
        if (selectedSoldier != null)
        {
            switch (actionModeName)
            {
            case "Attack":
                if (selectedSoldier.GetComponent <Unit>().m_pSoldier.getCurrentMoveStep() > 0)
                {
                    actionModeName = "Attack";
                    GameObject newAttackArrow = Instantiate(attackArrow, selectedSoldier.transform.position, Quaternion.identity);
                    newAttackArrow.name      = selectedSoldier.name + "_attackArrow";
                    strLastSelectSoldierName = newAttackArrow.name;
                    m_pUnit.setState(1);
                }
                break;

            case "Defense":
                actionModeName = "Defense";
                int blockAttack = m_pUnit.getCurrentMoveStep();
                m_pUnit.setDefense(blockAttack);
                m_pUnit.setCurrentMoveStep(0);
                m_pUnit.setState(2);
                GameObject floatingTextObj = Instantiate(floatingText, selectedSoldier.transform.position, Quaternion.identity);
                floatingTextObj.GetComponent <TextMesh>().text  = "Block " + blockAttack.ToString() + " hit!";
                floatingTextObj.GetComponent <TextMesh>().color = Color.white;
                SoundEffectManager.Instance.playAudio(12);
                break;

            case "LevelUP":
                actionModeName = "Defense";
                m_pUnit.setState(3);
                break;

            case "Sell":
                int value = m_pUnit.getMoneyBySellingEntity();
                if (GameManager.Instance.getTurn() == 0)
                {
                    m_player1.setMoney(m_player1.getMoney() + m_pUnit.getMoneyBySellingEntity());
                }
                else
                {
                    m_player2.setMoney(m_player2.getMoney() + m_pUnit.getMoneyBySellingEntity());
                }
                Destroy(selectedSoldier);
                m_pUnit.setState(4);
                Vector2    pos     = new Vector2(cameraMain.transform.position.x + 2, cameraMain.transform.position.y - 1);
                GameObject popText = Instantiate(floatingText, pos, Quaternion.identity);
                popText.GetComponent <TextMesh>().text = "money+" + value.ToString();
                SoundEffectManager.Instance.playAudio(0);
                break;
            }
        }
    }
コード例 #2
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();
     }
 }