Esempio n. 1
0
        public async Task EndBattle()
        {
            if (Replay.Commands.Count <= 0)
            {
                return;
            }

            var random = new Random();

            var originalScore  = Attacker.Score;
            var attackerReward = random.Next(10, 25);

            Attacker.Score += attackerReward;

            var id = await ReplayDb.Save(GetReplayJson);

            if (id > 0)
            {
                Attacker.AddEntry(new BattleReportStreamEntry
                {
                    MajorVersion     = Resources.Fingerprint.GetMajorVersion,
                    Build            = Resources.Fingerprint.GetBuildVersion,
                    ContentVersion   = Resources.Fingerprint.GetContentVersion,
                    CreationDateTime = DateTime.UtcNow,
                    IsRevengeUsed    = true, // Revenge is not supported atm
                    SenderAvatarId   = Defender.AccountId,
                    SenderName       = Defender.Name,
                    SenderLevel      = Defender.ExpLevel,
                    SenderLeagueType = LogicUtils.GetLeagueByScore(Defender.Score),
                    ShardId          = 0,
                    ReplayId         = id,
                    BattleLogJson    = JsonConvert.SerializeObject(new BattleLog
                    {
                        // Here we use random values
                        Loot = new[]
                        {
                            new[] { 3000001, random.Next(1000, 100000) }, new[] { 3000002, random.Next(1000, 100000) }
                        },
                        Units = new[]
                        {
                            new[] { 4000000, random.Next(10, 50) }, new[] { 4000001, random.Next(10, 50) },
                            new[] { 4000002, random.Next(10, 50) }, new[] { 4000003, random.Next(10, 50) },
                            new[] { 4000004, random.Next(10, 50) }, new[] { 4000005, random.Next(10, 50) },
                            new[] { 4000006, random.Next(10, 50) }, new[] { 4000007, random.Next(10, 50) },
                            new[] { 4000008, random.Next(10, 50) }, new[] { 4000009, random.Next(10, 50) }
                        },

                        Levels = new int[0][],
                        Spells = new int[0][],
                        Stats  = new BattleLogStats
                        {
                            TownHallDestroyed     = true,
                            DestructionPercentage = random.Next(0, 100),
                            AllianceName          = "RetroClash",
                            AllianceUsed          = false,
                            AttackerScore         = attackerReward,
                            BattleEnded           = true,
                            BattleTime            = Replay.EndTick,
                            DefenderScore         = random.Next(-30, -15),
                            HomeId        = new[] { 0, 1 },
                            OriginalScore = originalScore
                        }
                    })
                });
            }
        }