//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(); }
// ------ 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); }
// 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; } }