Example #1
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                Item iBattery = targeted as Item;

                if (iBattery is RobotItem)
                {
                    RobotItem xBattery = (RobotItem)iBattery;

                    int myCharges = xBattery.m_Charges;

                    if (!iBattery.IsChildOf(from.Backpack))
                    {
                        from.SendMessage("You can only use this battery on robots in your pack.");
                    }
                    else if (myCharges < 100)
                    {
                        xBattery.m_Charges = xBattery.m_Charges + 1;

                        if (xBattery.m_Charges > 100)
                        {
                            xBattery.m_Charges = 100;
                        }

                        from.SendMessage("You charge your robot with the battery.");
                        from.RevealingAction();
                        from.PlaySound(0x559);

                        xBattery.InvalidateProperties();

                        m_Battery.Delete();
                    }
                    else
                    {
                        from.SendMessage("That robot is already fully charged.");
                    }
                }
                else
                {
                    from.SendMessage("You don't think that will really do anything.");
                }
            }
Example #2
0
        public static bool ProcessRobotBook(Mobile m, Mobile tinker, Item dropped)
        {
            RobotSchematics book = (RobotSchematics)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 XormiteReturn = 0;

            if (tinkerSkill > 0)
            {
                XormiteReturn = (int)(book.NeedXormite * (tinkerSkill * 0.005));
            }

            int HaveIngredients = 0;

            if (book.HaveEngineParts >= book.NeedEngineParts)
            {
                HaveIngredients++;
            }
            if (book.HaveCircuitBoard >= book.NeedCircuitBoard)
            {
                HaveIngredients++;
            }
            if (book.HaveGears >= book.NeedGears)
            {
                HaveIngredients++;
            }
            if (book.HaveTransistors >= book.NeedTransistors)
            {
                HaveIngredients++;
            }
            if (book.HaveXormite >= book.NeedXormite)
            {
                HaveIngredients++;
            }
            if (book.HaveOil >= book.NeedOil)
            {
                HaveIngredients++;
            }
            if (book.HaveMetalQty >= book.NeedMetalQty)
            {
                HaveIngredients++;
            }
            if (book.HaveBolts >= book.NeedBolts)
            {
                HaveIngredients++;
            }

            if (HaveIngredients < 8)
            {
                return(false);
            }

            if (XormiteReturn > 0)
            {
                m.AddToBackpack(new DDXormite(XormiteReturn)); tinker.Say("Here is " + XormiteReturn.ToString() + " xormite back for all of your help.");
            }

            RobotItem ball = new RobotItem();

            ball.RobotOwner = m.Serial;
            ball.Hue        = 0;

            m.AddToBackpack(ball);

            LoggingFunctions.LogGenericQuest(m, "had a robot built");

            m.PrivateOverheadMessage(MessageType.Regular, 1153, false, "My robot has been built.", m.NetState);
            m.SendSound(0x559);

            dropped.Delete();

            return(true);
        }