示例#1
0
 public void giveXP(int xp)
 {
     this.xp += xp;
     if (this.xp >= xpOfNextLevel)
     {
         //TODOjrob make some fancy effect on levelup
         stats.setStatValue(StatType.Life, stats.getStatValue(StatType.Life) + 1);
         stats.setStatValue(StatType.Special, stats.getStatValue(StatType.Special) + 1);
         xpOfNextLevel = Game.instance.xpManager.getXPToLevelUp(++level);
         unusedAttr   += 5;
     }
 }
示例#2
0
        public Color getPrimaryColor()
        {
            const byte color     = 230;
            const byte antiColor = color - 50;

            if (stats.getStatValue(StatType.AbilityLevel) > 0)
            {
                return(new Color(color, antiColor, color));
            }
            if (stats.getStatValue(StatType.EnhancedDamage) > 0 ||
                stats.getStatValue(StatType.LifeSteal) > 0)
            {
                return(new Color(color, antiColor, antiColor));
            }
            if (stats.getStatValue(StatType.Defense) > 0 ||
                stats.getStatValue(StatType.EnhancedDefense) > 0 ||
                stats.getStatValue(StatType.DamageReduction) > 0)
            {
                return(new Color(antiColor, color, antiColor));
            }
            if (stats.getStatValue(StatType.Magic) > 0 ||
                stats.getStatValue(StatType.Speed) > 0 ||
                stats.getStatValue(StatType.Speed) > 0)
            {
                return(new Color(antiColor, antiColor, color));
            }
            if (stats.getStatValue(StatType.Knockback) > 0 ||
                stats.getStatValue(StatType.MinDamage) > 0 ||
                stats.getStatValue(StatType.MaxDamage) > 0)
            {
                return(new Color(color, color, color));
            }
            return(new Color(color, color, color));
        }
示例#3
0
        private static StatSet rollStats(Being being, ItemClass itemClass, ItemType type)
        {
            StatSet stats = new StatSet();

            #region Calculate how many random stat modifiers there shall be
            int randomStatItems = 0;
            switch (itemClass)
            {
            case ItemClass.Normal:
                randomStatItems++;
                break;

            case ItemClass.Magic:
                randomStatItems += 1 + rand.Next() % 2;
                break;

            case ItemClass.Rare:
                randomStatItems += 2 + rand.Next() % 2;
                break;

            case ItemClass.Unique:
                randomStatItems += 4 + rand.Next() % 6;
                break;
            }
            #endregion

            if (type == ItemType.Chest)
            {
                stats.addStatValue(StatType.Defense, 20 + rand.Next() % 10);
            }
            if (type == ItemType.Head)
            {
                stats.addStatValue(StatType.Defense, 5 + rand.Next() % 5);
            }
            if (type == ItemType.Legs)
            {
                stats.addStatValue(StatType.Defense, 7 + rand.Next() % 10);
            }
            if (type == ItemType.MainHand)
            {
                stats.addStatValue(StatType.MinDamage, 2);
                stats.addStatValue(StatType.MaxDamage, 2);
            }
            switch (itemClass)
            {
            case ItemClass.Normal:
                break;

            case ItemClass.Magic:
                if (stats.getStatValue(StatType.Defense) > 0)
                {
                    stats.setStatValue(StatType.Defense, stats.getStatValue(StatType.Defense) + 3);
                }
                break;

            case ItemClass.Rare:
                if (stats.getStatValue(StatType.Defense) > 0)
                {
                    stats.setStatValue(StatType.Defense, stats.getStatValue(StatType.Defense) * 2);
                }
                break;

            case ItemClass.Unique:
                if (stats.getStatValue(StatType.Defense) > 0)
                {
                    stats.setStatValue(StatType.Defense, stats.getStatValue(StatType.Defense) * 3);
                }
                break;
            }
            #region Add that random amount of modifiers
            for (; randomStatItems > 0; randomStatItems--)
            {
                //get random modifier
                StatType[] values = (Stats.StatType[])Enum.GetValues(typeof(StatType));
                StatType   stat   = values[rand.Next(0, values.Length)];

                stats.addStatValue(stat, (int)(1 + rand.Next() % 8));
            }
            #endregion
            return(stats);
        }
示例#4
0
        private static String rollName(Being being, ItemClass itemClass, ItemType type, StatSet stats)
        {
            String name = "";

            if (type == ItemType.Chest)
            {
                name = "Plate";
            }
            if (type == ItemType.Head)
            {
                name = "Helmet";
            }
            if (type == ItemType.Legs)
            {
                name = "Leggings";
            }
            if (type == ItemType.MainHand)
            {
                name = "Sword";
            }
            if (type == ItemType.OffHand)
            {
                name = "Trinket";
            }
            switch (itemClass)
            {
            case ItemClass.Normal:
                break;

            case ItemClass.Magic:
            case ItemClass.Rare:
                foreach (Stats.StatType stat in Enum.GetValues(typeof(Stats.StatType)))
                {
                    if (stats.getStatValue(stat) > 0)
                    {
                        switch (stat)
                        {
                        case StatType.DamageReduction:
                            name += " of the m*******t";
                            break;

                        case StatType.Agility:
                            name += " of the fox";
                            break;

                        case StatType.Defense:
                            name += " of the bear";
                            break;

                        case StatType.EnhancedDamage:
                            name = "Slayer's " + name;
                            break;

                        case StatType.Life:
                            name = "Life giving " + name;
                            break;

                        case StatType.LifeSteal:
                            name = "Vampire's " + name;
                            break;

                        case StatType.Speed:
                            name = "Pheonix's " + name;
                            break;

                        case StatType.Strength:
                            name = "Vin Diesel's " + name;
                            break;

                        default:
                            name += " of " + stat.ToString();
                            break;
                        }
                    }
                }
                break;

            case ItemClass.Unique:
                name += " of Doom";
                break;
            }
            return(name);
        }