Пример #1
0
        public override void OnCast()
        {
            if (CheckSequence())
            {
                Caster.FixedParticles(0x376A, 9, 32, 5030, EffectLayer.Waist);
                Caster.PlaySound(0x101);

                Caster.PrivateOverheadMessage(MessageType.Regular, 1150, 1156017, Caster.NetState);  // *Your throw is enhanced by the Elemental Fury!*

                double skill = BaseSkillBonus;

                TimeSpan duration = TimeSpan.FromSeconds(skill);
                _MaxAdd = (int)(skill / 10) + Utility.RandomMinMax(-1, 0);

                Expires = DateTime.UtcNow + duration;
                BeginTimer();

                _Type = GetResistanceType(GetWeapon());

                BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.ElementalFury, 1156018, 1156019, duration, Caster, String.Format("{0}\t69\t{1}", _Type.ToString(), _MaxAdd.ToString())));
                //Each attack the caster deals with ~1_TYPE~ damage will add up to ~3_VAL~ damage to the Fury Pool. Once the Fury Pool
                //reaches ~2_VAL~ the throwing weapon will unleash the Elemental Fury.
            }

            FinishSequence();
        }
Пример #2
0
        public UberMercenaryStageFive()
        {
            Title            = "the Knight of Destiny";
            EvolutionMessage = "has attained a new level of combat";
            NextEpThreshold  = 7750000; EpMinDivisor = 160; EpMaxDivisor = 100;
            VirtualArmor     = 70;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                45, 45, 45, 45, 45
            };
            MaxDamages = new int[5] {
                50, 50, 50, 50, 50
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                45, 45, 45, 45, 45
            };
            MaxResistances = new int[5] {
                50, 50, 50, 50, 50
            };

            DamageMin = 1; DamageMax = 2; HitsMin = 100; HitsMax = 105;
            StrMin    = 15; StrMax = 16; DexMin = 15; DexMax = 16; IntMin = 15; IntMax = 16;
        }
Пример #3
0
        public HiryuStageThree()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 1250000; EpMinDivisor = 30; EpMaxDivisor = 20; DustMultiplier = 20;
            BaseSoundID      = 0x5A;
            BodyValue        = 5; VirtualArmor = 50;
            ControlSlots     = 4;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                100, 20, 20, 20, 20
            };
            MaxDamages = new int[5] {
                100, 20, 20, 20, 20
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                35, 35, 35, 35, 35
            };
            MaxResistances = new int[5] {
                35, 35, 35, 35, 35
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 40; DexMax = 40; IntMin = 40; IntMax = 40;
        }
Пример #4
0
        // Support for the old Aura permaiters
        public static void Aura(Mobile from, int min, int max, int type, int range, int poisons, string text)
        {
            ResistanceType rt = ResistanceType.Physical;
            Poison         p  = null;

            switch (type)
            {
            case 1: rt = ResistanceType.Fire; break;

            case 2: rt = ResistanceType.Cold; break;

            case 3: rt = ResistanceType.Poison; break;

            case 4: rt = ResistanceType.Energy; break;
            }

            switch (poisons)
            {
            case 1: p = Poison.Lesser; break;

            case 2: p = Poison.Regular; break;

            case 3: p = Poison.Greater; break;

            case 4: p = Poison.Deadly; break;

            case 5: p = Poison.Lethal; break;
            }

            Aura(from.Location, from.Map, from, min, max, rt, range, p, text, true, false, false, 0, 0);
        }
Пример #5
0
        private void DoAttack_Callback(object obj)
        {
            if (!this.Alive)
            {
                return;
            }

            object[] o   = obj as object[];
            Mobile   mob = o[0] as Mobile;
            int      hue = (int)o[1];

            ResistanceType type   = GetResistanceFromHue(hue);
            int            damage = Utility.RandomMinMax(60, 80);

            switch (type)
            {
            case ResistanceType.Physical: AOS.Damage(mob, this, damage, 100, 0, 0, 0, 0); break;

            case ResistanceType.Fire: AOS.Damage(mob, this, damage, 0, 100, 0, 0, 0); break;

            case ResistanceType.Cold: AOS.Damage(mob, this, damage, 0, 0, 100, 0, 0); break;

            case ResistanceType.Poison: AOS.Damage(mob, this, damage, 0, 0, 0, 100, 0); break;

            case ResistanceType.Energy: AOS.Damage(mob, this, damage, 0, 0, 0, 0, 100); break;
            }
        }
Пример #6
0
        public UberMercenaryStageSix()
        {
            Title            = "the Knight of Destiny";
            EvolutionMessage = "has attained mastery in combat!";
            NextEpThreshold  = 15000000; EpMinDivisor = 540; EpMaxDivisor = 480;
            VirtualArmor     = 80;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                60, 60, 60, 60, 60
            };
            MaxDamages = new int[5] {
                65, 65, 65, 65, 65
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                75, 75, 75, 75, 75
            };
            MaxResistances = new int[5] {
                80, 80, 80, 80, 80
            };

            DamageMin = 2; DamageMax = 4; HitsMin = 120; HitsMax = 125;
            StrMin    = 25; StrMax = 30; DexMin = 25; DexMax = 30; IntMin = 5; IntMax = 10;
        }
Пример #7
0
        public UberMercenaryStageThree()
        {
            Title            = "the Golden Knight";
            EvolutionMessage = "has attained a new level of combat";
            NextEpThreshold  = 1250000; EpMinDivisor = 30; EpMaxDivisor = 20;
            VirtualArmor     = 50;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                20, 20, 20, 20, 20
            };
            MaxDamages = new int[5] {
                25, 25, 25, 25, 25
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                20, 20, 20, 20, 20
            };
            MaxResistances = new int[5] {
                25, 25, 25, 25, 25
            };

            DamageMin = 1; DamageMax = 2; HitsMin = 100; HitsMax = 105;
            StrMin    = 15; StrMax = 16; DexMin = 15; DexMax = 16; IntMin = 15; IntMax = 16;
        }
Пример #8
0
        public RaelisDragonStageFive()
        {
            EvolutionMessage = "has evolved.";            //stage-5 Red Dragon
            NextEpThreshold  = 7750000; EpMinDivisor = 160; EpMaxDivisor = 40; DustMultiplier = 20;
            BodyValue        = 59;
            VirtualArmor     = 60;
            ControlSlots     = 4;
            MinTameSkill     = 113.9;
//			Hue = 0;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                100, 50, 50, 50, 50
            };
            MaxDamages = new int[5] {
                100, 50, 50, 50, 50
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                60, 60, 60, 60, 60
            };
            MaxResistances = new int[5] {
                60, 60, 60, 60, 60
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 20; DexMax = 20; IntMin = 120; IntMax = 120;
        }
Пример #9
0
        public RaelisDragonStageOne()
        {
            EvolutionMessage = "has evolved.";            //stage 1 - green
            NextEpThreshold  = 25000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;
            BaseSoundID      = 0xDB;
            BodyValue        = 733;
            ControlSlots     = 2;
            MinTameSkill     = 99.9;
            VirtualArmor     = 30;
//			Hue = Evo.Flags.kRandomHueFlag;
//			Hue = 0;

            DamagesTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinDamages = new int[1] {
                100
            };
            MaxDamages = new int[1] {
                100
            };

            ResistanceTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinResistances = new int[1] {
                15
            };
            MaxResistances = new int[1] {
                15
            };

            DamageMin = 11; DamageMax = 17; HitsMin = 200; HitsMax = 250;
            StrMin    = 296; StrMax = 325; DexMin = 56; DexMax = 75; IntMin = 76; IntMax = 96;
        }
Пример #10
0
        public UberMercenaryStageFour()
        {
            Title            = "the Blood Knight";
            EvolutionMessage = "has attained a new level of combat";
            NextEpThreshold  = 3750000; EpMinDivisor = 50; EpMaxDivisor = 40;
            VirtualArmor     = 60;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                30, 30, 30, 30, 30
            };
            MaxResistances = new int[5] {
                35, 35, 35, 35, 35
            };

            DamageMin = 2; DamageMax = 4; HitsMin = 150; HitsMax = 175;
            StrMin    = 100; StrMax = 105; DexMin = 55; DexMax = 65; IntMin = 15; IntMax = 16;
        }
Пример #11
0
        public RaelisDragonStageThree()
        {
            EvolutionMessage = "has evolved.";            //stage-3 stone gargoyle
            NextEpThreshold  = 175000; EpMinDivisor = 30; EpMaxDivisor = 20; DustMultiplier = 20;
            BaseSoundID      = 0x5A;
            ControlSlots     = 3;
            MinTameSkill     = 106.9;
            BodyValue        = 293;
            VirtualArmor     = 50;
//			Hue = 0;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                40, 40, 40, 40, 40
            };
            MaxResistances = new int[5] {
                40, 40, 40, 40, 40
            };

            DamageMin = 1; DamageMax = 1; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 10; DexMax = 10; IntMin = 20; IntMax = 20;
        }
Пример #12
0
        public LionStageOne()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 25000; EpMinDivisor = 35; EpMaxDivisor = 40; DustMultiplier = 20;
            BaseSoundID      = 0x4FD;
            BodyValue        = 201; ControlSlots = 2; MinTameSkill = 99.9; VirtualArmor = 30;

            DamagesTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinDamages = new int[1] {
                100
            };
            MaxDamages = new int[1] {
                100
            };
            Hue             = Utility.RandomList(1157, 1175, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165);
            ResistanceTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinResistances = new int[1] {
                15
            };
            MaxResistances = new int[1] {
                15
            };

            DamageMin = 11; DamageMax = 15; HitsMin = 150; HitsMax = 200;
            StrMin    = 200; StrMax = 250; DexMin = 95; DexMax = 105; IntMin = 80; IntMax = 100;
        }
Пример #13
0
        public RaelisDragonStageSix()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 15000000; EpMinDivisor = 540; EpMaxDivisor = 480; DustMultiplier = 20;
            BodyValue        = 46; VirtualArmor = 170;
            ControlSlots     = 6;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                75, 75, 75, 75, 75
            };
            MaxResistances = new int[5] {
                90, 90, 90, 90, 90
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 20; DexMax = 20; IntMin = 120; IntMax = 120;
        }
Пример #14
0
        public RaelisDragonStageFive()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 7750000; EpMinDivisor = 160; EpMaxDivisor = 40; DustMultiplier = 20;
            BodyValue        = 59; VirtualArmor = 70;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                100, 50, 50, 50, 50
            };
            MaxDamages = new int[5] {
                100, 50, 50, 50, 50
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                80, 80, 80, 80, 80
            };
            MaxResistances = new int[5] {
                80, 80, 80, 80, 80
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 20; DexMax = 20; IntMin = 120; IntMax = 120;
        }
Пример #15
0
        public RaelisDragonStageTwo()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 75000; EpMinDivisor = 20; EpMaxDivisor = 10; DustMultiplier = 20;
            BaseSoundID      = 219;
            BodyValue        = 89; VirtualArmor = 40;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                100, 25, 25, 25, 25
            };
            MaxDamages = new int[5] {
                100, 25, 25, 25, 25
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                20, 20, 20, 20, 20
            };
            MaxResistances = new int[5] {
                20, 20, 20, 20, 20
            };

            DamageMin = 1; DamageMax = 1; HitsMin = 500; HitsMax = 500;
            StrMin    = 200; StrMax = 200; DexMin = 20; DexMax = 20; IntMin = 30; IntMax = 30;
        }
Пример #16
0
        public RaelisDragonStageThree()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 175000; EpMinDivisor = 30; EpMaxDivisor = 20; DustMultiplier = 20;
            BaseSoundID      = 0x5A;
            BodyValue        = 0xCE; VirtualArmor = 50;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                40, 40, 40, 40, 40
            };
            MaxResistances = new int[5] {
                40, 40, 40, 40, 40
            };

            DamageMin = 1; DamageMax = 1; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 10; DexMax = 10; IntMin = 20; IntMax = 20;
        }
Пример #17
0
 public Exercise(string name, ResistanceType resistanceType, double resistanceUnit, IEnumerable <string>?tags = null)
 {
     Name           = name;
     ResistanceType = resistanceType;
     ResistanceUnit = resistanceUnit;
     Tags           = tags ?? new List <string>();
 }
        protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            ele.TryPathTo("Flags", true, out subEle);
            subEle.Value = MagicEffectFlags.ToString();

            ele.TryPathTo("BaseCost", true, out subEle);
            subEle.Value = BaseCost.ToString("G15");

            ele.TryPathTo("AssociatedItem", true, out subEle);
            AssociatedItem.WriteXML(subEle, master);

            ele.TryPathTo("MagicSchool", true, out subEle);
            subEle.Value = MagicSchool.ToString();

            ele.TryPathTo("ResistanceType", true, out subEle);
            subEle.Value = ResistanceType.ToString();

            ele.TryPathTo("Unknown", true, out subEle);
            subEle.Value = Unknown.ToString();

            WriteUnusedXML(ele, master);

            ele.TryPathTo("Light", true, out subEle);
            Light.WriteXML(subEle, master);

            ele.TryPathTo("ProjectileSpeed", true, out subEle);
            subEle.Value = ProjectileSpeed.ToString("G15");

            ele.TryPathTo("EffectShader", true, out subEle);
            EffectShader.WriteXML(subEle, master);

            ele.TryPathTo("ObjectDisplayShader", true, out subEle);
            ObjectDisplayShader.WriteXML(subEle, master);

            ele.TryPathTo("EffectSound", true, out subEle);
            EffectSound.WriteXML(subEle, master);

            ele.TryPathTo("BoltSound", true, out subEle);
            BoltSound.WriteXML(subEle, master);

            ele.TryPathTo("HitSound", true, out subEle);
            HitSound.WriteXML(subEle, master);

            ele.TryPathTo("AreaSound", true, out subEle);
            AreaSound.WriteXML(subEle, master);

            ele.TryPathTo("ConstantEffectEnchantmentFactor", true, out subEle);
            subEle.Value = ConstantEffectEnchantmentFactor.ToString("G15");

            ele.TryPathTo("ConstantEffectBarterFactor", true, out subEle);
            subEle.Value = ConstantEffectBarterFactor.ToString("G15");

            ele.TryPathTo("Archetype", true, out subEle);
            subEle.Value = Archetype.ToString();

            ele.TryPathTo("ActorValue", true, out subEle);
            subEle.Value = ActorValue.ToString();
        }
Пример #19
0
        public HiryuStageOne()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 25000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;
            BaseSoundID      = 0x4FD;
            BodyValue        = 52; ControlSlots = 2; MinTameSkill = 99.9; VirtualArmor = 30;

            DamagesTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinDamages = new int[1] {
                100
            };
            MaxDamages = new int[1] {
                100
            };

            ResistanceTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinResistances = new int[1] {
                15
            };
            MaxResistances = new int[1] {
                15
            };

            DamageMin = 11; DamageMax = 15; HitsMin = 150; HitsMax = 200;
            StrMin    = 200; StrMax = 250; DexMin = 95; DexMax = 105; IntMin = 80; IntMax = 100;
        }
Пример #20
0
        public RaelisDragonStageSeven()
        {
            Title            = "The Ancient Dragon";
            EvolutionMessage = "has evolved to its highest form and is now an Ancient Dragon";
            NextEpThreshold  = 0; EpMinDivisor = 740; EpMaxDivisor = 660; DustMultiplier = 20;
            BaseSoundID      = 362;
            BodyValue        = 197; ControlSlots = 6; VirtualArmor = 270;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                100, 75, 75, 75, 75
            };
            MaxDamages = new int[5] {
                100, 75, 75, 75, 75
            };

            ResistanceTypes = null;
            MinResistances  = null;
            MaxResistances  = null;

            DamageMin = 15; DamageMax = 15; HitsMin = 1350; HitsMax = 1400;
            StrMin    = 125; StrMax = 125; DexMin = 125; DexMax = 35; IntMin = 125; IntMax = 125;
        }
Пример #21
0
        public HiryuStageTwo()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 75000; EpMinDivisor = 20; EpMaxDivisor = 10; DustMultiplier = 20;
            BaseSoundID      = 0x4FD;
            BodyValue        = 6; VirtualArmor = 40;
            ControlSlots     = 3;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                20, 20, 20, 20, 20
            };
            MaxDamages = new int[5] {
                20, 20, 20, 20, 20
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                25, 25, 25, 25, 25
            };
            MaxResistances = new int[5] {
                25, 25, 25, 25, 25
            };

            DamageMin = 2; DamageMax = 2; HitsMin = 450; HitsMax = 450;
            StrMin    = 150; StrMax = 150; DexMin = 40; DexMax = 40; IntMin = 50; IntMax = 50;
        }
Пример #22
0
        public string GetNaturalResistanceString(ResistanceType resistanceType)
        {
            var strAndEnd = Strength.Base + Endurance.Base;

            if (strAndEnd > 440)
            {
                return("Indomitable");
            }
            else if (strAndEnd > 380)
            {
                return("Resilient");
            }
            else if (strAndEnd > 320)
            {
                return("Hardy");
            }
            else if (strAndEnd > 260)
            {
                return("Mediocre");
            }
            else if (strAndEnd > 200)
            {
                return("Poor");
            }
            else
            {
                return("None");
            }
        }
Пример #23
0
 public SwitchDamageEntry(PlayerMobile owner, BardSpellbook book, ResistanceType element)
     : base(GetElementalDamageCliloc(element))
 {
     m_Owner   = owner;
     m_Book    = book;
     m_Element = element;
 }
Пример #24
0
        private static void GetDamageTypesFromElement(ResistanceType element, out int phys, out int fire, out int cold, out int pois, out int nrgy)
        {
            phys = fire = cold = pois = nrgy = 0;

            switch (element)
            {
            case ResistanceType.Physical:
                phys = 100;
                break;

            case ResistanceType.Fire:
                fire = 100;
                break;

            case ResistanceType.Cold:
                cold = 100;
                break;

            case ResistanceType.Poison:
                pois = 100;
                break;

            case ResistanceType.Energy:
                nrgy = 100;
                break;
            }
        }
Пример #25
0
        public RaelisDragonStageFour()
        {
            EvolutionMessage = "has evolved.";            //stage-4 Red Drake
            NextEpThreshold  = 3750000; EpMinDivisor = 50; EpMaxDivisor = 40; DustMultiplier = 20;
            BaseSoundID      = 362;
            BodyValue        = 61;
            ControlSlots     = 3;
            MinTameSkill     = 109.9;
            VirtualArmor     = 60;
//			Hue = 0;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                50, 50, 50, 50, 50
            };
            MaxResistances = new int[5] {
                50, 50, 50, 50, 50
            };

            DamageMin = 1; DamageMax = 1; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 10; DexMax = 10; IntMin = 120; IntMax = 120;
        }
Пример #26
0
        private static void ApplyResistance(BaseArmor ar, int min, int max, ResistanceType res, int low, int high)
        {
            switch (res)
            {
            case ResistanceType.Physical:
                ar.PhysicalBonus += Scale(min, max, low, high);
                break;

            case ResistanceType.Fire:
                ar.FireBonus += Scale(min, max, low, high);
                break;

            case ResistanceType.Cold:
                ar.ColdBonus += Scale(min, max, low, high);
                break;

            case ResistanceType.Poison:
                ar.PoisonBonus += Scale(min, max, low, high);
                break;

            case ResistanceType.Energy:
                ar.EnergyBonus += Scale(min, max, low, high);
                break;
            }
        }
Пример #27
0
        public RaelisDragonStageSix()
        {
            EvolutionMessage = "has evolved.";            //Stage-6 Red Crisom Dragon
            NextEpThreshold  = 15000000; EpMinDivisor = 540; EpMaxDivisor = 480; DustMultiplier = 20;
            BodyValue        = 197;
            VirtualArmor     = 70;
            ControlSlots     = 4;
            MinTameSkill     = 116.9;
//			Hue = 0;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                70, 70, 70, 70, 70
            };
            MaxResistances = new int[5] {
                70, 70, 70, 70, 70
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 100; StrMax = 100; DexMin = 20; DexMax = 20; IntMin = 120; IntMax = 120;
        }
Пример #28
0
        public MercenaryStageOne()
        {
            Title            = "the Shadow Knight";
            EvolutionMessage = "has attained a new level of combat";
            NextEpThreshold  = 75000; EpMinDivisor = 20; EpMaxDivisor = 10;
            VirtualArmor     = 20;

            DamagesTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinDamages = new int[5] {
                10, 10, 10, 10, 10
            };
            MaxDamages = new int[5] {
                20, 20, 20, 20, 20
            };

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                10, 10, 10, 10, 10
            };
            MaxResistances = new int[5] {
                20, 20, 20, 20, 20
            };

            DamageMin = 1; DamageMax = 2; HitsMin = 475; HitsMax = 500;
            StrMin    = 15; StrMax = 16; DexMin = 15; DexMax = 16; IntMin = 15; IntMax = 16;
        }
Пример #29
0
        public HiryuStageFour()
        {
            EvolutionMessage = "has evolved";
            NextEpThreshold  = 7750000; EpMinDivisor = 50; EpMaxDivisor = 40; DustMultiplier = 20;
            BaseSoundID      = 0x4FD;
            BodyValue        = 254; ControlSlots = 5; MinTameSkill = 119.9; VirtualArmor = 60;

            DamagesTypes = null;
            MinDamages   = null;
            MaxDamages   = null;

            ResistanceTypes = new ResistanceType[5] {
                ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                ResistanceType.Poison, ResistanceType.Energy
            };
            MinResistances = new int[5] {
                40, 40, 40, 40, 40
            };
            MaxResistances = new int[5] {
                40, 40, 40, 40, 40
            };

            DamageMin = 5; DamageMax = 5; HitsMin = 100; HitsMax = 100;
            StrMin    = 150; StrMax = 150; DexMin = 40; DexMax = 40; IntMin = 100; IntMax = 100;
        }
Пример #30
0
        public UberMercenaryStageOne()
        {
            Title            = "the mercenary";
            EvolutionMessage = "has attained a new level of combat";
            NextEpThreshold  = 25000; EpMinDivisor = 10; EpMaxDivisor = 5;
            BodyValue        = 0; ControlSlots = 3; VirtualArmor = 30;

            DamagesTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinDamages = new int[1] {
                85
            };
            MaxDamages = new int[1] {
                100
            };

            ResistanceTypes = new ResistanceType[1] {
                ResistanceType.Physical
            };
            MinResistances = new int[1] {
                10
            };
            MaxResistances = new int[1] {
                15
            };

            DamageMin = 1; DamageMax = 5; HitsMin = 150; HitsMax = 200;
            StrMin    = 30; StrMax = 35; DexMin = 30; DexMax = 35; IntMin = 30; IntMax = 35;
        }
Пример #31
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public override int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     if (ResistanceType.Fire.Equals(type) || ResistanceType.Cold.Equals(type) || ResistanceType.Energy.Equals(type))
     {
         return node.Nivel * 3;
     }
     return 0;
 }
Пример #32
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public override int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     if (ResistanceType.Poison.Equals(type))
     {
         return node.Nivel * 3;
     }
     return 0;
 }
Пример #33
0
 public float this[ResistanceType type]
 {
     get
     {
         return resistanceMods[(int)type];
     }
     set
     {
         resistanceMods[(int)type] = value;
     }
 }
Пример #34
0
 public override void Deserialize(GenericReader reader)
 {
     base.Deserialize(reader);
     var version = reader.ReadInt();
     MinAuraDelay = reader.ReadInt();
     MaxAuraDelay = reader.ReadInt();
     MinAuraDamage = reader.ReadInt();
     MaxAuraDamage = reader.ReadInt();
     AuraRange = reader.ReadInt();
     m_AuraType = (ResistanceType) reader.ReadInt();
     AuraPoison = Poison.Deserialize(reader);
     m_AuraMessage = reader.ReadString();
     m_AuraDelay = DateTime.UtcNow;
 }
Пример #35
0
        /**
         * Retorna o bônus que o jogador tem para o tipo de resistencia.
         */
        public int bonusResistencia(Jogador jogador, ResistanceType type)
        {
            int bonus = 0;

            //habilidade racial
            Dictionary<IdHabilidadeRacial, HabilidadeNode> racial = jogador.getSistemaRaca().getHabilidades();
            List<HabilidadeNode> habilidadesNode = new List<HabilidadeNode>(racial.Values);
            bonus += getBonus(habilidadesNode, HabilidadeTipo.racial, type);

            //habilidade talento
            Dictionary<IdHabilidadeTalento, HabilidadeNode> talento = jogador.getSistemaTalento().getHabilidades();
            habilidadesNode = new List<HabilidadeNode>(talento.Values);
            bonus += getBonus(habilidadesNode, HabilidadeTipo.talento, type);

            return bonus;
        }
		public RaelisDragonStageOne()
		{
			EvolutionMessage = "has evolved";
			NextEpThreshold = 75000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;
			BaseSoundID = 0xDB;
			BodyValue = 52; ControlSlots = 2; MinTameSkill = 99.9; VirtualArmor = 25;

			DamagesTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinDamages = new int[1] { 100 };
			MaxDamages = new int[1] { 100 };

			ResistanceTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinResistances = new int[1] { 15 };
			MaxResistances = new int[1] { 15 };

			DamageMin = 11; DamageMax = 17; HitsMin = 250; HitsMax = 350;
			StrMin = 50; StrMax = 60; DexMin = 56; DexMax = 75; IntMin = 26; IntMax = 36;
		}
Пример #37
0
        /**
         * Realiza o teste se o alvo conseguiu resistir ao tipo de ataque.
         * O teste é baseado na resistencia menos a dificultade.
         * A dificuldade deve ser um valor entre 0 a 100. Que será como %.
         *
         * Ex.: (Resistencia - dificuldade) %
         */
        public bool resistiu(Mobile alvo, int dificultade, ResistanceType tipo)
        {
            bool resistiu = false;

            int valorResistencia = alvo.GetResistance(tipo);
            valorResistencia -= dificultade;

            //ajusta para ter mínimo de 5% e máximo de 95%
            valorResistencia = valorResistencia < 5 ? 5 : valorResistencia;
            valorResistencia = valorResistencia > 100 ? 95 : valorResistencia;
            valorResistencia /= 100;

            if (valorResistencia > Utility.RandomDouble())
            {
                resistiu = true;
            }

            return resistiu;
        }
		public HiryuStageOne()
		{
			EvolutionMessage = "has evolved";
			NextEpThreshold = 50000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;
			BaseSoundID = 0x4FD;
			Hue = 2406;
			BodyValue = 201; ControlSlots = 3; MinTameSkill = 99.9; VirtualArmor = 30;

			DamagesTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinDamages = new int[1] { 100 };
			MaxDamages = new int[1] { 100 };

			ResistanceTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinResistances = new int[1] { 15 };
			MaxResistances = new int[1] { 15 };

			DamageMin = 11; DamageMax = 15; HitsMin = 1; HitsMax = 1;
			StrMin = 75; StrMax = 85; DexMin = 95; DexMax = 105; IntMin = 80; IntMax = 100;
		}
		public RaelisDragonStageTwo()
		{
			EvolutionMessage = "has evolved";
			NextEpThreshold = 175000; EpMinDivisor = 20; EpMaxDivisor = 40; DustMultiplier = 20;
			BaseSoundID = 219;
			BodyValue = 89; VirtualArmor = 30;

			DamagesTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
													ResistanceType.Poison, ResistanceType.Energy };
			MinDamages = new int[5] { 100, 25, 25, 25, 25 };
			MaxDamages = new int[5] { 100, 25, 25, 25, 25 };

			ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
														ResistanceType.Poison, ResistanceType.Energy };
			MinResistances = new int[5] { 20, 20, 20, 20, 20 };
			MaxResistances = new int[5] { 20, 20, 20, 20, 20 };

			DamageMin = 1; DamageMax = 1; HitsMin= 500; HitsMax = 550;
			StrMin = 60; StrMax = 70; DexMin = 20; DexMax = 30; IntMin = 10; IntMax = 15;
		}
		public HiryuStageTwo()
		{
			EvolutionMessage = "has evolved";
			NextEpThreshold = 150000; EpMinDivisor = 20; EpMaxDivisor = 10; DustMultiplier = 20;
			BaseSoundID = 0x4FD;
			BodyValue = 217; VirtualArmor = 40;
			Hue = 2406;

			DamagesTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
													ResistanceType.Poison, ResistanceType.Energy };
			MinDamages = new int[5] { 20, 20, 20, 20, 20 };
			MaxDamages = new int[5] { 20, 20, 20, 20, 20 };

			ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
														ResistanceType.Poison, ResistanceType.Energy };
			MinResistances = new int[5] { 25, 25, 25, 25, 25 };
			MaxResistances = new int[5] { 25, 25, 25, 25, 25 };

			DamageMin = 2; DamageMax = 2; HitsMin= 1; HitsMax = 1;
			StrMin = 65; StrMax = 75; DexMin = 40; DexMax = 45; IntMin = 40; IntMax = 50;
		}
Пример #41
0
		public RaelisDragonStageOne()
		{
			EvolutionMessage = "has evolved.";//stage 1 - green
			NextEpThreshold = 25000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;
			BaseSoundID = 0xDB;
			BodyValue = 733;
			ControlSlots = 2;
			MinTameSkill = 99.9;
			VirtualArmor = 30;
//			Hue = Evo.Flags.kRandomHueFlag;
//			Hue = 0;

			DamagesTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinDamages = new int[1] { 100 };
			MaxDamages = new int[1] { 100 };

			ResistanceTypes = new ResistanceType[1] { ResistanceType.Physical };
			MinResistances = new int[1] { 15 };
			MaxResistances = new int[1] { 15 };

			DamageMin = 11; DamageMax = 17; HitsMin = 200; HitsMax = 250;
			StrMin = 296; StrMax = 325; DexMin = 56; DexMax = 75; IntMin = 76; IntMax = 96;
		}
Пример #42
0
		public void SetResistance( ResistanceType type, int val )
		{
			switch ( type )
			{
				case ResistanceType.Physical: m_PhysicalResistance = val; break;
				case ResistanceType.Fire: m_FireResistance = val; break;
				case ResistanceType.Cold: m_ColdResistance = val; break;
				case ResistanceType.Poison: m_PoisonResistance = val; break;
				case ResistanceType.Energy: m_EnergyResistance = val; break;
			}

			UpdateResistances();
		}
Пример #43
0
		public void SetResistance( ResistanceType type, int min, int max )
		{
			SetResistance( type, Utility.RandomMinMax( min, max ) );
		}
Пример #44
0
		public void SetDamageType( ResistanceType type, int val )
		{
			switch ( type )
			{
				case ResistanceType.Physical: m_PhysicalDamage = val; break;
				case ResistanceType.Fire: m_FireDamage = val; break;
				case ResistanceType.Cold: m_ColdDamage = val; break;
				case ResistanceType.Poison: m_PoisonDamage = val; break;
				case ResistanceType.Energy: m_EnergyDamage = val; break;
			}
		}
Пример #45
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public virtual int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     return 0;
 }
Пример #46
0
        // Main Aura Method
        public static void Aura(Point3D location, Map map, Mobile from, int min, int max, ResistanceType type, int range,
            Poison poison, string text, bool scales, bool allownull, bool effects, int itemid, int hue)
        {
            if (from == null && !allownull)
                return;

            var targets = new List<Mobile>();

            foreach (var m in Map.AllMaps[map.MapID].GetMobilesInRange(location, range))
            {
                if (CanTarget(from, m, true, false, allownull))
                    targets.Add(m);
            }

            if (effects && from != null)
                from.Animate(12, 5, 1, true, false, 0);

            for (var i = 0; i < targets.Count; i++)
            {
                var m = targets[i];
                m.RevealingAction();

                if (text != "")
                    m.SendMessage(text);

                var auradamage = Utility.RandomMinMax(min, max);

                if (scales)
                    auradamage = (int) ((auradamage/GetDist(location, m.Location))*range);

                if (poison != null)
                    m.ApplyPoison((from == null) ? m : from, poison);

                if (effects)
                    m.FixedParticles(itemid, 10, 15, 5030 /*what the hell does this number do?*/, hue, 0,
                        EffectLayer.Waist);

                switch (type)
                {
                    case ResistanceType.Physical:
                        AOS.Damage(m, (from == null) ? m : from, auradamage, 100, 0, 0, 0, 0);
                        break;
                    case ResistanceType.Fire:
                        AOS.Damage(m, (from == null) ? m : from, auradamage, 0, 100, 0, 0, 0);
                        break;
                    case ResistanceType.Cold:
                        AOS.Damage(m, (from == null) ? m : from, auradamage, 0, 0, 100, 0, 0);
                        break;
                    case ResistanceType.Poison:
                        AOS.Damage(m, (from == null) ? m : from, auradamage, 0, 0, 0, 100, 0);
                        break;
                    case ResistanceType.Energy:
                        AOS.Damage(m, (from == null) ? m : from, auradamage, 0, 0, 0, 0, 100);
                        break;
                }
            }

            targets.Clear();
        }
Пример #47
0
		public override int GetMaxResistance( ResistanceType type )
		{
			if ( this is IEvoGuardian )
				return base.GetMaxResistance( type );

			int resistance = base.GetMaxResistance( type );

			BaseEvoSpec spec = GetEvoSpec();

			return ( spec == null ? resistance : resistance > spec.MaxEvoResistance ? spec.MaxEvoResistance : resistance );
		}
Пример #48
0
        public override int GetMinResistance(ResistanceType type)
        {
            int magicResist = (int)(Skills[SkillName.MagicResist].Value * 10);
            int min = int.MinValue;

            if (magicResist >= 1000)
                min = 40 + ((magicResist - 1000) / 50);
            else if (magicResist >= 400)
                min = (magicResist - 400) / 15;

            if (min > MaxPlayerResistance)
                min = MaxPlayerResistance;

            int baseMin = base.GetMinResistance(type);

            if (min < baseMin)
                min = baseMin;

            return min;
        }
Пример #49
0
 public virtual int GetMinResistance( ResistanceType type )
 {
     return int.MinValue;
 }
Пример #50
0
        public int SetResistBonus(ResistanceType resist)
        {
            switch (resist)
            {
                case ResistanceType.Physical: return PhysicalResistance;
                case ResistanceType.Fire: return FireResistance;
                case ResistanceType.Cold: return ColdResistance;
                case ResistanceType.Poison: return PoisonResistance;
                case ResistanceType.Energy: return EnergyResistance;
            }

            return 0;
        }
		public override int GetMaxResistance(ResistanceType type)
		{
			if (IsStaff())
			{
				return int.MaxValue;
			}

			int max = base.GetMaxResistance(type);

			if (type != ResistanceType.Physical && 60 < max && CurseSpell.UnderEffect(this))
			{
				max = 60;
			}

			if (Core.ML && Race == Race.Elf && type == ResistanceType.Energy)
			{
				max += 5; //Intended to go after the 60 max from curse
			}

			return max;
		}
Пример #52
0
 public SwitchDamageEntry( PlayerMobile owner, BardSpellbook book, ResistanceType element )
     : base(GetElementalDamageCliloc( element ))
 {
     m_Owner = owner;
     m_Book = book;
     m_Element = element;
 }
Пример #53
0
 private static int GetElementalDamageCliloc( ResistanceType element )
 {
     return 1151800 + (int) element;
 }
Пример #54
0
        public override int GetMaxResistance( ResistanceType type )
        {
            int max = base.GetMaxResistance( type );

            if ( 60 < max && Spells.Fourth.CurseSpell.IsUnderEffect( this ) )
                max = 60;

            return max;
        }
Пример #55
0
		private static void ApplyResistance( BaseArmor ar, int min, int max, ResistanceType res, int low, int high )
		{
			switch ( res )
			{
				case ResistanceType.Physical: ar.PhysicalBonus += Scale( min, max, low, high ); break;
				case ResistanceType.Fire: ar.FireBonus += Scale( min, max, low, high ); break;
				case ResistanceType.Cold: ar.ColdBonus += Scale( min, max, low, high ); break;
				case ResistanceType.Poison: ar.PoisonBonus += Scale( min, max, low, high ); break;
				case ResistanceType.Energy: ar.EnergyBonus += Scale( min, max, low, high ); break;
			}
		}
Пример #56
0
 // Null based Aura
 public static void Aura(Point3D location, Map map, Mobile from, int min, int max, ResistanceType type, int range,
     Poison poison, string text)
 {
     Aura(location, map, from, min, max, type, range, poison, text, true, false, false, 0, 0);
 }
Пример #57
0
        public override int GetMaxResistance(ResistanceType type)
        {
            if (AccessLevel > AccessLevel.Player)
                return int.MaxValue;

            int max = base.GetMaxResistance(type);

            if (type != ResistanceType.Physical && 60 < max && Spells.Fourth.CurseSpell.UnderEffect(this))
                max = 60;

            if (Core.ML && this.Race == Race.Elf && type == ResistanceType.Energy)
                max += 5; //Intended to go after the 60 max from curse

            return max;
        }
Пример #58
0
 // No Effects
 public static void Aura(Point3D location, Map map, Mobile from, int min, int max, ResistanceType type, int range,
     Poison poison, string text, bool scales, bool allownull)
 {
     Aura(location, map, from, min, max, type, range, poison, text, scales, allownull, false, 0, 0);
 }
Пример #59
0
        public virtual int GetResistance( ResistanceType type )
        {
            if ( m_Resistances == null )
                m_Resistances = new int[5]{ int.MinValue, int.MinValue, int.MinValue, int.MinValue, int.MinValue };

            int v = (int)type;

            if ( v < 0 || v >= m_Resistances.Length )
                return 0;

            int res = m_Resistances[v];

            if ( res == int.MinValue )
            {
                ComputeResistances();
                res = m_Resistances[v];
            }

            return res;
        }
Пример #60
0
        /*public override void OnSkillInvalidated( Skill skill )
        {
            if( Core.AOS && skill.SkillName == SkillName.MagicResist )
                UpdateResistances();
        }*/
        public override int GetMaxResistance( ResistanceType type )
        {
            if (AccessLevel > AccessLevel.Player)
                return 75;

            int max = base.GetMaxResistance(type);

            if( type != ResistanceType.Physical && 40 < max && Spells.Fourth.CurseSpell.UnderEffect(this) )
                max = 50;

            return max;
        }