// Copyright 2019 Campbell Crowley. All rights reserved. // Author: Campbell Crowley (dev@campbellcrowley.com) /** * @description An outcome for one or more players in a game. * @memberof HungryGames * @inner */ class ForcedOutcome { /** * @description Create a single forced outcome. * @param {string} id The guild ID in which the users will be affected. * @param {string[]} list The array of player IDs of which to affect. * @param {string} state The outcome to force the players to have been * victims of by the end of the simulated day. ("living", "dead", "wounded", * or "thriving"). * @param {string} text Message to show when the user is affected. * @param {boolean} [persists=false] Does this outcome persist to the end of * the game, if false it only exists for the next day. */ constructor(id, list, state, text, persists = false) { if (typeof id === 'object') { persists = id.persists; text = id.text; state = id.state; list = id.list; id = id.id; } /** * The guild ID of which the users will be affected. * * @public * @type {string} */ this.id = id; /** * The array of player IDs of which this concerns. * * @public * @type {string[]} */ this.list = list; /** * The state to force the players to be in. * * @public * @type {string} */ this.state = state; /** * Message to show when the user is affected. * * @public * @type {string} */ this.text = text; /** * Does this outcome persist to the end of the game. False to only exist for * a * single day. * * @public * @type {boolean} * @default false */ this.persists = persists; } } module.exports = ForcedOutcome;