private void Dec_DidSelectDecision( Decision sender )
 {
     if (sender.ActionPointsCost <= 0) {
         return;
     }
     this._player.DeductActionPoints( sender.ActionPointsCost );
     //should check if out of action points for the day now
     this._messenger.Send( new PrintMessage( $"Player action points remaining: {this._player.ActionPoints}", PrintMessage.MessageType.DEBUG ) );
 }
 public void SendDecisionMessage( LuaTable decisionsToSend )
 {
     if (decisionsToSend == null) {
         return;
     }
     if ( decisionsToSend.Values.Count > 1 ) {
         var decs=new Decision[decisionsToSend.Keys.Count];
         for ( var i = 0; i < decisionsToSend.Keys.Count; i++ ) {
             decs[i] = (Decision)decisionsToSend[i];
         }
         Messenger.Default.Send( new DecisionMessage( decs ) );
     }else {
         var d = decisionsToSend.Values.Cast<Decision>().ToArray();
         Messenger.Default.Send( new DecisionMessage( d[0] ) );
     }
 }
 public DecisionButtonVM( Decision decision )
 {
     _decision = decision;
     ButtonText = _decision.CostAndDescription;
     Result = _decision.Result;
 }
 public DecisionMessage( Decision[] decisions )
 {
     for ( var i = 0; i < decisions.Length; i++ ) {
         _decisions.Add( decisions[ i ] );
     }
 }
 public DecisionMessage( Decision decision )
 {
     _decisions.Add( decision );
 }
 public Decision CreateDecision( string desc, LuaFunction func, int cost )
 {
     var d = new Decision( desc, () => { func.Call(); }, cost );
     return d;
 }