aboutsummaryrefslogtreecommitdiff
path: root/internal/game/core_utils.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-01 22:30:31 -0400
committerhistoria <[not public]>2026-07-01 22:30:31 -0400
commitc14c2e403c75a913e1a6d962fb6fe64f013adae5 (patch)
tree75070293fe2535b594ac72e501cbf08a3f1146e0 /internal/game/core_utils.go
parent8eec7b75ff9c8c368b252373db45fb891732d2ca (diff)
downloadthehouseoficarus-c14c2e403c75a913e1a6d962fb6fe64f013adae5.tar.gz
fix: combat formulas and mob attack types (mobs switch attack styles if safespotting)
Diffstat (limited to 'internal/game/core_utils.go')
-rw-r--r--internal/game/core_utils.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/game/core_utils.go b/internal/game/core_utils.go
index 4c087e8..2855bcf 100644
--- a/internal/game/core_utils.go
+++ b/internal/game/core_utils.go
@@ -44,6 +44,27 @@ func mobDisplayName(m *world.MobInstance, definite bool) string {
return "a " + m.Name
}
+// mobDisplayNameCap is like mobDisplayName but capitalizes the article for use
+// at the start of a sentence (e.g. "The goblin hits you.").
+func mobDisplayNameCap(m *world.MobInstance, definite bool) string {
+ if m.Unique {
+ return m.Name
+ }
+ if definite {
+ return "The " + m.Name
+ }
+ return "A " + m.Name
+}
+
+// itemDisplayName returns an item's display name for the given id, falling back
+// to the id itself if the item cannot be loaded.
+func (g *Game) itemDisplayName(itemID string) string {
+ if def, err := g.ItemStore.Load(itemID); err == nil && def != nil {
+ return def.Name
+ }
+ return itemID
+}
+
func mobCombatLevel(m *world.MobInstance) int {
base := float64(m.Defense+m.MaxHP) / 4.0
melee := float64(m.Attack+m.Strength) / 4.0