forked from marcosvf132/TibiaAPI
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBossPodium.cs
More file actions
66 lines (61 loc) · 2.55 KB
/
BossPodium.cs
File metadata and controls
66 lines (61 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Collections.Generic;
using OXGaming.TibiaAPI.Appearances;
using OXGaming.TibiaAPI.Constants;
using OXGaming.TibiaAPI.Utilities;
namespace OXGaming.TibiaAPI.Network.ServerPackets
{
public class BossPodium : ServerPacket
{
public bool IsPodiumVisible { get; set; }
public bool IsBossVisible { get; set; }
public byte StackPos { get; set; }
public byte Direction { get; set; }
public ushort UnknownUshort { get; set; }
public ushort ItemId { get; set; }
public Position Position { get; set; }
public OutfitInstance SelectedBossOutfit { get; set; }
public List<(string Name, uint Id, OutfitInstance Outfit)> UnlockedBosses { get; } = new List<(string Name, uint Id, OutfitInstance Outfit)>();
public BossPodium(Client client)
{
Client = client;
PacketType = ServerPacketType.BossPodium;
}
public override void ParseFromNetworkMessage(NetworkMessage message)
{
SelectedBossOutfit = (OutfitInstance)message.ReadCreatureOutfit();
UnknownUshort = message.ReadUInt16(); // Maybe its mount data? But why nothing show ingame?
UnlockedBosses.Capacity = message.ReadUInt16();
for (var i = 0; i < UnlockedBosses.Capacity; ++i) {
var name = message.ReadString();
var id = message.ReadUInt32();
var outfit = (OutfitInstance)message.ReadCreatureOutfit();
UnlockedBosses.Add((name, id, outfit));
}
Position = message.ReadPosition();
ItemId = message.ReadUInt16();
StackPos = message.ReadByte();
IsPodiumVisible = message.ReadBool();
IsBossVisible = message.ReadBool();
Direction = message.ReadByte();
}
public override void AppendToNetworkMessage(NetworkMessage message)
{
message.Write((byte)ServerPacketType.BossPodium);
message.Write(SelectedBossOutfit);
message.Write(UnknownUshort);
message.Write((ushort)UnlockedBosses.Capacity);
foreach (var boss in UnlockedBosses) {
message.Write(boss.Name);
message.Write(boss.Id);
message.Write(boss.Outfit);
}
message.Write(Position);
message.Write(ItemId);
message.Write(StackPos);
message.Write(IsPodiumVisible);
message.Write(IsBossVisible);
message.Write(Direction);
}
}
}