Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add special case summarizers for events with interaction #10

Open
alee opened this issue Apr 18, 2022 · 2 comments
Open

add special case summarizers for events with interaction #10

alee opened this issue Apr 18, 2022 · 2 comments
Assignees
Labels
enhancement New feature or request high priority

Comments

@alee
Copy link
Member

alee commented Apr 18, 2022

  1. Personal Gain (VotedForPersonalGain)
  2. Hero or Pariah (VoteHeroOrPariah)
  3. Compulsive Philanthropy (VotedForPhilanthropist)
  4. Breakdown of Trust: keep up to 2 influence resource units (BreakdownOfTrust
  5. Bonding through Adversity
  6. Efforts Wasted
  7. any others?

Identify a way to programmatically discover these events and emit their data payloads in MarsEventSummarizer, possibly GameEventWithData will work?

@alee alee added enhancement New feature or request high priority labels Apr 18, 2022
@chrstngyn
Copy link
Contributor

I was able to emit their individual payloads like so:

export interface MarsEventExport {
  gameId: number;
  round: number;
  name: string;
  description: string;
  index: number;
  payload: string;
}

and in the MarsEventSummarizer class:

_summarizeEvent(game: GameState, event: entity.GameEvent): Array<MarsEventExport> {
    return game.marsEvents.map((marsEvent, index) => ({
      gameId: event.gameId,
      round: game.round,
      name: marsEvent.name,
      description: marsEvent.effect,
      index,
      payload: JSON.stringify(event.payload),
    }));
  }

However, in the current MarsEventSummarizer approach, in an event of type exited-mars-event-phase, there is no payload. Payloads for interactive events are emitted in its respective event type e.g. in a Personal Gain event, voted-for-personal-gain has the payload in the form of {""role"":""Researcher"",""vote"":false} so by the time there is an event type exited-mars-event-phase, there is no available payload

So therefore, if we were to find these interactive events programmatically by type, it would result in 6 occurrences of Personal Gain in the data output if we try to identify when the votes are occurring and when we reach exited-mars-event-phase. We should be emitting payloads in the exited-mars-event-phase

@alee
Copy link
Member Author

alee commented Apr 22, 2022

Thanks for looking into this Christine! Could we collect all GameEventWithData events that we find into a data structure and then aggregate them and emit an aggregated payload when we reach an exited-mars-event-phase event? Then we clear that data structure and move on again...

Happy to meet sometime tomorrow after the comses meeting @ 10 to discuss / pair program on it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request high priority
Projects
None yet
Development

No branches or pull requests

2 participants