Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -0,0 +1,25 @@
using System.Collections.Generic;
using Server.Gumps;
using Server.Mobiles;
namespace Server.Engines.MLQuests.Rewards
{
public abstract class BaseReward
{
public BaseReward(TextDefinition name)
{
Name = name;
}
public TextDefinition Name{ get; set; }
protected virtual int LabelHeight => 16;
public void WriteToGump(Gump g, int x, ref int y)
{
TextDefinition.AddHtmlText(g, x, y, 280, LabelHeight, Name, false, false, 0x15F90, 0xBDE784);
}
public abstract void AddRewardItems(PlayerMobile pm, List<Item> rewards);
}
}

View file

@ -0,0 +1,19 @@
using System.Collections.Generic;
using Server.Mobiles;
namespace Server.Engines.MLQuests.Rewards
{
public class DummyReward : BaseReward
{
public DummyReward(TextDefinition name)
: base(name)
{
}
protected override int LabelHeight => 180;
public override void AddRewardItems(PlayerMobile pm, List<Item> rewards)
{
}
}
}

View file

@ -0,0 +1,98 @@
using System;
using System.Collections.Generic;
using Server.Engines.MLQuests.Items;
using Server.Mobiles;
namespace Server.Engines.MLQuests.Rewards
{
public class ItemReward : BaseReward
{
public static readonly ItemReward
SmallBagOfTrinkets = new ItemReward(1072268, typeof(SmallBagOfTrinkets)); // A small bag of trinkets.
public static readonly ItemReward
BagOfTrinkets = new ItemReward(1072341, typeof(BagOfTrinkets)); // A bag of trinkets.
public static readonly ItemReward
BagOfTreasure = new ItemReward(1072583, typeof(BagOfTreasure)); // A bag of treasure.
public static readonly ItemReward
LargeBagOfTreasure = new ItemReward(1072706, typeof(LargeBagOfTreasure)); // A large bag of treasure.
public static readonly ItemReward Strongbox = new ItemReward(1072584, typeof(RewardStrongbox)); // A strongbox.
public static readonly ItemReward
TailorSatchel = new ItemReward(1074282, typeof(TailorSatchel)); // Craftsman's Satchel
public static readonly ItemReward
BlacksmithSatchel = new ItemReward(1074282, typeof(BlacksmithSatchel)); // Craftsman's Satchel
public static readonly ItemReward
FletchingSatchel = new ItemReward(1074282, typeof(FletchingSatchel)); // Craftsman's Satchel
public static readonly ItemReward
CarpentrySatchel = new ItemReward(1074282, typeof(CarpentrySatchel)); // Craftsman's Satchel
public static readonly ItemReward
TinkerSatchel = new ItemReward(1074282, typeof(TinkerSatchel)); // Craftsman's Satchel
private int m_Amount;
private Type m_Type;
public ItemReward(TextDefinition name = null, Type type = null, int amount = 1)
: base(name)
{
m_Type = type;
m_Amount = amount;
}
public virtual Item CreateItem()
{
Item spawnedItem = null;
try
{
spawnedItem = Activator.CreateInstance(m_Type) as Item;
}
catch (Exception e)
{
if (MLQuestSystem.Debug)
Console.WriteLine("WARNING: ItemReward.CreateItem failed for {0}: {1}", m_Type, e);
}
return spawnedItem;
}
public override void AddRewardItems(PlayerMobile pm, List<Item> rewards)
{
Item reward = CreateItem();
if (reward == null)
return;
if (reward.Stackable)
{
if (m_Amount > 1)
reward.Amount = m_Amount;
rewards.Add(reward);
}
else
{
for (int i = 0; i < m_Amount; ++i)
{
rewards.Add(reward);
if (i < m_Amount - 1)
{
reward = CreateItem();
if (reward == null)
return;
}
}
}
}
}
}