Files
abysmal-isle/Scripts/Items/Containers/CraftsmanSatchel.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

339 lines
7.6 KiB
C#

using System;
using Reward = Server.Engines.Quests.BaseReward;
namespace Server.Items
{
public class BaseCraftsmanSatchel : Backpack
{
public BaseCraftsmanSatchel()
: base()
{
Hue = Reward.SatchelHue();
int count = 1;
if (0.015 > Utility.RandomDouble())
count = 2;
bool equipment = false;
bool jewlery = false;
bool talisman = false;
while (Items.Count < count)
{
if (0.33 > Utility.RandomDouble() && !talisman)
{
DropItem(Loot.RandomTalisman());
talisman = true;
}
else if (0.4 > Utility.RandomDouble() && !equipment)
{
DropItem(RandomItem());
equipment = true;
}
else if (0.88 > Utility.RandomDouble() && !jewlery)
{
DropItem(Reward.Jewlery());
jewlery = true;
}
}
}
public BaseCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public virtual Item RandomItem()
{
return null;
}
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 AlchemistCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public AlchemistCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.AlchemyRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
}
public AlchemistCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.RangedWeapon();
}
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 FletcherCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public FletcherCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.FletcherRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
var runic = Reward.FletcherRunic();
if (runic != null)
{
DropItem(runic);
}
}
public FletcherCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.RangedWeapon();
}
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 TailorsCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public TailorsCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.TailorRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
}
public TailorsCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.Armor();
}
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 SmithsCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public SmithsCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.SmithRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
}
public SmithsCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.Weapon();
}
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 TinkersCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public TinkersCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.TinkerRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
}
public TinkersCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.Weapon();
}
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 CarpentersCraftsmanSatchel : BaseCraftsmanSatchel
{
[Constructable]
public CarpentersCraftsmanSatchel()
: base()
{
if (Items.Count < 2)
{
var recipe = Reward.CarpentryRecipe();
if (recipe != null)
{
DropItem(recipe);
}
}
var runic = Reward.CarpenterRunic();
if (runic != null)
{
DropItem(runic);
}
var furniture = Reward.RandomFurniture();
if (furniture != null)
{
DropItem(furniture);
}
}
public CarpentersCraftsmanSatchel(Serial serial)
: base(serial)
{
}
public override Item RandomItem()
{
return Reward.Weapon();
}
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();
}
}
}