A funny thing happened while I was working this morning…

So, at the SLCC GameJam I received a helpful tip that I could name a Java class capital-c “Class” instead of using “Archetype” as a workaround. The refactor took less than 10 minutes because I’ve reduced object-to-object impact in my code.

Of course, this freed up the (namespace?) allowing me to make an actual Archetype class (well, enum) to represent the 5e Archetype class feature. That took a little longer, mostly because I was transcribing a list of things from the book to code.

This led to me needing to update my Deity class, because now I had cleric domains, and there’s this basic assumption that having a particular domain leads a cleric to a particular deity. So I started working on how to assign deities based on domains.

It’s a funny problem.

See, because of the specific sequence in which I’m generating character attributes (abilities, class, race, alignment, deity…) there are some things which must be determined out of what might otherwise seem to be a “logical sequence.”

For example, I determine alignment before deity. This means that when I randomly select a deity for a character (which sometimes happens), there are occasionally evil followers of good gods. All over the spectrum. I consider this a feature.

But it wasn’t until this morning when I caught myself creating mammoth condition branches for different permutations of alignment and deity that I realized two things. First, I was working WAY too hard (even if it was good work I was doing). Second, I was precluding the possibility of heretical clerics… and players are NOTHING if not unpredictable in how they go about things.

That said, I think I’ve opened up considerable space for non-standard clerics that players don’t normally explore. I mean, you have to play a lot of clerics just to cover the basic spaces represented by domains and deities. But to explicitly play a HERETICAL cleric… actually, that only became like, not-rule-breaking as of 4e, if I recall. I mean, 5e basically doesn’t care anymore.

On the one hand, it’s very freeing to a player. Of course players don’t really need options… because most players, and by that I mean the VAST majority of ALL players… simply won’t explore the space. On the other hand, it simplifies my programming needs and makes for some interesting random characters.

I will share some sample output from this morning:

Name EVIL TIEFLING OUTLANDER FIGHTER (CHAMPION) BANE (1.0)
AC 9 hp 7
Wielding Longbow
[11, 7, 15, 8, 8, 11]
[Leather Armor, Longbow, Quarterstaff, Handaxe, Handaxe]

Name NEUTRAL HALF_ORC SAILOR FIGHTER (CHAMPION) BAHAMUT (1.05)
AC 16 hp 8
[13, 4, 11, 10, 10, 8]
[Chain Mail, Flail, Shield, Light Crossbow]

Name CHAOTIC DARK_ELF GUILD_ARTISAN BARBARIAN (TOTEM_WARRIOR) TOROG (1.0)
AC 10 hp 11
Wielding Spear
[10, 10, 10, 7, 11, 10]
[Maul, Spear, Javelin, Javelin, Javelin, Javelin]

Name NEUTRAL GNOME CHARLATAN ROGUE (THIEF) TIAMAT (1.05)
AC 13 hp 8
Wielding Shortsword
[11, 14, 12, 11, 4, 7]
[Leather Armor, Shortsword, Shortsword, Dagger, Dagger]

Name EVIL HUMAN NOBLE FIGHTER (ELDRITCH_KNIGHT) VECNA (1.0)
AC 12 hp 7
Wielding Longbow
[10, 12, 9, 12, 7, 12]
[Leather Armor, Longbow, Blowgun, Shield, Handaxe, Handaxe]

Name CHAOTIC HALF_ORC SOLDIER BARBARIAN (BERSERKER) THARIZDUN (0.9)
AC 8 hp 7
Wielding Whip
[ 8, 8, 9, 10, 10, 6]
[Whip, Light Crossbow, Javelin, Javelin, Javelin, Javelin]

Name EVIL HUMAN SAILOR ROGUE (ASSASSIN) RAVEN_QUEEN (1.05)
AC 12 hp 2
Wielding Shortsword
[ 9, 13, 5, 11, 11, 5]
[Leather Armor, Shortsword, Shortbow, Dagger, Dagger]

Name CHAOTIC HALF_ORC FOLK_HERO BARBARIAN (TOTEM_WARRIOR) GRUUMSH (1.05)
AC 10 hp 11
Wielding Greataxe
[13, 7, 15, 4, 12, 9]
[Greataxe, Handaxe, Handaxe, Javelin, Javelin, Javelin, Javelin]

Name EVIL HUMAN ACOLYTE FIGHTER (CHAMPION) BAHAMUT (1.05)
AC 16 hp 11
Wielding Light Crossbow
[13, 9, 12, 11, 9, 11]
[Chain Mail, Dart, Light Crossbow]

Name EVIL HUMAN GUILD_ARTISAN BARD (VALOR_COLLEGE) SEHANINE (1.05)
AC 10 hp 1
Wielding Greatclub
[12, 8, 8, 14, 12, 9]
[Leather Armor, Greatclub, Dagger]

Armor Class from shields isn’t reporting correctly, otherwise these should be mostly fine/accurate. Also, these characters roll for hit points at first level because doing otherwise is for wimps. That does mean there are characters with 1 hit point.