示例#1
0
 public void Process(GameState state, AttackItemPipelineArgs args)
 {
     // assuming targets and weapons are already prioritized
     // just find the first compatible combination
     foreach (var target in args.EligibleTargets)
     {
         foreach (var item in args.EligibleItems)
         {
             if (!target.Effects.Contains(item.Name))
             {
                 args.Select(item, target.PlayerName);
                 return;
             }
         }
     }
 }
示例#2
0
        public void Process(GameState state, AttackItemPipelineArgs args)
        {
            if (state.OnLeaderboard && args.EligibleItems.Any(i => i.Name == "Banana Peel"))
            {
                var behindMe = state.OpponentAtDelta(1);
                var target   = behindMe == null
                    ? null
                    : args.EligibleTargets.FirstOrDefault(t => t.PlayerName == behindMe.PlayerName);

                if (target != null)
                {
                    var banana = args.EligibleItems.First(i => i.Name == "Banana Peel");
                    args.Select(banana, target.PlayerName);
                }
            }
        }