public virtual void WeaponOperationImplementation(SkillHotkey skillHotkey)
    {
        bool press = skillHotkey.ActionPhase == HotkeyPhase.Started;

        if (m_PlayerSkillProxy.CanCurrentWeaponRelease() || !press)
        {
            SkillCastEvent castSkillEvent = new SkillCastEvent();
            castSkillEvent.IsWeaponSkill = true;
            castSkillEvent.SkillIndex    = skillHotkey.SkillIndex;
            castSkillEvent.KeyPressed    = press;

            m_MainPlayer.SendEvent(ComponentEventName.CastSkill, castSkillEvent);
        }

        if (!m_PlayerSkillProxy.CanCurrentWeaponRelease())
        {
            GameFacade.Instance.SendNotification(NotificationName.PlayerWeaponFireFail);
        }
    }