protected override void OnTarget(Mobile from, object targeted) { Item iCrystal = targeted as Item; if (iCrystal is GolemPorterItem) { GolemPorterItem xCrystal = (GolemPorterItem)iCrystal; int myCharges = xCrystal.m_Charges; if (!iCrystal.IsChildOf(from.Backpack)) { from.SendMessage("You can only use this crystal on items in your pack."); } else if (myCharges < 100) { int UpMe = 5; if (xCrystal.PorterType > 0) { UpMe = 1; } xCrystal.m_Charges = xCrystal.m_Charges + UpMe; if (xCrystal.m_Charges > 100) { xCrystal.m_Charges = 100; } from.SendMessage("You charge your golem with the power crystal."); from.RevealingAction(); from.PlaySound(0x652); xCrystal.InvalidateProperties(); m_Crystal.Delete(); } else { from.SendMessage("That golem is already fully charged."); } } else { from.SendMessage("You don't think that will really do anything."); } }
public static bool ProcessGolemBook(Mobile m, Mobile tinker, Item dropped) { GolemManual book = (GolemManual)dropped; if (Server.Misc.Worlds.GetRegionName(tinker.Map, tinker.Location) != book.TinkerLocation) { return(false); } int tinkerSkill = (int)(m.Skills[SkillName.Tinkering].Value); if (tinkerSkill > 100) { tinkerSkill = 100; } int GoldReturn = 0; if (tinkerSkill > 0) { GoldReturn = (int)(book.NeedGold * (tinkerSkill * 0.005)); } int HaveIngredients = 0; if (book.HaveClocks >= book.NeedClocks) { HaveIngredients++; } if (book.HaveCrystals >= book.NeedCrystals) { HaveIngredients++; } if (book.HaveGears >= book.NeedGears) { HaveIngredients++; } if (book.HaveGems >= book.NeedGems) { HaveIngredients++; } if (book.HaveGold >= book.NeedGold) { HaveIngredients++; } if (book.HaveOil >= book.NeedOil) { HaveIngredients++; } if (book.HaveMetalQty >= book.NeedMetalQty) { HaveIngredients++; } if (HaveIngredients < 7) { return(false); } int FighterGolem = 0; if (book.HaveSprings >= book.NeedSprings) { FighterGolem = 1; } int PortColor = 0; int ExodusBoost = 0; if (GoldReturn > 0) { m.AddToBackpack(new Gold(GoldReturn)); tinker.Say("Here is " + GoldReturn.ToString() + " gold back for all of your help."); } if (book.GolemType == "a Valorite Golem") { PortColor = MaterialInfo.GetMaterialColor("valorite", "monster", 0); ExodusBoost = 9; } else if (book.GolemType == "a Verite Golem") { PortColor = MaterialInfo.GetMaterialColor("verite", "monster", 0); ExodusBoost = 8; } else if (book.GolemType == "an Agapite Golem") { PortColor = MaterialInfo.GetMaterialColor("agapite", "monster", 0); ExodusBoost = 7; } else if (book.GolemType == "a Golden Golem") { PortColor = MaterialInfo.GetMaterialColor("gold", "monster", 0); ExodusBoost = 6; } else if (book.GolemType == "a Bronze Golem") { PortColor = MaterialInfo.GetMaterialColor("bronze", "monster", 0); ExodusBoost = 5; } else if (book.GolemType == "a Copper Golem") { PortColor = MaterialInfo.GetMaterialColor("copper", "monster", 0); ExodusBoost = 4; } else if (book.GolemType == "a Shadow Iron Golem") { PortColor = MaterialInfo.GetMaterialColor("shadow iron", "monster", 0); ExodusBoost = 3; } else if (book.GolemType == "a Dull Copper Golem") { PortColor = MaterialInfo.GetMaterialColor("dull copper", "monster", 0); ExodusBoost = 2; } else if (book.GolemType == "an Iron Golem") { PortColor = 0x430; ExodusBoost = 1; } GolemPorterItem ball = new GolemPorterItem(); string QuestLog = "had " + (book.GolemType).ToLower() + " built"; if (book.HaveDarkCore > 0) { ball.PorterExodus = ExodusBoost; PortColor = 2118; QuestLog = QuestLog + " with the dark core of Exodus"; } ball.PorterOwner = m.Serial; ball.PorterHue = PortColor; ball.PorterType = FighterGolem; ball.Hue = PortColor; m.AddToBackpack(ball); LoggingFunctions.LogGenericQuest(m, QuestLog); m.PrivateOverheadMessage(MessageType.Regular, 1153, false, "My golem has been built.", m.NetState); m.PlaySound(0x5C3); dropped.Delete(); return(true); }