Example #1
0
    public void SerializeToStream(ref IBitStream stream)
    {
        sbyte triggeringMoverActorIndex = (sbyte)m_triggeringMover.ActorIndex;

        stream.Serialize(ref triggeringMoverActorIndex);
        MovementUtils.SerializeLightweightPath(m_triggeringPath, stream);
        AbilityResultsUtils.SerializeSequenceStartDataListToStream(ref stream, m_seqStartDataList);

        if (m_effectResults != null)
        {
            sbyte responseType = (sbyte)MovementResults_GameplayResponseType.Effect;
            stream.Serialize(ref responseType);
            m_effectResults.SerializeToStream(ref stream);
        }
        else if (m_barrierResults != null)
        {
            sbyte responseType = (sbyte)MovementResults_GameplayResponseType.Barrier;
            stream.Serialize(ref responseType);
            m_barrierResults.SerializeToStream(ref stream);
        }
        else if (m_powerupResults != null)
        {
            sbyte responseType = (sbyte)MovementResults_GameplayResponseType.Powerup;
            stream.Serialize(ref responseType);
            m_powerupResults.SerializeToStream(ref stream);
        }
        else if (m_gameModeResults != null)
        {
            sbyte responseType = (sbyte)MovementResults_GameplayResponseType.GameMode;
            stream.Serialize(ref responseType);
            m_gameModeResults.SerializeToStream(ref stream);
        }
    }
        public static ClientResolutionAction ClientResolutionAction_DeSerializeFromStream(Component context, ref IBitStream stream)
        {
            ClientResolutionAction resolutionAction = new ClientResolutionAction();
            sbyte num = -1;

            stream.Serialize(ref num);
            ResolutionActionType resolutionActionType = (ResolutionActionType)num;

            resolutionAction.m_type = (ResolutionActionType)num;
            switch (resolutionActionType)
            {
            case ResolutionActionType.AbilityCast:
                resolutionAction.m_abilityResults =
                    AbilityResultsUtils.DeSerializeClientAbilityResultsFromStream(context, ref stream);
                break;

            case ResolutionActionType.EffectAnimation:
            case ResolutionActionType.EffectPulse:
                resolutionAction.m_effectResults =
                    AbilityResultsUtils.DeSerializeClientEffectResultsFromStream(context, ref stream);
                break;

            case ResolutionActionType.EffectOnMove:
            case ResolutionActionType.BarrierOnMove:
            case ResolutionActionType.PowerupOnMove:
            case ResolutionActionType.GameModeOnMove:
                resolutionAction.m_moveResults =
                    AbilityResultsUtils.DeSerializeClientMovementResultsFromStream(context, ref stream);
                break;
            }

            return(resolutionAction);
        }
Example #3
0
    public void SerializeToStream(ref IBitStream stream)
    {
        AbilityResultsUtils.SerializeSequenceStartDataListToStream(ref stream, m_seqStartDataList);
        m_effectResults.SerializeToStream(ref stream);
        byte extraFlags = GetExtraFlags();

        stream.Serialize(ref extraFlags);
    }
Example #4
0
 public void SerializeToStream(ref IBitStream stream)
 {
     AbilityResultsUtils.SerializeEffectsToStartToStream(ref stream, m_effectsToStart);
     AbilityResultsUtils.SerializeBarriersToStartToStream(ref stream, m_barriersToStart);
     AbilityResultsUtils.SerializeIntListToStream(ref stream, m_effectsToRemove);
     AbilityResultsUtils.SerializeIntListToStream(ref stream, m_barriersToRemove);
     AbilityResultsUtils.SerializeSequenceEndDataListToStream(ref stream, m_sequencesToEnd);
     AbilityResultsUtils.SerializeClientMovementResultsListToStream(ref stream, m_reactionsOnPosHit);
 }
Example #5
0
    public void SerializeToStream(ref IBitStream stream)
    {
        int   barrierGUID = m_barrierGUID;
        sbyte casterIndex = (sbyte)m_barrierCaster.ActorIndex;

        stream.Serialize(ref barrierGUID);
        stream.Serialize(ref casterIndex);
        AbilityResultsUtils.SerializeActorHitResultsDictionaryToStream(ref stream, m_actorToHitResults);
        AbilityResultsUtils.SerializePositionHitResultsDictionaryToStream(ref stream, m_posToHitResults);
    }
Example #6
0
    public void SerializeToStream(ref IBitStream stream)
    {
        sbyte casterActorIndex = (sbyte)GetCaster().ActorIndex;
        sbyte abilityAction    = (sbyte)GetSourceActionType();

        stream.Serialize(ref casterActorIndex);
        stream.Serialize(ref abilityAction);
        AbilityResultsUtils.SerializeSequenceStartDataListToStream(ref stream, m_seqStartDataList);
        AbilityResultsUtils.SerializeActorHitResultsDictionaryToStream(ref stream, m_actorToHitResults);
        AbilityResultsUtils.SerializePositionHitResultsDictionaryToStream(ref stream, m_posToHitResults);
    }
Example #7
0
    public void SerializeToStream(ref IBitStream stream)
    {
        uint  effectGUID              = (uint)m_effectGUID;
        sbyte casterActorIndex        = (sbyte)m_effectCaster.ActorIndex;
        sbyte sourceAbilityActionType = (sbyte)m_sourceAbilityActionType;

        stream.Serialize(ref effectGUID);
        stream.Serialize(ref casterActorIndex);
        stream.Serialize(ref sourceAbilityActionType);
        AbilityResultsUtils.SerializeSequenceStartDataListToStream(ref stream, m_seqStartDataList);
        AbilityResultsUtils.SerializeActorHitResultsDictionaryToStream(ref stream, m_actorToHitResults);
        AbilityResultsUtils.SerializePositionHitResultsDictionaryToStream(ref stream, m_posToHitResults);
    }
Example #8
0
 public void SerializeToStream(ref IBitStream stream)
 {
     AbilityResultsUtils.SerializeSequenceStartDataListToStream(ref stream, m_seqStartDataList);
     m_powerupAbilityResults.SerializeToStream(ref stream);
 }
Example #9
0
    public void SerializeToStream(ref IBitStream stream)
    {
        byte bitField1 = ServerClientUtils.CreateBitfieldFromBools(
            m_hasDamage,
            m_hasHealing,
            m_hasTechPointGain,
            m_hasTechPointLoss,
            m_hasTechPointGainOnCaster,
            m_hasKnockback,
            m_targetInCoverWrtDamage,
            m_canBeReactedTo);

        stream.Serialize(ref bitField1);

        byte bitField2 = ServerClientUtils.CreateBitfieldFromBools(
            m_damageBoosted,
            m_damageReduced,
            m_updateCasterLastKnownPos,
            m_updateTargetLastKnownPos,
            m_updateEffectHolderLastKnownPos,
            m_updateOtherLastKnownPos,
            m_isPartOfHealOverTime,
            m_triggerCasterVisOnHitVisualOnly);

        stream.Serialize(ref bitField2);

        if (m_hasDamage)
        {
            short finalDamage = (short)m_finalDamage;
            stream.Serialize(ref finalDamage);
        }
        if (m_hasHealing)
        {
            short finalHealing = (short)m_finalHealing;
            stream.Serialize(ref finalHealing);
        }
        if (m_hasTechPointGain)
        {
            short finalTechPointsGain = (short)m_finalTechPointsGain;
            stream.Serialize(ref finalTechPointsGain);
        }
        if (m_hasTechPointLoss)
        {
            short finalTechPointsLoss = (short)m_finalTechPointsLoss;
            stream.Serialize(ref finalTechPointsLoss);
        }
        if (m_hasTechPointGainOnCaster)
        {
            short finalTechPointGainOnCaster = (short)m_finalTechPointGainOnCaster;
            stream.Serialize(ref finalTechPointGainOnCaster);
        }
        if (m_hasKnockback)
        {
            short actorIndex = (short)(m_knockbackSourceActor?.ActorIndex ?? ActorData.s_invalidActorIndex);
            stream.Serialize(ref actorIndex);
        }
        if (m_hasDamage && m_targetInCoverWrtDamage || m_hasKnockback)
        {
            float damageHitOriginX = m_damageHitOrigin.x;
            float damageHitOriginZ = m_damageHitOrigin.z;
            stream.Serialize(ref damageHitOriginX);
            stream.Serialize(ref damageHitOriginZ);
        }
        if (m_updateEffectHolderLastKnownPos)
        {
            short effectHolderActor = (short)(m_effectHolderActor?.ActorIndex ?? ActorData.s_invalidActorIndex);
            stream.Serialize(ref effectHolderActor);
        }
        if (m_updateOtherLastKnownPos)
        {
            byte otherActorsToUpdateVisibilityNum = (byte)(m_otherActorsToUpdateVisibility?.Count ?? 0);
            stream.Serialize(ref otherActorsToUpdateVisibilityNum);
            for (int i = 0; i < otherActorsToUpdateVisibilityNum; i++)
            {
                short actorIndex = (short)m_otherActorsToUpdateVisibility[i].ActorIndex;
                stream.Serialize(ref actorIndex);
            }
        }

        bool hasEffectsToStart          = !m_effectsToStart.IsNullOrEmpty();
        bool hasEffectsToRemove         = !m_effectsToRemove.IsNullOrEmpty();
        bool hasBarriersToAdd           = !m_barriersToAdd.IsNullOrEmpty();
        bool hasBarriersToRemove        = !m_barriersToRemove.IsNullOrEmpty();
        bool hasSequencesToEnd          = !m_sequencesToEnd.IsNullOrEmpty();
        bool hasReactions               = !m_reactions.IsNullOrEmpty();
        bool hasPowerupsToRemove        = !m_powerupsToRemove.IsNullOrEmpty();
        bool hasPowerupsToSteal         = !m_powerupsToSteal.IsNullOrEmpty();
        bool hasDirectPowerupHits       = !m_directPowerupHits.IsNullOrEmpty();
        bool hasGameModeEvents          = !m_gameModeEvents.IsNullOrEmpty();
        bool isCharacterSpecificAbility = m_isCharacterSpecificAbility;
        bool hasOverconIds              = !m_overconIds.IsNullOrEmpty();
        byte bitField3 = ServerClientUtils.CreateBitfieldFromBools(
            hasEffectsToStart,
            hasEffectsToRemove,
            hasBarriersToRemove,
            hasSequencesToEnd,
            hasReactions,
            hasPowerupsToRemove,
            hasPowerupsToSteal,
            hasDirectPowerupHits);
        byte bitField4 = ServerClientUtils.CreateBitfieldFromBools(
            hasGameModeEvents,
            isCharacterSpecificAbility,
            hasBarriersToAdd,
            hasOverconIds,
            false, false, false, false);

        stream.Serialize(ref bitField3);
        stream.Serialize(ref bitField4);

        if (hasEffectsToStart)
        {
            AbilityResultsUtils.SerializeEffectsToStartToStream(ref stream, m_effectsToStart);
        }
        if (hasEffectsToRemove)
        {
            AbilityResultsUtils.SerializeIntListToStream(ref stream, m_effectsToRemove);
        }
        if (hasBarriersToAdd)
        {
            AbilityResultsUtils.SerializeBarriersToStartToStream(ref stream, m_barriersToAdd);
        }
        if (hasBarriersToRemove)
        {
            AbilityResultsUtils.SerializeIntListToStream(ref stream, m_barriersToRemove);
        }
        if (hasSequencesToEnd)
        {
            AbilityResultsUtils.SerializeSequenceEndDataListToStream(ref stream, m_sequencesToEnd);
        }
        if (hasReactions)
        {
            AbilityResultsUtils.SerializeClientReactionResultsToStream(ref stream, m_reactions);
        }
        if (hasPowerupsToRemove)
        {
            AbilityResultsUtils.SerializeIntListToStream(ref stream, m_powerupsToRemove);
        }
        if (hasPowerupsToSteal)
        {
            AbilityResultsUtils.SerializePowerupsToStealToStream(ref stream, m_powerupsToSteal);
        }
        if (hasDirectPowerupHits)
        {
            AbilityResultsUtils.SerializeClientMovementResultsListToStream(ref stream, m_directPowerupHits);
        }
        if (hasGameModeEvents)
        {
            AbilityResultsUtils.SerializeClientGameModeEventListToStream(ref stream, m_gameModeEvents);
        }
        if (hasOverconIds)
        {
            AbilityResultsUtils.SerializeIntListToStream(ref stream, m_overconIds);
        }
        m_isCharacterSpecificAbility = isCharacterSpecificAbility;
    }