Equippable Character
A custom equippable character. When an item is equipped or un-equipped the MyEquippableCharacter
can re-generate a set of stats for this particular character.
using Devdog.Rucksack;
using Devdog.Rucksack.CharacterEquipment;
using Devdog.Rucksack.CharacterEquipment.Items;
public class MyEquipableCharacter : UnityEquippableCharacter
{
public override Result<EquipmentResult<IEquippableItemInstance>[]> Equip(IEquippableItemInstance item, int amount = 1)
{
var result = base.Equip(item, amount);
if (result.error == null)
{
CalculateCharacterStats();
}
return result;
}
public override Result<EquipmentResult<IEquippableItemInstance>> EquipAt(int index, IEquippableItemInstance item, int amount = 1)
{
var result = base.EquipAt(index, item, amount);
if (result.error == null)
{
CalculateCharacterStats();
}
return result;
}
public override Result<UnEquipmentResult> UnEquip(IEquippableItemInstance item, int amount = 1)
{
var result = base.UnEquip(item, amount);
if (result.error == null)
{
CalculateCharacterStats();
}
return result;
}
public override Result<UnEquipmentResult> UnEquipAt(int index, int amount = 1)
{
var result = base.UnEquipAt(index, amount);
if (result.error == null)
{
CalculateCharacterStats();
}
return result;
}
protected void CalculateCharacterStats()
{
// Calculate the player's stats based on the equipment.
foreach (var item in equippableCharacter.collection)
{
// Calculate item stats
}
}
}