Example #1
0
    public virtual void Equip(EquipSlot _slot, EquipmentInfo _eq)
    {
        if (isMorphing || _eq == null)
        {
            return;
        }
        if (!_eq.HasModel() && !actorInfo.DefaultDictionary.ContainsKey(_eq.Slot))
        {
            return;
        }
        if (!_eq.HasModel())
        {
            if (actorInfo.DefaultDictionary.ContainsKey(_eq.Slot))
            {
                if (_eq.ShowType == ShowType.SKIN)
                {
                    armorList[(int)_eq.Slot] = null;
                    armorDirty = true;
                }
                else if (_eq.ShowType == ShowType.HANGINGPOINT)
                {
                    if (weaponDictionary[_eq.Slot] != null)
                    {
                        Destroy(weaponDictionary[_eq.Slot] as GameObject);
                        weaponDictionary[_eq.Slot] = null;
                        weaponDictionary.Remove(_eq.Slot);
                    }
                }
            }
            return;
        }
        if (!_eq.WillChangeRender)
        {
            return;
        }
        switch (_eq.ShowType)
        {
        case ShowType.HANGINGPOINT:
            EquipWeapon(_eq, _slot, _eq.HasModel() ? _eq.ShortUrl : actorInfo.DefaultDictionary[_eq.Slot].ShortUrl, _eq.ModelName);
            break;

        case ShowType.SKIN:
            EquipArmor(_slot, _eq.HasModel() ? _eq.ShortUrl : actorInfo.DefaultDictionary[_eq.Slot].ShortUrl, _eq.ModelName);
            break;

        default:
            break;
        }
    }