Esempio n. 1
0
    //grabs all relevent UI components on children
    void SetUI()
    {
        GameObject heightholder = transform.GetChild(0).gameObject;

        _heightText = heightholder.transform.GetChild(0).GetComponent <Text>();

        _timeline = transform.GetChild(1).gameObject;
        _timeRef  = _timeline.GetComponent <BattleTimeLine>();
        _timeRef.Init(this);

        _shortHolder = transform.GetChild(2).gameObject;
        _shortPort   = _shortHolder.transform.GetChild(0).GetComponent <Image>();
        _shortHealth = _shortHolder.transform.GetChild(1).GetComponent <Text>();
        _shortMana   = _shortHolder.transform.GetChild(2).GetComponent <Text>();
        _shortHolder.SetActive(false);

        _optionsRef = transform.GetChild(3).GetComponent <CharacterOptions>();
        _optionsRef.Init();

        _detailHolder = transform.GetChild(4).GetComponent <CharacterDescription>();
        _detailHolder.Init();

        _endingHolder = transform.GetChild(5).GetComponent <BattleEnding>();
        _endingHolder.Init();

        _initialized = true;

        _timeRef.ContinueFight();
    }
Esempio n. 2
0
    // ------ Public Functions ------

    // ------ Private Functions ------
    public IEnumerator Battle(Character c1, Character c2)
    {
        // Initialization
        turns  = 0;
        state  = BattleState.InGame;
        ending = BattleEnding.idle;
        for (int i = 0; i < uim.GetEventBtnsNumber(); i += 1)
        {
            uim.RemoveEventBtnListeners(i);
            int index = i;
            uim.AddEventBtnListener(i, delegate { OnSelect(index); });
        }
        uim.SetEventInfo("战斗开始\n");
        uim.AddEventDividingLine();

        // Game main iteration
        while (true)
        {
            turns += 1;

            /// Player turn
            yield return(StartCoroutine(Turn(c1, c2)));

            // Check whether the battle is over
            CheckBattleIsOver(c1, c2);
            if (state == BattleState.GameOver)
            {
                break;
            }

            /// Enemy turn
            yield return(StartCoroutine(Turn(c2, c1)));

            // Check whether the battle is over
            CheckBattleIsOver(c1, c2);
            if (state == BattleState.GameOver)
            {
                break;
            }
        }

        // Game end
        if (winner == c1)
        {
            ending = BattleEnding.Character1Win;
        }
        else if (winner == c2)
        {
            ending = BattleEnding.Character2Win;
        }
        uim.SetEventInfo("获胜者 : " + winner.name + "\n", true);
    }
Esempio n. 3
0
    // Update is called once per frame
    /// <summary>
    /// Update this instance.
    /// updates the position, money and stats if new game
    /// deals with checking the expereience and also changes the stats and level on battle end
    /// if the level is increased
    ///
    /// </summary>
    void Update()
    {
        GameObject objGame = GameObject.FindGameObjectWithTag("Constant");

        GameObject[]      enemiesObject = GameObject.FindGameObjectsWithTag("Enemy2");
        StoredInformation storedIN      = objGame.GetComponent <StoredInformation>();

        /*if(nextLevel >=storedIN.nextLevel){
         *      nextLevel = storedIN.nextLevel;
         * }*/
        if (Application.loadedLevelName == "NewGame")
        {
            initiliseConstantVariables();

            position.x = 1133.947f;
            position.y = 377.0055f;
            position.z = 3224.786f;

            storedIN.positionOnScreen = position;
            level               = 1;
            experience          = 100;
            storedIN.experience = 100;
        }
        if ((storedIN.nextLevel == 0) || (nextLevel == 0))
        {
            level                   = 1;
            experience              = 100;
            storedIN.experience     = 100;
            storedIN.nextLevelvalue = experience * 1.2f;
            storedIN.nextLevel      = (int)(experience * 1.2f);

            nextLevelvalue = experience * 1.2f;
            nextLevel      = (int)(experience * 1.2f);
        }



        if (Application.loadedLevelName == "Battle Simulation")
        {
            GameObject[] player2Tag = GameObject.FindGameObjectsWithTag("Player2");
            BattleEnding battle     = player2Tag[0].GetComponent <BattleEnding>();
            if (check < battle.myexp)
            {
                check     = battle.myexp;
                checkloop = false;
            }
            if ((enemiesObject.Length == 0) &&
                (!checkloop) &&
                (!battle.addFlag))
            {
                checkloop           = true;
                experience          = battle.myexp;
                storedIN.experience = battle.myexp;
                if (experience == 0)
                {
                    experience = check;
                }
                int count = 0;
                if (battle.myexp > battle.oldLevel)
                {
                    storedIN.level += 1;

                    storedIN.nextLevelvalue = battle.oldLevel * 1.5f;
                    storedIN.nextLevel      = (int)(battle.oldLevel * 1.5f);

                    nextLevelvalue = battle.oldLevel * 1.5f;
                    nextLevel      = (int)(battle.oldLevel * 1.5f);

                    while (storedIN.nextLevelvalue < battle.myexp)
                    {
                        storedIN.nextLevelvalue = storedIN.nextLevelvalue * 1.5f;
                        storedIN.nextLevel      = (int)(storedIN.nextLevel * 1.5f);

                        nextLevelvalue = nextLevelvalue * 1.5f;
                        nextLevel      = (int)(nextLevel * 1.5f);
                        count++;
                    }

                    int cont = 0;
                    while (cont <= count)
                    {
                        for (int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++)
                        {
                            storedIN._primaryAttributeValues[cnt] = (int)((float)storedIN._primaryAttributeValues[cnt] * 1.2f);
                        }

                        for (int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++)
                        {
                            storedIN._vitalValue[cnt] = (int)((float)storedIN._vitalValue[cnt] * 1.2f);
                        }

                        for (int cnt = 0; cnt < Enum.GetValues(typeof(AttackName)).Length; cnt++)
                        {
                            storedIN._attackValue[cnt] = (int)((float)storedIN._attackValue[cnt] * 1.2f);
                        }

                        for (int cnt = 0; cnt < Enum.GetValues(typeof(ManaName)).Length; cnt++)
                        {
                            storedIN._manaValue[cnt] = (int)((float)storedIN._manaValue[cnt] * 1.2f);
                        }

                        for (int cnt = 0; cnt < Enum.GetValues(typeof(DefenceName)).Length; cnt++)
                        {
                            storedIN._defenceValue[cnt] = (int)((float)storedIN._defenceValue[cnt] * 1.2f);
                        }
                        cont++;
                    }
                }
            }
        }
        if (/*(enemiesObject.Length>0)*/ (Application.loadedLevelName == "Game") && (checkloop))
        {
            checkloop = false;
        }
    }