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>();
 }
示例#2
0
 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();
 }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
 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());
         }
 }