Index: Scripts/Engines/Plants/Seed.cs
===================================================================
--- Scripts/Engines/Plants/Seed.cs (revision 321)
+++ Scripts/Engines/Plants/Seed.cs (working copy)
@@ -56,6 +56,17 @@
return new Seed( PlantTypeInfo.RandomBonsai( increaseRatio ), PlantHue.Plain, false );
}
+ public static Seed RandomPeculiarSeed( int group )
+ {
+ switch ( group )
+ {
+ case 1: return new Seed ( PlantTypeInfo.RandomPeculiarGroupOne(), PlantHue.Plain, false );
+ case 2: return new Seed ( PlantTypeInfo.RandomPeculiarGroupTwo(), PlantHue.Plain, false );
+ case 3: return new Seed ( PlantTypeInfo.RandomPeculiarGroupThree(), PlantHue.Plain, false );
+ default: return new Seed ( PlantTypeInfo.RandomPeculiarGroupFour(), PlantHue.Plain, false );
+ }
+ }
+
[Constructable]
public Seed() : this( PlantTypeInfo.RandomFirstGeneration(), PlantHueInfo.RandomFirstGeneration(), false )
{
@@ -187,4 +198,4 @@
Weight = 1.0;
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Engines/Plants/PlantType.cs
===================================================================
--- Scripts/Engines/Plants/PlantType.cs (revision 321)
+++ Scripts/Engines/Plants/PlantType.cs (working copy)
@@ -29,7 +29,24 @@
RareGreenBonsai,
RarePinkBonsai,
ExceptionalBonsai,
- ExoticBonsai
+ ExoticBonsai,
+ Cactus,
+ FlaxFlowers,
+ FoxgloveFlowers,
+ HopsEast,
+ OrfluerFlowers,
+ CypressTwisted,
+ HedgeShort,
+ JuniperBush,
+ SnowdropPatch,
+ Cattails,
+ PoppyPatch,
+ SpiderTree,
+ WaterLily,
+ CypressStraight,
+ HedgeTall,
+ HopsSouth,
+ SugarCanes
}
public class PlantTypeInfo
@@ -60,7 +77,24 @@
new PlantTypeInfo( 0x28DE, -5, 5, PlantType.RareGreenBonsai, true, false, false ),
new PlantTypeInfo( 0x28E1, -5, 5, PlantType.RarePinkBonsai, true, false, false ),
new PlantTypeInfo( 0x28E2, -5, 5, PlantType.ExceptionalBonsai, true, false, false ),
- new PlantTypeInfo( 0x28E3, -5, 5, PlantType.ExoticBonsai, true, false, false )
+ new PlantTypeInfo( 0x28E3, -5, 5, PlantType.ExoticBonsai, true, false, false ),
+ new PlantTypeInfo( 0x0D25, 0, 0, PlantType.Cactus, false, false, false ),
+ new PlantTypeInfo( 0x1A9A, 0, 0, PlantType.FlaxFlowers, false, true, false ),
+ new PlantTypeInfo( 0x0C84, 0, 0, PlantType.FoxgloveFlowers, false, true, false ),
+ new PlantTypeInfo( 0x1A9F, 0, 0, PlantType.HopsEast, false, false, false ),
+ new PlantTypeInfo( 0x0CC1, 0, 0, PlantType.OrfluerFlowers, false, true, false ),
+ new PlantTypeInfo( 0x0CFE, 0, 0, PlantType.CypressTwisted, false, false, false ),
+ new PlantTypeInfo( 0x0C8F, 0, 0, PlantType.HedgeShort, false, false, false ),
+ new PlantTypeInfo( 0x0CC8, 0, 0, PlantType.JuniperBush, true, false, false ),
+ new PlantTypeInfo( 0x0C8E, 0, 0, PlantType.SnowdropPatch, false, true, false ),
+ new PlantTypeInfo( 0x0CB7, 0, 0, PlantType.Cattails, false, false, false ),
+ new PlantTypeInfo( 0x0CBE, 0, 0, PlantType.PoppyPatch, false, true, false ),
+ new PlantTypeInfo( 0x0CC9, 0, 0, PlantType.SpiderTree, false, false, false ),
+ new PlantTypeInfo( 0x0DC1, 0, 0, PlantType.WaterLily, false, true, false ),
+ new PlantTypeInfo( 0x0CFB, 0, 0, PlantType.CypressStraight, false, false, false ),
+ new PlantTypeInfo( 0x0DB8, 0, 0, PlantType.HedgeTall, false, false, false ),
+ new PlantTypeInfo( 0x1AA1, 0, 0, PlantType.HopsSouth, false, false, false ),
+ new PlantTypeInfo( 0x246C, 0, 0, PlantType.SugarCanes, false, false, false )
};
public static PlantTypeInfo GetInfo( PlantType plantType )
@@ -83,6 +117,51 @@
}
}
+ public static PlantType RandomPeculiarGroupOne()
+ {
+ switch ( Utility.Random( 5 ) )
+ {
+ case 0: return PlantType.Cactus;
+ case 1: return PlantType.FlaxFlowers;
+ case 2: return PlantType.FoxgloveFlowers;
+ case 3: return PlantType.HopsEast;
+ default: return PlantType.OrfluerFlowers;
+ }
+ }
+
+ public static PlantType RandomPeculiarGroupTwo()
+ {
+ switch ( Utility.Random( 4 ) )
+ {
+ case 0: return PlantType.CypressTwisted;
+ case 1: return PlantType.HedgeShort;
+ case 2: return PlantType.JuniperBush;
+ default: return PlantType.SnowdropPatch;
+ }
+ }
+
+ public static PlantType RandomPeculiarGroupThree()
+ {
+ switch ( Utility.Random( 4 ) )
+ {
+ case 0: return PlantType.Cattails;
+ case 1: return PlantType.PoppyPatch;
+ case 2: return PlantType.SpiderTree;
+ default: return PlantType.WaterLily;
+ }
+ }
+
+ public static PlantType RandomPeculiarGroupFour()
+ {
+ switch ( Utility.Random( 4 ) )
+ {
+ case 0: return PlantType.CypressStraight;
+ case 1: return PlantType.HedgeTall;
+ case 2: return PlantType.HopsSouth;
+ default: return PlantType.SugarCanes;
+ }
+ }
+
public static PlantType RandomBonsai( double increaseRatio )
{
/* Chances of each plant type are equal to the chances of the previous plant type * increaseRatio:
@@ -152,6 +231,25 @@
{
switch ( plantType )
{
+ case PlantType.Cactus:
+ case PlantType.FlaxFlowers:
+ case PlantType.FoxgloveFlowers:
+ case PlantType.HopsEast:
+ case PlantType.OrfluerFlowers:
+ case PlantType.CypressTwisted:
+ case PlantType.HedgeShort:
+ case PlantType.JuniperBush:
+ case PlantType.SnowdropPatch:
+ case PlantType.Cattails:
+ case PlantType.PoppyPatch:
+ case PlantType.SpiderTree:
+ case PlantType.WaterLily:
+ case PlantType.CypressStraight:
+ case PlantType.HedgeTall:
+ case PlantType.HopsSouth:
+ case PlantType.SugarCanes:
+ return 1080528; // peculiar
+
case PlantType.CommonGreenBonsai:
case PlantType.CommonPinkBonsai:
return 1063335; // common
@@ -187,6 +285,8 @@
public int OffsetX { get { return m_OffsetX; } }
public int OffsetY { get { return m_OffsetY; } }
public PlantType PlantType { get { return m_PlantType; } }
+
+ /* TODO: Sugar Canes = Bamboo. */
public int Name { get { return 1020000 + m_ItemID; } }
public bool ContainsPlant { get { return m_ContainsPlant; } }
public bool Flowery { get { return m_Flowery; } }
@@ -203,4 +303,4 @@
m_Crossable = crossable;
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Animals/Mounts/Hiryu.cs
===================================================================
--- Scripts/Mobiles/Animals/Mounts/Hiryu.cs (revision 321)
+++ Scripts/Mobiles/Animals/Mounts/Hiryu.cs (working copy)
@@ -110,6 +110,9 @@
if( Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomBonsaiSeed() );
+
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(3) );
}
Index: Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs
===================================================================
--- Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs (revision 321)
+++ Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs (working copy)
@@ -64,6 +64,9 @@
PackItem( new ArcaneGem() );
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
+
m_NextAbilityTime = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 2, 5 ) );
}
Index: Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs
===================================================================
--- Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs (working copy)
@@ -40,6 +40,10 @@
Karma = -11500;
VirtualArmor = 40;
+
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(1) );
+
}
public override void GenerateLoot()
@@ -69,4 +73,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs
===================================================================
--- Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs (working copy)
@@ -41,6 +41,9 @@
VirtualArmor = 50;
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
+
PackItem( new Garlic( 5 ) );
PackItem( new Bandage( 10 ) );
}
@@ -76,4 +79,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs
===================================================================
--- Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs (working copy)
@@ -42,6 +42,9 @@
Karma = 15000;
VirtualArmor = 36;
+
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
}
public override void GenerateLoot()
@@ -120,4 +123,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/Ants/AntLion.cs
===================================================================
--- Scripts/Mobiles/Monsters/Ants/AntLion.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Ants/AntLion.cs (working copy)
@@ -44,6 +44,9 @@
PackItem( new Bone( 3 ) );
PackItem( new FertileDirt( Utility.RandomMinMax( 1, 5 ) ) );
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
+
switch ( Utility.Random( 4 ) )
{
case 0: PackItem( new DullCopperOre( Utility.RandomMinMax( 1, 10 ) ) ); break;
@@ -102,4 +105,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/SE/TsukiWolf.cs
===================================================================
--- Scripts/Mobiles/Monsters/SE/TsukiWolf.cs (revision 321)
+++ Scripts/Mobiles/Monsters/SE/TsukiWolf.cs (working copy)
@@ -47,6 +47,8 @@
Fame = 8500;
Karma = -8500;
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(1) );
switch( Utility.Random( 10 ) )
@@ -189,4 +191,4 @@
return 0x52A;
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/SE/Kappa.cs
===================================================================
--- Scripts/Mobiles/Monsters/SE/Kappa.cs (revision 321)
+++ Scripts/Mobiles/Monsters/SE/Kappa.cs (working copy)
@@ -48,6 +48,8 @@
case 2: PackItem( new Axle() ); break;
}
}
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
}
Index: Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs
===================================================================
--- Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs (working copy)
@@ -41,6 +41,9 @@
Karma = -4000;
VirtualArmor = 30;
+
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(3) );
}
public override void GenerateLoot()
@@ -72,4 +75,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs
===================================================================
--- Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs (working copy)
@@ -51,6 +51,9 @@
VirtualArmor = 40;
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(3) );
+
AddItem( new LightSource() );
}
@@ -81,4 +84,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}
Index: Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs
===================================================================
--- Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs (revision 321)
+++ Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs (working copy)
@@ -40,6 +40,9 @@
VirtualArmor = 30;
PackArmor( 1, 5 );
+
+ if ( Core.ML && Utility.RandomDouble() < .33 )
+ PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
}
public override void GenerateLoot()
@@ -121,4 +124,4 @@
int version = reader.ReadInt();
}
}
-}
\ No newline at end of file
+}