Combat Tutorial - raeleus/Hashtag-DnD GitHub Wiki

Introduction

It's easy to get bored if you don't face adversity. The highs of your experience in AID can not be measured without the lows you must endure. Only through combat will you be able to test the limits of your skill and strategy. The outcome of which will determine the fate of your tale dramatically. I recorded a playthrough which highlights a lot of these features.

The Scenario

You are a wise, but frail wizard that has stumbled into the crumbling ruins of Elabor. You are accompanied by a well-meaning but gruff Barbara the Barbarian. Together, you will brave the dungeon for fame, riches, and glory: You enter the dungeon.

AID can go through entire storylines without generating foes for you to face if you don't coax it do so. Here, we have the opportunity of taking complete control of that. You can roll a die to determine if the first room will reward you with treasure, traps, or combat. Then you can encourage the AI to generate the situation for you by typing something like You encounter a treasure room!

It's much better to use the built in #encounter hashtag: #encounter easy You can specify which list you want to use (funny, easy, medium, hard, boss, god) or you can provide a challenge rating which will roughly select a suitable encounter: #encounter 3 A level 3 encounter should be good for a group of level 3 characters. It all depends on how involved you want to be when creating enemies. This has a chance to generate either a room description or a combat scenario. Let's focus on combat. In this encounter we are facing 3 skeleton warriors and they are up to no good.

Consider setting your AC or armor class: Barbara #setac 15 By default, characters are created at 10 AC, but you should alter this when you find upgraded armor or increase your dexterity. AC is how hard it is for enemies to hit you.

Now it comes to the initiative roll. In DnD, initiative determines the turn order of the characters. Let's use the built in hashtag: #initiative This sets the turn order for everyone in your party and the enemies generated by #encounter. Initiative is a D20 roll + the Dexterity modifier of your character. Anyone in your party that has 0 health is excluded.

Combat is turn based: #turn Calling turn for the first time initiates combat mode. There goes any opportunity to negotiate with these guys...

It happens to be that Barbara is first! She is wicked strong: Barbara #attacks Skeleton A with her hammy fist for 10 damage Barbara uses her turn to attack the first skeleton. If your character is known to attack more than once per turn, you may do so. With each attack, you can specify the direct damage or list a dice roll to determine the damage: Barbara #attacks Skeleton A with her hammy fist for 2d10+5 damage Remember to not specify the AC on your own as the Skeleton has a scripted one. A direct hit! The pitiful skeleton is defeated and is removed from the turn list.

When you've completed your turn, don't forget to call the hashtag: #turn

It's Skeleton B's turn now. It attacks: Skeleton B attacks you for 10 damage. You are at 1 health. This is a result of poor planning. You should have rested before entering the dungeon. Now you are close to death.

#turn You have a few choices here. Will you flee? #flee A coward's choice, but perhaps the living coward has more worth than a dead hero. At least make it difficult for yourself to run away. #flee hard This makes the chance of running away incredibly difficult. Failure! It looks like you have no choice but to press forward.

Instead, you decide to make this punk pay for what it's done: #cast "fireball" at Skeleton B for 20 damage The Skeleton is disintegrated into a pile of ash.

Effective! Fireball should have splash damage too. Simply call the hashtag on each affected opponent: #damage 10 Skeleton C The skeleton falls apart. #damage 10 Skeleton A It staggers and then falls over, lifeless. #damage causes direct damage without worrying about a chance to hit roll.

When combat is complete, you simply take another turn to see who the victor is: #turn

One of the skeletons dropped a strange emerald. You reach to rub the dust off of it, but as soon as you touch it a portal opens up! Skeleton Prime appears and he's not happy you killed his brothers. #setupenemy You can manually add an enemy by calling this hashtag. You'll be guided through a series of questions. At the end, you'll be given the code to create this same enemy again in the future if you want.

Start the new combat round: #initiative #turn Oh no! Skeleton Prime is attacking. You are rendered unconscious!

#turn Barbara is enraged when her companions are down. She is very empathic: #attack advantage Skeleton Prime for 3d10+5 damage Critical hit! It's super effective! Criticals double the damage roll, increasing the total amount of damage. Skeleton Prime bursts into shower of bones and dust.

#turn When all opponents are vanquished or when your party is defeated, the winner is announced. Use this opportunity to loot the corpses and rest up. If your party loses, perhaps consider teleporting your party to the local village. Or simply end your game in a brutal, hardcore version of AID. The choice is yours!

Additional Thoughts

The objective of this combat system is to make it feel like AID can challenge me. I grow sick of winning every battle with very little thought about strategy or character development. Often battles I've made with the AI seemed to go on forever as well. I feel like I'm cheating when I tell the AI, "OK, cut the crap. I won." Hopefully you'll agree that these features address these issues.

This is how I envisioned combat for Hashtag DnD. This was balanced against the difficulty of using AID for such a system. You don't have to use the combat mechanic at all. You can simply come up with your own encounters and use #attack to determine the outcome. I want everyone to have freedom of choice.

An interesting mechanic you can try if your party loses is you can create a new character that has heard about the party's exploits. Make it an objective for this character to investigate or even save your previous group. Using too much deus ex machina cheapens the experience, so make sure there are consequences. Perhaps your party loses their loot or maybe 1 or 2 characters don't make it back. Maybe they have become undead and now your new character is in peril. Roll for it!

You really shouldn't split your party up when playing this scenario or in tabletop DnD for that matter. If you must do so, set any characters who are not actively adventuring with you to 0 health. #sethealth 0 They won't be included in combat. Don't worry! They aren't dead. They're just sleeping very peacefully, I'm sure...

Try not to rest after every combat. Restoring health that frequently is a cheat. Make it a rule that you can't rest until you complete a dungeon. Or perhaps resting comes at a cost. You need to consume an amount of food in order to rest. Or, you have a loan from the bank that compounds daily.

If you don't like the output of an enemy's turn during combat, undo it! There is no way I'm going to reproduce every complexity there is to combat, such as saving throws, shields, and resistance. If you receive damage that should have been blocked, call #block before you call #turn. Adjust the story as necessary to make this make sense.

Similarly, if you want to repeat the turn, call #repeatturn. This is nice if there is supposed to be some effect where the enemy attacks twice or if you called #block and want to give it another chance.