public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: m_ShrinkItem = (ShrinkItem)(reader.ReadItem()); goto case 1; case 1: goto case 0; // Account for Dracna's version bump case 0: { m_Ep = reader.ReadInt(); m_Stage = reader.ReadInt(); Pregnant = m_Pregnant = reader.ReadBool(); // resets the timer if pregnant m_HasEgg = reader.ReadBool(); m_DeliveryDate = reader.ReadDateTime(); break; } } LoadSpecValues(); }
protected override void OnTarget(Mobile from, object target) { BaseCreature pet = target as BaseCreature; if (target == from) { from.SendMessage("You cannot shrink yourself!"); } else if (target is Item) { from.SendMessage("You cannot shrink that!"); } else if (target is PlayerMobile) { from.SendMessage("That person gives you a dirty look!"); } else if (Server.Spells.SpellHelper.CheckCombat(from)) { from.SendMessage("You cannot shrink your pet while you are fighting."); } else if (null == pet) { from.SendMessage("That is not a pet!"); } else if ((pet.BodyValue == 400 || pet.BodyValue == 401) && pet.Controlled == false) { from.SendMessage("That person gives you a dirty look!"); } else if (pet.IsDeadPet) { from.SendMessage("You cannot shrink the dead!"); } else if (pet.Summoned) { from.SendMessage("You cannot shrink a summoned creature!"); } else if (pet.Combatant != null && pet.InRange(pet.Combatant, 12) && pet.Map == pet.Combatant.Map) { from.SendMessage("Your pet is fighting; you cannot shrink it yet."); } else if (pet.BodyMod != 0) { from.SendMessage("You cannot shrink your pet while it is polymorphed."); } else if (pet.Controlled == false) { from.SendMessage("You cannot not shrink wild creatures."); } else if (pet.ControlMaster != from) { from.SendMessage("That is not your pet."); } else if (ShrinkItem.IsPackAnimal(pet) && (null != pet.Backpack && pet.Backpack.Items.Count > 0)) { from.SendMessage("You must unload this pet's pack before it can be shrunk."); } else { IEntity p1 = new Entity(Serial.Zero, new Point3D(from.X, from.Y, from.Z), from.Map); IEntity p2 = new Entity(Serial.Zero, new Point3D(from.X, from.Y, from.Z + 50), from.Map); Effects.SendMovingParticles(p2, p1, ShrinkTable.Lookup(pet), 1, 0, true, false, 0, 3, 1153, 1, 0, EffectLayer.Head, 0x100); from.PlaySound(492); from.AddToBackpack(new ShrinkItem(pet)); if (null != m_ShrinkTool && m_ShrinkTool.ShrinkCharges > 0) { m_ShrinkTool.ShrinkCharges--; } } }
public void OnShrink(IShrinkItem shrinkItem) { m_ShrinkItem = (ShrinkItem)shrinkItem; }
public UnLockShrinkItem(Mobile from, ShrinkItem shrink) : base(2033, 5) { m_From = from; m_ShrinkItem = shrink; }