From a2e5f1ffd8e7fd5326e5e9d6062117cfeae29abf Mon Sep 17 00:00:00 2001 From: eos Date: Sun, 2 Sep 2012 03:59:49 +0000 Subject: [PATCH] Added Chocolatiering. --- Scripts/Engines/Craft/Core/CraftGumpItem.cs | 2 +- Scripts/Engines/Craft/Core/CraftItem.cs | 29 +- Scripts/Engines/Craft/Core/CraftSystem.cs | 12 + Scripts/Engines/Craft/DefCooking.cs | 43 ++- Scripts/Items/Food/Chocolatiering.cs | 288 ++++++++++++++++++++ Scripts/Mobiles/BaseCreature.cs | 26 +- Scripts/Mobiles/Special/Paragon.cs | 5 +- 7 files changed, 389 insertions(+), 16 deletions(-) create mode 100644 Scripts/Items/Food/Chocolatiering.cs diff --git a/Scripts/Engines/Craft/Core/CraftGumpItem.cs b/Scripts/Engines/Craft/Core/CraftGumpItem.cs index 3a86c895c..ecaec7851 100644 --- a/Scripts/Engines/Craft/Core/CraftGumpItem.cs +++ b/Scripts/Engines/Craft/Core/CraftGumpItem.cs @@ -122,7 +122,7 @@ namespace Server.Engines.Craft { Type type = m_CraftItem.ItemType; - AddItem( 20, 50, CraftItem.ItemIDOf( type ) ); + AddItem( 20, 50, CraftItem.ItemIDOf( type ), m_CraftItem.ItemHue ); if ( m_CraftItem.IsMarkable( type ) ) { diff --git a/Scripts/Engines/Craft/Core/CraftItem.cs b/Scripts/Engines/Craft/Core/CraftItem.cs index 320b7fcf6..b371f7e95 100644 --- a/Scripts/Engines/Craft/Core/CraftItem.cs +++ b/Scripts/Engines/Craft/Core/CraftItem.cs @@ -30,11 +30,15 @@ namespace Server.Engines.Craft private string m_NameString; private int m_NameNumber; - + + private int m_ItemHue; + private int m_Mana; private int m_Hits; private int m_Stam; + private BeverageType m_RequiredBeverage; + private bool m_UseAllRes; private bool m_NeedHeat; @@ -50,7 +54,6 @@ namespace Server.Engines.Craft get { return m_ForceNonExceptional; } set { m_ForceNonExceptional = value; } } - private Expansion m_RequiredExpansion; @@ -133,6 +136,14 @@ namespace Server.Engines.Craft m_GroupNameNumber = groupName; m_NameNumber = name; + + m_RequiredBeverage = BeverageType.Water; + } + + public BeverageType RequiredBeverage + { + get { return m_RequiredBeverage; } + set { m_RequiredBeverage = value; } } public void AddRes( Type type, TextDefinition name, int amount ) @@ -200,12 +211,18 @@ namespace Server.Engines.Craft get { return m_NeedMill; } set { m_NeedMill = value; } } - + public Type ItemType { get { return m_Type; } } + public int ItemHue + { + get { return m_ItemHue; } + set { m_ItemHue = value; } + } + public string GroupNameString { get { return m_GroupNameString; } @@ -489,7 +506,7 @@ namespace Server.Engines.Craft } else { - if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != BeverageType.Water ) + if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != m_RequiredBeverage ) continue; totals[i] += hq.Quantity; @@ -526,7 +543,7 @@ namespace Server.Engines.Craft } else { - if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != BeverageType.Water ) + if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != m_RequiredBeverage ) continue; int theirAmount = hq.Quantity; @@ -564,7 +581,7 @@ namespace Server.Engines.Craft } else { - if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != BeverageType.Water ) + if ( hq is BaseBeverage && ((BaseBeverage)hq).Content != m_RequiredBeverage ) continue; amount += hq.Quantity; diff --git a/Scripts/Engines/Craft/Core/CraftSystem.cs b/Scripts/Engines/Craft/Core/CraftSystem.cs index b4695ef90..474a6b167 100644 --- a/Scripts/Engines/Craft/Core/CraftSystem.cs +++ b/Scripts/Engines/Craft/Core/CraftSystem.cs @@ -179,6 +179,12 @@ namespace Server.Engines.Craft } + public void SetItemHue( int index, int hue ) + { + CraftItem craftItem = m_CraftItems.GetAt( index ); + craftItem.ItemHue = hue; + } + public void SetManaReq( int index, int mana ) { CraftItem craftItem = m_CraftItems.GetAt( index ); @@ -215,6 +221,12 @@ namespace Server.Engines.Craft craftItem.NeedOven = needOven; } + public void SetBeverageType( int index, BeverageType requiredBeverage ) + { + CraftItem craftItem = m_CraftItems.GetAt( index ); + craftItem.RequiredBeverage = requiredBeverage; + } + public void SetNeedMill( int index, bool needMill ) { CraftItem craftItem = m_CraftItems.GetAt( index ); diff --git a/Scripts/Engines/Craft/DefCooking.cs b/Scripts/Engines/Craft/DefCooking.cs index ae9233bab..906c8bb36 100644 --- a/Scripts/Engines/Craft/DefCooking.cs +++ b/Scripts/Engines/Craft/DefCooking.cs @@ -97,6 +97,20 @@ namespace Server.Engines.Craft index = AddCraft( typeof( CookieMix ), 1044495, 1024159, 0.0, 100.0, typeof( JarHoney ), 1044472, 1, 1044253 ); AddRes( index, typeof( SweetDough ), 1044475, 1, 1044253 ); + + if ( Core.ML ) + { + index = AddCraft( typeof( CocoaButter ), 1044495, 1079998, 0.0, 100.0, typeof( CocoaPulp ), 1080530, 1, 1044253 ); + SetItemHue( index, 0x457 ); + SetNeededExpansion( index, Expansion.ML ); + SetNeedOven( index, true ); + + index = AddCraft( typeof( CocoaLiquor ), 1044495, 1079999, 0.0, 100.0, typeof( CocoaPulp ), 1080530, 1, 1044253 ); + AddRes( index, typeof( EmptyPewterBowl ), 1025629, 1, 1044253 ); + SetItemHue( index, 0x46A ); + SetNeededExpansion( index, Expansion.ML ); + SetNeedOven( index, true ); + } /* End Ingredients */ /* Begin Preparations */ @@ -242,6 +256,33 @@ namespace Server.Engines.Craft SetNeedHeat( index, true ); SetUseAllRes( index, true ); /* End Barbecue */ + + /* Begin Chocolatiering */ + if ( Core.ML ) + { + index = AddCraft( typeof( DarkChocolate ), 1080001, 1079994, 15.0, 100.0, typeof( SackOfSugar ), 1079997, 1, 1044253 ); + AddRes( index, typeof( CocoaButter ), 1079998, 1, 1044253 ); + AddRes( index, typeof( CocoaLiquor ), 1079999, 1, 1044253 ); + SetItemHue( index, 0x465 ); + SetNeededExpansion( index, Expansion.ML ); + + index = AddCraft( typeof( MilkChocolate ), 1080001, 1079995, 32.5, 107.5, typeof( SackOfSugar ), 1079997, 1, 1044253 ); + AddRes( index, typeof( CocoaButter ), 1079998, 1, 1044253 ); + AddRes( index, typeof( CocoaLiquor ), 1079999, 1, 1044253 ); + AddRes( index, typeof( BaseBeverage ), 1022544, 1, 1044253 ); + SetBeverageType( index, BeverageType.Milk ); + SetItemHue( index, 0x461 ); + SetNeededExpansion( index, Expansion.ML ); + + index = AddCraft( typeof( WhiteChocolate ), 1080001, 1079996, 52.5, 127.5, typeof( SackOfSugar ), 1079997, 1, 1044253 ); + AddRes( index, typeof( CocoaButter ), 1079998, 1, 1044253 ); + AddRes( index, typeof( Vanilla ), 1080000, 1, 1044253 ); + AddRes( index, typeof( BaseBeverage ), 1022544, 1, 1044253 ); + SetBeverageType( index, BeverageType.Milk ); + SetItemHue( index, 0x47E ); + SetNeededExpansion( index, Expansion.ML ); + } + /* End Chocolatiering */ } } -} \ No newline at end of file +} diff --git a/Scripts/Items/Food/Chocolatiering.cs b/Scripts/Items/Food/Chocolatiering.cs new file mode 100644 index 000000000..f4921b792 --- /dev/null +++ b/Scripts/Items/Food/Chocolatiering.cs @@ -0,0 +1,288 @@ +using System; +using Server; + +namespace Server.Items +{ + public class CocoaLiquor : Item + { + public override int LabelNumber { get { return 1080007; } } // Cocoa liquor + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public CocoaLiquor() + : base( 0x103F ) + { + Hue = 0x46A; + } + + public CocoaLiquor( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class SackOfSugar : Item + { + public override int LabelNumber { get { return 1080003; } } // Sack of sugar + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public SackOfSugar() + : this( 1 ) + { + } + + [Constructable] + public SackOfSugar( int amount ) + : base( 0x1039 ) + { + Hue = 0x461; + Stackable = true; + Amount = amount; + } + + public SackOfSugar( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class CocoaButter : Item + { + public override int LabelNumber { get { return 1080005; } } // Cocoa butter + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public CocoaButter() + : base( 0x1044 ) + { + Hue = 0x457; + } + + public CocoaButter( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class Vanilla : Item + { + public override int LabelNumber { get { return 1080009; } } // Vanilla + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public Vanilla() + : this( 1 ) + { + } + + [Constructable] + public Vanilla( int amount ) + : base( 0xE2A ) + { + Hue = 0x462; + Stackable = true; + Amount = amount; + } + + public Vanilla( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class CocoaPulp : Item + { + public override int LabelNumber { get { return 1080530; } } // cocoa pulp + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public CocoaPulp() + : this( 1 ) + { + } + + [Constructable] + public CocoaPulp( int amount ) + : base( 0xF7C ) + { + Hue = 0x219; + Stackable = true; + Amount = amount; + } + + public CocoaPulp( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); // version + } + + public override void Deserialize( GenericReader reader ) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class DarkChocolate : CandyCane + { + public override int LabelNumber { get { return 1079994; } } // Dark chocolate + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public DarkChocolate() + : base( 0xF10 ) + { + Hue = 0x465; + LootType = LootType.Regular; + } + + public DarkChocolate( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); + } + + public override void Deserialize(GenericReader reader) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class MilkChocolate : CandyCane + { + public override int LabelNumber { get { return 1079995; } } // Milk chocolate + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public MilkChocolate() + : base( 0xF18 ) + { + Hue = 0x461; + LootType = LootType.Regular; + } + + public MilkChocolate( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); + } + + public override void Deserialize(GenericReader reader) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } + + public class WhiteChocolate : CandyCane + { + public override int LabelNumber { get { return 1079996; } } // White chocolate + public override double DefaultWeight { get { return 1.0; } } + + [Constructable] + public WhiteChocolate() + : base( 0xF11 ) + { + Hue = 0x47E; + LootType = LootType.Regular; + } + + public WhiteChocolate( Serial serial ) + : base( serial ) + { + } + + public override void Serialize( GenericWriter writer ) + { + base.Serialize( writer ); + + writer.Write( (int) 0 ); + } + + public override void Deserialize(GenericReader reader) + { + base.Deserialize( reader ); + + int version = reader.ReadInt(); + } + } +} diff --git a/Scripts/Mobiles/BaseCreature.cs b/Scripts/Mobiles/BaseCreature.cs index 5e5b09997..9ea9a3893 100644 --- a/Scripts/Mobiles/BaseCreature.cs +++ b/Scripts/Mobiles/BaseCreature.cs @@ -4310,12 +4310,26 @@ namespace Server.Mobiles treasureLevel = 0; } - if ( !Summoned && !NoKillAwards && !IsBonded && treasureLevel >= 0 ) + if ( !Summoned && !NoKillAwards && !IsBonded ) { - if ( m_Paragon && Paragon.ChestChance > Utility.RandomDouble() ) - PackItem( new ParagonChest( this.Name, treasureLevel ) ); - else if ( (Map == Map.Felucca || Map == Map.Trammel) && TreasureMap.LootChance >= Utility.RandomDouble() ) - PackItem( new TreasureMap( treasureLevel, Map ) ); + if ( treasureLevel >= 0 ) + { + if ( m_Paragon && Paragon.ChestChance > Utility.RandomDouble() ) + PackItem( new ParagonChest( this.Name, treasureLevel ) ); + else if ( (Map == Map.Felucca || Map == Map.Trammel) && TreasureMap.LootChance >= Utility.RandomDouble() ) + PackItem( new TreasureMap( treasureLevel, Map ) ); + } + + if ( m_Paragon && Paragon.ChocolateIngredientChance > Utility.RandomDouble() ) + { + switch ( Utility.Random( 4 ) ) + { + case 0: PackItem( new CocoaButter() ); break; + case 1: PackItem( new CocoaLiquor() ); break; + case 2: PackItem( new SackOfSugar() ); break; + case 3: PackItem( new Vanilla() ); break; + } + } } if ( !Summoned && !NoKillAwards && !m_HasGeneratedLoot ) @@ -5509,4 +5523,4 @@ namespace Server.Mobiles } } } -} \ No newline at end of file +} diff --git a/Scripts/Mobiles/Special/Paragon.cs b/Scripts/Mobiles/Special/Paragon.cs index 86a822389..120804a89 100644 --- a/Scripts/Mobiles/Special/Paragon.cs +++ b/Scripts/Mobiles/Special/Paragon.cs @@ -6,8 +6,9 @@ namespace Server.Mobiles { public class Paragon { - public static double ChestChance = .10; // Chance that a paragon will carry a paragon chest - public static Map[] Maps = new Map[] // Maps that paragons will spawn on + public static double ChestChance = .10; // Chance that a paragon will carry a paragon chest + public static double ChocolateIngredientChance = .20; // Chance that a paragon will drop a chocolatiering ingredient + public static Map[] Maps = new Map[] // Maps that paragons will spawn on { Map.Ilshenar };