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)); } }
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)); } }
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); }