Example #1
0
 internal void InvokeOnSimpleBossStats(Dictionary <byte, int> stats)
 {
     OnSimpleBossStats?.Invoke(stats);
 }
Example #2
0
        // 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;
            }
        }