private void LoadKeys(BinaryReader reader, IAttachable att)
        {
            var numberOfKeys = reader.ReadInt32();

            for (int i = 0; i < numberOfKeys; i++)
            {
                var name = reader.ReadString();
                var type = reader.ReadString();
                var text = reader.ReadString();
                switch (type)
                {
                case "System.String":
                    att.Attach(name, text);
                    break;

                case "System.Single":
                    att.Attach(name, float.Parse(text));
                    break;

                case "System.Int32":
                    att.Attach(name, int.Parse(text));
                    break;

                default:
                    break;
                }
            }
        }
    public void SetWeapons(bool on)
    {
        if (on)
        {
            currentWeapon.Attach(wrist_left);
            currentOffhand.Attach(elbow_right);
            offHand.transform.FlipX();
            return;
        }

        currentWeapon.Revert();
        currentOffhand.Revert();
    }