Exemple #1
0
    private void LateUpdate()
    {
        if (state != GAME_STATE.PAUSED)
        {
            if (Input.GetKeyUp(KeyCode.Escape))
            {
                Pause(true);
                UIManager.instance.SetActive("Pause", true);
            }
        }
        else
        {
            if (Input.GetKeyUp(KeyCode.Escape))
            {
                Pause(false);
                UIManager.instance.SetActive("Pause", false);
                UIManager.instance.SetActive("Help", false);
            }
        }

        OnStageChanged();

        lateState = state;
        lateStage = stage;
    }
Exemple #2
0
    public void SetStage(int stage)
    {
        this.stage = (GAME_STAGE)stage;

        if (this.stage != GAME_STAGE.CONSTRUCTION)
        {
            SoundManager.PlaySound("button");
        }
    }
 //选中某张卡,index 1-7
 public void selectCard(int index)
 {
     //print (index);
     if (index > 0 && index < 8)
     {
         foreach (GameObject c in cardObject)
         {
             if (int.Parse(c.name.Substring(4, 1)) == index)
             {
                 curSelectCardIndex = index;
                 //选卡阶段
                 if (gameStage == GAME_STAGE.CHOOSE && characterList[index - 1].side == SIDE.NONE_SIDE)
                 {
                     chooseEnd++;
                     characterList [index - 1].side = isWhoTurn;
                     Vector3 pos = c.transform.position;
                     if (isWhoTurn == SIDE.P1_SIDE)
                     {
                         pos.y = Y_OF_PLAYER1;
                     }
                     else
                     {
                         pos.y = Y_OF_PLAYER2;
                         if (chooseEnd == 6)
                         {
                             foreach (GameObject a in cardObject)
                             {
                                 Vector3 pos_a = a.transform.position;
                                 if (characterList[int.Parse(a.name.Substring(4, 1)) - 1].side == SIDE.P1_SIDE)
                                 {
                                     if (characterList[int.Parse(a.name.Substring(4, 1)) - 1].curHP < 9)
                                     {
                                         characterList[int.Parse(a.name.Substring(4, 1)) - 1].curHP++;
                                     }
                                     characterList[int.Parse(a.name.Substring(4, 1)) - 1].curMP = 2;
                                     print(int.Parse(a.name.Substring(4, 1)));
                                 }
                                 if (pos_a.y == 0f)
                                 {
                                     pos_a.y = Y_OF_PLAYER2;
                                     a.transform.position = pos_a;
                                     characterList [int.Parse(a.name.Substring(4, 1)) - 1].side   = SIDE.P2_SIDE;
                                     characterList [int.Parse(a.name.Substring(4, 1)) - 1].curPos = pos_a;
                                     gameStage = GAME_STAGE.FIGHT;
                                     text.text = "Player1's Turn";
                                     Vector3 posEndTurnButton = endTurnButtonObj.transform.position;
                                     posEndTurnButton.z = 0;
                                     endTurnButtonObj.transform.position = posEndTurnButton;
                                     fireObject.transform.position       = posEndTurnButton;
                                     unselectCard(curSelectCardIndex);
                                     isSelectAttacker = true;
                                 }
                             }
                         }
                     }
                     c.transform.position             = pos;
                     characterList [index - 1].curPos = pos;
                     changeTurn();
                 }
                 //战斗阶段
                 else if (gameStage == GAME_STAGE.FIGHT)
                 {
                     print("GAME_STAGE.FIGHT");
                     print("motion =" + characterList[curSelectCardIndex - 1].motion);
                     if (isSelectAttacker == true)
                     {
                         //card3使用技能2,目标是己方card
                         if (attackIndex == 3 && skillIndex == 2 && characterList[curSelectCardIndex - 1].side == isWhoTurn)
                         {
                             skill3_2(attackIndex, curSelectCardIndex);
                             updateCardValue();
                             unselectCard(index);
                             //隐藏选择框
                             Vector3 pos = selectBoardObject.transform.position;
                             pos.z = 1;
                             selectBoardObject.transform.position = pos;
                             attackIndex = -1;
                             hideSkillButtons();
                         }
                         //card5使用技能1,目标是己方card
                         else if (attackIndex == 5 && skillIndex == 1 && characterList[curSelectCardIndex - 1].side == isWhoTurn)
                         {
                             skill5_1(attackIndex, curSelectCardIndex);
                             updateCardValue();
                             unselectCard(index);
                             //隐藏选择框
                             Vector3 pos = selectBoardObject.transform.position;
                             pos.z = 1;
                             selectBoardObject.transform.position = pos;
                             attackIndex = -1;
                             hideSkillButtons();
                         }
                         //card5使用技能2,目标是己方card
                         else
                         if (attackIndex == 5 && skillIndex == 2 && characterList[curSelectCardIndex - 1].side == isWhoTurn)
                         {
                             skill5_2(attackIndex, curSelectCardIndex);
                             updateCardValue();
                             unselectCard(index);
                             //隐藏选择框
                             Vector3 pos = selectBoardObject.transform.position;
                             pos.z = 1;
                             selectBoardObject.transform.position = pos;
                             attackIndex = -1;
                             hideSkillButtons();
                         }
                         //card5使用技能3,目标是己方card
                         else
                         if (attackIndex == 5 && skillIndex == 3 && characterList[curSelectCardIndex - 1].side == isWhoTurn)
                         {
                             skill5_3(attackIndex, curSelectCardIndex);
                             updateCardValue();
                             unselectCard(index);
                             //隐藏选择框
                             Vector3 pos = selectBoardObject.transform.position;
                             pos.z = 1;
                             selectBoardObject.transform.position = pos;
                             attackIndex = -1;
                             hideSkillButtons();
                         }
                         //卡牌属于行动方,血量大于0,行动力大于0才能选中
                         else if (characterList[curSelectCardIndex - 1].side == isWhoTurn &&
                                  characterList[curSelectCardIndex - 1].curHP > 0 &&
                                  characterList[curSelectCardIndex - 1].motion > 0)
                         {
                             c.transform.localScale = new Vector3(2f * 1.2f, 3f * 1.2f, 0.1f * 1f);
                             selectAttacker(c, curSelectCardIndex);
                             showSkillButtons();
                         }
                         else
                         {
                             if (attackIndex > -1 && characterList[curSelectCardIndex - 1].side != isWhoTurn && characterList[curSelectCardIndex - 1].curHP > 0)
                             {
                                 selectTarget(c, curSelectCardIndex);
                                 hideSkillButtons();
                             }
                         }
                     }
                     winOrLose();
                 }
                 break;
             }
         }
     }
 }
Exemple #4
0
    private IEnumerator Countdown()
    {
        while (true)
        {
            stage = GAME_STAGE.EXPANSION;

            time = maxTime;

            while (time > 0)
            {
                yield return(new WaitForSeconds(1f));

                time--;
                wood += woodRate;
                gold += goldRate;
                _base.Heal(healRate);

                SetDarkness((float)time / (float)maxTime);
            }

            UIManager.instance.Log(
                nightQuotes[Random.Range(0, nightQuotes.Length)],
                new Color(1f, 1f, 1f, .75f));

            SoundManager.PlaySound("night");
            SoundManager.SetChannelVolume("Drums", 1f);
            GameManager.instance.ScreenShake(.25f, .25f, 50);

            stage = GAME_STAGE.DEFENSE;
            yield return(new WaitForEndOfFrame());

            while (Spawner.instance.enemiesAlive > 0)
            {
                yield return(new WaitForSeconds(1f));

                time++;
            }

            yield return(new WaitForSeconds(1f));

            float amount = 0f;
            while (amount < 1f)
            {
                amount = Mathf.Clamp(amount + Time.deltaTime, 0f, 1f);
                SetDarkness(amount);

                yield return(new WaitForEndOfFrame());
            }

            if (Spawner.instance.waveIndex == Spawner.instance.waves.Length)
            {
                EndGame(true);
            }

            UIManager.instance.Log(
                dayQuotes[Random.Range(0, dayQuotes.Length)],
                new Color(0f, 0f, 0f, 1f));
            SoundManager.PlaySound("day");
            SoundManager.SetChannelVolume("Drums", 0f);
        }
    }
    // Use this for initialization
    void Start()
    {
        isWhoTurn        = SIDE.P1_SIDE;
        gameStage        = GAME_STAGE.CHOOSE;
        chooseEnd        = 0;
        isSelectAttacker = false;
        isBlood          = false;
        isSkill6_3Used   = false;

        texture            = new Texture[MAX_CHARACTER_NUMBER];
        texture_d          = new Texture[MAX_CHARACTER_NUMBER];
        texture_name       = new Texture[MAX_CHARACTER_NUMBER];
        defaultPos         = new Vector3[MAX_CHARACTER_NUMBER];
        characterList      = new characterStatus[MAX_CHARACTER_NUMBER];
        curSelectCardIndex = 0;
        attackIndex        = -1;
        targetIndex        = -1;
        skillIndex         = 0;
        isPress            = false;
        pressTime          = 0f;
        isShowTime         = false;
        MainCamera         = GameObject.Find("Main Camera");

        initAllCharacterStatus();

        skillArray = new skill[] {
            skill1_1, skill1_2, skill1_3,
            skill2_1, skill2_2, skill2_3,
            skill3_1, skill3_2, skill3_3,
            skill4_1, skill4_2, skill4_3,
            skill5_1, skill5_2, skill5_3,
            skill6_1, skill6_2, skill6_3,
            skill7_1, skill7_2, skill7_3
        };


        //初始默认位置和图案
        for (int n = 0; n < MAX_CHARACTER_NUMBER; n++)
        {
            texture[n]               = (Texture)Resources.Load("card" + (n + 1));
            texture_d[n]             = (Texture)Resources.Load("card" + (n + 1) + "_d");
            texture_name[n]          = (Texture)Resources.Load("name" + (n + 1));
            defaultPos [n]           = new Vector3(-7.5f + n * 2.5f, 0f, 0f);
            characterList [n].curPos = defaultPos[n];
        }


        cardObject        = GameObject.FindGameObjectsWithTag("Card");
        endTurnButtonObj  = GameObject.Find("EndTurnButton");
        selectBoardObject = GameObject.Find("SelectBoard");
        bloodObject       = GameObject.Find("Blood");
        text                   = GameObject.Find("TurnText").GetComponent <Text> ();
        text.text              = "";
        skillButtonsObject     = GameObject.Find("SkillButtons");
        skillButtonsDefaultPos = skillButtonsObject.transform.position;
        hideSkillButtons();
        fireObject   = GameObject.Find("fire");
        skillButton1 = GameObject.Find("Skill1");
        skillButton2 = GameObject.Find("Skill2");
        skillButton3 = GameObject.Find("Skill3");

        int i = 0;

        foreach (GameObject c in cardObject)
        {
            i = int.Parse(c.name.Substring(4, 1));
            c.transform.position = defaultPos[i - 1];
            c.GetComponent <Renderer>().material.mainTexture = texture[i - 1];
            c.GetComponentInChildren <Transform>().Find("Name").GetComponent <Renderer>().material.mainTexture = texture_name[i - 1];
        }

        updateCardValue();

        selectCard(curSelectCardIndex);
    }