public void Update() { if (!ScenesController.SControl.isLocked) { for (int i = 0; i < 5; i++) { PlayerSpell[i].Update(); } InteruptUpdate(); DispelUpdate(); PC_Picking(); buffSystem.SortBuffs(); buffSystem.ActivateBuffs(); if (!GameFinished) { spellCastHandler.Update(); } myCaster.ManaRegeneration(); if ((troopsHandler.SoldierAmount <= 0) && (!GameFinished)) { Lose(); } if (GameFinished) { if (isVictorious) { if (!itemReceived) { GameEnding(); } else { ExperienceTransfer(); } if (expTranferDone) { if (endingTimer-- <= 0) { chosenAdventure.progress++; ClearCore(); chosenAccount.SaveAccData(); if (chosenAdventure.progress >= WorldMapCore.WMCore.adventureInfoHandler.adventureInfo[chosenAdventure.ID].encountersInfo.amount) { chosenAccount.myProgress.missionComplete[chosenAdventure.ID] = true; ScenesController.SControl.SwitchScene("AdventureScene"); } else { ScenesController.SControl.SwitchScene("DescendantScene"); } } } } else { GameEnding(); if (!itemReceived) { ClearCore(); ScenesController.SControl.SwitchScene("DescendantScene"); } } } else { myEnemy.Update(); _mytip.transform.GetChild(0).GetComponent <Text>().text = recount.GetRecount(); } } }
private void ExperienceTransfer() { if (myTip == null) { myTip = Tooltip.Show("", 0, new Vector3(0, 0, 0), false); for (int i = 0; i < tempRecount.amount; i++) { conversionValue[i] = Mathf.Max(8, Mathf.Min(tempRecount.entry[i].healing, tempRecount.entry[i].overhealing / 3) / 120); } ClearScene(); } myTip.UpdateContent(tempRecount.GetRecount(true) + "\n\n Experience gained: " + tempExpGained + "\n\nLevel: " + chosenAccount.level + "\n" + chosenAccount.GetExpString() + chosenAccount.tempLevelUp); if (!overhealingPenaltyDone) // zmniejszamy healing o nasz overhealing { int doneamount = 0; for (int i = 0; i < tempRecount.amount; i++) { if (tempRecount.entry[i].overhealing > 0) { if (tempRecount.entry[i].healing > 0) { tempRecount.entry[i].healing = Mathf.Max(tempRecount.entry[i].healing - conversionValue[i], 0); tempRecount.entry[i].overhealing = Mathf.Max(tempRecount.entry[i].overhealing - conversionValue[i] * 3, 0); } else { tempRecount.entry[i].overhealing = 0; } } else { doneamount++; } } if (doneamount >= tempRecount.amount) { overhealingPenaltyDone = true; conversionValue2 = Mathf.Max(8, tempRecount.entry[actualEntry].healing / 120); } } else if (!expTranferDone) { if (actualEntry < tempRecount.amount) { if (tempRecount.entry[actualEntry].healing > 0) { tempRecount.entry[actualEntry].healing = Mathf.Max(tempRecount.entry[actualEntry].healing - conversionValue2, 0); tempExpGained += conversionValue2; chosenAccount.Exp += conversionValue2; } else { actualEntry++; if (actualEntry < tempRecount.amount) { conversionValue2 = Mathf.Max(8, tempRecount.entry[actualEntry].healing / 120); } } } else { expTranferDone = true; } } }