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; }
public override void OnDoubleClick(Mobile from) { bool anvil, forge; Server.Engines.Craft.DefBlacksmithy.CheckAnvilAndForge(from, 2, out anvil, out forge); if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1060640); // The item must be in your backpack to use it. } else if (!forge) { from.SendMessage("You need to be near a forge to smelt that."); } else if (from.Skills[SkillName.Blacksmith].Value >= 50) { if (this.Name == "onyx stones") { Item ingot = new OnyxIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "quartz stones") { Item ingot = new QuartzIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "ruby stones") { Item ingot = new RubyIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "sapphire stones") { Item ingot = new SapphireIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "spinel stones") { Item ingot = new SpinelIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "topaz stones") { Item ingot = new TopazIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "amethyst stones") { Item ingot = new AmethystIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "emerald stones") { Item ingot = new EmeraldIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "garnet stones") { Item ingot = new GarnetIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "star ruby stones") { Item ingot = new StarRubyIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "gargish marble stones") { Item ingot = new MarbleIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "jade stones") { Item ingot = new JadeIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "mystical ice stones") { Item ingot = new IceIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "silver stones") { Item ingot = new ShinySilverIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "copper stones") { Item ingot = new CopperIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "verite stones") { Item ingot = new VeriteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "valorite stones") { Item ingot = new ValoriteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "agapite stones") { Item ingot = new AgapiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "bronze stones") { Item ingot = new BronzeIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "dull copper stones") { Item ingot = new DullCopperIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "gold stones") { Item ingot = new GoldIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "shadow iron stones") { Item ingot = new ShadowIronIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "mithril stones") { Item ingot = new MithrilIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "xormite stones") { Item ingot = new XormiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "obsidian stones") { Item ingot = new ObsidianIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "nepturite stones") { Item ingot = new NepturiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } from.PlaySound(0x208); from.SendMessage("You smelt the stones and put the ingots in your backpack."); this.Delete(); } else { from.SendMessage("Only an apprentice blacksmith can smelt that."); } }
public override void OnDoubleClick(Mobile from) { bool anvil, forge; Server.Engines.Craft.DefBlacksmithy.CheckAnvilAndForge(from, 2, out anvil, out forge); if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1060640); // The item must be in your backpack to use it. } else if (!forge) { from.SendMessage("You need to be near a forge to smelt that."); } else if (from.Skills[SkillName.Blacksmith].Value >= 50) { if (this.Name == "crystalline dull copper") { Item ingot = new DullCopperIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline shadow iron") { Item ingot = new ShadowIronIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline copper") { Item ingot = new CopperIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline bronze") { Item ingot = new BronzeIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline gold") { Item ingot = new GoldIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline agapite") { Item ingot = new AgapiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline verite") { Item ingot = new VeriteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline valorite") { Item ingot = new ValoriteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline caddellite") { Item ingot = new CaddelliteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline onyx") { Item ingot = new OnyxIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline quartz") { Item ingot = new QuartzIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline ruby") { Item ingot = new RubyIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline sapphire") { Item ingot = new SapphireIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline spinel") { Item ingot = new SpinelIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline topaz") { Item ingot = new TopazIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline amethyst") { Item ingot = new AmethystIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline emerald") { Item ingot = new EmeraldIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (this.Name == "crystalline garnet") { Item ingot = new GarnetIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline silver") { Item ingot = new ShinySilverIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline star ruby") { Item ingot = new StarRubyIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline marble") { Item ingot = new MarbleIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline jade") { Item ingot = new JadeIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline ice") { Item ingot = new IceIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline obsidian") { Item ingot = new ObsidianIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline nepturite") { Item ingot = new NepturiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline steel") { Item ingot = new SteelIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline brass") { Item ingot = new BrassIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline mithril") { Item ingot = new MithrilIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else if (Name == "crystalline xormite") { Item ingot = new XormiteIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } else { Item ingot = new IronIngot(); ingot.Amount = this.Amount; from.AddToBackpack(ingot); } from.PlaySound(0x208); from.SendMessage("You smelt the crystalline metal the and put the ingots in your backpack."); this.Delete(); } else { from.SendMessage("Only an apprentice blacksmith can smelt that."); } }