Esempio n. 1
0
        public ShrineMaster(MasterTitle specialty, MasterType type, ShrineBattleController controller)
            : base(GetAI(specialty), FightMode.Closest, 10, 1, .2, .1)
        {
            _Specialty  = specialty;
            _Type       = type;
            _Controller = controller;

            if (Female = Utility.RandomBool())
            {
                Name = NameList.RandomName("female");
            }
            else
            {
                Name = NameList.RandomName("male");
            }

            SetBody();

            Title = "the " + specialty;

            SetStr(250);
            SetDex(SpellCaster ? 150 : 200);
            SetInt(SpellCaster ? 1000 : 5000);

            SetHits(20000, 25000);

            if (AI == AIType.AI_Melee)
            {
                SetDamage(22, 30);
            }
            else if (!SpellCaster)
            {
                SetDamage(20, 28);
            }
            else
            {
                SetDamage(10, 20);
            }

            Fame  = 48000;
            Karma = -48000;

            SetResists();
            SetSkills();
            EquipSpecialty();

            _NextSpecial = DateTime.UtcNow;

            if (specialty == MasterTitle.Sampire)
            {
                Timer.DelayCall(TimeSpan.FromSeconds(1), () =>
                {
                    VampiricEmbraceSpell spell = new VampiricEmbraceSpell(this, null);
                    spell.Cast();
                });
            }
        }
Esempio n. 2
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            List <DamageStore> rights = GetLootingRights();

            rights.Sort();

            List <Mobile> list = rights.Select(x => x.m_Mobile).Where(m => m.InRange(c.Location, 20)).ToList();

            if (list.Count > 0)
            {
                for (int i = 0; i < 2; i++)
                {
                    Mobile drop;
                    Item   item = ShrineBattleController.CreateItem(list[0]);

                    if (list.Count == 1 || i >= list.Count)
                    {
                        drop = list[0];
                    }
                    else
                    {
                        drop = list[i];
                    }

                    if (_Controller != null)
                    {
                        JollyRogerData.AddMasterKill(drop, _Controller.Shrine);
                        _Controller.OnMasterDestroyed();
                    }

                    drop.SendLocalizedMessage(1159318); // You notice the Fellowship Insignia on your fallen foe's equipment and decide it may be of some value...

                    if (drop.Backpack == null || !drop.Backpack.TryDropItem(drop, item, false))
                    {
                        drop.BankBox.DropItem(item);
                        drop.SendLocalizedMessage(1079730); // The item has been placed into your bank box.
                    }
                }
            }

            ColUtility.Free(list);
        }
Esempio n. 3
0
 public ShrineMaster(MasterType type, ShrineBattleController controller)
     : this(RandomSpecialty(), type, controller)
 {
 }
Esempio n. 4
0
 public ShrineBattleRegion(ShrineBattleController controller)
     : base(string.Format("{0} Fragment Region", controller.Shrine.ToString()), controller.Map, DefaultPriority, ShrineBattleController._FragmentRegionTable[(int)controller.Shrine])
 {
     _Controller = controller;
 }