Пример #1
0
        public string CreateCompetitor(string pName, BlossomData.BlossomGrowth pGrowth, float pMinStrength, float pMaxStrength, float pMinAgility,
                                       float pMaxAgility, float pMinIntellect, float pMaxIntellect, float pMinCharm, float pMaxCharm, int pMinAffection = -1, int pMaxAffection = 1)
        {
            //CREATE BLOSSOM
            BlossomData newBlossom = Instantiate(BlossomPrefab, transform);

            newBlossom.ID = "Blossom" + CurrentBlossomID.ToString();
            string ID = newBlossom.ID;

            CurrentBlossomID += 1;
            //newBlossom.Age = pAge;
            newBlossom.Name    = pName;
            newBlossom.Parent1 = string.Empty;
            newBlossom.Parent2 = string.Empty;
            newBlossom.Growth  = pGrowth;
            newBlossom.Energy  = 2;

            //STATS
            //Agility
            newBlossom.Agility.Value = Random.Range(pMinAgility, pMaxAgility);

            //Strength
            newBlossom.Strength.Value = Random.Range(pMinStrength, pMaxStrength);

            //Intellect
            newBlossom.Intellect.Value = Random.Range(pMinIntellect, pMaxIntellect);

            //Charm
            newBlossom.Charm.Value = Random.Range(pMinCharm, pMaxCharm);

            newBlossom.CurrentLevel = string.Empty;

            newBlossom.transform.position = Vector2.zero;

            //ExistingBlossoms.Add(newBlossom.ID);

            BlossomColor[]           allColors = Resources.LoadAll <BlossomColor>("BlossomColors");
            Dictionary <string, int> colorPool = new Dictionary <string, int>();

            foreach (BlossomColor color in allColors)
            {
                colorPool.Add(color.Name, color.Probability);
            }
            newBlossom.Color = WeightedRandomizer.From(colorPool).TakeOne();


            if (pMinAffection != -1 && pMaxAffection != -1 && pMaxAffection >= pMinAffection)
            {
                int affection = Random.Range(pMinAffection, pMaxAffection);
                newBlossom.Affection = affection;
            }
            //DESTROY OBJECT, THIS WILL SAVE DATA
            Destroy(newBlossom.gameObject);
            return(ID);
        }
        public void SetAppearance(BlossomData.BlossomGrowth pGrowth, string pColor)
        {
            Anim = GetComponent <Animator>();
            AnimatorOverrideController aoc = new AnimatorOverrideController(Anim.runtimeAnimatorController);

            aoc.name = "Blossom_Override";
            AnimationClip[] clips = Anim.runtimeAnimatorController.animationClips;

            //List<KeyValuePair<AnimationClip, AnimationClip>> overrides = new List<KeyValuePair<AnimationClip, AnimationClip>>();

            foreach (AnimationClip clip in clips)
            {
                string        path    = "BlossomColors/Blossom_" + pColor + "/" + pGrowth.ToString() + "/" + clip.name;
                AnimationClip newClip = Resources.Load(path) as AnimationClip;
                aoc[clip.name] = newClip;
                //                print(clip.name + newClip.name);
            }
            //   aoc.ApplyOverrides(overrides);
            Anim.runtimeAnimatorController = aoc;
        }
Пример #3
0
    private void StartRace()
    {
        int i = 0;

        foreach (KeyValuePair <string, float> competitor in BlossomCompetitionManager.Instance.CurrentResults)
        {
            float       speed                    = MapRangeExtension.MapRange(competitor.Value, 0, BlossomCompetitionManager.Instance.GetCompetitionMaxScore(), 0.75f, 1.25f);
            DOTweenPath path                     = Blossoms[i].GetComponent <DOTweenPath>();
            path.GetTween().timeScale            = speed * 0.25f;
            BlossomAppearance         appearance = Blossoms[i].GetComponent <BlossomAppearance>();
            string                    id         = competitor.Key;
            string                    growth     = DialogueLua.GetVariable(id + "Growth").AsString;
            string                    color      = DialogueLua.GetVariable(id + "Color").AsString;
            BlossomData.BlossomGrowth growthData = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), growth);
            appearance.SetAppearance(growthData, color);
            string name = DialogueLua.GetVariable(id + "Name").AsString;
            Blossoms[i].GetComponentInChildren <TextMeshProUGUI>().text = name;
            i++;
            path.DOPlay();
        }
    }
        public void ApplyPersistentData(string pID = null)
        {
            if (pID == null)
            {
                return;
            }
            TargetData    = GetComponent <BlossomData>();
            VariableName  = pID;
            TargetData.ID = pID;
            //STATS
            TargetData.Agility.Value         = DialogueLua.GetVariable(VariableName + "AgilityValue").asFloat;
            TargetData.Agility.Potential     = DialogueLua.GetVariable(VariableName + "AgilityPotential").asFloat;
            TargetData.Agility.LearningSpeed = DialogueLua.GetVariable(VariableName + "AgilityLearningSpeed").asFloat;

            TargetData.Strength.Value         = DialogueLua.GetVariable(VariableName + "StrengthValue").asFloat;
            TargetData.Strength.Potential     = DialogueLua.GetVariable(VariableName + "StrengthPotential").asFloat;
            TargetData.Strength.LearningSpeed = DialogueLua.GetVariable(VariableName + "StrengthLearningSpeed").asFloat;

            TargetData.Intellect.Value         = DialogueLua.GetVariable(VariableName + "IntellectValue").asFloat;
            TargetData.Intellect.Potential     = DialogueLua.GetVariable(VariableName + "IntellectPotential").asFloat;
            TargetData.Intellect.LearningSpeed = DialogueLua.GetVariable(VariableName + "IntellectLearningSpeed").asFloat;

            TargetData.Charm.Value         = DialogueLua.GetVariable(VariableName + "CharmValue").asFloat;
            TargetData.Charm.Potential     = DialogueLua.GetVariable(VariableName + "CharmPotential").asFloat;
            TargetData.Charm.LearningSpeed = DialogueLua.GetVariable(VariableName + "CharmLearningSpeed").asFloat;


            //FAMILY
            if (DialogueLua.DoesVariableExist(VariableName + "Parent1"))
            {
                TargetData.Parent1 = DialogueLua.GetVariable(VariableName + "Parent1").asString;
            }
            if (DialogueLua.DoesVariableExist(VariableName + "Parent2"))
            {
                TargetData.Parent2 = DialogueLua.GetVariable(VariableName + "Parent2").asString;
            }

            TargetData.ChildAmount = DialogueLua.GetVariable(VariableName + "ChildAmount").asInt;
            TargetData.Children.Clear();
            for (int i = 0; i < TargetData.ChildAmount; i++)
            {
                TargetData.Children.Add(DialogueLua.GetVariable(VariableName + "Child" + i).asString);
            }

            TargetData.Name = DialogueLua.GetVariable(VariableName + "Name").asString;
            TargetData.Age  = DialogueLua.GetVariable(VariableName + "Age").asInt;

            BlossomData.BlossomGrowth growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(VariableName + "Growth").asString);
            TargetData.Growth = growth;

            TargetData.Affection    = DialogueLua.GetVariable(VariableName + "Affection").asInt;
            TargetData.Energy       = DialogueLua.GetVariable(VariableName + "Energy").asInt;
            TargetData.Pregnant     = DialogueLua.GetVariable(VariableName + "Pregnant").asBool;
            TargetData.DaysPregnant = DialogueLua.GetVariable(VariableName + "DaysPregnant").asInt;
            TargetData.BabyID       = DialogueLua.GetVariable(VariableName + "BabyID").asString;
            TargetData.PetToday     = DialogueLua.GetVariable(VariableName + "PetToday").asBool;
            TargetData.TalkedToday  = DialogueLua.GetVariable(VariableName + "TalkedToday").asBool;
            TargetData.FedToday     = DialogueLua.GetVariable(VariableName + "FedToday").asBool;
            TargetData.Hungry       = DialogueLua.GetVariable(VariableName + "Hungry").asBool;
            TargetData.Happiness    = DialogueLua.GetVariable(VariableName + "Happiness").asInt;



            TargetData.TraitAmount = DialogueLua.GetVariable(VariableName + "TraitAmount").asInt;
            TargetData.Traits.Clear();


            for (int i = 0; i < TargetData.TraitAmount; i++)
            {
                string traitName = DialogueLua.GetVariable(VariableName + "Trait" + i).asString;
                TargetData.Traits.Add(Resources.Load <Trait>("BlossomTraits/" + traitName));
            }

            TargetData.CurrentLevel = DialogueLua.GetVariable(VariableName + "CurrentLevel").asString;
            Vector2 newPos = new Vector2();

            newPos.x = DialogueLua.GetVariable(VariableName + "CurrentX").asFloat;
            newPos.y = DialogueLua.GetVariable(VariableName + "CurrentY").asFloat;
            TargetData.transform.position = newPos;

            if (GetComponent <Usable>() != null)
            {
                GetComponent <Usable>().overrideName = TargetData.Name;
            }
            gameObject.name = "Blossom " + TargetData.name;

            TargetData.Color = DialogueLua.GetVariable(VariableName + "Color").asString;

            TargetData.ForSale = DialogueLua.GetVariable(VariableName + "ForSale").asBool;

            if (DialogueLua.DoesVariableExist(VariableName + "Color"))
            {
                GetComponent <BlossomAppearance>().SetAppearance(TargetData.Growth, TargetData.Color);
            }


            if (DialogueLua.DoesVariableExist(VariableName + "HutName"))
            {
                TargetData.HutName     = DialogueLua.GetVariable(VariableName + "HutName").AsString;
                TargetData.HutPosition = new Vector2(DialogueLua.GetVariable(VariableName + "HutX").asFloat, DialogueLua.GetVariable(VariableName + "HutY").asFloat);
                TargetData.Hut         = BlossomManager.Instance.GetHutObject(TargetData.HutName);
            }
        }
Пример #5
0
        public string CreateRandomBlossom(string pName, BlossomData.BlossomGrowth pGrowth, float pPotentialMin, float pPotentialMax, float pSpeedMin, float pSpeedMax, int pAge, int pTraitMinAmount, int pTraitMaxAmount, string pCurrentLevel, Vector2 pCurrentPosition, bool pOwned = false)
        {
            //CREATE BLOSSOM
            BlossomData newBlossom = Instantiate(BlossomPrefab, transform);

            newBlossom.ID = "Blossom" + CurrentBlossomID.ToString();
            string ID = newBlossom.ID;

            CurrentBlossomID += 1;
            //newBlossom.Age = pAge;
            newBlossom.Name    = pName;
            newBlossom.Parent1 = string.Empty;
            newBlossom.Parent2 = string.Empty;
            newBlossom.Growth  = pGrowth;
            newBlossom.Energy  = 2;

            //STATS
            //Agility
            newBlossom.Agility.Value         = 0;
            newBlossom.Agility.Potential     = Random.Range(pPotentialMin, pPotentialMax);
            newBlossom.Agility.LearningSpeed = Random.Range(pSpeedMin, pSpeedMax);
            //Strength
            newBlossom.Strength.Value         = 0;
            newBlossom.Strength.Potential     = Random.Range(pPotentialMin, pPotentialMax);
            newBlossom.Strength.LearningSpeed = Random.Range(pSpeedMin, pSpeedMax);
            //Intellect
            newBlossom.Intellect.Value         = 0;
            newBlossom.Intellect.Potential     = Random.Range(pPotentialMin, pPotentialMax);
            newBlossom.Intellect.LearningSpeed = Random.Range(pSpeedMin, pSpeedMax);
            //Charm
            newBlossom.Charm.Value         = 0;
            newBlossom.Charm.Potential     = Random.Range(pPotentialMin, pPotentialMax);
            newBlossom.Charm.LearningSpeed = Random.Range(pSpeedMin, pSpeedMax);


            //TRAITS
            Trait[] allTraits = Resources.LoadAll <Trait>("BlossomTraits");
            Dictionary <Trait, int> traitPool = new Dictionary <Trait, int>();

            foreach (Trait trait in allTraits)
            {
                traitPool.Add(trait, trait.Probabilty);
            }
            int rand = Random.Range(pTraitMinAmount, pTraitMinAmount);

            for (int i = 0; i < rand; i++)
            {
                Trait trait = WeightedRandomizer.From(traitPool).TakeOne();
                if (!newBlossom.Traits.Contains(trait))
                {
                    newBlossom.Traits.Add(trait);
                }
            }

            newBlossom.CurrentLevel       = pCurrentLevel;
            newBlossom.transform.position = pCurrentPosition;

            if (pOwned == true)
            {
                OwnedBlossoms.Add(newBlossom.ID);
            }
            ExistingBlossoms.Add(newBlossom.ID);


            BlossomColor[]           allColors = Resources.LoadAll <BlossomColor>("BlossomColors");
            Dictionary <string, int> colorPool = new Dictionary <string, int>();

            foreach (BlossomColor color in allColors)
            {
                colorPool.Add(color.Name, color.Probability);
            }
            newBlossom.Color = WeightedRandomizer.From(colorPool).TakeOne();

            //DESTROY OBJECT
            Destroy(newBlossom.gameObject);
            return(ID);
        }
Пример #6
0
        void CheckPregnancy()
        {
            if (Data.Growth != BlossomData.BlossomGrowth.Adult)
            {
                return;
            }
            if (Data.Pregnant == true)
            {
                return;
            }
            if (BlossomManager.Instance.HutAmount >= BlossomManager.Instance.MaxHuts)
            {
                return;
            }
            bool pregnantChance = false;

            int rand = Random.Range(0, 101);

            if (rand <= 15)
            {
                pregnantChance = true;
            }

            if (pregnantChance == true)
            {
                //CHECK COMPATIBLE BLOSSOMS
                List <string> compatibleBlossoms = new List <string>();
                string        match = string.Empty;
                foreach (string blossom in BlossomManager.Instance.OwnedBlossoms)
                {
                    if (Data.ID == blossom)
                    {
                        continue;
                    }
                    if (Data.Parent1 == blossom)
                    {
                        continue;
                    }
                    if (Data.Parent2 == blossom)
                    {
                        continue;
                    }
                    BlossomData.BlossomGrowth growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(blossom + "Growth").asString);
                    print(growth.ToString());
                    if (growth != BlossomData.BlossomGrowth.Adult)
                    {
                        continue;
                    }
                    if (DialogueLua.GetVariable(blossom + "Pregnant").asBool == true)
                    {
                        continue;
                    }
                    compatibleBlossoms.Add(blossom);
                }
                if (compatibleBlossoms.Count > 0)
                {
                    rand  = Random.Range(0, compatibleBlossoms.Count - 1);
                    match = compatibleBlossoms[rand];
                }
                else
                {
                    print("no compat");
                }
                //IF MATCH FOUND
                if (match != string.Empty)
                {
                    Data.BabyID = BlossomManager.Instance.CreateChildBlossom(Data.ID, match);
                    PixelCrushers.MessageSystem.SendMessage(this, "PregnantBlossom", Data.ID);
                    string babyHut = BlossomManager.Instance.GetEmptyHut();
                    DialogueLua.SetVariable(babyHut + "Blossom", Data.BabyID);
                    DialogueLua.SetVariable(Data.BabyID + "HutX", DialogueLua.GetVariable(babyHut + "X").asFloat);
                    DialogueLua.SetVariable(Data.BabyID + "HutY", DialogueLua.GetVariable(babyHut + "Y").asFloat);
                    DialogueLua.SetVariable(Data.BabyID + "HutName", babyHut);
                    Data.Pregnant     = true;
                    Data.DaysPregnant = 0;
                    GetComponent <BlossomDataSaver>().OnRecordPersistentData();
                }
            }
        }
        public void Open(float pMinAgility, float pMaxAgility, float pMinStrength, float pMaxStrength, float pMinIntellect, float pMaxIntellect, float pMinCharm, float pMaxCharm, CompetitionTierSelectUI prevWindow, List <CompetitioniTier> pTiers, BlossomCompetition pCompetition)
        {
            BlossomDataSaver[] spawnedBlossoms = FindObjectsOfType <BlossomDataSaver>();
            foreach (BlossomDataSaver spawnedBlossom in spawnedBlossoms)
            {
                spawnedBlossom.OnRecordPersistentData();
            }

            BlossomSelectionUI[] children = BlossomContainer.GetComponentsInChildren <BlossomSelectionUI>();
            foreach (BlossomSelectionUI child in children)
            {
                Destroy(child.gameObject);
            }



            foreach (string blossom in BlossomManager.Instance.OwnedBlossoms)
            {
                float agility   = DialogueLua.GetVariable(blossom + "AgilityValue").asFloat;
                float strength  = DialogueLua.GetVariable(blossom + "StrengthValue").asFloat;
                float intellect = DialogueLua.GetVariable(blossom + "IntellectValue").asFloat;
                float charm     = DialogueLua.GetVariable(blossom + "CharmValue").asFloat;

                bool pregnant = DialogueLua.GetVariable(blossom + "Pregnant").asBool;
                bool hungry   = DialogueLua.GetVariable(blossom + "Hungry").asBool;

                float energy   = DialogueLua.GetVariable(blossom + "Energy").asFloat;
                bool  fatigued = energy <= 0 ? true : false;

                string name = DialogueLua.GetVariable(blossom + "Name").asString;

                BlossomData.BlossomGrowth growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(blossom + "Growth").asString);
                string color = DialogueLua.GetVariable(blossom + "Color").asString;
                Sprite portrait;
                if (growth == BlossomData.BlossomGrowth.Adult)
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
                    print("BlossomColors/" + color);
                }
                else
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
                }

                BlossomSelectionUI ui = Instantiate(BlossomUIPrefab, BlossomContainer);

                ui.SelectBtn.enabled = true;

                ui.BlossomNameText.text   = name;
                ui.BlossomPortrait.sprite = portrait;


                if (pMinAgility == -1 || pMaxAgility == -1)
                {
                    ui.AgilityAmtText.text = agility.ToString("F2") + " / N/A";
                }
                else
                {
                    ui.AgilityAmtText.text = agility.ToString("F2") + " / " + pMinAgility + "-" + pMaxAgility;
                    if (agility < pMinAgility || agility > pMaxAgility)
                    {
                        ui.SelectBtn.enabled    = false;
                        ui.AgilityAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.AgilityAmtText.color = new Color(0, 0.5f, 0);
                    }
                }


                if (pMinStrength == -1 || pMaxStrength == -1)
                {
                    ui.StrengthAmtText.text = strength.ToString("F2") + " / N/A";
                }
                else
                {
                    ui.StrengthAmtText.text = strength.ToString("F2") + " / " + pMinStrength + "-" + pMaxStrength;

                    if (strength < pMinStrength || strength > pMaxStrength)
                    {
                        ui.SelectBtn.enabled     = false;
                        ui.StrengthAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.StrengthAmtText.color = new Color(0, 0.5f, 0);
                    }
                }

                if (pMinIntellect == -1 || pMaxIntellect == -1)
                {
                    ui.IntellectAmtText.text = intellect.ToString("F2") + " / N/A";
                }
                else
                {
                    ui.IntellectAmtText.text = intellect.ToString("F2") + " / " + pMinIntellect + "-" + pMaxIntellect;

                    if (intellect < pMinIntellect || intellect > pMaxIntellect)
                    {
                        ui.SelectBtn.enabled      = false;
                        ui.IntellectAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.IntellectAmtText.color = new Color(0, 0.5f, 0);
                    }
                }


                if (pMinCharm == -1 || pMaxCharm == -1)
                {
                    ui.CharmAmtText.text = charm.ToString("F2") + " / N/A";
                }
                else
                {
                    ui.CharmAmtText.text = charm.ToString("F2") + " / " + pMinCharm + "-" + pMaxCharm;
                    if (charm < pMinCharm || charm > pMaxCharm)
                    {
                        ui.SelectBtn.enabled  = false;
                        ui.CharmAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.CharmAmtText.color = new Color(0, 0.5f, 0);
                    }
                }

                if (pregnant)
                {
                    ui.SelectBtn.enabled = false;

                    ui.PregnantIcon.enabled = true;
                }
                else
                {
                    ui.PregnantIcon.enabled = false;
                }

                if (hungry)
                {
                    ui.HungryIcon.enabled = true;
                }
                else
                {
                    ui.HungryIcon.enabled = false;
                }

                if (fatigued)
                {
                    ui.FatiguedIcon.enabled = true;
                }
                else
                {
                    ui.FatiguedIcon.enabled = false;
                }

                ui.SelectBtn.onClick.AddListener(
                    delegate()
                {
                    BlossomCompetitionManager.Instance.SetBlossom(blossom);
                    ShowConfirmationWindow();
                }
                    );
            }

            BackBtn.onClick.AddListener(
                delegate()
            {
                Close();
                prevWindow.Open(pTiers, pCompetition);
            }
                );

            GetComponent <WindowToggle>().Open();
        }
        public void Open(List <string> pResults, List <string> pBlossoms, int pRank, string pTitle = "", string pPrompt = "")
        {
            BlossomCompetition currentCompetition = BlossomCompetitionManager.Instance.CurrentCompetition;
            CompetitioniTier   currentTier        = BlossomCompetitionManager.Instance.CurrentTier;

            // BlossomColor[] allColors = Resources.LoadAll<BlossomColor>("BlossomColors");


            WinnerText.text = pResults[0];

            BlossomData.BlossomGrowth growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(pBlossoms[0] + "Growth").asString);
            string color = DialogueLua.GetVariable(pBlossoms[0] + "Color").asString;
            Sprite portrait;

            if (growth == BlossomData.BlossomGrowth.Adult)
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
            }
            else
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
            }

            WinnerImage.sprite = portrait;



            SecondText.text = pResults[1];

            growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(pBlossoms[1] + "Growth").asString);
            color  = DialogueLua.GetVariable(pBlossoms[2] + "Color").asString;

            if (growth == BlossomData.BlossomGrowth.Adult)
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
            }
            else
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
            }


            ThirdText.text = pResults[2];

            growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(pBlossoms[2] + "Growth").asString);
            color  = DialogueLua.GetVariable(pBlossoms[2] + "Color").asString;

            if (growth == BlossomData.BlossomGrowth.Adult)
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
            }
            else
            {
                portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
            }


            for (int i = 3; i < pResults.Count; i++)
            {
                GameObject result = Instantiate(ResultsPrefab, Content);

                growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(pBlossoms[i] + "Growth").asString);
                color  = DialogueLua.GetVariable(pBlossoms[i] + "Color").asString;

                if (growth == BlossomData.BlossomGrowth.Adult)
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
                }
                else
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
                }

                result.GetComponentInChildren <TextMeshProUGUI>().text = (i + 1) + ": " + pResults[i];
            }

            base.Open(pTitle, pPrompt);
            CloseButton.onClick.AddListener(
                delegate()
            {
                Continue(pRank);
            }
                );
        }
        public void Open(Stat.StatName pStat, TrainingProp pProp)
        {
            TitleText.text = pStat.ToString() + " Training: Select a Blossom";
            BlossomDataSaver[] spawnedBlossoms = FindObjectsOfType <BlossomDataSaver>();
            foreach (BlossomDataSaver spawnedBlossom in spawnedBlossoms)
            {
                spawnedBlossom.OnRecordPersistentData();
            }

            BlossomSelectionUI[] children = BlossomContainer.GetComponentsInChildren <BlossomSelectionUI>();
            foreach (BlossomSelectionUI child in children)
            {
                Destroy(child.gameObject);
            }

            ChosenProp = pProp;


            foreach (string blossom in BlossomManager.Instance.OwnedBlossoms)
            {
                BlossomController selectedBlossom = BlossomManager.Instance.GetSpawnedBlossom(blossom).GetComponent <BlossomController>();

                float agility          = DialogueLua.GetVariable(blossom + "AgilityValue").asFloat;
                float agilityPotential = selectedBlossom.GetTruePotential(Stat.StatName.Agility);


                float strength          = DialogueLua.GetVariable(blossom + "StrengthValue").asFloat;
                float strengthPotential = selectedBlossom.GetTruePotential(Stat.StatName.Strength);

                float intellect          = DialogueLua.GetVariable(blossom + "IntellectValue").asFloat;
                float intellectPotential = selectedBlossom.GetTruePotential(Stat.StatName.Intellect);

                float charm          = DialogueLua.GetVariable(blossom + "CharmValue").asFloat;
                float charmPotential = selectedBlossom.GetTruePotential(Stat.StatName.Charm);


                bool pregnant = DialogueLua.GetVariable(blossom + "Pregnant").asBool;
                bool hungry   = DialogueLua.GetVariable(blossom + "Hungry").asBool;

                float energy   = DialogueLua.GetVariable(blossom + "Energy").asFloat;
                bool  fatigued = energy <= 0 ? true : false;

                string name = DialogueLua.GetVariable(blossom + "Name").asString;

                BlossomData.BlossomGrowth growth = (BlossomData.BlossomGrowth)System.Enum.Parse(typeof(BlossomData.BlossomGrowth), DialogueLua.GetVariable(blossom + "Growth").asString);
                string color = DialogueLua.GetVariable(blossom + "Color").asString;
                Sprite portrait;
                if (growth == BlossomData.BlossomGrowth.Adult)
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).AdultPortrait;
                    print("BlossomColors/" + color);
                }
                else
                {
                    portrait = Resources.Load <BlossomColor>("BlossomColors/" + color).BabyPortrait;
                }

                BlossomSelectionUI ui = Instantiate(BlossomUIPrefab, BlossomContainer);

                ui.SelectBtn.enabled = true;

                ui.BlossomNameText.text   = name;
                ui.BlossomPortrait.sprite = portrait;


                switch (pStat)
                {
                case Stat.StatName.Null:
                    Debug.LogError("No Stat Specified for this prop");
                    return;

                case Stat.StatName.Agility:
                    if (agility >= agilityPotential)
                    {
                        ui.SelectBtn.enabled    = false;
                        ui.AgilityAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.AgilityAmtText.color = Color.blue;
                    }
                    break;

                case Stat.StatName.Strength:
                    if (strength >= strengthPotential)
                    {
                        ui.SelectBtn.enabled     = false;
                        ui.StrengthAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.StrengthAmtText.color = Color.blue;
                    }
                    break;

                case Stat.StatName.Charm:
                    if (charm >= charmPotential)
                    {
                        ui.SelectBtn.enabled  = false;
                        ui.CharmAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.CharmAmtText.color = Color.blue;
                    }
                    break;

                case Stat.StatName.Intellect:
                    if (intellect >= intellectPotential)
                    {
                        ui.SelectBtn.enabled  = false;
                        ui.CharmAmtText.color = Color.red;
                    }
                    else
                    {
                        ui.IntellectAmtText.color = Color.blue;
                    }
                    break;
                }

                ui.AgilityAmtText.text   = agility.ToString("F2") + " / " + agilityPotential.ToString("F2");
                ui.StrengthAmtText.text  = strength.ToString("F2") + " / " + strengthPotential.ToString("F2");
                ui.IntellectAmtText.text = intellect.ToString("F2") + " / " + intellectPotential.ToString("F2");
                ui.CharmAmtText.text     = charm.ToString("F2") + " / " + charmPotential.ToString("F2");

                if (pregnant)
                {
                    ui.SelectBtn.enabled = false;

                    ui.PregnantIcon.enabled = true;
                }
                else
                {
                    ui.PregnantIcon.enabled = false;
                }

                if (hungry)
                {
                    ui.SelectBtn.enabled  = false;
                    ui.HungryIcon.enabled = true;
                }
                else
                {
                    ui.HungryIcon.enabled = false;
                }

                if (fatigued)
                {
                    ui.SelectBtn.enabled    = false;
                    ui.FatiguedIcon.enabled = true;
                }
                else
                {
                    ui.FatiguedIcon.enabled = false;
                }

                ui.SelectBtn.onClick.AddListener(
                    delegate()
                {
                    ChosenBlossom = blossom;
                    ShowConfirmationWindow();
                }
                    );
            }

            GetComponent <WindowToggle>().Open();
        }