public override void OnDoubleClick(Mobile m) { if (m.InRange(this.GetWorldLocation(), 2)) { if (0.1 > Utility.RandomDouble()) { m.BAC = Math.Min(60, m.BAC + 10); m.PlaySound(Utility.RandomList(0x30, 0x2D6)); BaseBeverage.CheckHeaveTimer(m); m.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1156270, m.NetState); // *You ready the bottle to throw but it's enchanting label persuades you to drink it instead!* Delete(); } else { m.SendLocalizedMessage(1010086); // What do you want to use this on? m.BeginTarget(10, false, Server.Targeting.TargetFlags.None, (from, targeted) => { if (0.25 > Utility.RandomDouble() && m.BAC > 0) { AOS.Damage(m, Utility.RandomMinMax(25, 50), 100, 0, 0, 0, 0); m.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1156271, m.NetState); // *You wind up to throw but in your inebriated state you manage to hit yourself!* m.FixedParticles(0x3728, 20, 10, 5044, EffectLayer.Head); Delete(); } else if (targeted is ShadowguardPirate) { ShadowguardPirate pirate = targeted as ShadowguardPirate; m.DoHarmful(pirate); m.MovingParticles(pirate, 0x99B, 10, 0, false, true, 0, 0, 9502, 6014, 0x11D, EffectLayer.Waist, 0); Timer.DelayCall(TimeSpan.FromSeconds(.5), () => { if (pirate.Alive) { // this is gay, but can't figure out a better way to do! pirate.BlockReflect = true; AOS.Damage(pirate, m, 300, 0, 0, 0, 0, 0, 0, 100); pirate.BlockReflect = false; pirate.FixedParticles(0x3728, 20, 10, 5044, EffectLayer.Head); pirate.PlaySound(Utility.Random(0x3E, 3)); } }); Delete(); } else { m.SendLocalizedMessage(1156211); // You cannot throw this there! } }); } } }
public int GetSellPriceFor(Item item) { int price = 0; m_Table.TryGetValue(item.GetType(), out price); if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 1; price2 = 1; } else if (item is BeverageBottle) { price1 = 1; price2 = 1; } else if (item is Jug) { price1 = 1; price2 = 1; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } double basePrice = (double)price; double priceScalar = item.GetSellValueScalar(); price = (int)Math.Floor(basePrice * priceScalar); if (price < 1) { price = 1; } return(price); }
public void CheckWaterSource(Mobile from, BaseBeverage beverage) { if (IsLockedDown) { beverage.Content = BeverageType.Water; beverage.Poison = null; beverage.Poisoner = null; beverage.Quantity = beverage.MaxQuantity; from.SendLocalizedMessage(1010089); // You fill the container with water. } else { from.SendLocalizedMessage(1114298); // This must be locked down in order to use it. } }
public int GetSellPriceFor(Item item) { int price = (int)m_Table[item.GetType()]; if ((item is BaseWeapon && ((BaseWeapon)item).Exceptional) || (item is BaseArmor && ((BaseArmor)item).Exceptional)) { price = (int)(price * 1.25); } if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public int GetSellPriceFor(Item item) { int price = (int)m_Table[item.GetType()]; if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ArmorQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ArmorQuality.Exceptional) { price = (int)(price * 1.25); } /* Lines added to make Colored Armor and Weapons Sell at different prices */ switch (armor.Resource) { case CraftResource.DullCopper: price = (int)(price * 2.5); break; case CraftResource.ShadowIron: price = (int)(price * 3); break; case CraftResource.Copper: price = (int)(price * 3.5); break; case CraftResource.Bronze: price = (int)(price * 4); break; case CraftResource.Gold: price = (int)(price * 4.5); break; case CraftResource.Agapite: price = (int)(price * 5); break; case CraftResource.Verite: price = (int)(price * 5.5); break; case CraftResource.Valorite: price = (int)(price * 6); break; case CraftResource.Silver: price = (int)(price * 6.5); break; case CraftResource.Platinum: price = (int)(price * 7); break; case CraftResource.Mythril: price = (int)(price * 7.5); break; case CraftResource.Obsidian: price = (int)(price * 8); break; case CraftResource.Jade: price = (int)(price * 8.5); break; case CraftResource.Moonstone: price = (int)(price * 9); break; case CraftResource.Sunstone: price = (int)(price * 9.5); break; case CraftResource.Bloodstone: price = (int)(price * 10); break; } /* End of Changes */ price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == WeaponQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == WeaponQuality.Exceptional) { price = (int)(price * 1.25); } /* Lines added to make Colored Armor and Weapons Sell at different prices */ switch (weapon.Resource) { case CraftResource.DullCopper: price = (int)(price * 2.5); break; case CraftResource.ShadowIron: price = (int)(price * 3); break; case CraftResource.Copper: price = (int)(price * 3.5); break; case CraftResource.Bronze: price = (int)(price * 4); break; case CraftResource.Gold: price = (int)(price * 4.5); break; case CraftResource.Agapite: price = (int)(price * 5); break; case CraftResource.Verite: price = (int)(price * 5.5); break; case CraftResource.Valorite: price = (int)(price * 6); break; case CraftResource.Silver: price = (int)(price * 6.5); break; case CraftResource.Platinum: price = (int)(price * 7); break; case CraftResource.Mythril: price = (int)(price * 7.5); break; case CraftResource.Obsidian: price = (int)(price * 8); break; case CraftResource.Jade: price = (int)(price * 8.5); break; case CraftResource.Moonstone: price = (int)(price * 9); break; case CraftResource.Sunstone: price = (int)(price * 9.5); break; case CraftResource.Bloodstone: price = (int)(price * 10); break; } /* End of Changes */ price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public Whip(BaseBeverage beverage) { this.beverage = beverage; }
public Milk(BaseBeverage beverage) { this.beverage = beverage; }
private static int GetPriceFor(Item item) { int price = 0; if (item is Gold) { price = item.Amount; } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == CraftQuality.Low) { price = (int)(price * 0.75); } else if (armor.Quality == CraftQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == CraftQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == CraftQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } else { price = Utility.RandomMinMax(10, 50); } if (price < 1) { price = 1; } return(price); }
public Mocha(BaseBeverage beverage) { this.beverage = beverage; }
public BeverageEntry(Mobile from, BaseBeverage beverage) : base(10176, 1) { m_From = from; m_Beverage = beverage; }
public int GetSellPriceFor(Item item, BaseVendor vendor) { int price = 0; m_Table.TryGetValue(item.GetType(), out price); if (vendor != null && BaseVendor.UseVendorEconomy) { IBuyItemInfo buyInfo = vendor.GetBuyInfo().OfType <GenericBuyInfo>().FirstOrDefault(info => info.EconomyItem && info.Type == item.GetType()); if (buyInfo != null) { int sold = buyInfo.TotalSold; price = (int)(buyInfo.Price * .75); return(Math.Max(1, price)); } } if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ItemQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ItemQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == ItemQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == ItemQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public void Pour(Mobile from, Item item) { if (m_PlantStatus >= PlantStatus.DeadTwigs) { return; } if (m_PlantStatus == PlantStatus.DecorativePlant) { LabelTo(from, 1053049); // This is a decorative plant, it does not need watering! return; } if (!IsUsableBy(from)) { LabelTo(from, 1061856); // You must have the item in your backpack or locked down in order to use it. return; } if (item is BaseBeverage) { BaseBeverage beverage = (BaseBeverage)item; if (beverage.IsEmpty || !beverage.Pourable || beverage.Content != BeverageType.Water) { LabelTo(from, 1053069); // You can't use that on a plant! return; } if (!beverage.ValidateUse(from, true)) { return; } /*beverage.Quantity--; * m_PlantSystem.Water++; * * from.PlaySound( 0x4E ); * LabelTo( from, 1061858 ); // You soften the dirt with water. * * //OS-Edit: Endless Decanter of Water * if ( beverage is EndlessDecanterOfWater ) * { * EndlessDecanterOfWater edw = beverage as EndlessDecanterOfWater; * EndlessDecanterOfWater.Refill( from, edw ); * } * //END EDIT*/ } else if (item is BasePotion) { BasePotion potion = (BasePotion)item; int message; if (ApplyPotion(potion.PotionEffect, false, out message)) { potion.Consume(); from.PlaySound(0x240); from.AddToBackpack(new Bottle()); } LabelTo(from, message); } else if (item is PotionKeg) { PotionKeg keg = (PotionKeg)item; if (keg.Held <= 0) { LabelTo(from, 1053069); // You can't use that on a plant! return; } int message; if (ApplyPotion(keg.Type, false, out message)) { keg.Held--; from.PlaySound(0x240); } LabelTo(from, message); } else { LabelTo(from, 1053069); // You can't use that on a plant! } }
public Soy(BaseBeverage beverage) { this.beverage = beverage; }
public int GetSellPriceFor(Item item, int barter) { int price = 0; m_Table.TryGetValue(item.GetType(), out price); if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ArmorQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ArmorQuality.Exceptional) { price = (int)(price * 1.25); } switch (armor.Resource) { case CraftResource.DullCopper: price = (int)(price * 1.25); break; case CraftResource.ShadowIron: price = (int)(price * 1.5); break; case CraftResource.Copper: price = (int)(price * 1.75); break; case CraftResource.Bronze: price = (int)(price * 2); break; case CraftResource.Gold: price = (int)(price * 2.25); break; case CraftResource.Agapite: price = (int)(price * 2.50); break; case CraftResource.Verite: price = (int)(price * 2.75); break; case CraftResource.Valorite: price = (int)(price * 3); break; case CraftResource.Nepturite: price = (int)(price * 3.10); break; case CraftResource.Obsidian: price = (int)(price * 3.10); break; case CraftResource.Steel: price = (int)(price * 3.25); break; case CraftResource.Brass: price = (int)(price * 3.5); break; case CraftResource.Mithril: price = (int)(price * 3.75); break; case CraftResource.Xormite: price = (int)(price * 3.75); break; case CraftResource.Dwarven: price = (int)(price * 7.50); break; case CraftResource.SpinedLeather: price = (int)(price * 1.5); break; case CraftResource.HornedLeather: price = (int)(price * 1.75); break; case CraftResource.BarbedLeather: price = (int)(price * 2.0); break; case CraftResource.NecroticLeather: price = (int)(price * 2.25); break; case CraftResource.VolcanicLeather: price = (int)(price * 2.5); break; case CraftResource.FrozenLeather: price = (int)(price * 2.75); break; case CraftResource.GoliathLeather: price = (int)(price * 3.0); break; case CraftResource.DraconicLeather: price = (int)(price * 3.25); break; case CraftResource.HellishLeather: price = (int)(price * 3.5); break; case CraftResource.DinosaurLeather: price = (int)(price * 3.75); break; case CraftResource.AlienLeather: price = (int)(price * 3.75); break; case CraftResource.RedScales: price = (int)(price * 1.25); break; case CraftResource.YellowScales: price = (int)(price * 1.25); break; case CraftResource.BlackScales: price = (int)(price * 1.5); break; case CraftResource.GreenScales: price = (int)(price * 1.5); break; case CraftResource.WhiteScales: price = (int)(price * 1.5); break; case CraftResource.BlueScales: price = (int)(price * 1.5); break; case CraftResource.AshTree: price = (int)(price * 1.25); break; case CraftResource.CherryTree: price = (int)(price * 1.45); break; case CraftResource.EbonyTree: price = (int)(price * 1.65); break; case CraftResource.GoldenOakTree: price = (int)(price * 1.85); break; case CraftResource.HickoryTree: price = (int)(price * 2.05); break; case CraftResource.MahoganyTree: price = (int)(price * 2.25); break; case CraftResource.DriftwoodTree: price = (int)(price * 2.25); break; case CraftResource.OakTree: price = (int)(price * 2.45); break; case CraftResource.PineTree: price = (int)(price * 2.65); break; case CraftResource.GhostTree: price = (int)(price * 2.65); break; case CraftResource.RosewoodTree: price = (int)(price * 2.85); break; case CraftResource.WalnutTree: price = (int)(price * 3); break; case CraftResource.ElvenTree: price = (int)(price * 6); break; case CraftResource.PetrifiedTree: price = (int)(price * 3.25); break; } /* End of Changes */ price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == WeaponQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == WeaponQuality.Exceptional) { price = (int)(price * 1.25); } switch (weapon.Resource) { case CraftResource.DullCopper: price = (int)(price * 1.25); break; case CraftResource.ShadowIron: price = (int)(price * 1.5); break; case CraftResource.Copper: price = (int)(price * 1.75); break; case CraftResource.Bronze: price = (int)(price * 2); break; case CraftResource.Gold: price = (int)(price * 2.25); break; case CraftResource.Agapite: price = (int)(price * 2.50); break; case CraftResource.Verite: price = (int)(price * 2.75); break; case CraftResource.Valorite: price = (int)(price * 3); break; case CraftResource.Obsidian: price = (int)(price * 3); break; case CraftResource.Nepturite: price = (int)(price * 3); break; case CraftResource.Steel: price = (int)(price * 3.25); break; case CraftResource.Brass: price = (int)(price * 3.5); break; case CraftResource.Mithril: price = (int)(price * 3.75); break; case CraftResource.Xormite: price = (int)(price * 3.75); break; case CraftResource.Dwarven: price = (int)(price * 7.50); break; } /* End of Changes */ price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } price = (int)(price / 2); if (barter > 0) { if (barter > 100) { barter = 100; } double nId = 1 + (barter * 0.03); price = (int)(price * nId); } if (price < 1) { price = 1; } return(price); }
public int GetSellPriceFor(Item item) { int price = (int)m_Table[item.GetType()]; if (price == -1) // shouldn't ever be asking for this anyway, but for sanity { return((int)ResourcePool.GetWholesalePrice(item.GetType())); } if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ArmorQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ArmorQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == WeaponQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == WeaponQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public static void Trick(BaseCreature creature, PlayerMobile player) { if (creature == null || player == null) { return; } int trickTextHue = 0x22; creature.PublicOverheadMessage(MessageType.Regular, trickTextHue, false, "Trick it is then!"); creature.PlaySound(0x246); double damageAmount = 0; int duration = 0; switch (Utility.RandomMinMax(1, 15)) { case 1: SpecialAbilities.BacklashSpecialAbility(1.0, null, player, .75, 60, -1, true, "", ""); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Ack! A curse! Causing your spellcasting proficiency to suffer!", player.NetState); } break; case 2: double bleedAmount = (double)player.HitsMax * .66; for (int a = 0; a < 5; a++) { Point3D newLocation = new Point3D(player.Location.X + Utility.RandomList(-1, 1), player.Location.Y + Utility.RandomList(-1, 1), player.Location.Z); new Blood().MoveToWorld(newLocation, player.Map); } SpecialAbilities.BleedSpecialAbility(1.0, null, player, bleedAmount, 8, -1, true, "", "", "-1"); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Curses! A dagger hidden in an apple!", player.NetState); } break; case 3: Point3D creatureLocation = creature.Location; Point3D playerLocation = player.Location; int projectiles = 15; int particleSpeed = 8; for (int a = 0; a < projectiles; a++) { Point3D newLocation = new Point3D(player.X + Utility.RandomList(-5, -4, -3, -2, -1, 1, 2, 3, 4, 5), player.Y + Utility.RandomList(-5, -4, -3, -2, -1, 1, 2, 3, 4, 5), player.Z); SpellHelper.AdjustField(ref newLocation, player.Map, 12, false); IEntity effectStartLocation = new Entity(Serial.Zero, new Point3D(newLocation.X, newLocation.Y, newLocation.Z + 10), player.Map); IEntity effectEndLocation = new Entity(Serial.Zero, new Point3D(player.X, player.Y, player.Z + 10), player.Map); Effects.SendMovingParticles(effectStartLocation, effectEndLocation, 0x3818, particleSpeed, 0, false, false, 2603, 0, 9501, 0, 0, 0x100); } player.FixedParticles(0x3967, 10, 40, 5036, 2603, 0, EffectLayer.CenterFeet); int damage = (int)(Math.Round((double)player.HitsMax * .33)); duration = 5; SpecialAbilities.HinderSpecialAbility(1.0, null, player, 1.0, duration, false, -1, false, "", "", "-1"); new Blood().MoveToWorld(player.Location, player.Map); AOS.Damage(player, damage, 0, 100, 0, 0, 0); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Electric candy! What an age we live in!", player.NetState); } break; case 4: SpecialAbilities.DiseaseSpecialAbility(1.0, null, player, 3, 60, -1, true, "", ""); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Blast! Expired candy!", player.NetState); } break; case 5: TimedStatic glue = new TimedStatic(4650, 30); glue.Name = "glue"; glue.Hue = 2067; glue.MoveToWorld(player.Location, player.Map); SpecialAbilities.EntangleSpecialAbility(1.0, null, player, 1.0, 30, -1, true, "", "", "-1"); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Your feet have been glued to the floor!", player.NetState); } break; case 6: damageAmount = (double)player.HitsMax * .5; SpecialAbilities.FlamestrikeSpecialAbility(1.0, null, player, damageAmount, 1, -1, true, "", "Spicy candy! So hot!"); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Spicy candy! So hot!", player.NetState); } break; case 7: damageAmount = (double)player.HitsMax * .5; Direction direction = Utility.GetDirection(creature.Location, player.Location); int windItemId = 8099; switch (direction) { case Direction.North: windItemId = 8099; break; case Direction.Right: windItemId = 8099; break; case Direction.West: windItemId = 8104; break; case Direction.Up: windItemId = 8104; break; case Direction.East: windItemId = 8109; break; case Direction.Down: windItemId = 8109; break; case Direction.South: windItemId = 8114; break; case Direction.Left: windItemId = 8114; break; } creature.MovingEffect(player, windItemId, 5, 1, false, false, 0, 0); player.PlaySound(0x64C); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "This candy totally blows...", player.NetState); } SpecialAbilities.KnockbackSpecialAbility(1.0, creature.Location, null, player, damageAmount, 20, -1, "", ""); break; case 8: SpecialAbilities.PetrifySpecialAbility(1.0, null, player, 1.0, 15, -1, true, "", "", "-1"); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Rock candy!", player.NetState); } break; case 9: if (player.Poison == null) { Poison poison = Poison.GetPoison(2); player.ApplyPoison(null, poison); } player.FixedEffect(0x372A, 10, 30, 2208, 0); Effects.PlaySound(player.Location, player.Map, 0x22F); int residueCount = Utility.RandomMinMax(3, 4); for (int a = 0; a < residueCount; a++) { Point3D poisonPoint = new Point3D(player.Location.X + Utility.RandomList(-1, 1), player.Location.Y + Utility.RandomList(-1, 1), player.Location.Z); SpellHelper.AdjustField(ref poisonPoint, player.Map, 12, false); TimedStatic poisonResidue = new TimedStatic(Utility.RandomList(0x1645, 0x122A, 0x122B, 0x122C, 0x122D, 0x122E, 0x122F), 5); poisonResidue.Hue = 2208; poisonResidue.Name = "poison residue"; poisonResidue.MoveToWorld(poisonPoint, player.Map); } if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Poisoned candy! Who would do such a thing!", player.NetState); } break; case 10: bool canPolymorph = true; if (!player.CanBeginAction(typeof(PolymorphSpell))) { canPolymorph = false; } if (!player.CanBeginAction(typeof(PolymorphPotion))) { canPolymorph = false; } if (!player.CanBeginAction(typeof(IncognitoSpell)) || player.IsBodyMod) { canPolymorph = false; } if (DisguiseTimers.IsDisguised(player)) { canPolymorph = false; } if (KinPaint.IsWearingKinPaint(player)) { canPolymorph = false; } if (!canPolymorph) { player.SendMessage("Hmm...Nothing seems to have happened. Or did it?"); return; } player.FixedParticles(0x373A, 10, 15, 5036, EffectLayer.Head); List <int> m_PossibleBodyValues = new List <int>(); m_PossibleBodyValues.Add(3); //Zombie m_PossibleBodyValues.Add(50); //Skeleton m_PossibleBodyValues.Add(56); //Skeleton m_PossibleBodyValues.Add(153); //Ghoul m_PossibleBodyValues.Add(302); //Skeletal Critter m_PossibleBodyValues.Add(309); //Patchwork Skeleton m_PossibleBodyValues.Add(148); //Necromancer m_PossibleBodyValues.Add(793); //Skeletal Horse m_PossibleBodyValues.Add(317); //Giant Bat m_PossibleBodyValues.Add(252); //Corpse Bride m_PossibleBodyValues.Add(57); //Skeletal Knight m_PossibleBodyValues.Add(116); //Nightmare m_PossibleBodyValues.Add(24); //Lich m_PossibleBodyValues.Add(154); //Mummy m_PossibleBodyValues.Add(104); //Skeletal Drake m_PossibleBodyValues.Add(740); //Skeletal Drake m_PossibleBodyValues.Add(308); //Giant Skeleton player.BodyMod = m_PossibleBodyValues[Utility.RandomMinMax(0, m_PossibleBodyValues.Count - 1)]; player.HueMod = 0; player.PlaySound(0x3BD); BaseArmor.ValidateMobile(player); duration = 120; player.BeginAction(typeof(PolymorphPotion)); Timer.DelayCall(TimeSpan.FromSeconds(duration), delegate { if (player == null) { return; } player.EndAction(typeof(PolymorphPotion)); }); player.BeginAction(typeof(PolymorphSpell)); Timer.DelayCall(TimeSpan.FromSeconds(duration), delegate { if (player == null) { return; } player.BodyMod = 0; player.HueMod = -1; player.EndAction(typeof(PolymorphSpell)); BaseArmor.ValidateMobile(player); }); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Hmm, something tastes odd about this candy.", player.NetState); } break; case 11: Item innerLegs = player.FindItemOnLayer(Layer.InnerLegs); Item outerLegs = player.FindItemOnLayer(Layer.OuterLegs); Item pants = player.FindItemOnLayer(Layer.Pants); int layersFound = 0; if (innerLegs != null) { player.Backpack.DropItem(innerLegs); layersFound++; } if (outerLegs != null) { player.Backpack.DropItem(outerLegs); layersFound++; } if (pants != null) { player.Backpack.DropItem(pants); layersFound++; } if (layersFound > 0) { player.PlaySound(0x503); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "Your pants appear to have fallen down. How embarrassing!", player.NetState); } } else { player.SendMessage("Nothing seems to have happened. Or did it?..."); } break; case 12: player.FixedParticles(0x374A, 10, 15, 5028, 2604, 0, EffectLayer.Waist); player.PlaySound(0x5DA); player.Animate(22, 6, 1, true, false, 0); //Fall Forward player.Stam = 0; if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "You feel drowsy and fall on your face!", player.NetState); } break; case 13: player.BAC = 60; player.PlaySound(0x5A9); BaseBeverage.CheckHeaveTimer(player); player.Animate(34, 5, 1, true, false, 0); if (player.NetState != null) { player.PrivateOverheadMessage(MessageType.Regular, 0, false, "What was in that candy??? *hic*", player.NetState); } break; case 14: Warp(creature, player); break; case 15: Warp(creature, player); break; } }
public PlayerDrinkingEventArgs(Player player, BaseBeverage bvgItem) : base(player) { BeverageItem = bvgItem; }
public int GetSellPriceFor(Item item) { int price = 0; this.m_Table.TryGetValue(item.GetType(), out price); if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ArmorQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ArmorQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; //daat99 OWLTR start - resources cost more if (OWLTROptionsManager.IsEnabled(OWLTROptionsManager.OPTIONS_ENUM.RESOURCE_COST)) { double d_Mult = (int)armor.Resource; if (d_Mult > 1 && d_Mult < 101) { d_Mult = 10 + (d_Mult - 1); } else if (d_Mult > 101 && d_Mult < 201) { d_Mult = 10 + (d_Mult - 101); } else if (d_Mult > 201 && d_Mult < 300) { d_Mult = 10 + (d_Mult - 201); } else { d_Mult = 10; } price = (int)((d_Mult * price) / 10); } //daat99 OWLTR end - resources cost more if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == WeaponQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == WeaponQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)weapon.DurabilityLevel; //daat99 OWLTR start - resources cost more if (OWLTROptionsManager.IsEnabled(OWLTROptionsManager.OPTIONS_ENUM.RESOURCE_COST)) { double d_Mult = (int)weapon.Resource; if (d_Mult > 1 && d_Mult < 101) { d_Mult = 10 + (d_Mult - 1); } else if (d_Mult > 300 && d_Mult < 400) { d_Mult = 10 + (d_Mult - 300); } else { d_Mult = 10; } price = (int)((d_Mult * price) / 10); } //daat99 OWLTR end - resources cost more if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public int GetSellPriceFor(Item item) { int price = (int)m_Table[item.GetType()]; if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; /*if ( armor.Quality == CraftQuality.Low ) * price = (int)( price * 0.60 ); * else if ( armor.Quality == CraftQuality.Exceptional ) * price = (int)( price * 1.25 );*/ // quality: -30% to +20% if (armor.InitMaxHits > 0) { price = (int)(price * ((armor.MaxHitPoints / ((double)armor.InitMaxHits)) * 0.5 + 0.70)); } // condition: -10% to +2.5% if (armor.MaxHitPoints > 0) { price = (int)(price * ((armor.HitPoints / ((double)armor.MaxHitPoints)) * 0.125 + 0.9)); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; /*if ( weapon.Quality == CraftQuality.Low ) * price = (int)( price * 0.60 ); * else if ( weapon.Quality == CraftQuality.Exceptional ) * price = (int)( price * 1.25 );*/ // quality: -30% to +20% if (weapon.InitMaxHits > 0) { price = (int)(price * ((weapon.MaxHits / ((double)weapon.InitMaxHits)) * 0.5 + 0.70)); } // condition: -10% to +2.5% if (weapon.MaxHits > 0) { price = (int)(price * ((weapon.Hits / ((double)weapon.MaxHits)) * 0.125 + 0.9)); } price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } else if (item is ISellPrice) { price = ((ISellPrice)item).GetSellPrice(); } if (price < 1) { price = 1; } return(price); }
public int GetSellPriceFor(Item item) { if (m_Table == null) { return(0); } int price = (int)m_Table[item.GetType()]; if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (armor.Quality == ArmorQuality.Low) { price = (int)(price * 0.60); } else if (armor.Quality == ArmorQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)armor.Durability; price += 100 * (int)armor.ProtectionLevel; if (price < 1) { price = 1; } } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (weapon.Quality == WeaponQuality.Low) { price = (int)(price * 0.60); } else if (weapon.Quality == WeaponQuality.Exceptional) { price = (int)(price * 1.25); } price += 100 * (int)weapon.DurabilityLevel; price += 100 * (int)weapon.DamageLevel; if (price < 1) { price = 1; } } else if (item is BaseBeverage) { int price1 = price, price2 = price; if (item is Pitcher) { price1 = 3; price2 = 5; } else if (item is BeverageBottle) { price1 = 3; price2 = 3; } else if (item is Jug) { price1 = 6; price2 = 6; } BaseBeverage bev = (BaseBeverage)item; if (bev.IsEmpty || bev.Content == BeverageType.Milk) { price = price1; } else { price = price2; } } return(price); }
public void Pour(Mobile from, Item item) { if (m_PlantStatus >= PlantStatus.DeadTwigs) { return; } if (m_PlantStatus == PlantStatus.DecorativePlant) { LabelTo(from, 1053049); // This is a decorative plant, it does not need watering! return; } if (!RequiresUpkeep) { LabelTo(from, 1150619); // You don't need to water it. return; } if (!IsUsableBy(from)) { LabelTo(from, 1061856); // You must have the item in your backpack or locked down in order to use it. return; } if (item is BaseBeverage) { BaseBeverage beverage = (BaseBeverage)item; if (beverage.IsEmpty || !beverage.Pourable || beverage.Content != BeverageType.Water) { LabelTo(from, 1053069); // You can't use that on a plant! return; } if (!beverage.ValidateUse(from, true)) { return; } beverage.Quantity--; m_PlantSystem.Water++; from.PlaySound(0x4E); LabelTo(from, 1061858); // You soften the dirt with water. m_PlantSystem.NextGrowth = DateTime.UtcNow + PlantSystem.CheckDelay; } else if (item is BasePotion) { BasePotion potion = (BasePotion)item; int message; if (ApplyPotion(potion.PotionEffect, false, out message)) { potion.Consume(); from.PlaySound(0x240); from.AddToBackpack(new Bottle()); m_PlantSystem.NextGrowth = DateTime.UtcNow + PlantSystem.CheckDelay; } LabelTo(from, message); } else if (item is PotionKeg) { PotionKeg keg = (PotionKeg)item; if (keg.Held <= 0) { LabelTo(from, 1053069); // You can't use that on a plant! return; } int message; if (ApplyPotion(keg.Type, false, out message)) { keg.Held--; from.PlaySound(0x240); m_PlantSystem.NextGrowth = DateTime.UtcNow + PlantSystem.CheckDelay; } LabelTo(from, message); } else { LabelTo(from, 1053069); // You can't use that on a plant! } }
public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; if (info.ButtonID == 0 || m_Plant.Deleted || m_Plant.PlantStatus >= PlantStatus.DecorativePlant) { return; } if (((info.ButtonID >= 6 && info.ButtonID <= 10) || info.ButtonID == 12) && !from.InRange(m_Plant.GetWorldLocation(), 3)) { from.LocalOverheadMessage(MessageType.Regular, 0x3E9, 500446); // That is too far away. return; } if (!m_Plant.IsUsableBy(from)) { m_Plant.LabelTo(from, 1061856); // You must have the item in your backpack or locked down in order to use it. return; } switch (info.ButtonID) { case 1: // Reproduction menu { if (m_Plant.PlantStatus > PlantStatus.BowlOfDirt) { from.SendGump(new ReproductionGump(m_Plant)); } else { from.SendLocalizedMessage(1061885); // You need to plant a seed in the bowl first. from.SendGump(new MainPlantGump(m_Plant)); } break; } case 2: // Infestation { from.Send(new DisplayHelpTopic(54, true)); // INFESTATION LEVEL from.SendGump(new MainPlantGump(m_Plant)); break; } case 3: // Fungus { from.Send(new DisplayHelpTopic(56, true)); // FUNGUS LEVEL from.SendGump(new MainPlantGump(m_Plant)); break; } case 4: // Poison { from.Send(new DisplayHelpTopic(58, true)); // POISON LEVEL from.SendGump(new MainPlantGump(m_Plant)); break; } case 5: // Disease { from.Send(new DisplayHelpTopic(60, true)); // DISEASE LEVEL from.SendGump(new MainPlantGump(m_Plant)); break; } case 6: // Water { Item[] item = from.Backpack.FindItemsByType(typeof(BaseBeverage)); bool foundUsableWater = false; if (item != null && item.Length > 0) { for (int i = 0; i < item.Length; ++i) { BaseBeverage beverage = (BaseBeverage)item[i]; if (!beverage.IsEmpty && beverage.Pourable && beverage.Content == BeverageType.Water) { foundUsableWater = true; m_Plant.Pour(from, beverage); break; } } } if (!foundUsableWater) { from.Target = new PlantPourTarget(m_Plant); from.SendLocalizedMessage(1060808, "#" + m_Plant.GetLocalizedPlantStatus().ToString()); // Target the container you wish to use to water the ~1_val~. } from.SendGump(new MainPlantGump(m_Plant)); break; } case 7: // Poison potion { AddPotion(from, PotionEffect.PoisonGreater, PotionEffect.PoisonDeadly); break; } case 8: // Cure potion { AddPotion(from, PotionEffect.CureGreater); break; } case 9: // Heal potion { AddPotion(from, PotionEffect.HealGreater); break; } case 10: // Strength potion { AddPotion(from, PotionEffect.StrengthGreater); break; } case 11: // Help { from.Send(new DisplayHelpTopic(48, true)); // PLANT GROWING from.SendGump(new MainPlantGump(m_Plant)); break; } case 12: // Empty the bowl { from.SendGump(new EmptyTheBowlGump(m_Plant)); break; } } }
protected override void OnTarget(Mobile from, object targeted) { if (targeted is Mobile) { from.SendMessage("Une telle action serait inappropriée..."); // You feel that such an action would be inappropriate. return; } if (targeted is CookableCheese) { Food food = (Food)targeted; if (from.CheckTargetSkill(SkillName.TasteID, food, 0, 100)) { if (food.Poison != null) { from.SendMessage("Des effluves de poison parviennent à votre nez"); // It appears to have poison smeared on it. } else { // No poison on the food from.SendMessage("Vous ne décelez rien d'anormal dans ce que vous goûtez"); // You detect nothing unusual about this substance. } } else { // Skill check failed from.SendMessage("Vous ne discernez pas correctement les aromes"); // You cannot discern anything about this substance. } return; } if (targeted is Food) { Food food = (Food)targeted; if (from.CheckTargetSkill(SkillName.TasteID, food, 0, 100)) { if (food.Poison != null) { from.SendMessage("Des effluves de poison parviennent à votre nez"); // It appears to have poison smeared on it. } else { // No poison on the food from.SendMessage("Vous ne décelez rien d'anormal dans ce que vous goûtez"); // You detect nothing unusual about this substance. } } else { // Skill check failed from.SendMessage("Vous ne discernez pas correctement les aromes"); // You cannot discern anything about this substance. } return; } if (targeted is BaseBeverage) { BaseBeverage beverage = (BaseBeverage)targeted; if (from.CheckTargetSkill(SkillName.TasteID, beverage, 0, 100)) { if (beverage.Poison != null) { from.SendMessage("Des effluves de poison parviennent à votre nez"); // It appears to have poison smeared on it. } else { // No poison on the food from.SendMessage("Vous ne décelez rien d'anormal dans ce que vous goûtez"); // You detect nothing unusual about this substance. } } else { // Skill check failed from.SendMessage("Vous ne discernez pas correctement les aromes"); // You cannot discern anything about this substance. } return; } if (targeted is GenderPotion) { GenderPotion potion = (GenderPotion)targeted; if (from.Skills[SkillName.TasteID].Value >= 75) { if (potion.Female) { from.SendMessage("Cette fiole sent les fleurs"); } else { from.SendMessage("Cette fiole sent la sueur"); } } else { from.SendMessage("Votre nez n'est pas encore suffisamment développé pour en dénoter la subtile effluve"); } return; } if (targeted is BasePotion) { BasePotion potion = (BasePotion)targeted; potion.SendLocalizedMessageTo(from, 502813); // You already know what kind of potion that is. potion.SendLocalizedMessageTo(from, potion.LabelNumber); return; } if (targeted is PotionKeg) { PotionKeg keg = (PotionKeg)targeted; if (keg.Held <= 0) { keg.SendLocalizedMessageTo(from, 502228); // There is nothing in the keg to taste! } else { keg.SendLocalizedMessageTo(from, 502229); // You are already familiar with this keg's contents. keg.SendLocalizedMessageTo(from, keg.LabelNumber); } return; } // The target is not food or potion or potion keg. from.SendLocalizedMessage(502820); // That's not something you can taste. }