internal void InvokeOnSimpleBossStats(Dictionary <byte, int> stats) { OnSimpleBossStats?.Invoke(stats); }
// 255 is server damage, 256 is server whoami public override void HandlePacket(BinaryReader reader, int whoAmI) { DPSExtremeMessageType msgType = (DPSExtremeMessageType)reader.ReadByte(); byte count; switch (msgType) { case DPSExtremeMessageType.InformServerCurrentDPS: int dps = reader.ReadInt32(); dpss[whoAmI] = dps; break; case DPSExtremeMessageType.InformClientsCurrentDPSs: count = reader.ReadByte(); for (int i = 0; i < 256; i++) { dpss[i] = -1; } for (int i = 0; i < count; i++) { byte playerIndex = reader.ReadByte(); int playerdps = reader.ReadInt32(); dpss[playerIndex] = playerdps; } DPSExtremeUI.instance.updateNeeded = true; //OutData(); //OutDataNew(); break; case DPSExtremeMessageType.InformClientsCurrentBossTotals: bool dead = reader.ReadBoolean(); bossIndex = reader.ReadByte(); count = reader.ReadByte(); for (int i = 0; i < 256; i++) { bossDamage[i] = -1; } for (int i = 0; i < count; i++) { byte playerIndex = reader.ReadByte(); int playerdps = reader.ReadInt32(); bossDamage[playerIndex] = playerdps; } DPSExtremeUI.instance.updateNeeded = true; DPSExtremeUI.instance.bossUpdateNeeded = true; if (dead) { Dictionary <byte, int> stats = new Dictionary <byte, int>(); for (int i = 0; i < 256; i++) { if (bossDamage[i] > -1) { stats[(byte)i] = bossDamage[i]; } } OnSimpleBossStats?.Invoke(stats); } break; default: ErrorLogger.Log("DPSExtreme: Unknown Message type: " + msgType); break; } }