Skip to content
This repository has been archived by the owner on Mar 2, 2024. It is now read-only.

Developer Handbook

Justin edited this page Sep 4, 2022 · 20 revisions

Developer Guide

This is just a brief guide over several parts of the game to give you an idea of how everything works.

Building

Dev

  1. Run npm run build:dev
  2. This will automatically build and copy the script to the firebot scripts folder.

Release

  1. Run npm run build
  2. Copy .js from /dist

Monsters

Monsters are the creatures that the adventurers will meet along the way and be forced to fight. An example of a creature is below along with what each thing does.
Aidedd.org

Example Monster

{
	id: 1, (a unique id)
	difficulty: ['easy'], (the difficulty of this creature)
	name: 'Wolf', (the name of this creature)
	equipment: {
		armor: false, (should it have armor?)
		title: false, (should it have a title?)
		characterClass: false, (should it have a class?)
		potion: false, (should it have a potion?)
	},
	bonuses: {
		str: 0, (This is a percent bonus to str)
		dex: 20, (This is a percent bonus to dex)
		int: 0, (This is a percent bonus to int)
		hp: 0, (This is a percent bonus to hp)
	},
	amount: {
		couple: 'pack of Wolves', (If the monster power level is a little higher than the user, we'll use this name.)
		many: 'den of Wolves', (If the monster power level is a lot higher than the user, we'll use this name.)
	},
},

Jobs

Jobs are short adventurers that characters go on to get equipment, money, and fights. The basic structure of a job and what each piece does can be found below. Many of the jobs come from:
Donjon
D&D Games

Template Placeholders

These words are replaced in the template with their appropriate text. This allows us to use the users flavor text in the job text.

  • #name - Will use the character name if set, else it'll use the username.
  • #worldName - Will use the name of the world from the game settings.
  • #worldType - Will use the type of the world from game settings.
  • #citizenName - Will use the citizen name from the game settings.
  • #currencyName - The name of the selected currency.

Example Job

{
   id: 1, (A unique ID)
   challenge: 'easy', (The challenge rating of this mission.)
   template: `A friendly monk wanders by and asks for #name's advice. He's thankful and gives #name a weapon from his cart.`, (The text that is output to chat)
   encounter: null, (Can be null, a monster id, or a monster difficulty. This is what the player will fight.)
   loot: {
      item: {
          itemType: 'weapon', (The type of item they're going to get as a reward.)
          rarity: ['basic', 'rare'], (The rarity of the item.)
       },
       money: 20, (The amount of money they'll get.)
    },
   world_tendency: {
      happiness: 1, (How many points are added to the happiness pool for this cycle.)
      resources: 0, (How many points are added to the resources pool for this cycle.)
      research: 0, (How many points are added to the research pool for this cycle.)
  },
}

General Job Guidelines

These are just general guidelines for jobs. You don't want an easy job giving away legendary loot, for example.

  • Easy - Gives around 20 currency, a basic or rare item. Encounters are usually easy difficulty. World tendency is usually one point.
  • Medium - Gives around 30 currency, a basic, rare, or epic item. Encounters are usually medium difficulty. World tendency is usually 2 points.
  • Hard - Gives around 40 currency, a rare or epic item. Encounters are usually hard difficulty. World tendency is usually 3 points.
  • Legendary - Gives around 50 currency, an epic or legendary item. Encounters are legendary difficulty. World tendency is usually 4 points.

Classes

Classes have a direct impact on player stats, raising them by a percentage. Below you'll see how much of a boost each level of class can give. Basic classes will give up to a 20% bonus, while legendary will increase stats by up to 40%. When adding new classes, try to follow this for balance purposes. Classes are mostly pulled from D&D Classes and sub-classes

  • Basic = 25 bonus points
  • Rare = 30 bonus points
  • Epic = 35 bonus points
  • Legendary = 40 bonus points

Titles

Titles work similar to classes and provide a state boost, raising them by a percentage. These raise stats to a lesser degree than the chosen class. Titles are mostly pulled from GM Binder

  • Basic = 5 bonus points
  • Rare = 10 bonus points
  • Epic = 15 bonus points
  • Legendary = 20 bonus points