public UnloadEntry(Fukiya fukiya) : base(6225, 0) { m_Fukiya = fukiya; Enabled = (fukiya.UsesRemaining > 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--; } } }
public LoadEntry(Fukiya fukiya) : base(6224, 0) { m_Fukiya = fukiya; }
public UnloadEntry( Fukiya fukiya ) : base( 6225, 0 ) { m_Fukiya = fukiya; Enabled = ( fukiya.UsesRemaining > 0 ); }
public LoadEntry( Fukiya fukiya ) : base( 6224, 0 ) { m_Fukiya = fukiya; }
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--; } } }
public InternalTarget(Fukiya fukiya) : base(1, false, TargetFlags.None) { m_fukiya = fukiya; }
public LoadEntry(Mobile from, Fukiya m_fukiya) : base(6224, 3) { mobile = from; fukiya = m_fukiya; }
public InternalTarget(Fukiya fukiya) : base(10, false, TargetFlags.Harmful) { m_fukiya = fukiya; }
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; } }
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); }