public static bool FunctionInvoke(Block block, ref int index, out string name, out Arguments arguments) { name = null; arguments = null; var checker = new LimitChecker(index, block); if (checker.Exceeds(index, out var verb)) { return(false); } if (PushVariable(verb, out name)) { if (checker.Exceeds(ref index, out verb)) { return(false); } if (verb is Invoke invoke) { arguments = invoke.Arguments; return(true); } } checker.Revert(out index); return(false); }
// returns false if given step is not allowed private bool GetLimit(GameTrace gameTrace) { gameTrace.y = 14 - gameTrace.y; return(LimitChecker.player_limit(GameToJson(), JsonConvert.SerializeObject(gameTrace))); }