Exemplo n.º 1
0
    private void SwitchShot(ref ShotState shotState, bool checkCut = true, bool forceCut = false)
    {
        var cut = forceCut || shotState.forceCut || checkCut && m_prevShot.blend.blendType == CameraBlendType.Cut;

        m_prevShot = shotState;

        if (m_shotInfo)
        {
            m_nextShot = m_shotInfo.GetSortedShotState(m_shotIndex);
        }
        if (m_nextShot.isEmpty)
        {
            m_nextShot = m_prevShot.time < 1.0f ? m_initEndState : m_prevShot;
        }

        if (!m_creature.isForward)
        {
            m_prevShot.Inverse();
            m_nextShot.Inverse();
        }

        euler  = m_prevShot.euler;
        offset = m_prevShot.offset;

        m_overrideSmooth = m_prevShot.overrideSmooth;

        m_camera.fieldOfView = m_prevShot.fieldOfView;

        m_currentShot.Set(offset, euler, m_prevShot.blend.blendType);

        removeCameraEdge = m_prevShot.removeCameraEdge;
        if (!removeCameraEdge)
        {
            m_forceRecalculateEdge = true;
        }

        if (Level.ShowHideSceneObjects(!m_prevShot.hideScene) && !m_prevShot.hideScene && m_drawMask < 1)
        {
            m_fading    = true;
            m_fadeStart = 1.0f;
            m_fadeEnd   = 0;
            m_fadeTime  = 0;

            m_overrideFadeDuration = CombatConfig.smaskFadeDuration;

            if (m_maskMaterial)
            {
                m_maskMaterial.SetColor(m_colorID, Color.black);
            }
        }

        if (cut)
        {
            UpdatePosition(false);
            UpdateRotation(false);
        }

        Root.instance.DispatchEvent(Events.CAMERA_SHOT_UI_STATE, Event_.Pop(m_prevShot.hideCombatUI, m_prevShot.maskAsset, m_prevShot.maskDuration));
    }
Exemplo n.º 2
0
    private void UpdateShotBlend()
    {
        if (!m_shotValid)
        {
            return;
        }

        ShotState.Lerp(ref m_currentShot, ref m_prevShot, ref m_nextShot, m_stateTime, m_currentSmooth);

        offset = m_currentShot.offset;
        euler  = m_currentShot.euler;

        m_overrideSmooth = m_currentShot.overrideSmooth;

        m_camera.fieldOfView = m_currentShot.fieldOfView;
    }