private void SetExperience(float experience)
        {
            m_CurrentExperience = experience;

            int   level;
            int   expForNextLevel;
            float levelProgress;

            HeroUtility.CalculateHeroLevel(m_CurrentExperience, out level, out expForNextLevel, out levelProgress);

            classText.text = Hero.GetClassProgress(level);
            levelProgressFill.localScale = new Vector3(levelProgress, levelProgressFill.localScale.y, levelProgressFill.localScale.z);
        }
예제 #2
0
        public static HeroInstance GenerateHero(int level, HeroType heroType)
        {
            HeroInstance newHero = new HeroInstance();

            newHero.DisplayName = NameDatabase.GetHeroName();
            newHero.Experience  = HeroUtility.GetTotalExperienceRequiredForLevel(level);
            newHero.HeroType    = heroType;

            for (int i = 0; i < Random.Range(0, 4); i++)
            {
                newHero.Traits.Add(DataFetcher.HeroTraits.traits.GetRandom());
            }

            return(newHero);
        }
예제 #3
0
        public static HeroInstance GenerateHero(QuestSourceFaction faction, int level, bool addToRoster)
        {
            HeroInstance newHero = new HeroInstance();

            newHero.DisplayName = NameDatabase.GetHeroName();
            //newHero.Nickname = UnityEngine.Random.Range(0, 4) == 0 ? NameDatabase.GetCompoundName() : "";
            newHero.Class          = EnumUtility.GetRandomEnumValue <HeroClasses>();
            newHero.Experience     = HeroUtility.GetTotalExperienceRequiredForLevel(level);
            newHero.EquipmentLevel = UnityEngine.Random.Range(1, 10);
            newHero.HeroState      = HeroStates.IDLE;

            Dictionary <QuestTypes, float> tempQuestValues = new Dictionary <QuestTypes, float>();
            float tempQuestValuesTotal = 0;

            foreach (QuestTypes questType in Enum.GetValues(typeof(QuestTypes)))
            {
                tempQuestValues.Add(questType, UnityEngine.Random.Range(0f, 10f));
                tempQuestValuesTotal = tempQuestValues[questType];
            }
            foreach (QuestTypes questType in Enum.GetValues(typeof(QuestTypes)))
            {
                newHero.QuestTypePreferences[questType] = (tempQuestValues[questType] / tempQuestValuesTotal).Map(0, 1, 0.6f, 1.25f);
            }

            float offset = 0.25f;

            newHero.QuestPrefRewardGold  = UnityEngine.Random.Range(0f, 1f);
            newHero.QuestPrefRewardItem  = 1 - newHero.QuestPrefRewardGold;
            newHero.QuestPrefRewardGold += offset;
            newHero.QuestPrefRewardItem += offset;


            if (addToRoster)
            {
                HeroManager.AddHero(newHero, faction);
            }

            return(newHero);
        }
예제 #4
0
 private void CalculateLevels()
 {
     HeroUtility.CalculateHeroLevel(m_Experience, out m_Level, out m_ExperienceForNextLevel, out m_LevelProgress);
 }