示例#1
0
 public Gem(int _strength, int _agility, int _vitality, GEM_QUALITY _gemQuality)
 {
     this.strength   = _strength;
     this.agility    = _agility;
     this.vitality   = _vitality;
     this.gemQuality = _gemQuality;
 }
示例#2
0
        public static void InsertGem(string[] inputTokens)
        {
            string  weaponName  = inputTokens[1];
            IWeapon weapon      = weapons.First(x => x.Name == weaponName);
            int     socketIndex = int.Parse(inputTokens[2]);

            string[] gemTokens        = inputTokens[3].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            var      qualityStringArr = gemTokens[0].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            var      gemQualityString = qualityStringArr[0];
            var      gemTypeString    = qualityStringArr[1];

            GEM_QUALITY quality = (GEM_QUALITY)Enum.Parse(typeof(GEM_QUALITY), gemQualityString);

            Type gemType = Type.GetType("InfernoInfinity.Models.Gems." + gemTypeString);

            if (gemType == null)
            {
                throw new ArgumentException("Invalid Gem Type!");
            }

            if (!typeof(IGem).IsAssignableFrom(gemType))
            {
                throw new ArgumentException("Invalid Gem!");
            }

            IGem gem = (IGem)Activator.CreateInstance(gemType, new object[] { quality });

            weapon.ModifyGemAtIndex(gem, socketIndex);
        }
示例#3
0
 public Amethyst(GEM_QUALITY _gemQuality)
     : base(STRENGTH, AGILITY, VITALITY, _gemQuality)
 {
 }
示例#4
0
 public Emerald(GEM_QUALITY _gemQuality)
     : base(STRENGTH, AGILITY, VITALITY, _gemQuality)
 {
 }
示例#5
0
 public Ruby(GEM_QUALITY _gemQuality)
     : base(STRENGTH, AGILITY, VITALITY, _gemQuality)
 {
 }