Example #1
0
            public UnloadEntry(Fukiya fukiya)
                : base(6225, 0)
            {
                m_Fukiya = fukiya;

                Enabled = (fukiya.UsesRemaining > 0);
            }
Example #2
0
            public UnloadEntry(Mobile from, Fukiya m_fukiya, bool enabled) : base(6225, 3)
            {
                mobile = from;

                fukiya = m_fukiya;

                if (!enabled)
                {
                    Flags |= Network.CMEFlags.Disabled;
                }
            }
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_belt.Deleted)
                {
                    return;
                }
                else if (targeted is Mobile)
                {
                    Mobile m = (Mobile)targeted;

                    double dist = from.GetDistanceToSqrt(m.Location);

                    if (m.Map != from.Map || dist > 11)
                    {
                        from.SendLocalizedMessage(500446);                           // That is too far away.
                        return;
                    }

                    if (m != from && from.HarmfulCheck(m))
                    {
                        Direction to = from.GetDirectionTo(m);

                        from.Direction = to;

                        from.RevealingAction();

                        from.Animate(from.Mounted ? 26 : 9, 7, 1, true, false, 0);

                        if (Fukiya.CheckHitChance(from, m))
                        {
                            from.MovingEffect(m, 0x27AC, 7, 1, false, false, 0x23A, 0);

                            AOS.Damage(m, from, Utility.Random(3, 5), 100, 0, 0, 0, 0);

                            if (m_belt.Poison != null && m_belt.PoisonCharges > 0)
                            {
                                --m_belt.PoisonCharges;

                                m.ApplyPoison(from, m_belt.Poison);
                            }
                        }
                        else
                        {
                            from.MovingEffect(new Shuriken(), 0x27AC, 7, 1, false, false, 0x23A, 0);

                            from.SendMessage("You miss.");
                        }

                        m_belt.UsesRemaining--;
                    }
                }
            }
Example #4
0
 public LoadEntry(Fukiya fukiya) : base(6224, 0)
 {
     m_Fukiya = fukiya;
 }
Example #5
0
			public UnloadEntry( Fukiya fukiya ) : base( 6225, 0 )
			{
				m_Fukiya = fukiya;

				Enabled = ( fukiya.UsesRemaining > 0 );
			}
Example #6
0
			public LoadEntry( Fukiya fukiya ) : base( 6224, 0 )
			{
				m_Fukiya = fukiya;
			}
Example #7
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (m_belt.Deleted)
                {
                    return;
                }
                else if (targeted is Mobile)
                {
                    if (!BasePotion.HasFreeHand(from) && !BasePotion.HasBalancedWeapon(from))
                    {
                        from.SendLocalizedMessage(1063299);                           // You must have a free hand to throw shuriken.
                        return;
                    }

                    Mobile m = (Mobile)targeted;

                    double dist = from.GetDistanceToSqrt(m.Location);

                    if (m.Map != from.Map || dist > 11)
                    {
                        from.SendLocalizedMessage(500446);                           // That is too far away.
                        return;
                    }
                    else if (from.InRange(m, 2))
                    {
                        from.SendLocalizedMessage(1063303);                           // Your target is too close!
                        return;
                    }

                    if (m != from && from.HarmfulCheck(m))
                    {
                        Direction to = from.GetDirectionTo(m);

                        from.Direction = to;

                        from.RevealingAction();

                        from.Animate(from.Mounted ? 26 : 9, 7, 1, true, false, 0);

                        if (Fukiya.CheckHitChance(from, m))
                        {
                            from.MovingEffect(m, 0x27AC, 7, 1, false, false, 0x23A, 0);

                            AOS.Damage(m, from, Utility.Random(3, 5), 100, 0, 0, 0, 0);

                            if (m_belt.Poison != null && m_belt.PoisonCharges > 0)
                            {
                                --m_belt.PoisonCharges;

                                Poison poison   = m_belt.Poison;
                                int    maxLevel = from.Skills[SkillName.Poisoning].Fixed / 200;
                                if (poison.Level > maxLevel)
                                {
                                    poison = Poison.GetPoison(maxLevel);
                                }

                                m.ApplyPoison(from, poison);
                            }
                        }
                        else
                        {
                            from.MovingEffect(new Shuriken(), 0x27AC, 7, 1, false, false, 0x23A, 0);

                            from.SendMessage("You miss.");
                        }

                        // Throwing a shuriken restarts you weapon's swing delay
                        from.NextCombatTime = DateTime.UtcNow + from.Weapon.GetDelay(from);

                        m_belt.UsesRemaining--;
                    }
                }
            }
Example #8
0
 public InternalTarget(Fukiya fukiya) : base(1, false, TargetFlags.None)
 {
     m_fukiya = fukiya;
 }
Example #9
0
            public LoadEntry(Mobile from, Fukiya m_fukiya) : base(6224, 3)
            {
                mobile = from;

                fukiya = m_fukiya;
            }
Example #10
0
 public InternalTarget(Fukiya fukiya) : base(10, false, TargetFlags.Harmful)
 {
     m_fukiya = fukiya;
 }
Example #11
0
        public virtual void EquipSpecialty()
        {
            if (CanHeal)
                PackItem(new Bandage(Utility.RandomMinMax(10, 25)));

            SetWearable(new ThighBoots());
            SetWearable(new BodySash(), Utility.RandomSlimeHue());

            switch (_Specialty)
            {
                case SkillName.Chivalry:
                    SetWearable(RandomSwordWeapon());
                    PaladinEquip();
                    break;
                case SkillName.Swords:
                    SetWearable(RandomSwordWeapon());
                    StandardMeleeEquip();
                    break;
                case SkillName.Fencing:
                    SetWearable(RandomFencingWeapon());
                    StandardMeleeEquip();
                    break;
                case SkillName.Macing:
                    SetWearable(RandomMaceWeapon());
                    StandardMeleeEquip();
                    break;
                case SkillName.Archery:
                    SetWearable(RandomArhceryWeapon());
                    StandardMeleeEquip();
                    break;
                case SkillName.Magery:
                    SetWearable(RandomMageWeapon());
                    StandardMageEquip();
                    break;
                case SkillName.Mysticism:
                    SetWearable(RandomMageWeapon());
                    StandardMageEquip();
                    break;
                case SkillName.Spellweaving:
                    SetWearable(RandomMageWeapon());
                    StandardMageEquip();
                    break;
                case SkillName.Necromancy:
                    SetWearable(RandomMageWeapon());
                    StandardMageEquip();
                    break;
                case SkillName.Bushido:
                    BaseWeapon w = RandomSamuraiWeapon() as BaseWeapon;
                    SetWearable(w);

                    SetWearable(new LeatherSuneate());
                    SetWearable(new LeatherJingasa());
                    SetWearable(new LeatherDo());
                    SetWearable(new LeatherHiroSode());
                    SetWearable(new SamuraiTabi(Utility.RandomNondyedHue()));

                    if (_Sampire)
                        w.WeaponAttributes.HitLeechHits = 100;

                    SetSkill(SkillName.Parry, 120);
                    break;
                case SkillName.Ninjitsu:
                    SetWearable(RandomNinjaWeapon());

                    LeatherNinjaBelt belt = new LeatherNinjaBelt();
                    belt.UsesRemaining = 20;
                    belt.Poison = Poison.Greater;
                    belt.PoisonCharges = 20;
                    SetWearable(belt);

                    for (int i = 0; i < 2; i++)
                    {
                        Fukiya f = new Fukiya();
                        f.UsesRemaining = 10;
                        f.Poison = Poison.Greater;
                        f.PoisonCharges = 10;
                        f.Movable = false;
                        PackItem(f);
                    }

                    SetWearable(new NinjaTabi());
                    SetWearable(new LeatherNinjaJacket());
                    SetWearable(new LeatherNinjaHood());
                    SetWearable(new LeatherNinjaPants());
                    SetWearable(new LeatherNinjaMitts());

                    break;
                case SkillName.Poisoning:
                    BaseWeapon wep = RandomAssassinWeapon() as BaseWeapon;
                    wep.Poison = Poison.Lethal;
                    wep.PoisonCharges = 100;
                    SetWearable(wep);

                    SetWearable(new LeatherChest());
                    SetWearable(new LeatherLegs());
                    SetWearable(new LeatherGloves());
                    SetWearable(new LeatherGorget());
                    break;
            }
        }
Example #12
0
		public EliteNinja() : base( AIType.AI_Ninja, FightMode.Closest, 10, 1, 0.2, 0.4 )
		{
			SpeechHue = Utility.RandomDyedHue();
			Hue = Utility.RandomSkinHue();
			Name = "an elite ninja";

			Body = ( this.Female = Utility.RandomBool() ) ? 0x191 : 0x190;

			SetHits( 251, 350 );

			SetStr( 126, 225 );
			SetDex( 81, 95 );
			SetInt( 151, 165 );

			SetDamage( 12, 20 );

			SetDamageType( ResistanceType.Physical, 65 );
			SetDamageType( ResistanceType.Fire, 15 );
			SetDamageType( ResistanceType.Poison, 15 );
			SetDamageType( ResistanceType.Energy, 5 );

			SetResistance( ResistanceType.Physical, 35, 65 );
			SetResistance( ResistanceType.Fire, 40, 60 );
			SetResistance( ResistanceType.Cold, 25, 45 );
			SetResistance( ResistanceType.Poison, 40, 60 );
			SetResistance( ResistanceType.Energy, 35, 55 );

			SetSkill( SkillName.Anatomy, 105.0, 120.0 );
			SetSkill( SkillName.MagicResist, 80.0, 100.0 );
			SetSkill( SkillName.Tactics, 115.0, 130.0 );
			SetSkill( SkillName.Wrestling, 95.0, 120.0 );
			SetSkill( SkillName.Fencing, 95.0, 120.0 );
			SetSkill( SkillName.Macing, 95.0, 120.0 );
			SetSkill( SkillName.Swords, 95.0, 120.0 );

			SetSkill( SkillName.Ninjitsu, 95.0, 120.0 );
            SetSkill( SkillName.Hiding, 100.0);
            SetSkill( SkillName.Stealth, 120.0 );

			Fame = 8500;
			Karma = -8500;

            LeatherNinjaBelt belt = new LeatherNinjaBelt();
            belt.UsesRemaining = 20;
            belt.Poison = Poison.Greater;
            belt.PoisonCharges = 20;
            belt.Movable = false;
            AddItem(belt);

            int amount = Skills[SkillName.Ninjitsu].Value >= 100 ? 2 : 1;

            for (int i = 0; i < amount; i++)
            {
                Fukiya f = new Fukiya();
                f.UsesRemaining = 10;
                f.Poison = amount == 1 ? Poison.Regular : Poison.Greater;
                f.PoisonCharges = 10;
                f.Movable = false;
                PackItem(f);
            }

			AddItem( new NinjaTabi() );
			AddItem( new LeatherNinjaJacket());
			AddItem( new LeatherNinjaHood());
			AddItem( new LeatherNinjaPants());
			AddItem( new LeatherNinjaMitts());
			
			if( Utility.RandomDouble() < 0.33 )
				PackItem( new SmokeBomb() );

            if (Utility.RandomBool())
                PackItem(new Tessen());
            else
                PackItem(new Wakizashi());

            if (Utility.RandomBool())
                PackItem(new Nunchaku());
            else
                PackItem(new Daisho());

            if (Utility.RandomBool())
                PackItem(new Sai());
            else
                PackItem(new Tekagi());

            if (Utility.RandomBool())
                PackItem(new Kama());
            else
                PackItem(new Katana());

			Utility.AssignRandomHair( this );
            ChangeWeapon();
		}
        public static string MakeThisTask()
        {
            string task = null;

            switch (Utility.RandomMinMax(1, 10))
            {
            case 1: task = "Repair"; break;

            case 2: task = "Fix"; break;

            case 3: task = "Sand"; break;

            case 4: task = "Modify"; break;

            case 5: task = "Polish"; break;

            case 6: task = "Engrave"; break;

            case 7: task = "Adjust"; break;

            case 8: task = "Improve"; break;

            case 9: task = "Oil"; break;

            case 10: task = "Refinish"; break;
            }

            if (Utility.RandomMinMax(1, 5) == 1)
            {
                Item item = null;

                switch (Utility.RandomMinMax(1, 14))
                {
                case 1: item = new WildStaff(); break;

                case 2: item = new ShepherdsCrook(); break;

                case 3: item = new QuarterStaff(); break;

                case 4: item = new GnarledStaff(); break;

                case 5: item = new WoodenShield(); break;

                case 6: item = new Bokuto(); break;

                case 7: item = new Fukiya(); break;

                case 8: item = new Tetsubo(); break;

                case 9: item = new WoodenPlateArms(); break;

                case 10: item = new WoodenPlateHelm(); break;

                case 11: item = new WoodenPlateGloves(); break;

                case 12: item = new WoodenPlateGorget(); break;

                case 13: item = new WoodenPlateLegs(); break;

                case 14: item = new WoodenPlateChest(); break;
                }

                bool evil   = false;
                bool orient = false;

                switch (Utility.RandomMinMax(1, 8))
                {
                case 1: evil = true; break;

                case 2: orient = true; break;
                }

                string sAdjective = "unusual";
                string eAdjective = "might";

                sAdjective = Server.LootPackEntry.MagicItemAdj("start", orient, evil, item.ItemID);
                eAdjective = Server.LootPackEntry.MagicItemAdj("end", orient, evil, item.ItemID);

                string name  = "item";
                string xName = ContainerFunctions.GetOwner("property");

                if (item.Name != null && item.Name != "")
                {
                    name = item.Name.ToLower();
                }
                if (name == "item")
                {
                    name = MorphingItem.AddSpacesToSentence((item.GetType()).Name).ToLower();
                }

                switch (Utility.RandomMinMax(0, 5))
                {
                case 0: name = sAdjective + " " + name + " of " + xName;        break;

                case 1: name = name + " of " + xName;                                           break;

                case 2: name = sAdjective + " " + name;                                         break;

                case 3: name = sAdjective + " " + name + " of " + xName;        break;

                case 4: name = name + " of " + xName;                                           break;

                case 5: name = sAdjective + " " + name;                                         break;
                }

                item.Delete();

                task = task + " their " + name;
            }
            else
            {
                string[] sWoods = new string[] { " ", " ash wood ", " cherry wood ", " ebony wood ", " golden oak ", " hickory ", " mahogany ", " oak ", " pine ", " ghost wood ", " rosewood ", " walnut wood ", " petrified wood ", " diftwood ", " elven wood " };
                string   sWood  = sWoods[Utility.RandomMinMax(0, (sWoods.Length - 1))];

                task = task + " their" + sWood;

                switch (Utility.RandomMinMax(1, 20))
                {
                case 1: task = task + "foot stool"; break;

                case 2: task = task + "stool"; break;

                case 3: task = task + "chair"; break;

                case 4: task = task + "bench"; break;

                case 5: task = task + "throne"; break;

                case 6: task = task + "nightstand"; break;

                case 7: task = task + "writing table"; break;

                case 8: task = task + "table"; break;

                case 9: task = task + "box"; break;

                case 10: task = task + "crate"; break;

                case 11: task = task + "chest"; break;

                case 12: task = task + "armoire"; break;

                case 13: task = task + "bookcase"; break;

                case 14: task = task + "shelf"; break;

                case 15: task = task + "drawers"; break;

                case 16: task = task + "foot locker"; break;

                case 17: task = task + "cabinet"; break;

                case 18: task = task + "barrel"; break;

                case 19: task = task + "tub"; break;

                case 20: task = task + "bed"; break;
                }
            }

            return(task);
        }