public int GetDynamicTokenFor(Space space, UniqueToken token) => GetDynamicDefendFor(dynamicTokens_ForGame, space, token) + GetDynamicDefendFor(dynamicTokens_ForRound, space, token);
int GetDynamicDefendFor(Dictionary <UniqueToken, List <Func <GameState, Space, int> > > dict, Space space, UniqueToken token) => dict.ContainsKey(token) ? dict[token].Sum(x => x(gameStateForEventArgs, space)) : 0;
public void RegisterDynamic(System.Func <GameState, Space, int> calcCountOnSpace, UniqueToken targetToken, bool entireGame) { var dict = entireGame ? dynamicTokens_ForGame : dynamicTokens_ForRound; if (!dict.ContainsKey(targetToken)) { dict.Add(targetToken, new List <Func <GameState, Space, int> >()); } dict[targetToken].Add(calcCountOnSpace); }