示例#1
0
        public async Task PlayerWalkOnMe(Player p, SocketCommandContext _context)
        {
            if (!used)
            {
                var random = r.NextDouble();

                if (random < activationProb)
                {
                    if (!p.immuneToTraps && r.NextDouble() < killProb)
                    {
                        await JDR.Kill(p);
                    }
                    if (p.immuneToTraps)
                    {
                        await _context.Channel.SendMessageAsync(p.user.Username + " a utilisé sa capacité spéciale pour survivre à un piège, elle est désormais désactivée");

                        p.immuneToTraps = false;
                    }
                    else
                    {
                        await _context.Channel.SendMessageAsync(p.user.Username + " a activé le piège mais a survécu!");

                        Desactivate();
                    }
                }
                else
                {
                    await _context.Channel.SendMessageAsync(p.user.Username + " a esquivé le piège!!");
                }
            }
        }
示例#2
0
        public async Task UseAbility(SocketCommandContext context, Ability ab, Player target)
        {
            if (JDR.hasStarted)
            {
                if (ab.isAvailable)
                {
                    // On regarde si la capacité spéciale est utilisée sur le joueur même

                    switch (ab.identifier)
                    {
                    case Ability.ID.ShowFBICard:
                        target.votePower = 2;
                        await JDR._context.Channel.SendMessageAsync(context.Message.Author.Mention + "A sorti sa carte FBI!\nSon vote compte désormais pour double");

                        break;

                    case Ability.ID.PrepareSurvival:
                        target.immuneToTraps = true;
                        await JDR._context.Channel.SendMessageAsync(context.Message.Author.Mention + "s'est immunisé au prochain piège !");

                        break;

                    case Ability.ID.RevealTrap:
                        break;

                    // Dans le cas où l'on utilise la capacité sur un autre joueur

                    case Ability.ID.ShootSomeone:
                        await context.Channel.SendMessageAsync(context.Message.Author.Mention + "a tué " + target.user.Username);

                        await JDR.Kill(target);

                        break;

                    default:
                        Console.WriteLine("erreur d'ID d'ability fonction Use()");
                        break;
                    }
                    // Si l'usage est unique, on ne peut utiliser qu'une fois la compétence
                    if (ab.usageMode == UsageType.Single)
                    {
                        ab.isAvailable = false;
                    }
                }
            }
        }