namespace Supercell.Laser.Logic.Home.Items { using Supercell.Laser.Logic.Data; using Supercell.Laser.Logic.Helper; using Supercell.Laser.Titan.DataStream; using Supercell.Laser.Logic.Battle.Structures; public class EventData { public bool IsBonusCollected; public int Slot; public int[] Modifiers; public int LocationId; public int PowerPlayGamesPlayed; public DateTime EndTime; public bool IsSecondary; public LocationData Location => DataTables.Get(DataType.Location).GetDataByGlobalId(LocationId); public int Status; public BattlePlayerMap BattlePlayerMap; /* public void Encode(ByteStream encoder) { if (IsBonusCollected) { Status = 2; } else { Status = 1; } encoder.WriteVInt(0); encoder.WriteVInt(Slot); encoder.WriteVInt(IsSecondary ? (int)(EndTime - DateTime.Now).TotalSeconds : 0); encoder.WriteVInt((int)(EndTime - DateTime.Now).TotalSeconds); encoder.WriteVInt(10); ByteStreamHelper.WriteDataReference(encoder, Location); encoder.WriteVInt(0); // 0xacecc0 encoder.WriteVInt(Status); encoder.WriteBoolean(false); encoder.WriteString(null); // 0xacecac encoder.WriteVInt(0); // 0xacecc0 encoder.WriteVInt(PowerPlayGamesPlayed); // 0xacecd4 encoder.WriteVInt(3); // 0xacece8 encoder.WriteVInt(0); // 0xacecfc encoder.WriteVInt(0); // 0xacee58 encoder.WriteVInt(0); // 0xacee6c encoder.WriteBoolean(false); encoder.WriteVInt(0); }*/ /* public void Encode(ByteStream encoder) { encoder.WriteVInt(-1); encoder.WriteVInt(Slot); encoder.WriteVInt(0); encoder.WriteVInt(0);//v53 encoder.WriteVInt((int)(EndTime - DateTime.Now).TotalSeconds); encoder.WriteVInt(0); if (Slot == 12 || Slot == 13) ByteStreamHelper.WriteDataReference(encoder, null); //else if(LocationId==15000121)ByteStreamHelper.WriteDataReference(encoder, 15000122); else ByteStreamHelper.WriteDataReference(encoder, Location); encoder.WriteVInt(0); // GameModeVaridation encoder.WriteVInt(2); encoder.WriteString(null); // 0xacecac encoder.WriteVInt(0); // 0xacecc0 encoder.WriteVInt(0); // 0xacecd4 encoder.WriteVInt(0); // 0xacece8 encoder.WriteVInt(0); // modifier encoder.WriteVInt(0); // 0xacee58 encoder.WriteVInt(0); // 0xacee6c //encoder.WriteBoolean(false); //encoder.WriteVInt(0); // 0xacee6c ByteStreamHelper.WriteBattlePlayerMap(encoder, BattlePlayerMap); encoder.WriteVInt(0); encoder.WriteBoolean(false);//LogicRankedSeason encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteBoolean(false); encoder.WriteBoolean(false); encoder.WriteBoolean(false); //encoder.WriteBoolean(false); encoder.WriteVInt(-1); encoder.WriteBoolean(false); encoder.WriteBoolean(false); encoder.WriteVInt(-1); encoder.WriteVInt(0);//v51 encoder.WriteVInt(0);//v51 encoder.WriteVInt(0);//v51 encoder.WriteBoolean(false);//v53 }*/ /* # Power League Start Array # # Power League Solo Mode # self.writeVInt(0) self.writeVInt(14) # EventType self.writeVInt(0) # Events Begin Countdown self.writeVInt(5184000) # Timer self.writeVInt(0) # Tokens reward for new event self.writeDataReference(0, 7) # MapID self.writeVInt(-64) # Gamemode Variation self.writeVInt(2) # State self.writeString() self.writeVInt(0) self.writeVInt(0) self.writeVInt(0) self.writeBoolean(False) self.writeVInt(0) self.writeVInt(0) self.writeBoolean(False) # Mapmaker Map Structure self.writeVInt(0) self.writeBoolean(True) # Power League Data Array # Power League Data Array Start # self.writeVInt(3) # Season self.writeString("TID_BRAWL_PASS_SEASON_6") # Name Season self.writeVInt(0) self.writeVInt(0) self.writeVInt(3) # Quests Count self.writeByte(3) # LogicRewardConfig self.writeByte(3) # Quest Type self.writeVInt(25) # Wins need self.writeVInt(1) # Item Array self.writeVInt(25) # ItemType self.writeVInt(1) self.writeVInt(0) self.writeVInt(69) # Thumbnail ID self.writeByte(3) # LogicRewardConfig self.writeByte(2) # Quest Type self.writeVInt(7) # Rank self.writeVInt(1) # Item Array self.writeVInt(25) # ItemType self.writeVInt(1) self.writeVInt(0) self.writeVInt(70) # Thumbnail ID self.writeByte(3) # LogicRewardConfig self.writeByte(3) # Quest Type self.writeVInt(50) # Wins need self.writeVInt(1) # Item Array self.writeVInt(26) # ItemType self.writeVInt(1) self.writeVInt(0) self.writeVInt(307) # SkinID self.writeVInt(19) # Road Count self.writeVInt(1) # Rank self.writeVInt(500) # Starpoints self.writeVInt(2) # Rank self.writeVInt(1000) # Starpoints self.writeVInt(3) # Rank self.writeVInt(2000) # Starpoints self.writeVInt(4) # Rank self.writeVInt(2500) # Starpoints self.writeVInt(5) # Rank self.writeVInt(3000) # Starpoints self.writeVInt(6) # Rank self.writeVInt(3750) # Starpoints self.writeVInt(7) # Rank self.writeVInt(4500) # Starpoints self.writeVInt(8) # Rank self.writeVInt(5500) # Starpoints self.writeVInt(9) # Rank self.writeVInt(7000) # Starpoints self.writeVInt(10) # Rank self.writeVInt(8750) # Starpoints self.writeVInt(11) # Rank self.writeVInt(10000) # Starpoints self.writeVInt(12) # Rank self.writeVInt(12500) # Starpoints self.writeVInt(13) # Rank self.writeVInt(15000) # Starpoints self.writeVInt(14) # Rank self.writeVInt(17500) # Starpoints self.writeVInt(15) # Rank self.writeVInt(20000) # Starpoints self.writeVInt(16) # Rank self.writeVInt(25000) # Starpoints self.writeVInt(17) # Rank self.writeVInt(30000) # Starpoints self.writeVInt(18) # Rank self.writeVInt(40000) # Starpoints self.writeVInt(19) # Rank self.writeVInt(50000) # Starpoints # Power League Data Array End # self.writeVInt(0) self.writeVInt(0) self.writeBoolean(False) # ChronosTextEntry self.writeVInt(0) # Array self.writeVInt(0) # Array */ /* public void Encode(ByteStream encoder, ClientHome home, ChallengeConfiguration config) { // Проверка на слоты чемпионата if (Slot >= 20 && Slot <= 24) { EncodeChamp(encoder, home, config); return; } // Обычный Slot Encode (v53) encoder.WriteVInt(-1); encoder.WriteVInt(Slot); encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteVInt((int)(EndTime - DateTime.Now).TotalSeconds); encoder.WriteVInt(0); if (Slot == 12 || Slot == 13 || Slot == 18 || Slot == 14 || Slot == 15 || Slot == 34 || Slot == 35) ByteStreamHelper.WriteDataReference(encoder, null); //else if(LocationId==15000121)ByteStreamHelper.WriteDataReference(encoder, 15000122); else ByteStreamHelper.WriteDataReference(encoder, Location); encoder.WriteVInt(-64); // GameModeVariation encoder.WriteVInt(0); // State encoder.WriteString(null); encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteVInt(Modifiers.Length); foreach (int modifier in Modifiers) { encoder.WriteVInt(modifier); } encoder.WriteVInt(0); encoder.WriteVInt(0); ByteStreamHelper.WriteBattlePlayerMap(encoder, BattlePlayerMap); encoder.WriteVInt(0); if ( Slot == 14 || Slot == 15 ) encoder.WriteBoolean(true);//LogicRankedSeason else encoder.WriteBoolean(false);//LogicRankedSeason var stream = encoder; if (Slot == 14 || Slot == 15) { stream.WriteVInt(GeneralStaticLogic.RankedSeason); stream.WriteString(GeneralStaticLogic.RankedSeasonTID); stream.WriteVInt(10); stream.WriteVInt(10); var activeQuests = GeneralStaticLogic.QuestForRanked .Where(q => !home.ClaimedRankedQuestsIds.Contains(q.QuestId)) .ToList(); stream.WriteByte((byte)activeQuests.Count); foreach (var cfg in activeQuests) { stream.WriteBoolean(true); // LogicRewardConfig stream.WriteVInt((byte)cfg.QuestType); stream.WriteVInt((byte)cfg.NeededRank); stream.WriteBoolean(true); cfg.GemOffer.Encode(stream); } stream.WriteVInt(0); stream.WriteVInt(19); for (int j = 1; j < 20; j++) { stream.WriteVInt(j); stream.WriteVInt(1000); } } encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteBoolean(false); encoder.WriteBoolean(false); encoder.WriteBoolean(false); encoder.WriteVInt(-1); encoder.WriteBoolean(false); encoder.WriteBoolean(false); encoder.WriteVInt(-1); encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteBoolean(false); // v53 extra byte }*/ public void Encode(ByteStream encoder) { if (IsBonusCollected) { Status = 2; } else { Status = 1; } encoder.WriteVInt(-1); encoder.WriteVInt(Slot); encoder.WriteVInt(0); encoder.WriteVInt((int)(EndTime - DateTime.Now).TotalSeconds); encoder.WriteVInt(10); if(Slot == 14 || Slot == 15 | BattlePlayerMap != null) ByteStreamHelper.WriteDataReference(encoder, null); else ByteStreamHelper.WriteDataReference(encoder, Location); if (BattlePlayerMap != null) encoder.WriteVInt(BattlePlayerMap.GMV); else encoder.WriteVInt(-64); encoder.WriteVInt(Status); encoder.WriteString(null); // 0xacecac encoder.WriteVInt(0); // 0xacecc0 encoder.WriteVInt(0); // 0xacecd4 encoder.WriteVInt(0); // 0xacece8 encoder.WriteVInt(0); //mod //encoder.WriteVInt(Modifiers.Length); // 0xacecfc // foreach (int modifier in Modifiers) // { // encoder.WriteVInt(modifier); // } encoder.WriteVInt(0); // 0xacee58 encoder.WriteVInt(0); // 0xacee6c ByteStreamHelper.WriteBattlePlayerMap(encoder, BattlePlayerMap); // и тут остапа понесло... encoder.WriteVInt(0); if(Slot == 14 || Slot == 15) { encoder.WriteBoolean(true); //powerleague encoder.WriteVInt(3); //season encoder.WriteString("PORN PROJECT BUZZ"); //tid encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteVInt(0); //quests count //... //... //... encoder.WriteVInt(19); //road count for (int i = 0; i < 19; i++) { encoder.WriteVInt(i); //number encoder.WriteVInt(1500); //reward count } } } else { encoder.WriteBoolean(false); //powerleague } encoder.WriteVInt(0); encoder.WriteVInt(0); encoder.WriteBoolean(false); // ChronosTextEntry encoder.WriteBoolean(false); // ChronosTextEntry encoder.WriteBoolean(false); // LogicGemOffer (ето для чемпа типа да.) encoder.WriteVInt(0); encoder.WriteBoolean(false); // ChronosTextEntry (зачем ето я хз мне лень разбирать) } } }