⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ā€˜Decompress current Excalidraw file’. For more info check in plugin settings under ā€˜Saving’

Excalidraw Data

Text Elements

GameEntity

Damageable

Agent

AgentGOAP

BasicMob

Building

Hero

The basic class that everything else will be
inheriting from. It has a position, an EntityData and
a list of available actions

This class contain all the information referent to
the combat. You will be finding here all the RPG
status that will be needed for a normal character

Those are all the buildings inside
the game. They will not be running an IA for now.
They just provide some actions that the
AgentGOAPs can choose from to interact with.
They also have a flow field that will be
used to guide the agents towards the door.

Those are the mobs present inside the game.
They are will be running a Finate State Machine.
For now they will be just punching bags

Those are the units inside the game that they can move around.
They have a visor that will every tick captures the information around
them. They have a Move(x,y).

This is where the GOAP is being implemented.
The peons are using this class, they can’t fight back.
Only run away, that’s why I created an interface called
IRPGCombat that holds the utility logic.

They have the status for the combat calculated
dynamically. So I had to make some alterations
to accomodate that

IRPGCombat

For now I’m just using on both,
since they are the only two things
I’m considering.

Something that came up was the possibility of a ranged hero take cover inside
a building, a tower for example, and then from inside it use his skills and gain
some defense and range. Problem for future me, if we walk to that path.

As for the common towers, I think they don’t need to have all that we have planned
for the utility AI, since they will be using the same skill/attack.