public void SwitchInVault(int rosterPos, int vaultPos) { PlayerRosterMeta temp = roster[rosterPos]; roster[rosterPos] = vault[vaultPos]; vault[vaultPos] = temp; }
public static float[] returnLvlUpdates(MonsterMeta meta, PlayerRosterMeta monster) { /* * The normal range is .1 increase with a 20% differential. * All stats = stat * .1 * 20% differential * Every point of envy adds a point to the differential in the upwards direction */ float envy_mod = ((meta.strengths[0] == elements.Wind) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Wind) ? .1f : 0) + ((meta.strengths[0] == elements.Lightning) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Lightning) ? -.1f : 0); float lust_mod = ((meta.strengths[0] == elements.Magma) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Magma) ? .1f : 0) + ((meta.strengths[0] == elements.Disease) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Disease) ? -.1f : 0); float greed_mod = ((meta.strengths[0] == elements.Lightning) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Lightning) ? .1f : 0) + ((meta.strengths[0] == elements.Sea) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Sea) ? -.1f : 0); float wrath_mod = ((meta.strengths[0] == elements.Fight) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Fight) ? .1f : 0); float pride_mod = ((meta.strengths[0] == elements.Sea) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Sea) ? .1f : 0) + ((meta.strengths[0] == elements.Magma) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Magma) ? -.1f : 0); float gluttony_mod = ((meta.strengths[0] == elements.Disease) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Disease) ? .1f : 0) + ((meta.strengths[0] == elements.Nature) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Nature) ? -.1f : 0); float sloth_mod = ((meta.strengths[0] == elements.Nature) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Nature) ? .1f : 0) + ((meta.strengths[0] == elements.Wind) || (meta.strengths.Length > 1 && meta.strengths[1] == elements.Wind) ? -.1f : 0); float min = .8f + monster.envy / 10; float max = 1.2f + monster.envy / 10; float lust = (1 + meta.lust) * .1f * UnityEngine.Random.Range(min, max); float greed = (1 + meta.greed) * .1f * UnityEngine.Random.Range(min, max); float wrath = (1 + meta.wrath) * .1f * UnityEngine.Random.Range(min, max); float pride = (1 + meta.pride) * .1f * UnityEngine.Random.Range(min, max); float gluttony = (1 + meta.gluttony) * .1f * UnityEngine.Random.Range(min, max); float sloth = (1 + meta.sloth) * .1f * UnityEngine.Random.Range(min, max); float envy = (1 + meta.envy) * .1f * UnityEngine.Random.Range(min, max); return(new float[] { lust, greed, wrath, pride, gluttony, sloth, envy }); }
public PlayerRosterMeta(PlayerRosterMeta meta) { this.name = meta.name; this.nickname = meta.nickname; this.lvl = meta.lvl; this.curHealth = meta.curHealth; this.maxHealth = meta.maxHealth; this.exp = meta.exp; List <string> compSkills = new List <string>(); foreach (string skill in meta.skills) { compSkills.Add(skill); } this.lust = meta.lust; this.greed = meta.greed; this.wrath = meta.wrath; this.pride = meta.pride; this.gluttony = meta.gluttony; this.sloth = meta.sloth; this.envy = meta.envy; this.gluttony_bonus = meta.gluttony_bonus; this.skills = compSkills.ToArray(); }
public static PlayerRosterMeta[] returnTestRoster(Glossary glossy) { PlayerRosterMeta monster1 = MonsterMeta.returnMonster(glossy.GetMonsterMain("Vapreaze").meta, 3, false); monster1.nickname = "Six"; //PlayerRosterMeta monster2 = MonsterMeta.returnMonster(glossy.GetMonsterMain("Octam").meta, 4); return(new PlayerRosterMeta[] { monster1 }); }
private IEnumerator WaitForShifting(PlayerRosterMeta abbvMeta, int exp) { yield return(new WaitUntil(() => !BoardManager.instance.IsThinking())); yield return(new WaitForSeconds(.25f)); ShowLevelUpScreen(abbvMeta, exp); }
public PlayerRosterMeta toAbbrev() { PlayerRosterMeta meta = new PlayerRosterMeta(); meta.name = name; meta.lvl = lvl; meta.exp = exp; meta.curHealth = currHealth; meta.maxHealth = mxHealth; meta.skills = skills; return(meta); }
/* * TODO: * Generate Monster given monster name and level * Add a function that returns a float[] with the level updates for the monster */ public static PlayerRosterMeta returnMonster(MonsterMeta meta, int lvl, bool wild) { PlayerRosterMeta newMonster = meta.toAbbrev(); List <String> skills = new List <string>(); for (int i = 1; i <= lvl; i++) { float[] updates = returnLvlUpdates(meta, newMonster); newMonster.lust += updates[0] * (wild ? .85f : 1f); newMonster.greed += updates[1] * (wild ? .85f : 1f); newMonster.wrath += updates[2] * (wild ? .85f : 1f); newMonster.pride += updates[3] * (wild ? .85f : 1f); newMonster.gluttony += updates[4] * (wild ? .85f : 1f); newMonster.sloth += updates[5] * (wild ? .85f : 1f); newMonster.envy += updates[6] * (wild ? .85f : 1f); newMonster.gluttony_bonus += newMonster.gluttony + .55f; if (newMonster.gluttony_bonus >= 1) { newMonster.maxHealth += (int)newMonster.gluttony_bonus; newMonster.gluttony_bonus = newMonster.gluttony_bonus - ((int)newMonster.gluttony_bonus); } foreach (lvlUpSkills skill in meta.skillsGainedOnLvlUp) { if (skill.lvl == i) { skills.Add(skill.skill); while (skills.Count > 4) { skills.RemoveAt(UnityEngine.Random.Range(0, skills.Count)); } } } // Level 1 monsters don't have any exp if (i > 1) { int[] lvlExp = CalcLvl(newMonster, meta.lvlSpeed); newMonster.exp += lvlExp[2]; } } newMonster.lvl = lvl; newMonster.curHealth = newMonster.maxHealth; string[] monsterSkills = skills.ToArray(); GameUtilities.ShuffleArray(monsterSkills); newMonster.skills = monsterSkills; return(newMonster); }
public IEnumerator IncrementLvlUpTxt(PlayerRosterMeta meta, int[] lvlInfoAfter, float[] increases, int healthInc) { for (float i = 1; i < 101; i++) { GameObject.Find("HealthTxt").GetComponent <Text>().text = "Health: " + meta.maxHealth.ToString() + " (<color=#ff0000>+" + ((i / 100f) * healthInc) + "</color>)"; GameObject.Find("ExpTxt").GetComponent <Text>().text = "Exp: " + meta.exp.ToString() + " (<color=#0000ff>" + ((i / 100f) * (lvlInfoAfter[2] - lvlInfoAfter[1])).ToString() + "</color>)"; GameObject.Find("Stat01Txt").GetComponent <Text>().text = "Lust: " + meta.lust.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[0]).ToString("0.00") + "</color>)"; GameObject.Find("Stat02Txt").GetComponent <Text>().text = "Greed: " + meta.greed.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[1]).ToString("0.00") + "</color>)"; GameObject.Find("Stat03Txt").GetComponent <Text>().text = "Wrath: " + meta.wrath.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[2]).ToString("0.00") + "</color>)"; GameObject.Find("Stat04Txt").GetComponent <Text>().text = "Pride: " + meta.pride.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[3]).ToString("0.00") + "</color>)"; GameObject.Find("Stat05Txt").GetComponent <Text>().text = "Glutt: " + meta.gluttony.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[4]).ToString("0.00") + "</color>)"; GameObject.Find("Stat06Txt").GetComponent <Text>().text = "Sloth: " + meta.sloth.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[5]).ToString("0.00") + "</color>)"; GameObject.Find("Stat07Txt").GetComponent <Text>().text = "Envy: " + meta.envy.ToString("0.00") + " (<color=#ff0000>+" + ((i / 100f) * increases[6]).ToString("0.00") + "</color>)"; yield return(new WaitForSeconds(.05f)); } yield return(null); }
public void UpdateExperience(MonsterMeta.lvlUpSpeed lvlUpSpeed, PlayerRosterMeta meta) { //Debug.Log("UpdateExperience"); //Debug.Log(meta.ToString()); this.lvlUpSpeed = lvlUpSpeed; this.meta = new PlayerRosterMeta(meta); //Returns [level, currentLvlExp, neededExp] int[] lvlCalc = MonsterMeta.CalcLvl(meta, lvlUpSpeed); meta.lvl = lvlCalc[0]; progress = lvlCalc[1]; MAX_EXP = lvlCalc[2]; gameObject.GetComponent <Image>().fillAmount = progress / (float)MAX_EXP; GameObject.Find("HLvlTxt").GetComponent <Text>().text = lvlCalc[0].ToString(); //Debug.Log("updateExp init: " + lvlCalc[0].ToString() + "/" + lvlCalc[1].ToString()); }
void populateCatchPanel(bool monsterDead, bool monsterEscape, PlayerRosterMeta monsterFaught) { Debug.Log("populateCatchPanel: " + monsterDead.ToString() + ":" + monsterEscape.ToString()); if (monsterDead) { GameObject.Find("CDead").SetActive(true); } else { GameObject.Find("CDead").SetActive(false); } if (monsterEscape) { GameObject.Find("CEscape").SetActive(true); } else { GameObject.Find("CEscape").SetActive(false); } AdventureMeta meta = BaseSaver.getAdventure(); Glossary glossy = PanelManager.instance.glossaryObj.GetComponent <Glossary>(); GameObject.Find("CImg").GetComponent <Image>().sprite = glossy.GetMonsterImage(monsterFaught.name); GameObject.Find("CName").GetComponent <Text>().text = monsterFaught.name; GameObject.Find("CHealth").GetComponent <Image>().fillAmount = (float)monsterFaught.curHealth / (float)monsterFaught.maxHealth; GameObject.Find("CHealthTxt").GetComponent <Text>().text = monsterFaught.curHealth.ToString() + "/" + monsterFaught.maxHealth.ToString(); GameObject.Find("Clvl").GetComponent <Text>().text = monsterFaught.lvl.ToString(); for (int i = 0; i < 4; i++) { if (monsterFaught.skills.Length > i) { GameObject.Find("CSk0" + (i + 1) + "C").GetComponent <Text>().text = monsterFaught.skills[i]; } else { GameObject.Find("CSk0" + (i + 1) + "C").SetActive(false); } } }
public static int getExperience(PlayerRosterMeta monster, bool wild) { float wildMonster = wild ? 1.15f : 1.7f; float lower = -75.3f + 66.84f * (float)Math.Exp(.137f * monster.lvl); float upper = -152.7f + 134f * (float)Math.Exp(.137f * monster.lvl); float pwrBns = (upper - lower) * (monster.getPower() > 100 ? 100 : (monster.getPower())) / 100; Debug.Log("lower: " + lower.ToString()); Debug.Log("upper: " + upper.ToString()); Debug.Log("pwrBns: " + pwrBns.ToString()); //float effortPoints = (monster.maxHealth + ((5 * Mathf.Pow(monster.lvl, 2)) / 3)) * 11; //float limPwr = monster.getPower() > 100 ? 99 : monster.getPower(); int retExp = (int)(lower + pwrBns); retExp = retExp < 1 ? 1 : retExp; Debug.Log("Exp Gained: " + retExp.ToString()); return(retExp); }
//Returns [level, currentLvlExp, neededExp] public static int[] CalcLvl(PlayerRosterMeta meta, lvlUpSpeed speed) { int cntExp = meta.exp; int thisLvl = 2; while (cntExp >= 0) { int neededExp = 0; switch (speed) { case lvlUpSpeed.VerySlow: if (thisLvl <= 15) { neededExp = (int)(Math.Pow(thisLvl, 3f) * (((thisLvl + 1) / 3 + 24) / 50)); } else if (15 < thisLvl && thisLvl <= 36) { neededExp = (int)(Math.Pow(thisLvl, 3f) * ((thisLvl + 14) / 50)); } else { neededExp = (int)(Math.Pow(thisLvl, 3f) * (((thisLvl) / 2 + 32) / 50)); } break; case lvlUpSpeed.Slow: neededExp = (int)(5 * Math.Pow(thisLvl, 3f) / 4); break; case lvlUpSpeed.MediumSlow: neededExp = (int)((6 * Math.Pow(thisLvl, 3f) / 5) - 15 * Math.Pow(thisLvl, 2f) + 100 * thisLvl - 140); break; case lvlUpSpeed.MediumFast: neededExp = (int)Math.Pow(thisLvl, 3f); break; case lvlUpSpeed.Fast: neededExp = (int)(4 * Math.Pow(thisLvl, 3f) / 5); break; case lvlUpSpeed.VeryFast: if (thisLvl <= 50) { neededExp = (int)((Math.Pow(thisLvl, 3f) * (100 - thisLvl)) / 50); } else if ((50 < thisLvl && thisLvl <= 68) || thisLvl > 98) { neededExp = (int)((Math.Pow(thisLvl, 3f) * (150 - thisLvl)) / 100); } else if (68 < thisLvl && thisLvl <= 98) { neededExp = (int)((Math.Pow(thisLvl, 3f) * ((1911 - 10 * thisLvl) / 3)) / 500); } break; } if (cntExp - neededExp < 0) { //Debug.Log("Returning CalcLvl from Monster Meta: " + thisLvl.ToString() + "/" + cntExp.ToString() + "/" + neededExp.ToString()); //Debug.Log(meta.ToString()); return(new int[] { thisLvl - 1, cntExp, neededExp }); } else { thisLvl++; cntExp -= neededExp; } } return(new int[] { 0, 0, 0 }); }
void loadRosterInfo(int clk) { currentRosterMonster = clk - 1; if (rosterNickname == null) { rosterNickname = GameObject.Find("LNickName"); } if (rosterEdit == null) { rosterEdit = GameObject.Find("NickNameEdit"); } if (rosterInput == null) { rosterInput = GameObject.Find("LNickNameInput"); } rosterInput.SetActive(false); AdventureMeta playerMeta = BaseSaver.getAdventure(); PlayerRosterMeta monsterMetaShort = playerMeta.roster[currentRosterMonster]; MonsterMeta monsterMetaLong = glossy.GetMonsterMain(monsterMetaShort.name).meta; int[] lvlInfo = MonsterMeta.CalcLvl(monsterMetaShort, monsterMetaLong.lvlSpeed); GameObject.Find("LImg").GetComponent <Image>().sprite = glossy.GetMonsterImage(monsterMetaShort.name); GameObject.Find("Llvl").GetComponent <Text>().text = lvlInfo[0].ToString(); GameObject.Find("LName").GetComponent <Text>().text = monsterMetaShort.name; rosterNickname.GetComponent <Text>().text = "\"" + monsterMetaShort.nickname + "\""; GameObject.Find("HealthTxt").GetComponent <Text>().text = "Health: " + monsterMetaShort.maxHealth.ToString(); GameObject.Find("ExpTxt").GetComponent <Text>().text = "Exp: " + monsterMetaShort.exp.ToString(); GameObject.Find("Stat01Txt").GetComponent <Text>().text = "Lust: " + monsterMetaShort.lust.ToString("0.00"); GameObject.Find("Stat02Txt").GetComponent <Text>().text = "Greed: " + monsterMetaShort.greed.ToString("0.00"); GameObject.Find("Stat03Txt").GetComponent <Text>().text = "Wrath: " + monsterMetaShort.wrath.ToString("0.00"); GameObject.Find("Stat04Txt").GetComponent <Text>().text = "Pride: " + monsterMetaShort.pride.ToString("0.00"); GameObject.Find("Stat05Txt").GetComponent <Text>().text = "Gluttony: " + monsterMetaShort.gluttony.ToString("0.00"); GameObject.Find("Stat06Txt").GetComponent <Text>().text = "Sloth: " + monsterMetaShort.sloth.ToString("0.00"); GameObject.Find("Stat07Txt").GetComponent <Text>().text = "Envy: " + monsterMetaShort.envy.ToString("0.00"); GameObject.Find("Stat08Txt").GetComponent <Text>().text = "Lrn: " + monsterMetaLong.lvlSpeed.ToString(); List <string> mSkills = new List <string>(monsterMetaShort.skills); List <SkillMeta> sMetas = new List <SkillMeta>(GameUtilities.parseSkills(monsterMetaShort.skills, glossy)); for (int i = 0; i < 2; i++) { if (monsterMetaLong.strengths.Length > i) { GameObject.Find("LType" + (i + 1).ToString() + "Txt").GetComponent <Text>().text = monsterMetaLong.strengths[i].ToString(); //GameObject.Find("LType" + (i + 1).ToString()).GetComponent<Image>().enabled = true; //GameObject.Find("LType" + (i+1).ToString()).GetComponent<Image>().sprite = glossy.getGemSprite(MonsterMeta.elementToGem(monsterMetaLong.strengths[i])); } else { //GameObject.Find("LType" + (i + 1).ToString()).GetComponent<Image>().enabled = false; GameObject.Find("LType" + (i + 1).ToString() + "Txt").GetComponent <Text>().text = ""; } } for (int i = 0; i < 4; i++) { if (mSkills.Count > i) { GameObject.Find("Sk0" + (i + 1) + "Res01Gem").GetComponent <Image>().enabled = true; GameObject.Find("Sk0" + (i + 1) + "Res02Gem").GetComponent <Image>().enabled = true; GameObject.Find("LSk0" + (i + 1) + "C").GetComponent <Text>().text = mSkills[i]; GameObject.Find("LSk0" + (i + 1) + "CDesc").GetComponent <Text>().text = PanelManager.getEffectsString(sMetas[i].effects); GameObject.Find("Sk0" + (i + 1) + "Res01Txt").GetComponent <Text>().text = sMetas[i].req1.req.ToString(); GameObject.Find("Sk0" + (i + 1) + "Res01Gem").GetComponent <Image>().sprite = glossy.getGemSprite(sMetas[i].req1.gem); GameObject.Find("Sk0" + (i + 1) + "Res02Txt").GetComponent <Text>().text = sMetas[i].req2.req.ToString(); GameObject.Find("Sk0" + (i + 1) + "Res02Gem").GetComponent <Image>().sprite = glossy.getGemSprite(sMetas[i].req2.gem); } else { GameObject.Find("LSk0" + (i + 1) + "C").GetComponent <Text>().text = ""; GameObject.Find("LSk0" + (i + 1) + "CDesc").GetComponent <Text>().text = ""; GameObject.Find("Sk0" + (i + 1) + "Res01Txt").GetComponent <Text>().text = ""; GameObject.Find("Sk0" + (i + 1) + "Res02Txt").GetComponent <Text>().text = ""; GameObject.Find("Sk0" + (i + 1) + "Res01Gem").GetComponent <Image>().enabled = false; GameObject.Find("Sk0" + (i + 1) + "Res02Gem").GetComponent <Image>().enabled = false; } } }
void moveLocation(int clk) { StopCoroutine(WaitForExit()); panelOpen = true; if (clk == -1) { notDeleting(); notSwapping(); if (currentLocation == Location.Main) { currentLocation = Location.None; clearAll(); openPnl.SetActive(true); StartCoroutine(WaitForExit()); } else if (currentLocation == Location.RosterInfo) { currentLocation = Location.Main; moveLocation(0); } else if (currentLocation == Location.Vault && vaultSwap) { notVaultSwapping(); notVaultDeleting(); vaultPnl.SetActive(true); rosterPnl.SetActive(false); } else { currentLocation = Location.Main; notVaultSwapping(); notVaultDeleting(); clearAll(); mainPnl.SetActive(true); } } else { switch (currentLocation) { case Location.Main: switch (clk) { case 0: currentLocation = Location.Roster; rosterPnl.SetActive(true); loadRoster(); break; case 1: currentLocation = Location.Vault; vaultPnl.SetActive(true); loadVault(); break; case 2: currentLocation = Location.Items; itemsPnl.SetActive(true); loadItems(); break; case 3: currentLocation = Location.Status; statusPnl.SetActive(true); break; case 4: currentLocation = Location.Glossary; glossaryPnl.SetActive(true); LoadGlossary(); break; default: currentLocation = Location.None; break; } break; case Location.Vault: if (vaultSwap) { AdventureMeta meta = BaseSaver.getAdventure(); meta.SwitchInVault(clk - 1, vaultPos); BaseSaver.putAdventure(meta); GameObject.FindWithTag("Player").GetComponent <PlayerMain>().playerMeta = meta; notVaultSwapping(); vaultPnl.SetActive(true); rosterPnl.SetActive(false); loadVault(); } break; case Location.Roster: if (!swapping && !deleting) { currentLocation = Location.RosterInfo; rosterInfoPnl.SetActive(true); loadRosterInfo(clk); } else if (swapping) { Debug.Log("Location.Roster: "); if (swapBuffer[0] == -1) { swapBuffer[0] = clk - 1; GameObject.Find("RosterPnl0" + clk).GetComponent <Outline>().effectColor = Color.red; GameObject.Find("RosterPnl0" + clk).GetComponent <Outline>().effectDistance = new Vector2(3, -3); //Debug.Log("swapBuffer[0]: " + swapBuffer[0].ToString()); } else if (swapBuffer[0] != clk - 1) { GameObject.Find("RosterPnl0" + (swapBuffer[0] + 1).ToString()).GetComponent <Outline>().effectColor = Color.black; GameObject.Find("RosterPnl0" + (swapBuffer[0] + 1).ToString()).GetComponent <Outline>().effectDistance = new Vector2(1, -1); swapBuffer[1] = clk - 1; //Debug.Log("swapBuffer[1]: " + swapBuffer[1].ToString()); AdventureMeta playerMeta = BaseSaver.getAdventure(); PlayerRosterMeta temp = new PlayerRosterMeta(playerMeta.roster[swapBuffer[0]]); playerMeta.roster[swapBuffer[0]] = new PlayerRosterMeta(playerMeta.roster[swapBuffer[1]]); playerMeta.roster[swapBuffer[1]] = temp; BaseSaver.putAdventure(playerMeta); GameObject.FindWithTag("Player").GetComponent <PlayerMain>().playerMeta = playerMeta; swapping = false; loadRoster(); } } else if (deleting) { if (deleteBuffer[0] == -1) { deleteBuffer[0] = clk - 1; GameObject.Find("RosterPnl0" + clk).GetComponent <Outline>().effectColor = Color.red; GameObject.Find("RosterPnl0" + clk).GetComponent <Outline>().effectDistance = new Vector2(3, -3); } else { GameObject.Find("RosterPnl0" + (deleteBuffer[0] + 1).ToString()).GetComponent <Outline>().effectColor = Color.black; GameObject.Find("RosterPnl0" + (deleteBuffer[0] + 1).ToString()).GetComponent <Outline>().effectDistance = new Vector2(1, -1); if (clk - 1 != deleteBuffer[0]) { notDeleting(); } else { AdventureMeta playerMeta = BaseSaver.getAdventure(); List <PlayerRosterMeta> roster = new List <PlayerRosterMeta>(playerMeta.roster); roster.RemoveAt(deleteBuffer[0]); if (playerMeta.vault.Length > 0) { roster.Add(playerMeta.vault[0]); playerMeta.vault = playerMeta.vault.Skip(1).ToArray(); } playerMeta.roster = roster.ToArray(); BaseSaver.putAdventure(playerMeta); notDeleting(); loadRoster(); } } } break; case Location.None: Debug.Log("Here None"); currentLocation = Location.Main; mainPnl.SetActive(true); break; default: break; } } }
public void LevelUp(PlayerRosterMeta abbvMeta, int exp) { StartCoroutine(WaitForShifting(abbvMeta, exp)); }
public void ShowLevelUpScreen(PlayerRosterMeta meta, int exp) { lvlUpPanel.SetActive(true); boardManager.SetActive(false); backgroundShift = shiftLvlUpBackgroundColors(); StartCoroutine(backgroundShift); Glossary glossy = PanelManager.instance.glossaryObj.GetComponent <Glossary>(); MonsterMeta fullMeta = glossy.GetMonsterMain(meta.name).meta; int[] lvlInfoBefore = MonsterMeta.CalcLvl(meta, fullMeta.lvlSpeed); meta.exp += exp; int[] lvlInfoAfter = MonsterMeta.CalcLvl(meta, fullMeta.lvlSpeed); List <string> newSkills = new List <string>(meta.skills); float[] increases = new float[] { 0, 0, 0, 0, 0, 0, 0 }; int lvlsGained = lvlInfoAfter[0] - lvlInfoBefore[0]; for (int i = 0; i < lvlsGained; i++) { float[] updates = MonsterMeta.returnLvlUpdates(fullMeta, meta); increases[0] += updates[0]; increases[1] += updates[1]; increases[2] += updates[2]; increases[3] += updates[3]; increases[4] += updates[4]; increases[5] += updates[5]; increases[6] += updates[6]; foreach (lvlUpSkills skill in fullMeta.skillsGainedOnLvlUp) { if (meta.lvl + i + 1 == skill.lvl) { newSkills.Add(skill.skill); } } } if (newSkills.Count > 4) { choosingSkill = true; GameObject.Find("NxtBtnTxt").GetComponent <Text>().text = "Toss"; GameObject.Find("WarningTxt").GetComponent <Text>().enabled = true; skillSelected = -1; } else { GameObject.Find("WarningTxt").GetComponent <Text>().enabled = false; } meta.lust += increases[0]; meta.greed += increases[1]; meta.wrath += increases[2]; meta.pride += increases[3]; meta.gluttony += increases[4]; meta.sloth += increases[5]; meta.envy += increases[6]; int healthInc = 0; meta.gluttony_bonus += (meta.gluttony + .45f) * lvlsGained; if (meta.gluttony_bonus >= 1) { healthInc = (int)meta.gluttony_bonus; meta.maxHealth += healthInc; meta.gluttony_bonus = meta.gluttony_bonus - ((int)meta.gluttony_bonus); } GameObject.Find("LImg").GetComponent <Image>().sprite = glossy.GetMonsterImage(meta.name); GameObject.Find("Llvl").GetComponent <Text>().text = lvlInfoAfter[0].ToString(); GameObject.Find("LName").GetComponent <Text>().text = meta.name; //GameObject.Find("HealthTxt").GetComponent<Text>().text = "Health: " + meta.maxHealth.ToString() + " (<color=#ff0000>+" + healthInc + "</color>)"; //GameObject.Find("ExpTxt").GetComponent<Text>().text = "Exp: " + meta.exp.ToString() + " (<color=#0000ff>" + (lvlInfoAfter[2] - lvlInfoAfter[1]).ToString() + "</color>)"; //GameObject.Find("Stat01Txt").GetComponent<Text>().text = "Lust: " + meta.lust.ToString("0.00") + " (<color=#ff0000>+" + increases[0].ToString("0.00") + "</color>)"; //GameObject.Find("Stat02Txt").GetComponent<Text>().text = "Greed: " + meta.greed.ToString("0.00") + " (<color=#ff0000>+" + increases[1].ToString("0.00") + "</color>)"; //GameObject.Find("Stat03Txt").GetComponent<Text>().text = "Wrath: " + meta.wrath.ToString("0.00") + " (<color=#ff0000>+" + increases[2].ToString("0.00") + "</color>)"; //GameObject.Find("Stat04Txt").GetComponent<Text>().text = "Pride: " + meta.pride.ToString("0.00") + " (<color=#ff0000>+" + increases[3].ToString("0.00") + "</color>)"; //GameObject.Find("Stat05Txt").GetComponent<Text>().text = "Gluttony: " + meta.gluttony.ToString("0.00") + " (<color=#ff0000>+" + increases[4].ToString("0.00") + "</color>)"; //GameObject.Find("Stat06Txt").GetComponent<Text>().text = "Sloth: " + meta.sloth.ToString("0.00") + " (<color=#ff0000>+" + increases[5].ToString("0.00") + "</color>)"; //GameObject.Find("Stat07Txt").GetComponent<Text>().text = "Envy: " + meta.envy.ToString("0.00") + " (<color=#ff0000>+" + increases[6].ToString("0.00") + "</color>)"; StartCoroutine(IncrementLvlUpTxt(meta, lvlInfoAfter, increases, healthInc)); GameObject.Find("Stat08Txt").GetComponent <Text>().text = "Lrn: " + fullMeta.lvlSpeed.ToString(); List <string> mSkills = new List <string>(meta.skills); //for (int i = 0; i < 4; i++){ // if (newSkills.Count > i) { // GameObject.Find("LSk0" + (i + 1) + "C").GetComponent<Text>().text = mSkills.Contains(newSkills[i]) ? newSkills[i] : "<color=#0000ff>" + newSkills[i] + "</color>"; // } else { // GameObject.Find("LSk0" + (i + 1) + "C").GetComponent<Text>().text = ""; // } //} //GameObject.Find("LSk05C").GetComponent<Text>().text = ""; loadLvlUpSkills(mSkills, newSkills); meta.skills = newSkills.ToArray(); meta.curHealth = meta.maxHealth; lastMeta = meta; //PanelManager.instance.updateCurrent(meta); }