internal PBEMoveLockPacket(byte[] data, EndianBinaryReader r, PBEBattle battle) { Data = new ReadOnlyCollection <byte>(data); MoveUser = r.ReadEnum <PBEFieldPosition>(); MoveUserTeam = battle.Teams[r.ReadByte()]; LockedMove = r.ReadEnum <PBEMove>(); LockedTargets = r.ReadEnum <PBETurnTarget>(); MoveLockType = r.ReadEnum <PBEMoveLockType>(); }
internal PBEMoveLockPacket(ReadOnlyCollection <byte> buffer, BinaryReader r, PBEBattle battle) { Buffer = buffer; MoveUser = (PBEFieldPosition)r.ReadByte(); MoveUserTeam = battle.Teams[r.ReadByte()]; LockedMove = (PBEMove)r.ReadUInt16(); LockedTargets = (PBETurnTarget)r.ReadByte(); MoveLockType = (PBEMoveLockType)r.ReadByte(); }
public PBEMoveLockPacket(PBEPokemon moveUser, PBEMove lockedMove, PBETarget lockedTargets, PBEMoveLockType moveLockType) { var bytes = new List <byte>(); bytes.AddRange(BitConverter.GetBytes(Code)); bytes.Add((byte)(MoveUser = moveUser.FieldPosition)); bytes.Add((MoveUserTeam = moveUser.Team).Id); bytes.AddRange(BitConverter.GetBytes((ushort)(LockedMove = lockedMove))); bytes.Add((byte)(LockedTargets = lockedTargets)); bytes.Add((byte)(MoveLockType = moveLockType)); Buffer = BitConverter.GetBytes((short)bytes.Count).Concat(bytes); }
internal PBEMoveLockPacket(PBEPokemon moveUser, PBEMove lockedMove, PBETurnTarget lockedTargets, PBEMoveLockType moveLockType) { var bytes = new List <byte>(); bytes.AddRange(BitConverter.GetBytes(Code)); bytes.Add((byte)(MoveUser = moveUser.FieldPosition)); bytes.Add((MoveUserTeam = moveUser.Team).Id); bytes.AddRange(BitConverter.GetBytes((ushort)(LockedMove = lockedMove))); bytes.Add((byte)(LockedTargets = lockedTargets)); bytes.Add((byte)(MoveLockType = moveLockType)); bytes.InsertRange(0, BitConverter.GetBytes((short)bytes.Count)); Buffer = new ReadOnlyCollection <byte>(bytes); }
public PBEMoveLockPacket(byte[] buffer, PBEBattle battle) { Buffer = buffer; using (var r = new BinaryReader(new MemoryStream(buffer))) { r.ReadInt16(); // Skip Code MoveUser = (PBEFieldPosition)r.ReadByte(); MoveUserTeam = battle.Teams[r.ReadByte()]; LockedMove = (PBEMove)r.ReadUInt16(); LockedTargets = (PBETarget)r.ReadByte(); MoveLockType = (PBEMoveLockType)r.ReadByte(); } }
internal PBEMoveLockPacket(PBEPokemon moveUser, PBEMove lockedMove, PBETurnTarget lockedTargets, PBEMoveLockType moveLockType) { using (var ms = new MemoryStream()) using (var w = new EndianBinaryWriter(ms, encoding: EncodingType.UTF16)) { w.Write(Code); w.Write(MoveUser = moveUser.FieldPosition); w.Write((MoveUserTeam = moveUser.Team).Id); w.Write(LockedMove = lockedMove); w.Write(LockedTargets = lockedTargets); w.Write(MoveLockType = moveLockType); Data = new ReadOnlyCollection <byte>(ms.ToArray()); } }
internal PBEMoveLockPacket(PBEBattlePokemon moveUser, PBEMoveLockType moveLockType, PBEMove lockedMove, PBETurnTarget?lockedTargets = null) { using (var ms = new MemoryStream()) using (var w = new EndianBinaryWriter(ms, encoding: EncodingType.UTF16)) { w.Write(Code); w.Write((MoveUserTrainer = moveUser.Trainer).Id); w.Write(MoveUser = moveUser.FieldPosition); w.Write(MoveLockType = moveLockType); w.Write(LockedMove = lockedMove); w.Write(lockedTargets.HasValue); if (lockedTargets.HasValue) { w.Write((LockedTargets = lockedTargets).Value); } Data = new ReadOnlyCollection <byte>(ms.ToArray()); } }