Пример #1
0
    public static void WriteStatsTransmission(this NetworkWriter writer, StatsTransmission stats)
    {
        writer.WriteArray(stats.names);

        int[] characterTypes = new int[stats.characterTypes.Length];
        for (int i = 0; i < characterTypes.Length; i++)
        {
            characterTypes[i] = (int)stats.characterTypes[i];
        }
        writer.WriteArray(characterTypes);

        for (int i = 0; i < stats.stats.Length; i++)
        {
            writer.WriteArray(stats.stats[i]);
        }
    }
Пример #2
0
        public static void WritePlayerCommand(this NetworkWriter writer, PBS.Player.Command obj)
        {
            writer.WriteInt32((int)obj.commandType);
            writer.WriteString(obj.commandUser);
            writer.WriteInt32(obj.commandTrainer);
            writer.WriteBoolean(obj.inProgress);
            writer.WriteBoolean(obj.completed);
            writer.WriteInt32(obj.commandPriority);
            writer.WriteBoolean(obj.isExplicitlySelected);

            writer.WriteString(obj.moveID);
            writer.WriteBoolean(obj.consumePP);
            writer.WriteArray(obj.targetPositions);
            writer.WriteBoolean(obj.displayMove);
            writer.WriteBoolean(obj.forceOneHit);
            writer.WriteBoolean(obj.bypassRedirection);
            writer.WriteBoolean(obj.bypassStatusInterrupt);
            writer.WriteBoolean(obj.isDanceMove);
            writer.WriteBoolean(obj.isMoveCalled);
            writer.WriteBoolean(obj.isMoveReflected);
            writer.WriteBoolean(obj.isMoveHijacked);
            writer.WriteBoolean(obj.isFutureSightMove);
            writer.WriteBoolean(obj.isPursuitMove);
            writer.WriteBoolean(obj.isMoveSnatched);
            writer.WriteBoolean(obj.isMagicCoatMove);

            writer.WriteBoolean(obj.isMegaEvolving);
            writer.WriteBoolean(obj.isZMove);
            writer.WriteBoolean(obj.isDynamaxing);

            writer.WriteInt32(obj.switchPosition);
            writer.WriteInt32(obj.switchingTrainer);
            writer.WriteString(obj.switchInPokemon);

            writer.WriteString(obj.itemID);
            writer.WriteInt32(obj.itemTrainer);
        }
Пример #3
0
 public void WriteNetwork(NetworkWriter writer)
 {
     writer.WriteByte((byte)UserProvider);
     writer.WriteULong(UserId);
     writer.WriteArray(AuthTicket.Data);
 }
Пример #4
0
        public static void WriteBattleViewEvent(this NetworkWriter writer, PBS.Battle.View.Events.Base obj)
        {
            if (obj is PBS.Battle.View.Events.Message message)
            {
                writer.WriteInt32(MESSAGE);
                writer.WriteString(message.message);
            }
            else if (obj is PBS.Battle.View.Events.MessageParameterized messageParameterized)
            {
                writer.WriteInt32(MESSAGEPARAMETERIZED);
                writer.WriteString(messageParameterized.messageCode);
                writer.WriteBoolean(messageParameterized.isQueryResponse);
                writer.WriteBoolean(messageParameterized.isQuerySuccessful);
                writer.WriteInt32(messageParameterized.playerPerspectiveID);
                writer.WriteInt32(messageParameterized.teamPerspectiveID);

                writer.WriteString(messageParameterized.pokemonID);
                writer.WriteString(messageParameterized.pokemonUserID);
                writer.WriteString(messageParameterized.pokemonTargetID);
                writer.WriteList(messageParameterized.pokemonListIDs);

                writer.WriteInt32(messageParameterized.trainerID);

                writer.WriteInt32(messageParameterized.teamID);

                writer.WriteString(messageParameterized.typeID);
                writer.WriteList(messageParameterized.typeIDs);

                writer.WriteString(messageParameterized.moveID);
                writer.WriteList(messageParameterized.moveIDs);

                writer.WriteString(messageParameterized.abilityID);
                writer.WriteList(messageParameterized.abilityIDs);

                writer.WriteString(messageParameterized.itemID);
                writer.WriteList(messageParameterized.itemIDs);

                writer.WriteString(messageParameterized.statusID);
                writer.WriteString(messageParameterized.statusTeamID);
                writer.WriteString(messageParameterized.statusEnvironmentID);

                writer.WriteList(messageParameterized.intArgs);

                List <int> statInts = new List <int>();
                for (int i = 0; i < messageParameterized.statList.Count; i++)
                {
                    statInts.Add((int)messageParameterized.statList[i]);
                }
                writer.WriteList(statInts);
            }


            else if (obj is PBS.Battle.View.Events.ModelUpdate modelUpdate)
            {
                writer.WriteInt32(MODELUPDATE);
                writer.WriteBoolean(modelUpdate.loadAssets);
            }
            else if (obj is PBS.Battle.View.Events.ModelUpdatePokemon modelUpdatePokemon)
            {
                writer.WriteInt32(MODELUPDATEPOKEMON);
                writer.WriteBoolean(modelUpdatePokemon.loadAsset);
                writer.WriteBattleViewCompactPokemon(modelUpdatePokemon.pokemon);
            }
            else if (obj is PBS.Battle.View.Events.ModelUpdateTrainer modelUpdateTrainer)
            {
                writer.WriteInt32(MODELUPDATETRAINER);
                writer.WriteBoolean(modelUpdateTrainer.loadAsset);
                writer.WriteString(modelUpdateTrainer.name);
                writer.WriteInt32(modelUpdateTrainer.playerID);
                writer.WriteInt32(modelUpdateTrainer.teamID);
                writer.WriteList(modelUpdateTrainer.party);
                writer.WriteList(modelUpdateTrainer.items);
                writer.WriteList(modelUpdateTrainer.controlPos);
            }
            else if (obj is PBS.Battle.View.Events.ModelUpdateTeam modelUpdateTeam)
            {
                writer.WriteInt32(MODELUPDATETEAM);
                writer.WriteBoolean(modelUpdateTeam.loadAsset);
                writer.WriteInt32(modelUpdateTeam.teamID);
                writer.WriteInt32((int)modelUpdateTeam.teamMode);
                writer.WriteList(modelUpdateTeam.trainers);
            }


            else if (obj is PBS.Battle.View.Events.CommandGeneralPrompt commandGeneralPrompt)
            {
                writer.WriteInt32(COMMANDGENERALPROMPT);
                writer.WriteInt32(commandGeneralPrompt.playerID);
                writer.WriteBoolean(commandGeneralPrompt.multiTargetSelection);
                writer.WriteBoolean(commandGeneralPrompt.canMegaEvolve);
                writer.WriteBoolean(commandGeneralPrompt.canZMove);
                writer.WriteBoolean(commandGeneralPrompt.canDynamax);
                writer.WriteList(commandGeneralPrompt.items);
                writer.WriteList(commandGeneralPrompt.pokemonToCommand);
            }
            else if (obj is PBS.Battle.View.Events.CommandReplacementPrompt commandReplacementPrompt)
            {
                writer.WriteInt32(COMMANDREPLACEMENTPROMPT);
                writer.WriteInt32(commandReplacementPrompt.playerID);
                writer.WriteArray(commandReplacementPrompt.fillPositions);
            }


            else if (obj is PBS.Battle.View.Events.StartBattle startBattle)
            {
                writer.WriteInt32(STARTBATTLE);
            }
            else if (obj is PBS.Battle.View.Events.EndBattle endBattle)
            {
                writer.WriteInt32(ENDBATTLE);
                writer.WriteInt32(endBattle.winningTeam);
            }


            else if (obj is PBS.Battle.View.Events.TrainerSendOut trainerSendOut)
            {
                writer.WriteInt32(TRAINERSENDOUT);
                writer.WriteInt32(trainerSendOut.playerID);
                writer.WriteList(trainerSendOut.pokemonUniqueIDs);
            }
            else if (obj is PBS.Battle.View.Events.TrainerMultiSendOut trainerMultiSendOut)
            {
                writer.WriteInt32(TRAINERMULTISENDOUT);
                writer.WriteList(trainerMultiSendOut.sendEvents);
            }
            else if (obj is PBS.Battle.View.Events.TrainerWithdraw trainerWithdraw)
            {
                writer.WriteInt32(TRAINERWITHDRAW);
                writer.WriteInt32(trainerWithdraw.playerID);
                writer.WriteList(trainerWithdraw.pokemonUniqueIDs);
            }
            else if (obj is PBS.Battle.View.Events.TrainerItemUse trainerItemUse)
            {
                writer.WriteInt32(TRAINERITEMUSE);
                writer.WriteInt32(trainerItemUse.playerID);
                writer.WriteString(trainerItemUse.itemID);
            }


            else if (obj is PBS.Battle.View.Events.PokemonChangeForm pokemonChangeForm)
            {
                writer.WriteInt32(POKEMONCHANGEFORM);
                writer.WriteString(pokemonChangeForm.pokemonUniqueID);
                writer.WriteString(pokemonChangeForm.preForm);
                writer.WriteString(pokemonChangeForm.postForm);
            }
            else if (obj is PBS.Battle.View.Events.PokemonSwitchPosition pokemonSwitchPosition)
            {
                writer.WriteInt32(POKEMONSWITCHPOSITION);
                writer.WriteString(pokemonSwitchPosition.pokemonUniqueID1);
                writer.WriteString(pokemonSwitchPosition.pokemonUniqueID2);
            }

            else if (obj is PBS.Battle.View.Events.PokemonHealthDamage pokemonHealthDamage)
            {
                writer.WriteInt32(POKEMONHEALTHDAMAGE);
                writer.WriteString(pokemonHealthDamage.pokemonUniqueID);
                writer.WriteInt32(pokemonHealthDamage.preHP);
                writer.WriteInt32(pokemonHealthDamage.postHP);
                writer.WriteInt32(pokemonHealthDamage.maxHP);
            }
            else if (obj is PBS.Battle.View.Events.PokemonHealthHeal pokemonHealthHeal)
            {
                writer.WriteInt32(POKEMONHEALTHHEAL);
                writer.WriteString(pokemonHealthHeal.pokemonUniqueID);
                writer.WriteInt32(pokemonHealthHeal.preHP);
                writer.WriteInt32(pokemonHealthHeal.postHP);
                writer.WriteInt32(pokemonHealthHeal.maxHP);
            }
            else if (obj is PBS.Battle.View.Events.PokemonHealthFaint pokemonHealthFaint)
            {
                writer.WriteInt32(POKEMONHEALTHFAINT);
                writer.WriteString(pokemonHealthFaint.pokemonUniqueID);
            }
            else if (obj is PBS.Battle.View.Events.PokemonHealthRevive pokemonHealthRevive)
            {
                writer.WriteInt32(POKEMONHEALTHREVIVE);
                writer.WriteString(pokemonHealthRevive.pokemonUniqueID);
            }

            else if (obj is PBS.Battle.View.Events.PokemonMoveUse pokemonMoveUse)
            {
                writer.WriteInt32(POKEMONMOVEUSE);
                writer.WriteString(pokemonMoveUse.pokemonUniqueID);
                writer.WriteString(pokemonMoveUse.moveID);
            }
            else if (obj is PBS.Battle.View.Events.PokemonMoveHit pokemonMoveHit)
            {
                writer.WriteInt32(POKEMONMOVEHIT);
                writer.WriteString(pokemonMoveHit.pokemonUniqueID);
                writer.WriteString(pokemonMoveHit.moveID);
                writer.WriteInt32(pokemonMoveHit.currentHit);
                writer.WriteList(pokemonMoveHit.hitTargets);
            }

            else if (obj is PBS.Battle.View.Events.PokemonStatChange pokemonStatChange)
            {
                writer.WriteInt32(POKEMONSTATCHANGE);
                writer.WriteString(pokemonStatChange.pokemonUniqueID);
                writer.WriteInt32(pokemonStatChange.modValue);
                writer.WriteBoolean(pokemonStatChange.maximize);
                writer.WriteBoolean(pokemonStatChange.minimize);

                List <int> statInts = new List <int>();
                for (int i = 0; i < pokemonStatChange.statsToMod.Count; i++)
                {
                    statInts.Add((int)pokemonStatChange.statsToMod[i]);
                }
                writer.WriteList(statInts);
            }
            else if (obj is PBS.Battle.View.Events.PokemonStatUnchangeable pokemonStatUnchangeable)
            {
                writer.WriteInt32(POKEMONSTATUNCHANGEABLE);
                writer.WriteString(pokemonStatUnchangeable.pokemonUniqueID);
                writer.WriteBoolean(pokemonStatUnchangeable.tooHigh);

                List <int> statInts = new List <int>();
                for (int i = 0; i < pokemonStatUnchangeable.statsToMod.Count; i++)
                {
                    statInts.Add((int)pokemonStatUnchangeable.statsToMod[i]);
                }
                writer.WriteList(statInts);
            }

            else if (obj is PBS.Battle.View.Events.PokemonAbilityActivate pokemonAbilityActivate)
            {
                writer.WriteInt32(POKEMONABILITYACTIVATE);
                writer.WriteString(pokemonAbilityActivate.pokemonUniqueID);
                writer.WriteString(pokemonAbilityActivate.abilityID);
            }

            else
            {
                writer.WriteInt32(BASE);
            }
        }
Пример #5
0
 public void Serialize(NetworkWriter writer)
 {
     writer.WriteArray(Targets);
     writer.WriteArray(TargetsNormals);
 }