コード例 #1
0
        public int GetLevels(StatsEnum stat, CharacterClassEnum characterClass)
        {
            BuildLookup();

            float[] levels = _lookupTable[characterClass][stat];
            return(levels.Length);
        }
コード例 #2
0
 public void CreateTeamProfile(string name, HouseEnum house, CharacterClassEnum cast, string image)
 {
     if (!_dataService.IsFileExist(FileNames.TeamProfile))
     {
         TeamProfile profile = new TeamProfile(name, house, cast, image);
         _dataService.CreateFile(FileNames.TeamProfile);
         SaveToFile(profile);
     }
 }
コード例 #3
0
        public Item GetSpecificItem(int tier, ItemTypeEnum itemType)
        {
            ItemRarityEnum     itemRarity = GetRarity();
            CharacterClassEnum usableFor  = GetClass();
            string             statsForQr = GetStats(GetStatPool(tier, itemRarity), itemType);
            var nameandimage = GetNameAndImage(usableFor, itemType);

            return(new Item(tier, itemRarity, itemType, usableFor, statsForQr, GetNameAndImage(usableFor, itemType)));
        }
コード例 #4
0
 /// <summary>
 /// Creates a new item.
 /// </summary>
 /// <param name="tier"></param>
 /// <param name="rarity"></param>
 /// <param name="itemType"></param>
 /// <param name="usableFor"></param>
 /// <param name="statsFromQR"> atk,def,stamina,crit,dodge</param>
 public Item(int tier, ItemRarityEnum rarity, ItemTypeEnum itemType, CharacterClassEnum usableFor, string statsFromQR, int ad = 999)
 {
     Id          = GenerateId();
     Tier        = tier;
     Rarity      = rarity;
     ItemType    = itemType;
     UsableFor   = usableFor;
     StatsFromQR = statsFromQR;
     Ad          = ad;
     SetStats(statsFromQR);
 }
コード例 #5
0
        public int GetRequiredExperienceForLevel(
            int currentLevel,
            CharacterClassEnum characterClass
            )
        {
            CharacterStat charStat      = characterStats.First(x => x.characterClass == characterClass);
            int           baseExpPoints = charStat.baseExperiencePoints;
            float         modif         = baseExpPoints * charStat.experienceModifier;

            return((int)Mathf.Round(
                       (currentLevel * baseExpPoints) * (modif)
                       ));
        }
コード例 #6
0
        public float GetStat(StatsEnum stat, CharacterClassEnum characterClass, int level)
        {
            BuildLookup();

            Dictionary <StatsEnum, float[]> levelInfos = _lookupTable[characterClass];

            float[] levels = levelInfos[stat];

            if (levels.Length < level)
            {
                return(0f);
            }

            return(levels[level - 1]);
        }
コード例 #7
0
        private int GetNameAndImage(CharacterClassEnum usableFor, ItemTypeEnum itemType)
        {
            if (usableFor == CharacterClassEnum.Mage && itemType == ItemTypeEnum.Armor)
            {
                int rnd = _random.Next(0, ItemNameHandler.MageArmors.Count);
                return(rnd);
            }
            else if (usableFor == CharacterClassEnum.Mage && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                int rnd = _random.Next(0, ItemNameHandler.MageWeapons.Count);
                return(rnd);
            }
            else if (usableFor == CharacterClassEnum.Rogue && itemType == ItemTypeEnum.Armor)
            {
                int rnd = _random.Next(0, ItemNameHandler.RogueArmors.Count);
                return(rnd);
            }
            else if (usableFor == CharacterClassEnum.Rogue && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                int rnd = _random.Next(0, ItemNameHandler.RogueWeapons.Count);
                return(rnd);
            }
            else if (usableFor == CharacterClassEnum.Warrior && itemType == ItemTypeEnum.Armor)
            {
                int rnd = _random.Next(0, ItemNameHandler.WarriorArmors.Count);
                return(rnd);
            }
            else if (usableFor == CharacterClassEnum.Warrior && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                int rnd = _random.Next(0, ItemNameHandler.WarriorWeapons.Count);
                return(rnd);
            }
            else if (itemType == ItemTypeEnum.Ring)
            {
                int rnd = _random.Next(0, ItemNameHandler.Rings.Count);
                return(rnd);
            }
            else if (itemType == ItemTypeEnum.Neck)
            {
                int rnd = _random.Next(0, ItemNameHandler.Necks.Count);
                return(rnd);
            }

            return(999);
        }
コード例 #8
0
        // =====================================> [ GETTERS BASED ON CURRENT CHARACTER STATS CALCULATIONS ] <================================

        // HEALTH
        public float GetHealth(
            int currentLevel,
            CharacterClassEnum characterClass,
            CharacterRaceEnum characterRace,
            CharacterGenderEnum characterGender
            )
        {
            float healthPoints = 0f;

            // Evaluate base health per class and current level
            foreach (CharacterStat stat in characterStats)
            {
                if (stat.characterClass == characterClass)
                {
                    healthPoints = stat.initialHealthPoints + (currentLevel * stat.levelMultiplier);
                }
            }

            // Add bonus based on race
            foreach (CharacterRace race in characterRaces)
            {
                if (race.characterRace == characterRace)
                {
                    healthPoints += race.bonusHealthPoints;
                }
            }

            // Add bonus based on gender
            foreach (CharacterGender gender in characterGenders)
            {
                if (gender.characterGender == characterGender)
                {
                    healthPoints += gender.bonusHealthPoints;
                }
            }

            // Finally, return constructed health points
            return(healthPoints);
        }
コード例 #9
0
 public static string GetName(CharacterClassEnum el)
 {
     return(_EnumToName[el]);
 }
コード例 #10
0
        public static string GetItemName(ItemRarityEnum rarity, ItemTypeEnum itemType, CharacterClassEnum usableFor, int ad)
        {
            if (rarity == ItemRarityEnum.Legendary && itemType == ItemTypeEnum.Ring)
            {
                return(Legends[ad].Item1);
            }
            else if (rarity == ItemRarityEnum.Legendary && itemType == ItemTypeEnum.Neck)
            {
                return(Legends[ad].Item1);
            }
            else if (rarity == ItemRarityEnum.Legendary && itemType == ItemTypeEnum.RHand)
            {
                return(Legends[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Mage && itemType == ItemTypeEnum.Armor)
            {
                return(MageArmors[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Mage && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                return(MageWeapons[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Rogue && itemType == ItemTypeEnum.Armor)
            {
                return(RogueArmors[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Rogue && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                return(RogueWeapons[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Warrior && itemType == ItemTypeEnum.Armor)
            {
                return(WarriorArmors[ad].Item1);
            }
            else if (usableFor == CharacterClassEnum.Warrior && (itemType == ItemTypeEnum.LHand || itemType == ItemTypeEnum.RHand))
            {
                return(WarriorWeapons[ad].Item1);
            }
            else if (itemType == ItemTypeEnum.Ring)
            {
                return(Rings[ad].Item1);
            }
            else if (itemType == ItemTypeEnum.Neck)
            {
                return(Necks[ad].Item1);
            }

            return(string.Empty);
        }