Example #1
0
    public EquipItem Unequip(EquipItem.Part part, int equip_index)
    {
        EquipItem item = equip_items[new Tuple <EquipItem.Part, int>(part, equip_index)];

        if (null == item)
        {
            return(null);
        }

        item.equip_index = -1;
        equip_items[new Tuple <EquipItem.Part, int>(part, equip_index)] = null;

        stats -= item.main_stat;
        stats -= item.sub_stat;

        CalculateStat();

        foreach (Skill skill in item.skills)
        {
            RemoveSkill(skill.meta.skill_id);
        }

        Util.EventSystem.Publish <ItemEquipEvent>(EventID.Item_Unequip, new ItemEquipEvent()
        {
            curr_item = item, equip_index = equip_index
        });
        return(item);
    }
Example #2
0
    public EquipItem.Meta GetRandomMeta(EquipItem.Part part = EquipItem.Part.Invalid)
    {
        List <EquipItem.Meta> metas = item_metas[(int)part];

        return(metas[UnityEngine.Random.Range(0, metas.Count)]);
    }
Example #3
0
 public EquipItem GetEquipItem(EquipItem.Part part, int equip_index)
 {
     return(equip_items[new Tuple <EquipItem.Part, int>(part, equip_index)]);
 }
Example #4
0
 public EquipItem CreateRandomItem(EquipItem.Part part = EquipItem.Part.Invalid)
 {
     EquipItem.Meta meta = GetRandomMeta(part);
     return(meta.CreateInstance() as EquipItem);
 }