108 lines
3.2 KiB
C#
108 lines
3.2 KiB
C#
public abstract class Item
|
|
{
|
|
public string? Description {get; set;}
|
|
public int ItemDamageModifier {get; set;} = 0;
|
|
public int ItemDamageReduction {get; set;} = 0;
|
|
public string? ActionEnable {get; set;}
|
|
public string? IsEquippedBy {get; set;}
|
|
|
|
public static void EquipItem(Character character, Item item)
|
|
{
|
|
if (character.equipedItems.Count == 0)
|
|
{
|
|
ColoredConsole.WriteLine($"{character.name} has equipped {item.Description}", ConsoleColor.Yellow);
|
|
Thread.Sleep(1500);
|
|
item.IsEquippedBy = character.name;
|
|
character.equipedItems.Insert(0, item);
|
|
GameState.Instance.heroInventory.Remove(item);
|
|
character.CharacterEnabledActions[0] = Convert.ToString(item.ActionEnable);
|
|
CheckEquipped(character, item);
|
|
}
|
|
else
|
|
{
|
|
ColoredConsole.WriteLine($"{character.name} has unequipped {character.equipedItems[0].Description}.", ConsoleColor.Yellow);
|
|
ColoredConsole.WriteLine($"{character.name} has equipped {item.Description}", ConsoleColor.Yellow);
|
|
Thread.Sleep(1500);
|
|
item.IsEquippedBy = character.name;
|
|
foreach (Item equipped in character.equipedItems)
|
|
{
|
|
GameState.Instance.heroInventory.Add(equipped);
|
|
}
|
|
character.equipedItems.Clear();
|
|
character.equipedItems.Insert(0, item);
|
|
GameState.Instance.heroInventory.Remove(item);
|
|
character.CharacterEnabledActions[0] = Convert.ToString(item.ActionEnable);
|
|
CheckEquipped(character, item);
|
|
}
|
|
return;
|
|
}
|
|
|
|
public static void UnequipItem(Character character, Item item)
|
|
{
|
|
ColoredConsole.WriteLine($"{character.name} has unequipped {item.Description}.", ConsoleColor.Yellow);
|
|
Thread.Sleep(1500);
|
|
GameState.Instance.heroInventory.Insert(0, item);
|
|
character.equipedItems.Clear();
|
|
character.CharacterEnabledActions.Insert(0, "Punch");
|
|
character.CharacterEnabledActions.Remove(item.ActionEnable);
|
|
return;
|
|
}
|
|
|
|
public static void CheckEquipped(Character character, Item item)
|
|
{
|
|
if (character.name == "Vin Fletcher")
|
|
{
|
|
if (item.Description == "Vin's Bow")
|
|
{
|
|
character.CharacterEnabledActions[0] = "Quick Shot";
|
|
return;
|
|
}
|
|
else return;
|
|
}
|
|
if (character.name != "Vin Fletcher")
|
|
{
|
|
if (item.Description == "Hero's Sword")
|
|
{
|
|
character.CharacterEnabledActions[0] = "Hero's Sword";
|
|
return;
|
|
}
|
|
else return;
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public class Sword : Item
|
|
{
|
|
public Sword()
|
|
{
|
|
Description = "Hero's Sword";
|
|
ItemDamageModifier = 2;
|
|
ActionEnable = "Sword Attack";
|
|
}
|
|
}
|
|
|
|
class Armor : Item
|
|
{
|
|
public Armor()
|
|
{
|
|
Description = "Armor";
|
|
ItemDamageReduction = 1;
|
|
}
|
|
}
|
|
|
|
class Bow : Item
|
|
{
|
|
public Bow()
|
|
{
|
|
Description = "Vin's Bow";
|
|
ItemDamageModifier = 2;
|
|
ActionEnable = "Bow Shot";
|
|
}
|
|
|
|
}
|