*9      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Role data structures.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone      Player data structures.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone! !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+Game and stage data structures.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone8,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV+9D>:=;<?@ABCEFGHIJKLMNOPQRS012345678TU,-./V ,-./0123456789 :;<=>?@ABCDEFGHIJKLMNOPQRSTUV%Response and message data structures.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone0CWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3[\]^_`aWXYZbcdefghijklmnopqrstuvwxyz{|}~=WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Engine functions.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone47##Command data structures.(c) Henry J. Wylde, 2015BSD3public@hjwylde.comNone47IN       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_``abcdefghijklmnopqrstuvwxyz{|}~MOPSTUNWXY\' ?Vwerew_J0id8IxuHH04NFhMGvSvfYGame.Werewolf.RoleGame.Werewolf.PlayerGame.Werewolf.GameGame.Werewolf.ResponseGame.Werewolf.EngineGame.Werewolf.Command Allegiance Villagers WerewolvesRoleallRoles defenderRole scapegoatRoleseerRole villagerRolevillagerVillagerRole werewolfRole witchRoleadvice allegiance descriptionnameStateAliveDeadPlayerrolestate newPlayer findByName findByName_filterDefendersfilterScapegoats filterSeersfilterVillagersfilterVillagerVillagersfilterWerewolves filterWitchesdoesPlayerExist isDefender isScapegoatisSeer isVillager isWerewolfisWitchisAliveisDead filterAlive filterDeadEvent DevourEvent NoDevourEvent PoisonEventStageGameOver DefendersTurn SeersTurnSunriseSunset VillagesTurnWerewolvesTurn WitchsTurnGameeventshealhealUsedpassesplayerspoison poisonUsed priorProtectprotectseestagevotesnewGame killPlayer isGameOverisDefendersTurn isSeersTurn isSunriseisSunsetisVillagesTurnisWerewolvesTurn isWitchsTurn getPassers getPlayerVotegetPendingVoters getVoteResult stageCyclestageAvailablegetDevourEventMessagetomessageResponseokmessagessuccessfailureexitWith publicMessageprivateMessage groupMessagesnoGameRunningMessagegameAlreadyRunningMessagenewGameMessages stageMessagesgameOverMessagesplayerQuitMessagepingPlayerMessagepingDefenderMessagepingSeerMessagepingWerewolvesMessagepingWitchMessagecurrentStageMessagesrolesInGameMessageplayersInGameMessagewaitingOnMessageplayerSeenMessageplayerMadeLynchVoteMessageplayerLynchedMessagenoPlayerLynchedMessagescapegoatLynchedMessageplayerMadeDevourVoteMessageplayerDevouredMessagenoPlayerDevouredMessageplayerPoisonedMessagegameIsOverMessageplayerDoesNotExistMessageplayerCannotDoThatMessage!playerCannotDoThatRightNowMessageplayerIsDeadMessageroleDoesNotExistMessageplayerCannotProtectSelfMessage/playerCannotProtectSamePlayerTwiceInARowMessageplayerHasAlreadyVotedMessagetargetIsDeadMessage(playerCannotDevourAnotherWerewolfMessageplayerHasAlreadyHealedMessageplayerHasAlreadyPoisonedMessage checkStage checkGameOver startGamedefaultFilePathreadGame writeGame deleteGame doesGameExist createPlayersisPlayerDefender isPlayerSeerisPlayerWerewolf isPlayerWitch isPlayerAlive isPlayerDeadrandomiseRolesCommandapplydevourVoteCommand healCommandlynchVoteCommand noopCommand passCommand pingCommand poisonCommandprotectCommand quitCommand seeCommand statusCommand_name _allegiance _description_advice_role_stateisVillagerVillager_stage_players_events_passes_heal _healUsed_poison _poisonUsed _priorProtect_protect_see_votesnewPlayersInGameMessagenewPlayerMessagevillagerVillagerMessagedefendersTurnMessagesseersTurnMessagessunriseMessagenightFallsMessagevillagesTurnMessageswerewolvesTurnMessageswitchsTurnMessagesplayerWonMessageplayerLostMessage$fToJSONMessage$fFromJSONMessage$fToJSONResponse$fFromJSONResponse checkStage' advanceStage checkEventseventAvailable applyEventdefaultFileNamevalidatePlayer