Files
abysmal-isle/Scripts/Items/Containers/RewardBag.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

204 lines
4.4 KiB
C#

using System;
using Reward = Server.Engines.Quests.BaseReward;
namespace Server.Items
{
public class BaseRewardBag : Bag
{
public BaseRewardBag()
: base()
{
Hue = Reward.RewardBagHue();
while (Items.Count < ItemAmount)
{
if (0.05 > Utility.RandomDouble()) // check
DropItem(Loot.RandomTalisman());
else
{
switch ( Utility.Random(4) )
{
case 0:
DropItem(Reward.Armor());
break;
case 1:
DropItem(Reward.RangedWeapon());
break;
case 2:
DropItem(Reward.Weapon());
break;
case 3:
DropItem(Reward.Jewlery());
break;
}
}
}
}
public BaseRewardBag(Serial serial)
: base(serial)
{
}
public virtual int ItemAmount
{
get
{
return 0;
}
}
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 SmallTrinketBag : BaseRewardBag
{
[Constructable]
public SmallTrinketBag()
: base()
{
}
public SmallTrinketBag(Serial serial)
: base(serial)
{
}
public override int ItemAmount
{
get
{
return 1;
}
}
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 TrinketBag : BaseRewardBag
{
[Constructable]
public TrinketBag()
: base()
{
}
public TrinketBag(Serial serial)
: base(serial)
{
}
public override int ItemAmount
{
get
{
return 2;
}
}
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 TreasureBag : BaseRewardBag
{
[Constructable]
public TreasureBag()
: base()
{
}
public TreasureBag(Serial serial)
: base(serial)
{
}
public override int ItemAmount
{
get
{
return 3;
}
}
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 LargeTreasureBag : BaseRewardBag
{
[Constructable]
public LargeTreasureBag()
: base()
{
}
public LargeTreasureBag(Serial serial)
: base(serial)
{
}
public override int ItemAmount
{
get
{
return 4;
}
}
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();
}
}
}