internal void Initialize()
        {
            this._timeline = new Timeline();
            this._player = new Player( "Player", 10 );

            this._messenger.Register<DecisionMessage>( this, msg => {
                for ( var i = 0; i < msg.DecisionCount; i++ ) {
                    msg.Decisions[ i ].DidSelectDecision += this.Dec_DidSelectDecision;
                }
            } );
            this._messenger.Register<StatChangeMessage>( this, msg => {
                if (this._player.Name.Equals( msg.PlayerName, StringComparison.OrdinalIgnoreCase ) ) {
                    this._player.ChangeStatValue( msg.StatName, msg.Amount );
                }
            } );
        }
 public override bool DoesScenarioMeetRequirements(StorySubject story, Day day, Player player, Party party)
 {
     return party.Any(p => p.PlayerArchetype == this._archetype);
 }
 public override bool DoesScenarioMeetRequirements(StorySubject story, Day day, Player player, Party party)
 {
     return day.Index <= this._day;
 }
 public abstract bool DoesScenarioMeetRequirements(StorySubject story, Day day, Player player, Party party);
 public override bool DoesScenarioMeetRequirements(StorySubject story, Day day, Player player, Party party)
 {
     return player.CheckStatValue(this._stat.ToString()) >= this._statValue;
 }
 public override bool DoesScenarioMeetRequirements(StorySubject story, Day day, Player player, Party party)
 {
     return party.Count >= this._size;
 }