xangelo [Thu, 5 Dec 2024 21:11:53 +0000 (16:11 -0500)]
ci(github-actions): make github trigger DO deploy
xangelo [Thu, 5 Dec 2024 18:51:04 +0000 (13:51 -0500)]
chore(logs): swap remaining console.log for logger
xangelo [Thu, 5 Dec 2024 18:49:40 +0000 (13:49 -0500)]
docs(content): new monster drops
- broken dagger
- rat tail
- slime residue
- small tusk
- splintered wood
xangelo [Thu, 5 Dec 2024 15:02:08 +0000 (10:02 -0500)]
fix(fight): equipment exp gains were causing errors if nothing was equipped
xangelo [Thu, 5 Dec 2024 06:27:29 +0000 (01:27 -0500)]
fix(infra): express trust proxy for rate limiting
xangelo [Thu, 5 Dec 2024 05:30:55 +0000 (00:30 -0500)]
fix(locations): only show locations that are accessible to the player (by level)
xangelo [Thu, 5 Dec 2024 05:12:08 +0000 (00:12 -0500)]
chore(infra): trying supabase w/ do app
xangelo [Wed, 4 Dec 2024 22:04:17 +0000 (17:04 -0500)]
chore(infra): package whole directory for easy deploy
xangelo [Wed, 4 Dec 2024 21:42:22 +0000 (16:42 -0500)]
chore(infra): optimize build for only dist
xangelo [Wed, 4 Dec 2024 21:38:32 +0000 (16:38 -0500)]
chore(infra): remove DO, so much for that plan
xangelo [Wed, 4 Dec 2024 20:27:42 +0000 (15:27 -0500)]
chore(DO): trying loading cert form file
xangelo [Wed, 4 Dec 2024 20:00:13 +0000 (15:00 -0500)]
chore(build): fix db ssl for DO
xangelo [Wed, 4 Dec 2024 18:26:13 +0000 (13:26 -0500)]
chore(db): fix db ssl for DO
xangelo [Wed, 4 Dec 2024 18:16:57 +0000 (13:16 -0500)]
chore(db): update migrations to use DATABASE_URL
xangelo [Wed, 4 Dec 2024 18:09:54 +0000 (13:09 -0500)]
chore(env): debug db connection string
xangelo [Wed, 4 Dec 2024 17:46:11 +0000 (12:46 -0500)]
chore(build): add webpack and fix paths for build
We're using typescript paths, so we need to include tsconfig-paths in the
build process. Also added webpack to build to the build and simplified:
```
npm run build -> build FE + BE
npm start -> start server
```
This is more in line with what DO is expecting and a more standard build
process.
xangelo [Wed, 4 Dec 2024 16:47:09 +0000 (11:47 -0500)]
chore(env): standardize environment variables
To prep for the DO Apps move, this standardizes the environment variables
xangelo [Wed, 4 Dec 2024 16:33:53 +0000 (11:33 -0500)]
chore(admin): add endpoints for refreshing content
The content refresh endpoints are now accessible to admins only via
the Admin panel that is integrated with the "Settings" page.
xangelo [Tue, 3 Dec 2024 23:43:03 +0000 (18:43 -0500)]
chore(build): build using github actions
xangelo [Tue, 3 Dec 2024 23:38:07 +0000 (18:38 -0500)]
chore(deps): update node(22 LTS) and typescript(4.9.5)
xangelo [Tue, 3 Dec 2024 20:47:07 +0000 (15:47 -0500)]
chore(deps): update opentelemetry to 0.53.0
xangelo [Tue, 3 Dec 2024 20:37:19 +0000 (15:37 -0500)]
chore(deps): add honeycomb and opentelemetry
xangelo [Tue, 3 Dec 2024 19:46:42 +0000 (14:46 -0500)]
chore(changelog): render the changelog as html
xangelo [Tue, 3 Dec 2024 19:46:04 +0000 (14:46 -0500)]
chore(scripts): make content scripts executable from package.json
xangelo [Tue, 3 Dec 2024 18:17:56 +0000 (13:17 -0500)]
fix(ui): make gradient background more consistent
xangelo [Tue, 3 Dec 2024 15:28:50 +0000 (10:28 -0500)]
feat(chat): add widgetbot for discord-based chat
Instead of using a custom chat system, we're now using Widgetbot so
that the chat integrates with the Discord server.
xangelo [Tue, 3 Dec 2024 05:53:33 +0000 (00:53 -0500)]
feat(crafting): add monster drops
We now have per-monster drop tables that link back to items (Airtable).
It allows us to select an item + monster, and set a drop rate for that item,
as well as a min/max quantity. When the monster is killed, we use the drop table
to determine how many of that item to drop.
That item gets added to the players Items inventory.
In order to support the fact that crafting isn't in play yet, if an item
doesn't have an effect_name, we disable the "use" button.
Eventually these crafting items will be only usable through the crafting
system to improve your existing weapons/armour
xangelo [Mon, 2 Dec 2024 18:44:45 +0000 (13:44 -0500)]
chore(logging): update to use winston for more structured logging
xangelo [Thu, 28 Nov 2024 06:52:03 +0000 (01:52 -0500)]
fix(inventory): users were getting their equipment buffed every fight
we were using expToLevel to check if the equipment had leveled up, but
we should have been using levelFromExp.
xangelo [Mon, 25 Nov 2024 21:53:14 +0000 (16:53 -0500)]
feat(infra): add pm2ecosystem config
xangelo [Mon, 25 Nov 2024 21:31:52 +0000 (16:31 -0500)]
chore(release): 0.4.3
xangelo [Mon, 25 Nov 2024 21:31:09 +0000 (16:31 -0500)]
feat(store): moved confirmation dialog to button
xangelo [Mon, 25 Nov 2024 18:53:01 +0000 (13:53 -0500)]
fix(store, inventory): improve display of requirements
xangelo [Mon, 25 Nov 2024 18:44:48 +0000 (13:44 -0500)]
chore: adjust no-account text on html
xangelo [Fri, 15 Nov 2024 20:22:33 +0000 (15:22 -0500)]
fix(inventory): clean up requirement display
Between requirements and boosts the items were getting a bit messy. This
makes sure that the content is the boost, but the requirements are easily
accessible if they matter.
xangelo [Fri, 15 Nov 2024 17:08:07 +0000 (12:08 -0500)]
chore(deps): introduce `@shared` path alias
xangelo [Fri, 15 Nov 2024 07:44:40 +0000 (02:44 -0500)]
chore(inventory,stores): cleaned up the styling
The styling for both inventory and stores started the same and then
slowly diverged. This commit cleans up the duplication and makes
the styling more consistent across both pages.
It also creates a generic nav-based listing that can be used for
whatever else needs a list.
xangelo [Tue, 12 Nov 2024 18:21:05 +0000 (13:21 -0500)]
feat: equipment exp
All equipment now gains experience when used in combat. The levels are
calculated using a logarithmic progression so it isn't stored anywhere.
This also requires some UI updates to a players inventory to include
the new experience bar.
xangelo [Wed, 23 Oct 2024 16:25:11 +0000 (12:25 -0400)]
fix: enhance durability visibility
Durability used to be present as a progress bar on the item, but made
it hard to view durability on equipped items.
Durability is now present in the title attribute, and there's a visual
gradient applied to the items to denote how "damaged" it is
xangelo [Fri, 18 Oct 2024 19:06:26 +0000 (15:06 -0400)]
chore(release): 0.4.2
xangelo [Fri, 18 Oct 2024 19:00:13 +0000 (15:00 -0400)]
fix: bg gradient should span entire window height
xangelo [Thu, 17 Oct 2024 20:21:32 +0000 (16:21 -0400)]
feat: display base damage and level-based boost
Weapon and spell damage has two components:
- A static value, that the item comes with
- A "dynamic" value based on your skills
The total damage that it deals is a combination of those two values.
This change displays the static value AND the amount you gain based on
your skills.
xangelo [Mon, 30 Sep 2024 14:32:37 +0000 (10:32 -0400)]
chore: add the current task list
xangelo [Tue, 27 Aug 2024 12:52:57 +0000 (08:52 -0400)]
feat: support adding locations without them being visible to players
This gives us the ability to add items to airtable without them being
visible to the user
xangelo [Tue, 27 Aug 2024 12:51:41 +0000 (08:51 -0400)]
fix: adjust border color for main viewport to be less stark
xangelo [Wed, 13 Mar 2024 17:32:53 +0000 (13:32 -0400)]
fix: give players max vigor on character creation
xangelo [Wed, 13 Mar 2024 16:43:01 +0000 (12:43 -0400)]
fix: make gradient span site height
xangelo [Tue, 12 Mar 2024 03:21:50 +0000 (23:21 -0400)]
feat: add class stats to professions
When you select a profession, there are a certain number of stats that
are considered "class stats". They may automatically increases on level
up.
For example:
Warrior class stats: Strength, Constitution.
On even level up, you gain +2 strength, +1 constitution
On odd level up, you gain +1 strength, +2 constitution
Class stats only cost a single stat point to increase, and non-class
stats cost 2 stat points.
You only ever gain 1 stat point on level up.
Wanderers are a special profession that do not gain any stats on level
up.. but all stats are considered "class stats"
xangelo [Mon, 18 Dec 2023 06:11:13 +0000 (01:11 -0500)]
fix: migrate existing routers to new router folder
There were some existing routers for dungeons, healers, recruiters, and
repair systems that were in their own folder. They've since been folded
into the main router configuration.
xangelo [Mon, 18 Dec 2023 06:01:43 +0000 (01:01 -0500)]
fix: migrate store routes to separate file
xangelo [Mon, 18 Dec 2023 05:50:21 +0000 (00:50 -0500)]
fix: migrate missing inventory routes to separate file
xangelo [Mon, 18 Dec 2023 05:11:14 +0000 (00:11 -0500)]
fix: migrate travel to separate route file
xangelo [Mon, 18 Dec 2023 05:10:50 +0000 (00:10 -0500)]
fix: refs to minLevel and maxLevel columns not being quoted in queries
xangelo [Mon, 18 Dec 2023 04:38:19 +0000 (23:38 -0500)]
fix: migrate profile to separate route file
xangelo [Sat, 21 Oct 2023 03:26:42 +0000 (23:26 -0400)]
fix: make route imports dynamic
xangelo [Sat, 21 Oct 2023 03:25:53 +0000 (23:25 -0400)]
fix: migrate inventory to separate route file
xangelo [Sat, 21 Oct 2023 03:11:23 +0000 (23:11 -0400)]
fix: migrate chat to separate route file
xangelo [Sat, 21 Oct 2023 03:09:27 +0000 (23:09 -0400)]
feat: extend Express.Request to include base RL object
The `rl` property on `Express.Request` provides a standard way to access
the cache and socket server objects across requests. This allows us to
split up the routes into multiple files for easier development.
xangelo [Mon, 16 Oct 2023 17:32:01 +0000 (13:32 -0400)]
fix: remove event date bucketing
xangelo [Fri, 29 Sep 2023 18:32:18 +0000 (14:32 -0400)]
fix: count current dungeon run
Dungeon completion was triggered after the count of number of runs
instead of before allowing users to get 1 extra run in.
xangelo [Fri, 29 Sep 2023 16:17:06 +0000 (12:17 -0400)]
chore(release): 0.4.1
xangelo [Fri, 29 Sep 2023 16:17:02 +0000 (12:17 -0400)]
fix: add missing migration
xangelo [Fri, 29 Sep 2023 16:14:07 +0000 (12:14 -0400)]
fix: remove clickhouse
xangelo [Fri, 29 Sep 2023 16:12:39 +0000 (12:12 -0400)]
chore(release): 0.4.0
xangelo [Fri, 29 Sep 2023 16:12:24 +0000 (12:12 -0400)]
fix: remove log of 0 events being flushed
xangelo [Fri, 29 Sep 2023 14:31:19 +0000 (10:31 -0400)]
feat: min level for all locations
All locations default to a min level of 1, so they're always visible.
but some things (stores, dungeons) can have a higher level where they
will not be visible until the player meets the requirement.
xangelo [Thu, 28 Sep 2023 19:04:20 +0000 (15:04 -0400)]
feat: psql based event system
you can now track arbitrary events that get flushed to postgres so that
you can track things. To start we're tracking dungeon completions so
that we can give users 20% rewards after 5 daily completions.
xangelo [Thu, 14 Sep 2023 16:11:49 +0000 (12:11 -0400)]
fix: auto-enter dungeon if you are in it
xangelo [Tue, 12 Sep 2023 19:24:37 +0000 (15:24 -0400)]
feat!: dungeon traversal
Dungeons are built in twine and exported as Twison. It's then placed
into the "/data/dungeons" folder and imported. This correctly parses all
the configuration data and generates a dungeon that you get to walk
around.
A single room is designated as the "end" room and it will result in the
dungeon rewards being presented to the user and all tracking removed.
Eventually this tracking will migrate over to influx or clickhouse to
allow for longer term queries.
xangelo [Thu, 7 Sep 2023 17:56:29 +0000 (13:56 -0400)]
feat: cleanup chat commands
It's now easy to add chat commands independently without touching the
main server code. You get
- raw string without the `/server` prefix
- Socket.io Server
- Socket.io Socket
- Calling Player
Adn you are free to do whatever you need. All existing commands have
been moved to this format.
xangelo [Wed, 6 Sep 2023 19:35:15 +0000 (15:35 -0400)]
chore(release): 0.3.6
xangelo [Wed, 6 Sep 2023 19:34:46 +0000 (15:34 -0400)]
feat: chat command to set player level
`/server set-level xxx` will reset the currently logged in players level
and give them the right number of stat points for that level
xangelo [Wed, 6 Sep 2023 18:54:41 +0000 (14:54 -0400)]
feat: rbac support with admin permission
There is now a permissions array on the player object loaded from
`loadPlayer` that includes a `permissions` array that lets us check if
the user has certain permissions.
Support permissions: admin,moderator
The first thing we did was remove the hard-coded key during chat resets
xangelo [Wed, 6 Sep 2023 17:32:54 +0000 (13:32 -0400)]
chore(release): 0.3.5
xangelo [Wed, 6 Sep 2023 17:32:45 +0000 (13:32 -0400)]
fix: reduce specials to 10%
xangelo [Wed, 6 Sep 2023 17:31:14 +0000 (13:31 -0400)]
chore(release): 0.3.4
xangelo [Wed, 6 Sep 2023 17:31:04 +0000 (13:31 -0400)]
fix: add missing migration
xangelo [Wed, 6 Sep 2023 17:28:29 +0000 (13:28 -0400)]
chore(release): 0.3.3
xangelo [Wed, 6 Sep 2023 17:25:27 +0000 (13:25 -0400)]
feat: display equippable hand option only
When you are equipping items it will only show you the equip button for
the hand that you have available
xangelo [Wed, 6 Sep 2023 17:16:29 +0000 (13:16 -0400)]
feat: monster variants
Introduced Elder, Skittish, and Brute monster variants. These adjust the
stats/rewards of the monsters further.
xangelo [Tue, 5 Sep 2023 19:37:32 +0000 (15:37 -0400)]
feat: remove body-part targeting
The body part targeting stopped working once we moved over to the new
vigor system ,but the UI was left in just in case.
xangelo [Tue, 5 Sep 2023 18:12:51 +0000 (14:12 -0400)]
fix: min/max level definitions for monsters
There was some confusion over types and whether or not we needed to
included faction data with monsters (We don't). This should sort out
that mess and give us a clearer definition for monsters.
xangelo [Tue, 5 Sep 2023 15:39:00 +0000 (11:39 -0400)]
feat: migrate to augmenting express.Request interface
We were originally extending the express.Request interface inline in
`src/server/auth.ts`, We are now just augmenting the actual
express.Request interface via typescript definition.
xangelo [Tue, 5 Sep 2023 15:21:00 +0000 (11:21 -0400)]
feat: add debug/error methods to logger
xangelo [Tue, 5 Sep 2023 14:58:59 +0000 (10:58 -0400)]
chore: move healer handler
xangelo [Tue, 5 Sep 2023 14:55:30 +0000 (10:55 -0400)]
chore: remove unused websocket handlers
xangelo [Fri, 1 Sep 2023 18:47:24 +0000 (14:47 -0400)]
feat: variable level monsters
Monsters now define a min/max level. When you start a fight a monster is
generated within that level range. We use that to define a modifier for
all stats on the monster and adjust accordingly.
The stats defined on the monster sheet in airtable reference the
min-stats on the monster.
xangelo [Fri, 1 Sep 2023 18:46:37 +0000 (14:46 -0400)]
chore: ignore migrations during live reload
xangelo [Fri, 1 Sep 2023 17:43:19 +0000 (13:43 -0400)]
chore(release): 0.3.2
xangelo [Fri, 1 Sep 2023 17:43:03 +0000 (13:43 -0400)]
fix: skills not progressing with use
xangelo [Fri, 1 Sep 2023 17:39:41 +0000 (13:39 -0400)]
feat: `/online` to list usernames of all online players
xangelo [Fri, 1 Sep 2023 17:14:26 +0000 (13:14 -0400)]
fix: small chat style tweaks
xangelo [Fri, 1 Sep 2023 17:14:04 +0000 (13:14 -0400)]
fix: add missing "Back to Town" button
xangelo [Thu, 31 Aug 2023 21:10:16 +0000 (17:10 -0400)]
chore(release): 0.3.1
xangelo [Thu, 31 Aug 2023 21:08:45 +0000 (17:08 -0400)]
fix: spells support durability
Spells have "Uses" which function the same as durability except they
don't take damage after a battle (like weapons).
For now you go to the "repair" store to repair this.. but eventually you
can go to the:
- Mageshop to recharge spells
- Armoury to repair armour
- Forge to repair weapons
xangelo [Thu, 31 Aug 2023 21:08:26 +0000 (17:08 -0400)]
fix: add button that goes back to town from any page
xangelo [Thu, 31 Aug 2023 20:39:00 +0000 (16:39 -0400)]
fix: tooltip text centered due to media-query
xangelo [Wed, 30 Aug 2023 15:44:28 +0000 (11:44 -0400)]
fix: stop z-stacking alert messages
xangelo [Wed, 30 Aug 2023 13:51:33 +0000 (09:51 -0400)]
chore(release): 0.3.0
xangelo [Wed, 30 Aug 2023 13:51:26 +0000 (09:51 -0400)]
feat: move alerts to bottom of main section