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); } }
public abstract void SerializeBattleAction(Stream stream, BattleParticipant.Action action);
public BattleActionComm(NetworkCommsManager commsManager, BattleParticipant.Action action) : base(commsManager) { this.action = action; }