Example #1
0
        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);
            }
        }