Пример #1
0
        public void OnSelectVirtue(Mobile from, object target, object state)
        {
            BattleVirtue bv   = target as BattleVirtue;
            ArrayList    list = state as ArrayList;

            if (bv == null)
            {
                from.SendAsciiMessage(0x25, "Select the BattleVirtue to add the items to!");
                from.BeginTarget(18, false, TargetFlags.None, new TargetStateCallback(OnSelectVirtue), state);
                return;
            }

            int count = 0;

            foreach (Item i in list)
            {
                if (i != bv && !bv.Decorations.Contains(i))
                {
                    bv.Decorations.Add(i);
                    count++;
                }
            }

            from.SendAsciiMessage(count.ToString() + " items added to virtue.");
        }
Пример #2
0
        public override void ExecuteList(CommandEventArgs e, ArrayList list)
        {
            BattleVirtue bv = null;

            foreach (Item item in list)
            {
                if (item is BattleVirtue)
                {
                    if (bv != null)
                    {
                        LogFailure("You can only select one BattleVirtue at a time!");
                        return;
                    }

                    bv = item as BattleVirtue;
                }
            }

            if (bv == null)
            {
                e.Mobile.SendAsciiMessage("Select the BattleVirtue to add the items to.");
                e.Mobile.BeginTarget(18, false, TargetFlags.None, new TargetStateCallback(OnSelectVirtue), list);
            }
            else
            {
                OnSelectVirtue(e.Mobile, bv, list);
            }
        }
Пример #3
0
        public BattleVirtueRegion(BattleVirtue ctrl, Rectangle2D area, Point3D goloc, Map map)
            : base(null, map, 100, area)
        {
            GoLocation = goloc;

            _Ctrl = ctrl;

            Register();
        }
Пример #4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int      version  = reader.ReadInt();
            TimeSpan duration = TimeSpan.Zero;
            int      vCount   = MaxVirtues;

            switch (version)
            {
            case 0:
                _Owner      = reader.ReadInt();
                _Buildings  = reader.ReadStrongItemList <BattleBuilding>();
                _UnownedHue = reader.ReadInt();

                vCount = reader.ReadInt();
                for (int i = 0; i < vCount; i++)
                {
                    BattleVirtue bv = reader.ReadItem <BattleVirtue>();

                    if (i < MaxVirtues)
                    {
                        _Virtues[i] = bv;
                    }
                }

                duration       = reader.ReadTimeSpan();
                _Day           = (DayOfWeek)reader.ReadInt();
                _Hour          = reader.ReadTimeSpan();
                _Length        = reader.ReadTimeSpan();
                _PreBattleLen  = reader.ReadTimeSpan();
                _PostBattleLen = reader.ReadTimeSpan();
                _Enabled       = reader.ReadBool();
                break;
            }

            if (duration > TimeSpan.Zero)
            {
                _EndTime = DateTime.Now + duration + TimeSpan.FromMinutes(1); // 1 minute accounts for world load delay
            }
            else
            {
                _EndTime = DateTime.MinValue;
            }

            ResetTimers();

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(OnLoad));
        }
Пример #5
0
        public BattleVirtueRegion(BattleVirtue ctrl, Rectangle2D area, Point3D goloc, Map map)
            : base(null, map, 100, area)
        {
            GoLocation = goloc;

            _Ctrl = ctrl;

            Register();
        }