コード例 #1
0
ファイル: ZoneControlFlag.cs プロジェクト: huokele/shadow-gun
    public void Reset()
    {
        DelayTimer  = 0;
        AlmostOwner = FlagOwner = AreaOwner = E_Team.None;
        AnimState   = E_AnimationState.None;

        m_ClientFlagProgress = -1;

        FlagOwner = StartBase;
        ClientSetFlag(FlagOwner);

        if (StartBase == E_Team.None)
        {
            Progress = 0;
            SetFlagProgress();
        }
        else
        {
            Progress = 1;
            SetFlagProgress();
        }

        m_ForceSerialize = true;

//        Debug.Log(name + "  Reset - " + FlagOwner);
        //Debug.Log( " ###### Reset() on " + this + " : " + Progress + " " + FlagOwner + " " + " " + AreaOwner + " " + " " + AlmostOwner );
    }
コード例 #2
0
ファイル: ZoneControlFlag.cs プロジェクト: huokele/shadow-gun
    void ServerUpdate()
    {
        if (DelayTimer > Time.timeSinceLevelLoad)
        {
            return;
        }

        E_Team oldAreaOwner   = AreaOwner;
        E_Team oldAlmostOwner = AlmostOwner;
        E_Team oldFlagOwner   = FlagOwner;

        AreaOwner = ServerGetAreaOwner();

        if (AreaOwner == E_Team.None || (AreaOwner == FlagOwner && Progress == 1.0f))
        {
            AnimState = E_AnimationState.None;
        }
        else if (AreaOwner == AlmostOwner && Progress != 1)
        {
            AnimState = E_AnimationState.Up;
        }
        else if (AreaOwner != E_Team.None && AlmostOwner == E_Team.None && FlagOwner == E_Team.None)
        {
            AnimState = E_AnimationState.Up;
        }
        else
        {
            AnimState = E_AnimationState.Down;
        }

        float oldProgress = Progress;

        if (AnimState == E_AnimationState.Down)
        {
            ServerGoDown();
        }
        else if (AnimState == E_AnimationState.Up)
        {
            ServerGoUp();
        }

        // serializing code is not called ever frame. In case of some change
        // we should deliver this change to clients
        if (false == m_IsChanging)
        {
            if (m_ForceSerialize)
            {
                m_IsChanging = true;

                m_ForceSerialize = false;
            }
            else
            {
                m_IsChanging = oldProgress != Progress || oldFlagOwner != FlagOwner || oldAlmostOwner != AlmostOwner || oldAreaOwner != AreaOwner;
            }
        }
    }