Exemple #1
0
        public override void OnAdded(object parent)
        {
            base.OnAdded(parent);

            if (parent is Mobile)
            {
                FameKarmaTitles.AwardKarma((Mobile)parent, -20, true);
            }
        }
Exemple #2
0
                protected override void OnTick()
                {
                    Container theirPack = m_Target.Backpack;

                    if (theirPack == null)
                    {
                        m_From.SendLocalizedMessage(500404); // They seem unwilling to give you any money.
                    }
                    else if (m_From.CheckTargetSkill(SkillName.Begging, m_Target, 0.0, 120.0, 1.0))
                    {
                        int toConsume = theirPack.GetAmount(typeof(Gold)) / 10;
                        int max       = 10 + (m_From.Fame / 2500);

                        if (max > 14)
                        {
                            max = 14;
                        }

                        else if (max < 10)
                        {
                            max = 10;
                        }

                        if (toConsume > max)
                        {
                            toConsume = max;
                        }

                        if (toConsume > 0)
                        {
                            int consumed = theirPack.ConsumeUpTo(typeof(Gold), toConsume);

                            if (consumed > 0)
                            {
                                m_Target.PublicOverheadMessage(MessageType.Regular, m_Target.SpeechHue, 500405); // I feel sorry for thee...

                                Gold gold = new Gold(consumed);

                                m_From.AddToBackpack(gold);

                                //TEST: REDO

                                /*
                                 * if (m_From.Skills.Begging.Value == 100)
                                 * {
                                 *  var randomNumber = Utility.RandomMinMax(1, 100);
                                 *
                                 *  if (randomNumber <= 75) //75% chance
                                 *  {
                                 *      switch (Utility.Random(2))
                                 *      {
                                 *          case 0: m_From.AddToBackpack(new Pitcher(BeverageType.Water)); break;
                                 *
                                 *          default: m_From.AddToBackpack(new FrenchBread()); break;
                                 *      }
                                 *  }
                                 *
                                 *  else if (randomNumber <= 99) //24% chance
                                 *  {
                                 *      switch (Utility.Random(7))
                                 *      {
                                 *          case 0: m_From.AddToBackpack(new Lantern()); break;
                                 *          case 1: m_From.AddToBackpack(new CheesePizza()); break;
                                 *          case 2: m_From.AddToBackpack(new WoodenBowlOfStew()); break;
                                 *          case 3: m_From.AddToBackpack(new CheeseWedge()); break;
                                 *          case 4: m_From.AddToBackpack(new Dates()); break;
                                 *          case 5: m_From.AddToBackpack(new Shirt()); break;
                                 *
                                 *          default: m_From.AddToBackpack(new Pitcher(BeverageType.Liquor)); break;
                                 *      }
                                 *  }
                                 *
                                 *  else // 1% chance
                                 *  {
                                 *      switch (Utility.RandomMinMax(1, 6))
                                 *      {
                                 *          case 1: m_From.AddToBackpack(new Bedroll()); break;
                                 *          case 2: m_From.AddToBackpack(new Pitcher(BeverageType.Wine)); break;
                                 *          case 3: m_From.AddToBackpack(new BeverageBottle(BeverageType.Wine)); break;
                                 *          case 4: m_From.AddToBackpack(new FlowerGarland()); break;
                                 *          case 5: m_From.AddToBackpack(new FishingPole()); break;
                                 *          case 6: m_From.AddToBackpack(new Turnip()); break;
                                 *      }
                                 *  }
                                 * }
                                 */

                                m_From.PlaySound(gold.GetDropSound());

                                if (m_From.Karma > -3000)
                                {
                                    int toLose = m_From.Karma + 3000;

                                    if (toLose > 40)
                                    {
                                        toLose = 40;
                                    }

                                    FameKarmaTitles.AwardKarma(m_From, -toLose, true);
                                }
                            }

                            else
                            {
                                m_Target.PublicOverheadMessage(MessageType.Regular, m_Target.SpeechHue, 500407); // I have not enough money to give thee any!
                            }
                        }

                        else
                        {
                            m_Target.PublicOverheadMessage(MessageType.Regular, m_Target.SpeechHue, 500407); // I have not enough money to give thee any!
                        }
                        m_From.NextSkillTime = Core.TickCount + (int)(SkillCooldown.BeggingSuccessCooldown * 1000);
                    }

                    else
                    {
                        m_From.SendLocalizedMessage(500404); // They seem unwilling to give you any money.
                        m_From.NextSkillTime = Core.TickCount + (int)(SkillCooldown.BeggingFailureCooldown * 1000);
                    }
                }
Exemple #3
0
        public static void Container_Snoop(Container cont, Mobile from)
        {
            if (!from.BeginAction(typeof(Snooping)))
            {
                return;
            }

            Timer.DelayCall(TimeSpan.FromSeconds(SkillCooldown.SnoopingCooldown), new TimerStateCallback(ReleaseSnoopingLock_Callback), from);

            if (from.AccessLevel > AccessLevel.Player || from.InRange(cont.GetWorldLocation(), 1))
            {
                Mobile root = cont.RootParent as Mobile;

                if (root != null && !root.Alive)
                {
                    return;
                }

                if (root != null && root.AccessLevel > AccessLevel.Player && from.AccessLevel == AccessLevel.Player)
                {
                    from.SendLocalizedMessage(500209);                       // You can not peek into the container.
                    return;
                }

                if (root != null && from.AccessLevel == AccessLevel.Player && !CheckSnoopAllowed(from, root))
                {
                    from.SendLocalizedMessage(1001018);                       // You cannot perform negative acts on your target.
                    return;
                }

                double noticeChance = 1.0 - (from.Skills[SkillName.Snooping].Value / 100);

                if (noticeChance > .5)
                {
                    noticeChance = .5;
                }

                if (noticeChance < .05)
                {
                    noticeChance = .05;
                }

                if (Utility.RandomDouble() <= noticeChance && root != null && from.AccessLevel == AccessLevel.Player)
                {
                    Map map = from.Map;

                    if (map != null)
                    {
                        string message = String.Format("You notice {0} attempting to peek into {1}'s belongings.", from.Name, root.Name);

                        IPooledEnumerable eable = map.GetClientsInRange(from.Location, 8);

                        foreach (NetState ns in eable)
                        {
                            if (ns.Mobile != from)
                            {
                                ns.Mobile.SendMessage(message);
                            }
                        }

                        eable.Free();
                    }
                }

                if (from.AccessLevel == AccessLevel.Player)
                {
                    FameKarmaTitles.AwardKarma(from, -4, true);
                }

                from.CheckTargetSkill(SkillName.Snooping, cont, 0.0, 100.0, 1.0);

                double stealingSkill = from.Skills[SkillName.Snooping].Value / 100;
                double successChance = stealingSkill * .75;

                if (from.Hidden)
                {
                    double hidingBonus = .25;

                    if (hidingBonus > stealingSkill)
                    {
                        hidingBonus = stealingSkill;
                    }

                    successChance += hidingBonus;
                }

                if (from.LastCombatTime + TimeSpan.FromSeconds(30) > DateTime.UtcNow)
                {
                    successChance -= .25;
                }

                bool successful = (Utility.RandomDouble() <= successChance);

                if (from.AccessLevel > AccessLevel.Player || successful)
                {
                    if (cont is TrapableContainer && ((TrapableContainer)cont).ExecuteTrap(from))
                    {
                        return;
                    }

                    cont.DisplayTo(from);
                }

                else
                {
                    from.SendLocalizedMessage(500210);                       // You failed to peek into the container.
                }
            }

            else
            {
                from.SendLocalizedMessage(500446);                   // That is too far away.
            }
        }