private async Task FishingCommand(string ranseiEventName = null) { RanseiEvent ranseiEvent = RanseiEvent.None; switch (ranseiEventName) { case "Halloween2019": case "H2019": case "H19": ranseiEvent = RanseiEvent.Halloween2019; break; case "RanseiVSGalar": case "RvG": ranseiEvent = RanseiEvent.RanseiVSGalar; break; default: ranseiEvent = RanseiEvent.None; break; } try { FishingRewards fishingRewards = new FishingRewards(ranseiEvent); int numberRolled = diceRoller.RollDice(100); Reward reward = fishingRewards.GetFishingReward(numberRolled); string description = string.Empty; if (reward is ITraitable) { ITraitable traitableReward = reward as ITraitable; traitableReward.RollTrait(); if (traitableReward.Trait != null) { description = $"{traitableReward.Trait.ToString()} "; } } description += reward.Name; await ReplyAsync($"Congratulations! You hooked a {description}!{Environment.NewLine}{Environment.NewLine}(Actual number rolled: {numberRolled})"); } catch (Exception ex) { await ReplyAsync($"Oops, something went wrong! Error: {ex.Message}"); } }
public FishingRewards(RanseiEvent fishEvent) { FishingEvent = fishEvent; InitialiseRewardsList(); }