Esempio n. 1
0
        public override void SerializeBattleAction(Stream stream, BattleParticipant.Action action)
        {
            byte[] buffer;

            buffer = BitConverter.GetBytes((int)action.type);
            stream.Write(buffer, 0, 4);

            SerializeBool(stream, action.fightUsingStruggle);

            buffer = BitConverter.GetBytes(action.fightMoveIndex);
            stream.Write(buffer, 0, 4);

            buffer = BitConverter.GetBytes(action.switchPokemonIndex);
            stream.Write(buffer, 0, 4);

            int itemId = action.useItemItemToUse != null
                ? action.useItemItemToUse.GetId()
                : default;

            buffer = BitConverter.GetBytes(itemId);
            stream.Write(buffer, 0, 4);

            buffer = BitConverter.GetBytes(action.useItemTargetPartyIndex);
            stream.Write(buffer, 0, 4);

            buffer = BitConverter.GetBytes(action.useItemTargetMoveIndex);
            stream.Write(buffer, 0, 4);

            SerializeBool(stream, action.useItemDontConsumeItem);
        }
 public override void ReadArgumentsFromStream()
 {
     if (commsManager is NetworkBattleCommsManager battleCommsManager)
     {
         action = Serializer.DeserializeBattleAction(Stream, battleCommsManager.recvActionUser, battleCommsManager.recvActionTarget);
     }
     else
     {
         throw new ArgumentException("Comms manager wasn't battle comms manager for battle action comm initialiser");
     }
 }
            public bool TrySendBattleAction(BattleParticipant.Action action)
            {
                BattleActionComm comm = new BattleActionComm(this, action);

                if (!comm.TrySendToStream())
                {
                    SetConnErrorOccured(true);
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
Esempio n. 4
0
 public abstract void SerializeBattleAction(Stream stream, BattleParticipant.Action action);
 public BattleActionComm(NetworkCommsManager commsManager, BattleParticipant.Action action) : base(commsManager)
 {
     this.action = action;
 }