예제 #1
0
        public static void BeginArenaFightSet(int count, List <PawnKindDef> lhs, List <PawnKindDef> rhs, Action <ArenaResult> callback, Action report)
        {
            ArenaSetState state = new ArenaSetState();

            for (int i = 0; i < count; i++)
            {
                Current.Game.GetComponent <GameComponent_DebugTools>().AddPerFrameCallback(() => ArenaUtility.ArenaFightQueue(lhs, rhs, delegate(ArenaResult result)
                {
                    callback(result);
                    count--;
                    if (count % 10 == 0)
                    {
                        report();
                    }
                }, state));
            }
        }
예제 #2
0
        public static void BeginArenaFightSet(int count, List <PawnKindDef> lhs, List <PawnKindDef> rhs, Action <ArenaResult> callback, Action report)
        {
            if (!ValidateArenaCapability())
            {
                return;
            }
            int           remaining = count;
            ArenaSetState state     = new ArenaSetState();

            for (int i = 0; i < count; i++)
            {
                Current.Game.GetComponent <GameComponent_DebugTools>().AddPerFrameCallback(() => ArenaFightQueue(lhs, rhs, delegate(ArenaResult result)
                {
                    callback(result);
                    remaining--;
                    if (remaining % 10 == 0)
                    {
                        report();
                    }
                }, state));
            }
        }
예제 #3
0
 private static bool ArenaFightQueue(List <PawnKindDef> lhs, List <PawnKindDef> rhs, Action <ArenaResult> callback, ArenaSetState state)
 {
     if (!ValidateArenaCapability())
     {
         return(false);
     }
     if (state.live < 15)
     {
         BeginArenaFight(lhs, rhs, delegate(ArenaResult result)
         {
             state.live--;
             callback(result);
         });
         state.live++;
         return(true);
     }
     return(false);
 }