public EarthElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { Name = "an earth elemental"; Body = 14; BaseSoundID = 268; SetStr( 126, 155 ); SetDex( 66, 85 ); SetInt( 71, 92 ); SetHits( 76, 93 ); SetDamage( 9, 16 ); SetSkill( SkillName.MagicResist, 50.1, 95.0 ); SetSkill( SkillName.Tactics, 60.1, 100.0 ); SetSkill( SkillName.Wrestling, 60.1, 100.0 ); Fame = 3500; Karma = -3500; VirtualArmor = 34; ControlSlots = 2; PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); PackItem( new MandrakeRoot() ); Item ore = new IronOre( 5 ); ore.ItemID = 0x19B7; PackItem( ore ); }
public SnowElemental() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Body = 163; BaseSoundID = 263; SetStr(326, 355); SetDex(166, 185); SetInt(71, 95); SetHits(196, 213); SetDamage(11, 17); Alignment = Alignment.Elemental; SetSkill(SkillName.MagicResist, 50.1, 65.0); SetSkill(SkillName.Tactics, 80.1, 100.0); SetSkill(SkillName.Wrestling, 80.1, 100.0); Fame = 5000; Karma = -5000; VirtualArmor = 50; PackItem(new BlackPearl(3)); Item ore = new IronOre(3); ore.ItemID = 0x19B8; PackItem(ore); }
public override void GenerateLoot() { int count = Utility.Random(1, 3); IronOre ore = new IronOre(); ore.Amount = count; PackItem(ore); count = Utility.Random(1, 2); FertileDirt dirt = new FertileDirt(); dirt.Amount = count; PackItem(dirt); PackGold(150, 200); }
public SnowElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { AuraMessage = "The intense cold is damaging you!"; // TODO Cliloc support: 1008111 AuraType = ResistanceType.Cold; MinAuraDelay = 5; MaxAuraDelay = 15; MinAuraDamage = 15; MaxAuraDamage = 25; AuraRange = 2; Name = "a snow elemental"; Body = 163; BaseSoundID = 263; SetStr( 326, 355 ); SetDex( 166, 185 ); SetInt( 71, 95 ); SetHits( 196, 213 ); SetDamage( 11, 17 ); SetDamageType( ResistanceType.Physical, 20 ); SetDamageType( ResistanceType.Cold, 80 ); SetResistance( ResistanceType.Physical, 45, 55 ); SetResistance( ResistanceType.Fire, 10, 15 ); SetResistance( ResistanceType.Cold, 60, 70 ); SetResistance( ResistanceType.Poison, 25, 35 ); SetResistance( ResistanceType.Energy, 25, 35 ); SetSkill( SkillName.MagicResist, 50.1, 65.0 ); SetSkill( SkillName.Tactics, 80.1, 100.0 ); SetSkill( SkillName.Wrestling, 80.1, 100.0 ); Fame = 5000; Karma = -5000; VirtualArmor = 50; PackItem( new BlackPearl( 3 ) ); Item ore = new IronOre( 3 ); ore.ItemID = 0x19B8; PackItem( ore ); }
public EnragedEarthElemental() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { this.Name = "Enraged Earth Elemental"; this.Body = 14; this.BaseSoundID = 268; this.SetStr(147, 155); this.SetDex(78, 89); this.SetInt(94, 110); this.SetHits(500, 505); this.SetMana(94, 110); this.SetStam(78, 89); this.SetDamage(9, 16); this.SetDamageType(ResistanceType.Physical, 100); this.SetResistance(ResistanceType.Physical, 59, 65); this.SetResistance(ResistanceType.Fire, 20, 30); this.SetResistance(ResistanceType.Cold, 21, 28); this.SetResistance(ResistanceType.Poison, 47, 51); this.SetResistance(ResistanceType.Energy, 30, 33); this.SetSkill(SkillName.MagicResist, 100.0); this.SetSkill(SkillName.Tactics, 100.0); this.SetSkill(SkillName.Wrestling, 120.0); this.Fame = 3500; this.Karma = -3500; this.VirtualArmor = 34; this.ControlSlots = 2; this.PackItem(new FertileDirt(Utility.RandomMinMax(1, 4))); this.PackItem(new MandrakeRoot()); Item ore = new IronOre(5); ore.ItemID = 0x19B7; this.PackItem(ore); }
public BlueEarthElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { Name = "an earth elemental"; Body = 14; BaseSoundID = 268; SetStr( 126, 155 ); SetDex( 66, 85 ); SetInt( 71, 92 ); // +100 SetHits( 176, 193 ); SetDamage( 9, 16 ); SetDamageType( ResistanceType.Physical, 100 ); // +20% SetResistance( ResistanceType.Physical, 50, 55 ); SetResistance( ResistanceType.Fire, 30, 40 ); SetResistance( ResistanceType.Cold, 30, 40 ); SetResistance( ResistanceType.Poison, 35, 45 ); SetResistance( ResistanceType.Energy, 35, 45 ); SetSkill( SkillName.MagicResist, 50.1, 95.0 ); SetSkill( SkillName.Tactics, 60.1, 100.0 ); SetSkill( SkillName.Wrestling, 60.1, 100.0 ); Fame = 3500; Karma = -3500; VirtualArmor = 34; ControlSlots = 3; PackItem( new FertileDirt( Utility.RandomMinMax( 4, 8 ) ) ); PackItem( new MandrakeRoot() ); // +5 Item ore = new IronOre( 10 ); ore.ItemID = 0x19B7; PackItem( ore ); }
public EnragedEarthElemental() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { this.Name = "an enraged earth elemental"; this.Body = 14; this.BaseSoundID = 268; this.SetStr(125, 129); this.SetDex(66, 86); this.SetInt(71, 92); this.SetHits(500, 505); this.SetDamage(9, 16); this.SetDamageType(ResistanceType.Physical, 100); this.SetResistance(ResistanceType.Physical, 60, 62); this.SetResistance(ResistanceType.Fire, 20, 24); this.SetResistance(ResistanceType.Cold, 20, 29); this.SetResistance(ResistanceType.Poison, 45, 50); this.SetResistance(ResistanceType.Energy, 15, 25); this.SetSkill(SkillName.MagicResist, 90.1, 100.0); this.SetSkill(SkillName.Tactics, 60.1, 100.0); this.SetSkill(SkillName.Wrestling, 100.1, 120.0); this.Fame = 3500; this.Karma = -3500; this.VirtualArmor = 34; this.ControlSlots = 2; this.PackItem(new FertileDirt(Utility.RandomMinMax(1, 4))); this.PackItem(new MandrakeRoot()); Item ore = new IronOre(5); ore.ItemID = 0x19B7; this.PackItem(ore); }
public SnowElemental() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = "um elemental da neve"; Body = 163; BaseSoundID = 263; SetStr( 326, 355 ); SetDex( 166, 185 ); SetInt( 71, 95 ); SetHits( 196, 213 ); SetDamage( 11, 17 ); SetDamageType( ResistanceType.Physical, 20 ); SetDamageType( ResistanceType.Cold, 80 ); SetResistance( ResistanceType.Physical, 45, 55 ); SetResistance( ResistanceType.Fire, 10, 15 ); SetResistance( ResistanceType.Cold, 60, 70 ); SetResistance( ResistanceType.Poison, 25, 35 ); SetResistance( ResistanceType.Energy, 25, 35 ); SetSkill( SkillName.MagicResist, 50.1, 65.0 ); SetSkill( SkillName.Tactics, 80.1, 100.0 ); SetSkill( SkillName.Wrestling, 80.1, 100.0 ); Fame = 5000; Karma = -5000; VirtualArmor = 50; PackItem( new BlackPearl( 3 ) ); Item ore = new IronOre( 3 ); ore.ItemID = 0x19B8; PackItem( ore ); }
public void Solve( Mobile from ) { Effects.PlaySound( Location, Map, 0x211 ); Effects.PlaySound( Location, Map, 0x1F3 ); Effects.SendLocationEffect( Location, Map, 0x36B0, 4, 4 ); Effects.SendLocationEffect( new Point3D( X - 1, Y - 1, Z + 2 ), Map, 0x36B0, 4, 4 ); Effects.SendLocationEffect( new Point3D( X - 2, Y - 1, Z + 2 ), Map, 0x36B0, 4, 4 ); from.SendMessage( "You scrounge some gems from the wreckage." ); for ( int i = 0; i < SideLength; i++ ) { from.AddToBackpack( new ArcaneGem() ); } from.AddToBackpack( new Diamond( SideLength ) ); Item ore = new IronOre( 9 ); ore.MoveToWorld( new Point3D( X - 1, Y, Z + 2 ), Map ); ore = new IronOre( 14 ); ore.MoveToWorld( new Point3D( X - 2, Y - 1, Z + 2 ), Map ); Delete(); }
public bool DoDisposeOre(int x, int y, int z, Map map, Mobile from) { if (!IsMiningTile(x, y, map)) { this.Say("I can not mine here !"); m_Mine = false; this.Hue = 0; ControlOrder = OrderType.Follow; return false; } HarvestBank bank = Mining.System.OreAndStone.GetBank(map, x, y); if (bank == null) { this.Say("I can not mine here !"); m_Mine = false; this.Hue = 0; ControlOrder = OrderType.Follow; return false; } if (bank.Current <= 0) { this.Say("No Ore remains !"); m_Mine = false; this.Hue = 0; ControlOrder = OrderType.Follow; return false; } HarvestVein vein = bank.DefaultVein; if (vein == null) { this.Say("I can not mine here !"); m_Mine = false; this.Hue = 0; ControlOrder = OrderType.Follow; return false; } HarvestDefinition def = Mining.System.OreAndStone; HarvestResource res = vein.PrimaryResource; BaseOre ore = Mining.System.Construct(res.Types[0], null) as BaseOre; if (ore == null) { this.Say("I can not mine here !"); m_Mine = false; this.Hue = 0; ControlOrder = OrderType.Follow; return false; } if (ore.Resource > CraftResource.MIron) { double minskill = 0.0; double minskill2 = 0.0; double maxskill = 0.0; double skillbase = this.Skills.Mining.Base; switch (ore.Resource) { case CraftResource.MIron: { minskill = 00.0; minskill2 = 00.0; maxskill = 100.0; } break; case CraftResource.MDullcopper: { minskill = 60.0; minskill2 = 25.0; maxskill = 105.0; } break; case CraftResource.MShadow: { minskill = 65.0; minskill2 = 30.0; maxskill = 110.0; } break; case CraftResource.MCopper: { minskill = 70.0; minskill2 = 35.0; maxskill = 115.0; } break; case CraftResource.MGold: { minskill = 75.0; minskill2 = 40.0; maxskill = 120.0; } break; case CraftResource.MAgapite: { minskill = 80.0; minskill2 = 45.0; maxskill = 120.0; } break; case CraftResource.MVerite: { minskill = 85.0; minskill2 = 50.0; maxskill = 120.0; } break; case CraftResource.MValorite: { minskill = 90.0; minskill2 = 55.0; maxskill = 120.0; } break; } if (Utility.RandomDouble() <= 0.30 || skillbase < minskill) { ore = new IronOre(); minskill = 00.0; minskill2 = 00.0; maxskill = 100.0; } if (!(from.CheckSkill(SkillName.Mining, minskill2, maxskill))) { ore.Delete(); return false; } } ore.Amount = (map == Map.Felucca ? 2 : 1); if (from != null) from.AddToBackpack(ore); else ore.Delete(); bank.Consume( ore.Amount, this); this.Hue = ore.Hue; return true; }
public bool DoDisposeOre(int x, int y, int z, Map map, Mobile from) { if (!IsMiningTile(x, y, map)) { this.Say("I can not mine here"); return false; } HarvestBank bank = Mining.System.OreAndStone.GetBank(map, x, y); if (bank == null) { this.Say("I can not mine here"); return false; } if (bank.Current <= 0) return false; HarvestVein vein = bank.DefaultVein; if (vein == null) { this.Say("I can not mine here"); return false; } HarvestDefinition def = Mining.System.OreAndStone; HarvestResource res = vein.PrimaryResource; BaseOre ore = Mining.System.Construct(res.Types[0], null) as BaseOre; if (ore == null) return false; if (ore.Resource > CraftResource.Iron) { double minskill = 0.0; double minskill2 = 0.0; double maxskill = 0.0; double skillbase = this.Skills.Mining.Base; if (this.Skills.Mining.Base < 100.0) this.Say("skill = {0}", Convert.ToString(skillbase)); switch (ore.Resource) { case CraftResource.Iron: { minskill = 00.0; minskill2 = 00.0; maxskill = 100.0; } break; case CraftResource.DullCopper: { minskill = 60.0; minskill2 = 25.0; maxskill = 100.0; } break; case CraftResource.ShadowIron: { minskill = 65.0; minskill2 = 30.0; maxskill = 100.0; } break; case CraftResource.Copper: { minskill = 70.0; minskill2 = 35.0; maxskill = 100.0; } break; case CraftResource.Gold: { minskill = 75.0; minskill2 = 40.0; maxskill = 100.0; } break; case CraftResource.Agapite: { minskill = 80.0; minskill2 = 45.0; maxskill = 100.0; } break; case CraftResource.Verite: { minskill = 85.0; minskill2 = 50.0; maxskill = 100.0; } break; case CraftResource.Valorite: { minskill = 90.0; minskill2 = 55.0; maxskill = 100.0; } break; case CraftResource.Silver: { minskill = 100.0; minskill2 = 60.0; maxskill = 100.0; } break; //case CraftResource.Jade: { minskill = 105.0; minskill2 = 105.0; maxskill = 120.0; } break; //case CraftResource.Moonstone: { minskill = 110.0; minskill2 = 105.0; maxskill = 120.0; } break; // case CraftResource.Sunstone: { minskill = 110.0; minskill2 = 105.0; maxskill = 120.0; } break; } if (Utility.RandomDouble() <= 0.01 || skillbase < minskill) { ore = new IronOre(); minskill = 00.0; minskill2 = 00.0; maxskill = 100.0; } if (!(from.CheckSkill(SkillName.Mining, minskill2, maxskill))) { ore.Delete(); return false; } } ore.Amount = (map == Map.Felucca ? 2 : 1); if (from != null) from.AddToBackpack(ore); else ore.Delete(); bank.Consume( ore.Amount, this); this.Hue = ore.Hue; return true; }
public override bool Give( Mobile m, Item item, bool placeAtFeet ) { PlayerMobile pm = m as PlayerMobile; if( m is PlayerMobile ) { pm.Crafting = true; LevelSystem.AwardMinimumXP( pm, 1 ); pm.Crafting = false; Item controller = null; CopperOre ore = new CopperOre(); if( pm.UniqueSpot != null ) { if( World.FindItem( pm.UniqueSpot.Serial ) != null ) { controller = World.FindItem( pm.UniqueSpot.Serial ); if( controller is ResourceController && pm.InRange( controller, ( (ResourceController)controller ).Range ) ) { ResourceController rescontroller = controller as ResourceController; double chance = 0; switch( rescontroller.Intensity ) { case VeinIntensity.Low: chance = 4; break; case VeinIntensity.Average: chance = 6; break; case VeinIntensity.Full: chance = 8; break; } if( chance >= Utility.RandomMinMax( 1, 100 ) ) { if( m.AccessLevel > AccessLevel.Player ) m.SendMessage( "Debug message: resource controller activated." ); switch( rescontroller.ControlledResource ) { case ControlledResource.Copper: item = ore; break; case ControlledResource.Tin: { TinOre newore = new TinOre(); item = newore; break; } case ControlledResource.Iron: { if( pm.Skills[SkillName.Mining].Base >= 80 ) { IronOre newore = new IronOre(); item = newore; } break; } case ControlledResource.Obsidian: { ObsidianIngot newore = new ObsidianIngot(); item = newore; item.Amount = 5; break; } case ControlledResource.Silver: { if( pm.Skills[SkillName.Mining].Base >= 85 ) { SilverOre newore = new SilverOre(); item = newore; } break; } case ControlledResource.Gold: { if( pm.Skills[SkillName.Mining].Base >= 95 ) { GoldOre newore = new GoldOre(); item = newore; } break; } case ControlledResource.Citrine: { if( pm.Skills[SkillName.Mining].Base >= 80 ) { Citrine gem = new Citrine(); item = gem; } break; } case ControlledResource.Tourmaline: { if( pm.Skills[SkillName.Mining].Base >= 80 ) { Tourmaline gem = new Tourmaline(); item = gem; } break; } case ControlledResource.Amethyst: { if( pm.Skills[SkillName.Mining].Base >= 90 ) { Amethyst gem = new Amethyst(); item = gem; } break; } case ControlledResource.Emerald: { if( pm.Skills[SkillName.Mining].Base >= 90 ) { Emerald gem = new Emerald(); item = gem; } break; } case ControlledResource.Ruby: { if( pm.Skills[SkillName.Mining].Base >= 90 ) { Ruby gem = new Ruby(); item = gem; } break; } case ControlledResource.Sapphire: { if( pm.Skills[SkillName.Mining].Base >= 85 ) { Sapphire gem = new Sapphire(); item = gem; } break; } case ControlledResource.StarSapphire: { if( pm.Skills[SkillName.Mining].Base >= 95 ) { StarSapphire gem = new StarSapphire(); item = gem; } break; } case ControlledResource.Diamond: { if( pm.Skills[SkillName.Mining].Base >= 95 ) { Diamond gem = new Diamond(); item = gem; } break; } case ControlledResource.Coal: { if( pm.Feats.GetFeatLevel( FeatList.Sculptor ) > 0 ) { Coal coal = new Coal(); item = coal; } break; } case ControlledResource.Cinnabar: { if (pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 2) { Cinnabar cinnabar = new Cinnabar(); item = cinnabar; } break; } } } } } } if( item is Citrine || item is Tourmaline || item is Amethyst ) { if( pm.Feats.GetFeatLevel(FeatList.GemHarvesting) < 1 || !pm.GemHarvesting) item = ore; } else if( item is Emerald || item is Ruby || item is Sapphire ) { if( pm.Feats.GetFeatLevel(FeatList.GemHarvesting) < 2 ) item = ore; if( !pm.GemHarvesting ) { TinOre tin = new TinOre(); item = tin; } } else if( item is StarSapphire || item is Diamond || item is Cinnabar) { if( pm.Feats.GetFeatLevel(FeatList.GemHarvesting) < 3 ) item = ore; if( !pm.GemHarvesting ) { IronOre iron = new IronOre(); item = iron; } } else if( item is ObsidianIngot && pm.Feats.GetFeatLevel(FeatList.Obsidian) < 1 ) item = ore; } if( m is PlayerMobile && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 0 && pm.GemHarvesting && item is CopperOre && Utility.RandomMinMax( 1, 100 ) > 95 ) { int roll = Utility.RandomMinMax( 1, 100 ); if (roll > 95 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 2) item = new Cinnabar(); if( roll > 90 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 2) item = new Diamond(); else if( roll > 80 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 2 ) item = new StarSapphire(); else if( roll > 70 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 1 ) item = new Ruby(); else if( roll > 59 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 1 ) item = new Emerald(); else if( roll > 48 && pm.Feats.GetFeatLevel(FeatList.GemHarvesting) > 1 ) item = new Sapphire(); else if( roll > 37 ) item = new Amethyst(); else if( roll > 20 ) item = new Tourmaline(); else item = new Citrine(); } string orename = "some copper ore"; if( item is TinOre ) orename = "some tin ore"; else if( item is IronOre ) orename = "some iron ore"; else if( item is ObsidianIngot ) orename = "some obsidian"; else if( item is SilverOre ) orename = "some silver ore"; else if( item is GoldOre ) orename = "some gold ore"; else if( item is Citrine ) orename = "a citrine"; else if( item is Tourmaline ) orename = "a tourmaline"; else if( item is Emerald ) orename = "an emerald"; else if( item is Amethyst ) orename = "an amethyst"; else if( item is Ruby ) orename = "a ruby"; else if( item is Sapphire ) orename = "a sapphire"; else if( item is StarSapphire ) orename = "a star sapphire"; else if( item is Diamond ) orename = "a diamond"; else if( item is Sand ) orename = "some sand"; else if( item is Coal ) orename = "some coal"; m.SendMessage( "You dig " + orename + " and put it in your backpack." ); if ( m.PlaceInBackpack( item ) ) return true; if ( !placeAtFeet ) return false; Map map = m.Map; if ( map == null ) return false; ArrayList atFeet = new ArrayList(); foreach ( Item obj in m.GetItemsInRange( 0 ) ) atFeet.Add( obj ); for ( int i = 0; i < atFeet.Count; ++i ) { Item check = (Item)atFeet[i]; if ( check.StackWith( m, item, false ) ) return true; } item.MoveToWorld( m.Location, map ); return true; }