private async Task DoFighting(IDialogContext context, CombatContext combat, int damage) { combat.HitEnemy(damage); if (combat.EnemyHitPoints > 0) { // todo: make configurable var returnDamage = RandomEvent.GetRandomNumberBetween(7, 22); combat.HitPlayer(returnDamage); await context.PostAsync($"You hit 'em for {damage} points of damage--they have {combat.EnemyHitPoints} life left!\n\n" + $"They hit you back for {returnDamage} points! You have {combat.PlayerHitPoints} life left."); context.UserData.SetValue(StateKeys.CombatContext, combat); if (combat.PlayerHitPoints > 0) { await this.ShowMainCombatMenu(context); context.Wait(MessageReceivedAsync); } else { await PlayerDead(context); } } else { await context.PostAsync("You managed to fight them off!"); this.Done(context); } }