public override ExecutionResult Execute(SuperMetroidModel model, InGameState inGameState, int times = 1, bool usePreviousRoom = false) { int ammoCost = Count * times; if (inGameState.IsResourceAvailable(model, AmmoType.GetConsumableResourceEnum(), ammoCost)) { var resultingState = inGameState.Clone(); resultingState.ApplyConsumeResource(model, AmmoType.GetConsumableResourceEnum(), ammoCost); return(new ExecutionResult(resultingState)); } else { return(null); } }