public override async Task <bool> OnExecute() { if (!HarvestField.CanExecuteSpecial) { return(await UprootVine.OnExecute()); } if (!UprootVine.CanExecuteSpecial) { return(await HarvestField.OnExecute()); } var selectedOption = await PlayerSelection.Select("Select action", "Choose to harvest 1 field or uproot 1 vine", "harvest 1 field", "uproot 1 vine"); if (selectedOption == Selection.None) { return(false); } if (selectedOption == Selection.Option1) { return(await HarvestField.OnExecute()); } return(await UprootVine.OnExecute()); }
protected override async Task <bool> ApplyOption1(IGameState gameState) { var success = await HarvestField.OnExecute(); if (!success) { return(false); } if (!HarvestField.CanExecuteSpecial) { return(true); } success = await HarvestField.OnExecute(); if (!success) { return(await MetroDialog.DoneOrCancelVisitor("harvesting")); } return(true); }