예제 #1
0
    public void SwitchInVault(int rosterPos, int vaultPos)
    {
        PlayerRosterMeta temp = roster[rosterPos];

        roster[rosterPos] = vault[vaultPos];
        vault[vaultPos]   = temp;
    }
예제 #2
0
    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 });
    }
예제 #3
0
    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();
    }
예제 #4
0
    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 });
    }
예제 #5
0
    private IEnumerator WaitForShifting(PlayerRosterMeta abbvMeta, int exp)
    {
        yield return(new WaitUntil(() => !BoardManager.instance.IsThinking()));

        yield return(new WaitForSeconds(.25f));

        ShowLevelUpScreen(abbvMeta, exp);
    }
예제 #6
0
    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);
    }
예제 #7
0
    /*
     * 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);
    }
예제 #8
0
 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);
 }
예제 #9
0
    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());
    }
예제 #10
0
    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);
            }
        }
    }
예제 #11
0
    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);
    }
예제 #12
0
    //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 });
    }
예제 #13
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;
            }
        }
    }
예제 #14
0
    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;
            }
        }
    }
예제 #15
0
 public void LevelUp(PlayerRosterMeta abbvMeta, int exp)
 {
     StartCoroutine(WaitForShifting(abbvMeta, exp));
 }
예제 #16
0
    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);
    }