Beispiel #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();
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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);
        }
Beispiel #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;
            }
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
        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;
        }
        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;
        }
        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;
        }
Beispiel #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();
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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");
            }
        }
Beispiel #23
0
 public SwitchDamageEntry(PlayerMobile owner, BardSpellbook book, ResistanceType element)
     : base(GetElementalDamageCliloc(element))
 {
     m_Owner   = owner;
     m_Book    = book;
     m_Element = element;
 }
Beispiel #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;
            }
        }
Beispiel #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;
        }
Beispiel #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;
            }
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
Beispiel #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;
        }
 /*
  * 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;
 }
Beispiel #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;
 }
 public float this[ResistanceType type]
 {
     get
     {
         return resistanceMods[(int)type];
     }
     set
     {
         resistanceMods[(int)type] = value;
     }
 }
Beispiel #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;
 }
Beispiel #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;
		}
Beispiel #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;
		}
		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;
		}
Beispiel #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();
		}
Beispiel #43
0
		public void SetResistance( ResistanceType type, int min, int max )
		{
			SetResistance( type, Utility.RandomMinMax( min, max ) );
		}
Beispiel #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;
			}
		}
Beispiel #45
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public virtual int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     return 0;
 }
Beispiel #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();
        }
		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 );
		}
Beispiel #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;
        }
Beispiel #49
0
 public virtual int GetMinResistance( ResistanceType type )
 {
     return int.MinValue;
 }
Beispiel #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;
		}
Beispiel #52
0
 public SwitchDamageEntry( PlayerMobile owner, BardSpellbook book, ResistanceType element )
     : base(GetElementalDamageCliloc( element ))
 {
     m_Owner = owner;
     m_Book = book;
     m_Element = element;
 }
Beispiel #53
0
 private static int GetElementalDamageCliloc( ResistanceType element )
 {
     return 1151800 + (int) element;
 }
        public override int GetMaxResistance( ResistanceType type )
        {
            int max = base.GetMaxResistance( type );

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

            return max;
        }
		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;
			}
		}
Beispiel #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);
 }
Beispiel #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;
        }
Beispiel #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);
 }
Beispiel #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;
        }
Beispiel #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;
        }