public void CreateSpellParticle(RuntimeSpellItems inst, bool isLeft, bool parentUnderRoot = false)
        {
            if (inst.currentParticle == null)
            {
                inst.currentParticle = Instantiate(inst.instance.particle_prefab) as GameObject;
                inst.p_hook          = inst.currentParticle.GetComponentInChildren <ParticleHook>();
                inst.p_hook.Init();
            }


            if (!parentUnderRoot)
            {
                Transform p = states.anim.GetBoneTransform((isLeft) ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand);
                inst.currentParticle.transform.parent        = p;
                inst.currentParticle.transform.localRotation = Quaternion.identity;
                inst.currentParticle.transform.localPosition = Vector3.zero;
            }
            else
            {
                inst.currentParticle.transform.parent        = transform;
                inst.currentParticle.transform.localRotation = Quaternion.identity;
                inst.currentParticle.transform.localPosition = new Vector3(0, 1.5f, 0.65f);
            }

            //inst.currentParticle.SetActive(false);
        }
        public void EquipSpells(RuntimeSpellItems spell)
        {
            currentSpell = spell;

            UI.QuickSlot uiSlot = UI.QuickSlot.singleton;
            uiSlot.UpdateSlot(UI.QSlotType.spell, spell.instance.icon);
        }
        public RuntimeSpellItems SpellToRuntimeSpell(Spell s, bool isLeft = false)
        {
            GameObject        g0   = new GameObject();
            RuntimeSpellItems inst = g0.AddComponent <RuntimeSpellItems>();

            inst.instance = new Spell();
            StaticFunctions.DeepCopySpell(s, inst.instance);
            g0.name = s.itemName;



            r_spells.Add(inst);

            return(inst);
        }