namespace Supercell.Laser.Logic.Message.Battle { using Supercell.Laser.Logic.Battle.Structures; using Supercell.Laser.Logic.Helper; using Supercell.Laser.Logic.Home.Quest; public class BattleEndSoloMessage : GameMessage { public int TrophiesReward; public int TokensReward; public int battleResult; public int mathResult; public int mapID; public int players; public int BrawlerID; public int SkinID; public int Team; public string Name; public bool HasNoTokens; public int UnderdogTrophies; // events public int DoubleTokenEvent; public int CoinEventReward; // end events // Trophies public int BrawlerTrophies; public int BrawlerHighestTrophies; // Exp public int Exp; private int ResolveSkinGlobalId() { if (SkinID <= 0) { return 0; } return SkinID >= 29000000 ? SkinID : 29000000 + SkinID; } public override void Encode() { Random rnd = new Random(); Stream.WriteVInt(2); // game mode Stream.WriteVInt(mathResult); Stream.WriteVInt(TokensReward); // tokens reward Stream.WriteVInt(TrophiesReward); // trophies reward Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(DoubleTokenEvent); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(0); Stream.WriteVInt(CoinEventReward); // i think so Stream.WriteVInt(UnderdogTrophies); Stream.WriteBoolean(false); // Star Token Stream.WriteBoolean(false); // no experience Stream.WriteBoolean(HasNoTokens); // no tokens left Stream.WriteBoolean(false); Stream.WriteBoolean(true); // is PvP Stream.WriteBoolean(false); Stream.WriteBoolean(false); Stream.WriteVInt(-1); Stream.WriteBoolean(false); Stream.WriteVInt(1); for (int i = 0; i < 1; i++) { Stream.WriteBoolean(true); // is own player Stream.WriteBoolean(false); // is enemy Stream.WriteBoolean(false); // Star player ByteStreamHelper.WriteDataReference(Stream, 16000000 + BrawlerID); ByteStreamHelper.WriteDataReference(Stream, ResolveSkinGlobalId()); Stream.WriteVInt(BrawlerTrophies); // BrawlerTrophies Stream.WriteVInt(BrawlerHighestTrophies); // BrawlerHighestTrophies Stream.WriteVInt(1); // power level bool isOwn = true; Stream.WriteBoolean(isOwn); if (isOwn) { Stream.WriteInt(0); Stream.WriteInt(1); } Stream.WriteString(Name); Stream.WriteVInt(100); Stream.WriteVInt(28000000); Stream.WriteVInt(43000000); } Stream.WriteVInt(0); Stream.WriteVInt(1); for (int i = 0; i < 1; i++) { Stream.WriteVInt(39); Stream.WriteVInt(5); } Stream.WriteVInt(2); { Stream.WriteVInt(1); Stream.WriteVInt(BrawlerTrophies); // Trophies Stream.WriteVInt(BrawlerHighestTrophies); // Highest Trophies Stream.WriteVInt(5); Stream.WriteVInt(Exp); Stream.WriteVInt(Exp); } ByteStreamHelper.WriteDataReference(Stream, 28000000); Stream.WriteBoolean(false); Stream.WriteVInt(0); } public override int GetMessageType() { return 23456; } public override int GetServiceNodeType() { return 27; } } }