public override bool OnBeforeDeath() { if (!NoKillAwards) { // genova: flag powerscrolls. if (GeNovaXML.Flags_Active(XMLNames.PowerScrolls)) { GivePowerScrolls(); } Map map = this.Map; if (map != null) { for (int x = -12; x <= 12; ++x) { for (int y = -12; y <= 12; ++y) { double dist = Math.Sqrt(x * x + y * y); if (dist <= 12) { new GoodiesTimer(map, X + x, Y + y).Start(); } } } } } return(base.OnBeforeDeath()); }
public OrcBrute() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Body = 189; Name = "an orc brute"; BaseSoundID = 0x45A; SetStr(767, 945); SetDex(66, 75); SetInt(46, 70); SetHits(476, 552); SetDamage(20, 25); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 45, 55); SetResistance(ResistanceType.Fire, 40, 50); SetResistance(ResistanceType.Cold, 25, 35); SetResistance(ResistanceType.Poison, 25, 35); SetResistance(ResistanceType.Energy, 25, 35); SetSkill(SkillName.Macing, 90.1, 100.0); SetSkill(SkillName.MagicResist, 125.1, 140.0); SetSkill(SkillName.Tactics, 90.1, 100.0); SetSkill(SkillName.Wrestling, 90.1, 100.0); Fame = 15000; Karma = -15000; VirtualArmor = 50; PackItem(new ShadowIronOre(25)); PackItem(new IronIngot(10)); if (0.05 > Utility.RandomDouble()) { PackItem(new OrcishKinMask()); } if (0.2 > Utility.RandomDouble()) { PackItem(new BolaBall()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }
public OrcBomber() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Body = 182; Name = "an orc bomber"; BaseSoundID = 0x45A; SetStr(147, 215); SetDex(91, 115); SetInt(61, 85); SetHits(95, 123); SetDamage(1, 8); SetDamageType(ResistanceType.Physical, 75); SetDamageType(ResistanceType.Fire, 25); SetResistance(ResistanceType.Physical, 25, 35); SetResistance(ResistanceType.Fire, 30, 40); SetResistance(ResistanceType.Cold, 15, 25); SetResistance(ResistanceType.Poison, 15, 20); SetResistance(ResistanceType.Energy, 25, 30); SetSkill(SkillName.MagicResist, 70.1, 85.0); SetSkill(SkillName.Swords, 60.1, 85.0); SetSkill(SkillName.Tactics, 75.1, 90.0); SetSkill(SkillName.Wrestling, 60.1, 85.0); Fame = 2500; Karma = -2500; VirtualArmor = 30; PackItem(new SulfurousAsh(Utility.RandomMinMax(6, 10))); PackItem(new MandrakeRoot(Utility.RandomMinMax(6, 10))); PackItem(new BlackPearl(Utility.RandomMinMax(6, 10))); PackItem(new MortarPestle()); PackItem(new LesserExplosionPotion()); if (0.2 > Utility.RandomDouble()) { PackItem(new BolaBall()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }
public EvilMageLord() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = NameList.RandomName("evil mage lord"); Body = Utility.RandomList(125, 126); PackItem(new Robe(Utility.RandomMetalHue())); PackItem(new WizardsHat(Utility.RandomMetalHue())); SetStr(81, 105); SetDex(191, 215); SetInt(126, 150); SetHits(49, 63); SetDamage(5, 10); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 35, 40); SetResistance(ResistanceType.Fire, 30, 40); SetResistance(ResistanceType.Cold, 30, 40); SetResistance(ResistanceType.Poison, 30, 40); SetResistance(ResistanceType.Energy, 30, 40); SetSkill(SkillName.EvalInt, 80.2, 100.0); SetSkill(SkillName.Magery, 95.1, 100.0); SetSkill(SkillName.Meditation, 27.5, 50.0); SetSkill(SkillName.MagicResist, 77.5, 100.0); SetSkill(SkillName.Tactics, 65.0, 87.5); SetSkill(SkillName.Wrestling, 20.3, 80.0); Fame = 10500; Karma = -10500; VirtualArmor = 16; PackReg(23); if (Utility.RandomBool()) { PackItem(new Shoes()); } else { PackItem(new Sandals()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomMagicalItem(this); randomItem.AddItemsInLoot(); } }
public override void OnDeath(Container c) { base.OnDeath(c); // Genova: flag artefatos. if (GeNovaXML.Flags_Active(XMLNames.Artifacts)) { if (!Summoned && !NoKillAwards && DemonKnight.CheckArtifactChance(this)) { DemonKnight.DistributeArtifact(this); } } }
public OrcishMage() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = "an orcish mage"; Body = 140; BaseSoundID = 0x45A; SetStr(116, 150); SetDex(91, 115); SetInt(161, 185); SetHits(70, 90); SetDamage(4, 14); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 25, 35); SetResistance(ResistanceType.Fire, 30, 40); SetResistance(ResistanceType.Cold, 20, 30); SetResistance(ResistanceType.Poison, 30, 40); SetResistance(ResistanceType.Energy, 30, 40); SetSkill(SkillName.EvalInt, 60.1, 72.5); SetSkill(SkillName.Magery, 60.1, 72.5); SetSkill(SkillName.MagicResist, 60.1, 75.0); SetSkill(SkillName.Tactics, 50.1, 65.0); SetSkill(SkillName.Wrestling, 40.1, 50.0); Fame = 3000; Karma = -3000; VirtualArmor = 30; PackReg(6); if (0.05 > Utility.RandomDouble()) { PackItem(new OrcishKinMask()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }
public EvilMage() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = NameList.RandomName("evil mage"); Title = "the evil mage"; Body = 124; SetStr(81, 105); SetDex(91, 115); SetInt(96, 120); SetHits(49, 63); SetDamage(5, 10); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 15, 20); SetResistance(ResistanceType.Fire, 5, 10); SetResistance(ResistanceType.Poison, 5, 10); SetResistance(ResistanceType.Energy, 5, 10); SetSkill(SkillName.EvalInt, 75.1, 100.0); SetSkill(SkillName.Magery, 75.1, 100.0); SetSkill(SkillName.MagicResist, 75.0, 97.5); SetSkill(SkillName.Tactics, 65.0, 87.5); SetSkill(SkillName.Wrestling, 20.2, 60.0); Fame = 2500; Karma = -2500; VirtualArmor = 16; PackReg(6); PackItem(new Robe(Utility.RandomNeutralHue())); // TODO: Proper hue PackItem(new Sandals()); // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomMagicalItem(this); randomItem.AddItemsInLoot(); } }
public Orc() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = NameList.RandomName("orc"); Body = 17; BaseSoundID = 0x45A; SetStr(96, 120); SetDex(81, 105); SetInt(36, 60); SetHits(58, 72); SetDamage(5, 7); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 25, 30); SetResistance(ResistanceType.Fire, 20, 30); SetResistance(ResistanceType.Cold, 10, 20); SetResistance(ResistanceType.Poison, 10, 20); SetResistance(ResistanceType.Energy, 20, 30); SetSkill(SkillName.MagicResist, 50.1, 75.0); SetSkill(SkillName.Tactics, 55.1, 80.0); SetSkill(SkillName.Wrestling, 50.1, 70.0); Fame = 1500; Karma = -1500; VirtualArmor = 28; switch (Utility.Random(20)) { case 0: PackItem(new Scimitar()); break; case 1: PackItem(new Katana()); break; case 2: PackItem(new WarMace()); break; case 3: PackItem(new WarHammer()); break; case 4: PackItem(new Kryss()); break; case 5: PackItem(new Pitchfork()); break; } PackItem(new ThighBoots()); switch (Utility.Random(3)) { case 0: PackItem(new Ribs()); break; case 1: PackItem(new Shaft()); break; case 2: PackItem(new Candle()); break; } if (0.2 > Utility.RandomDouble()) { PackItem(new BolaBall()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }
public OrcCaptain() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = NameList.RandomName("orc"); Body = 7; BaseSoundID = 0x45A; SetStr(111, 145); SetDex(101, 135); SetInt(86, 110); SetHits(67, 87); SetDamage(5, 15); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 30, 35); SetResistance(ResistanceType.Fire, 10, 20); SetResistance(ResistanceType.Cold, 15, 25); SetResistance(ResistanceType.Poison, 5, 10); SetResistance(ResistanceType.Energy, 5, 10); SetSkill(SkillName.MagicResist, 70.1, 85.0); SetSkill(SkillName.Swords, 70.1, 95.0); SetSkill(SkillName.Tactics, 85.1, 100.0); Fame = 2500; Karma = -2500; VirtualArmor = 34; // TODO: Skull? switch (Utility.Random(7)) { case 0: PackItem(new Arrow()); break; case 1: PackItem(new Lockpick()); break; case 2: PackItem(new Shaft()); break; case 3: PackItem(new Ribs()); break; case 4: PackItem(new Bandage()); break; case 5: PackItem(new BeverageBottle(BeverageType.Wine)); break; case 6: PackItem(new Jug(BeverageType.Cider)); break; } if (Core.AOS) { PackItem(Loot.RandomNecromancyReagent()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }
public override bool OnBeforeDeath() { if (m_TrueForm) { List <DamageStore> rights = BaseCreature.GetLootingRights(this.DamageEntries, this.HitsMax); for (int i = rights.Count - 1; i >= 0; --i) { DamageStore ds = rights[i]; if (ds.m_HasRight && ds.m_Mobile is PlayerMobile) { PlayerMobile.ChampionTitleInfo.AwardHarrowerTitle((PlayerMobile)ds.m_Mobile); } } if (!NoKillAwards) { // genova: flag powerscrolls. if (GeNovaXML.Flags_Active(XMLNames.PowerScrolls)) { GivePowerScrolls(); } Map map = this.Map; if (map != null) { for (int x = -16; x <= 16; ++x) { for (int y = -16; y <= 16; ++y) { double dist = Math.Sqrt(x * x + y * y); if (dist <= 16) { new GoodiesTimer(map, X + x, Y + y).Start(); } } } } for (int i = 0; i < m_Tentacles.Count; ++i) { Mobile m = m_Tentacles[i]; if (!m.Deleted) { m.Kill(); } } m_Tentacles.Clear(); if (m_GateItem != null) { m_GateItem.Delete(); } } return(base.OnBeforeDeath()); } else { Morph(); return(false); } }
public void GivePowerScrolls() { List <Mobile> toGive = new List <Mobile>(); List <DamageStore> rights = BaseCreature.GetLootingRights(this.DamageEntries, this.HitsMax); for (int i = rights.Count - 1; i >= 0; --i) { DamageStore ds = rights[i]; if (ds.m_HasRight) { toGive.Add(ds.m_Mobile); } } if (toGive.Count == 0) { return; } // Randomize for (int i = 0; i < toGive.Count; ++i) { int rand = Utility.Random(toGive.Count); Mobile hold = toGive[i]; toGive[i] = toGive[rand]; toGive[rand] = hold; } for (int i = 0; i < 16; ++i) { int level; double random = Utility.RandomDouble(); if (0.1 >= random) { level = 25; } else if (0.25 >= random) { level = 20; } else if (0.45 >= random) { level = 15; } else if (0.70 >= random) { level = 10; } else { level = 5; } Mobile m = toGive[i % toGive.Count]; // genova: flag StatusCapScrolls if (GeNovaXML.Flags_Active(XMLNames.StatusCapScrolls)) { m.SendLocalizedMessage(1049524); // You have received a scroll of power! m.AddToBackpack(new StatCapScroll(225 + level)); } if (m is PlayerMobile) { PlayerMobile pm = (PlayerMobile)m; for (int j = 0; j < pm.JusticeProtectors.Count; ++j) { Mobile prot = (Mobile)pm.JusticeProtectors[j]; if (prot.Map != m.Map || prot.Kills >= 5 || prot.Criminal || !JusticeVirtue.CheckMapRegion(m, prot)) { continue; } int chance = 0; switch (VirtueHelper.GetLevel(prot, VirtueName.Justice)) { case VirtueLevel.Seeker: chance = 60; break; case VirtueLevel.Follower: chance = 80; break; case VirtueLevel.Knight: chance = 100; break; } // genova: flag StatusCapScrolls if (chance > Utility.Random(100) && GeNovaXML.Flags_Active(XMLNames.StatusCapScrolls)) { prot.SendLocalizedMessage(1049368); // You have been rewarded for your dedication to Justice! prot.AddToBackpack(new StatCapScroll(225 + level)); } } } } }
public OrcishLord() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = "an orcish lord"; Body = 138; BaseSoundID = 0x45A; SetStr(147, 215); SetDex(91, 115); SetInt(61, 85); SetHits(95, 123); SetDamage(4, 14); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 25, 35); SetResistance(ResistanceType.Fire, 30, 40); SetResistance(ResistanceType.Cold, 20, 30); SetResistance(ResistanceType.Poison, 30, 40); SetResistance(ResistanceType.Energy, 30, 40); SetSkill(SkillName.MagicResist, 70.1, 85.0); SetSkill(SkillName.Swords, 60.1, 85.0); SetSkill(SkillName.Tactics, 75.1, 90.0); SetSkill(SkillName.Wrestling, 60.1, 85.0); Fame = 2500; Karma = -2500; switch (Utility.Random(5)) { case 0: PackItem(new Lockpick()); break; case 1: PackItem(new MortarPestle()); break; case 2: PackItem(new Bottle()); break; case 3: PackItem(new RawRibs()); break; case 4: PackItem(new Shovel()); break; } PackItem(new RingmailChest()); if (0.3 > Utility.RandomDouble()) { PackItem(Loot.RandomPossibleReagent()); } if (0.2 > Utility.RandomDouble()) { PackItem(new BolaBall()); } // genova: lote randomico. if (!GeNovaXML.Flags_Active(XMLNames.Vendors)) { ModelRandomItems randomItem = new RandomFarmableItems(this); randomItem.AddItemsInLoot(); randomItem = new RandomCraftItem(this); randomItem.AddItemsInLoot(); } }