risinglegends.git
17 months agomigrate to int ids for location primary key + manual event_name
xangelo [Sun, 18 Jun 2023 10:12:36 +0000 (06:12 -0400)]
migrate to int ids for location primary key + manual event_name

Rather than generating the event name from the id/type of the location
we've instead made the id's autoincrementing integers with a custom
event_name field that defines the event they trigger.

It makes it a lot easier to build generic functionality and we can
always swap the id's to uuids if we really care that much.

17 months agolarge equipment modification to support integer ids for shop items
xangelo [Fri, 16 Jun 2023 18:00:55 +0000 (14:00 -0400)]
large equipment modification to support integer ids for shop items

For now we only support being able to buy items from the stores..
eventually you'll be able to craft stuff and probably get custom item
drops.

We also support inventory being created via airtable

17 months agofactions!
xangelo [Fri, 16 Jun 2023 16:50:07 +0000 (12:50 -0400)]
factions!

This adds a simple "faction" system which is that a monster may belong
to a single faction. For now nothing is done with this but later on this
can be expanded to include a reputation system or titles and the like.

17 months agoset order of city locations
xangelo [Fri, 16 Jun 2023 14:55:43 +0000 (10:55 -0400)]
set order of city locations

You can set the display order for each type of location in a city

17 months agomake it a bit easiser to read text
xangelo [Fri, 16 Jun 2023 14:11:38 +0000 (10:11 -0400)]
make it a bit easiser to read text

17 months agolots of small fixes!
xangelo [Fri, 16 Jun 2023 13:39:30 +0000 (09:39 -0400)]
lots of small fixes!

This includes a bunch of fixes like:
- generic exploration instead of an event for every place
- background images for the Explore screen
- a way to re-import monsters via chat command
- removes a table for flexbox on the explore screen

17 months agowip: we can now travel between towns
xangelo [Wed, 14 Jun 2023 19:22:51 +0000 (15:22 -0400)]
wip: we can now travel between towns

The travel system is very rudimentary right now.

Each city has a path that it leads to, and a path that leads to it.

The city/travel paths are done via the new socket event code layout and
is integrated with AirTable. The new seed for cities will create missing
cities and add missing links. It will also modify city names if the ID
already exists.

Weve also done a large change to migrate content over to integer ids so
that its' easier to create content from AirTable.

Monsters/Locations/Cities are all done via integer Ids.. when a fight is
created, we utilize a uuid, but maintain a reference back to the core
monster via `ref_id`.

17 months agofix: client socket sometimes sends events before server finished auth
xangelo [Wed, 14 Jun 2023 09:10:35 +0000 (05:10 -0400)]
fix: client socket sometimes sends events before server finished auth

The auth process is long and the connection event will fire before it's
complete. This adds a secondary "ready" event for when the socket is
actual ready to start receiving connections.

17 months agoinfra: move rest of commands to new event system
xangelo [Wed, 14 Jun 2023 09:06:51 +0000 (05:06 -0400)]
infra: move rest of commands to new event system

17 months agoinfra: migrate equip/unequip to new event system
xangelo [Wed, 14 Jun 2023 08:53:46 +0000 (04:53 -0400)]
infra: migrate equip/unequip to new event system

17 months agofix: display login message to all players
xangelo [Wed, 14 Jun 2023 08:45:20 +0000 (04:45 -0400)]
fix: display login message to all players

17 months agofix: new players don't get their profession set
xangelo [Wed, 14 Jun 2023 08:32:13 +0000 (04:32 -0400)]
fix: new players don't get their profession set

17 months agoprod migration/seed commands
xangelo [Wed, 14 Jun 2023 08:24:10 +0000 (04:24 -0400)]
prod migration/seed commands

17 months agofix: empty skills usage causes fights to freeze
xangelo [Wed, 14 Jun 2023 08:08:47 +0000 (04:08 -0400)]
fix: empty skills usage causes fights to freeze

17 months agofirst level professions!
xangelo [Tue, 13 Jun 2023 19:17:16 +0000 (15:17 -0400)]
first level professions!

Wanderers can become Warriors, Mages, or Rogues at level 25!

This also introduces a new model for manging events across
server/clients that keeps related entities together! It also allows us
to add unit tests for areas we're concerned about (like fighting).

17 months agoremove discord integration
xangelo [Mon, 12 Jun 2023 19:04:38 +0000 (15:04 -0400)]
remove discord integration

17 months agodiscord support via widgetbot
xangelo [Fri, 9 Jun 2023 17:23:27 +0000 (13:23 -0400)]
discord support via widgetbot

17 months agoremove unnecessary logs/vars
xangelo [Fri, 9 Jun 2023 15:26:34 +0000 (11:26 -0400)]
remove unnecessary logs/vars

17 months agofix height of main sections
xangelo [Fri, 9 Jun 2023 15:26:25 +0000 (11:26 -0400)]
fix height of main sections

17 months agotest discord chat integration
xangelo [Fri, 9 Jun 2023 14:13:36 +0000 (10:13 -0400)]
test discord chat integration

17 months agosupport restoration_magic spells
xangelo [Thu, 8 Jun 2023 16:48:17 +0000 (12:48 -0400)]
support restoration_magic spells

restoration magic heals you. Healing is done after monster damage is
applied. You can't heal over max hp. You don't do any damage if you only
have healing spells equipped during your casting.

17 months agoignore compiled files
xangelo [Wed, 7 Jun 2023 18:25:06 +0000 (14:25 -0400)]
ignore compiled files

17 months agoskills!
xangelo [Wed, 7 Jun 2023 18:10:06 +0000 (14:10 -0400)]
skills!

There are 6 base skills:

Blunt Weapon Mastery
Bladed Weapon Mastery
One Handed Weapon Mastery
Two Handed Weapon Mastery
Destruction Magic Mastery
Restoration Magic Mastery

It also overhauls equipment so that it defines which skills contribute
to its damage

17 months agoswap to utiilzing jsondocs for requirements/boosts
xangelo [Wed, 7 Jun 2023 13:56:35 +0000 (09:56 -0400)]
swap to utiilzing jsondocs for requirements/boosts

This new format for inventory makes it a bit easier to extend
requirements/boosts and will also be the format that "affectedSkills"
takes.

17 months agoWIP: skills
xangelo [Tue, 6 Jun 2023 20:36:09 +0000 (16:36 -0400)]
WIP: skills

17 months agofix: switching between tabs doesnt always work
xangelo [Tue, 6 Jun 2023 19:22:57 +0000 (15:22 -0400)]
fix: switching between tabs doesnt always work

17 months agoupdate project link to point to garden site
xangelo [Tue, 6 Jun 2023 15:15:03 +0000 (11:15 -0400)]
update project link to point to garden site

17 months agodont let players heal while at full health
xangelo [Tue, 6 Jun 2023 15:13:57 +0000 (11:13 -0400)]
dont let players heal while at full health

17 months agootel tracing via honeycomb
xangelo [Tue, 6 Jun 2023 14:19:32 +0000 (10:19 -0400)]
otel tracing via honeycomb

17 months agomove flee to correct spot
xangelo [Tue, 6 Jun 2023 13:58:45 +0000 (09:58 -0400)]
move flee to correct spot

The flee implementation was happening too early in the fight process so
it wasn't able to take into account player/equipment stats or monster
stats.

17 months agofix refs to http placeholders
xangelo [Mon, 5 Jun 2023 19:32:47 +0000 (15:32 -0400)]
fix refs to http placeholders

17 months agofix: missing defined type
xangelo [Mon, 5 Jun 2023 18:54:07 +0000 (14:54 -0400)]
fix: missing defined type

17 months agofix: display error if trying to log in with invalid creds
xangelo [Mon, 5 Jun 2023 18:35:06 +0000 (14:35 -0400)]
fix: display error if trying to log in with invalid creds

If you hit login with invalid creds, it now displays an error

17 months agoaccounts
xangelo [Mon, 5 Jun 2023 17:56:51 +0000 (13:56 -0400)]
accounts

First pass at giving users persistent accounts

17 months agofix: display when your armour gets destroyed and actual HP damage
xangelo [Mon, 5 Jun 2023 14:49:24 +0000 (10:49 -0400)]
fix: display when your armour gets destroyed and actual HP damage

17 months agoadd stats to building inventory
xangelo [Mon, 5 Jun 2023 14:34:25 +0000 (10:34 -0400)]
add stats to building inventory

17 months agoadd command to run seed without transpiling
xangelo [Mon, 5 Jun 2023 14:18:39 +0000 (10:18 -0400)]
add command to run seed without transpiling

`npm run seed` will run all seed data
`npm run seed -- --specific=monsters.ts` will run just the monster seed

17 months agostart of account system
xangelo [Sat, 3 Jun 2023 09:24:56 +0000 (05:24 -0400)]
start of account system

This adds the auth table and two new columns on the players table to
track account_type (session/auth) and the creation_date.

17 months agofix inventory view on mobile
xangelo [Sat, 3 Jun 2023 08:52:39 +0000 (04:52 -0400)]
fix inventory view on mobile

17 months agodont display AP for weapons/spells
xangelo [Fri, 2 Jun 2023 18:58:56 +0000 (14:58 -0400)]
dont display AP for weapons/spells

17 months agofix styling on equip/unequip buttons
xangelo [Fri, 2 Jun 2023 18:55:37 +0000 (14:55 -0400)]
fix styling on equip/unequip buttons

17 months agoyou can now flee a battle
xangelo [Fri, 2 Jun 2023 18:44:04 +0000 (14:44 -0400)]
you can now flee a battle

17 months agowhen armour is destroyed, it gets removed from your inventory
xangelo [Fri, 2 Jun 2023 18:39:54 +0000 (14:39 -0400)]
when armour is destroyed, it gets removed from your inventory

17 months agoqol: force max size for equipped item grid
xangelo [Fri, 2 Jun 2023 17:28:49 +0000 (13:28 -0400)]
qol: force max size for equipped item grid

This is still a WIP.. I think once we add actual icons we can skip the
naming/background-image thing

17 months agomerge stats + inventory tab into Profile
xangelo [Fri, 2 Jun 2023 16:45:49 +0000 (12:45 -0400)]
merge stats + inventory tab into Profile

There's now a single page you can go to that will display all of your
equipment/stats. Eventually it will also display all your skills. The
idea is that this is your "Character Sheet" and you only really need to
mess with this.

You can filter between your armour/weapons/spells

17 months agoqol: display date/time of messages in chat
xangelo [Fri, 2 Jun 2023 10:12:22 +0000 (06:12 -0400)]
qol: display date/time of messages in chat

17 months agotest functionality for server broadcast
xangelo [Fri, 2 Jun 2023 10:03:13 +0000 (06:03 -0400)]
test functionality for server broadcast

17 months agosupport weapons/spells and dual-weilding
xangelo [Fri, 2 Jun 2023 09:31:25 +0000 (05:31 -0400)]
support weapons/spells and dual-weilding

This allows you to equipment items to either hand and adds support for
two-handed weapons. This also includes the initial pass at spells which
can be equipped to either hand.

17 months agoqol: display the "fight again" option after you win
xangelo [Fri, 2 Jun 2023 08:20:13 +0000 (04:20 -0400)]
qol: display the "fight again" option after you win

If you defeat the monster, it displays the "fight again" option which
lets you pick a new monster to fight, defaulting to the one you just
fought.

17 months agochat qol fixes
xangelo [Fri, 2 Jun 2023 08:01:26 +0000 (04:01 -0400)]
chat qol fixes

- 30 message chat history as long as the server doesn't reboot
- can't send empty messages
- no more autocomplete in the chat textbox

17 months agowip: support spells
xangelo [Thu, 1 Jun 2023 20:35:36 +0000 (16:35 -0400)]
wip: support spells

Right now its using the existing item system and just added a new type.

Will definitely need to make it so that you can't equip spells AND
swords at the same time.

17 months agoqol: cache last selected monster in memory
xangelo [Thu, 1 Jun 2023 20:06:44 +0000 (16:06 -0400)]
qol: cache last selected monster in memory

Once you fight a monster, the next time you visit a screen that has that
monster on it, it will auto select it.

17 months agofix: cache main map screen
xangelo [Thu, 1 Jun 2023 19:59:33 +0000 (15:59 -0400)]
fix: cache main map screen

Since there's only a single map, and really they won't be changing on
the fly anyway.. once its loaded it's cached until you reload the page.
The "Cache" is just an in-memory `Map` object that contains the final
HTML to build the map page.

17 months agobug: clear map before attempting reload
xangelo [Thu, 1 Jun 2023 19:55:31 +0000 (15:55 -0400)]
bug: clear map before attempting reload

17 months agocities are now in the database
xangelo [Thu, 1 Jun 2023 19:42:55 +0000 (15:42 -0400)]
cities are now in the database

That means that all "locations" are defined and tied to a city in the
database.

All players are placed in `windcross` which is the default city

Windcross has two "EXPLORE" locations: alley_1, forest_1

All monsters are divided into those two areas

Eventually we'll have to allow players to move across cities

17 months agohealing costs 10g if you have it, otherwise free
xangelo [Thu, 1 Jun 2023 18:48:04 +0000 (14:48 -0400)]
healing costs 10g if you have it, otherwise free

17 months agolist online players
xangelo [Thu, 1 Jun 2023 17:57:55 +0000 (13:57 -0400)]
list online players

17 months agoimport item csv as seed
xangelo [Thu, 1 Jun 2023 17:43:40 +0000 (13:43 -0400)]
import item csv as seed

17 months agofinalized build
xangelo [Thu, 1 Jun 2023 17:15:09 +0000 (13:15 -0400)]
finalized build

17 months agoswap to using env file
xangelo [Thu, 1 Jun 2023 16:35:53 +0000 (12:35 -0400)]
swap to using env file

17 months agofix green for progress bars
xangelo [Thu, 1 Jun 2023 16:25:41 +0000 (12:25 -0400)]
fix green for progress bars

17 months agocsv parsing for monsters
xangelo [Thu, 1 Jun 2023 16:09:29 +0000 (12:09 -0400)]
csv parsing for monsters

17 months agoprep for dev release
xangelo [Thu, 1 Jun 2023 15:08:15 +0000 (11:08 -0400)]
prep for dev release

17 months agodisplay individual progress bars for AP
xangelo [Thu, 1 Jun 2023 14:41:00 +0000 (10:41 -0400)]
display individual progress bars for AP

Includes some additional progress-bar fixes across the boards because
they were getting hard to read.

17 months agocompleted functionality for Armour Points (AP)
xangelo [Wed, 31 May 2023 20:26:33 +0000 (16:26 -0400)]
completed functionality for Armour Points (AP)

Each piece of armour has its own pool of "Armour Points". When you take
damage, the monster targets specific pieces (HEAD | ARMS | CHEST | LEGS)
that correspond with those pieces of armour. The armour takes damage,
depleting its AP.

When that particular piece is out of AP then your HP gets damaged
directly.

As well, monsters have their own AP setting that corresponds ot the same
pieces. When you attack, you get to target the specific item you want.

17 months agosupport for weapons
xangelo [Wed, 31 May 2023 14:45:40 +0000 (10:45 -0400)]
support for weapons

17 months agosupport for equipping items
xangelo [Tue, 30 May 2023 19:16:39 +0000 (15:16 -0400)]
support for equipping items

17 months agoinit
xangelo [Tue, 30 May 2023 17:52:04 +0000 (13:52 -0400)]
init