aboutsummaryrefslogtreecommitdiff
path: root/internal/game/core_equip.go
diff options
context:
space:
mode:
authorworkhorse <workhorse@localhost.localdomain>2026-06-19 20:24:52 -0400
committerworkhorse <workhorse@localhost.localdomain>2026-06-19 20:24:52 -0400
commit8ee8982b8759bcae116647cc993867f4c8b0a6ce (patch)
treeee01f7b1d745cbc94d9981108a1209527487b3e5 /internal/game/core_equip.go
parent2bec24859af8f03c80a0a58e3240519942450167 (diff)
downloadthehouseoficarus-8ee8982b8759bcae116647cc993867f4c8b0a6ce.tar.gz
reorganized items, objects, and rooms in directories. oranized module names. added startup checks.
Diffstat (limited to 'internal/game/core_equip.go')
-rw-r--r--internal/game/core_equip.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/internal/game/core_equip.go b/internal/game/core_equip.go
new file mode 100644
index 0000000..02b8348
--- /dev/null
+++ b/internal/game/core_equip.go
@@ -0,0 +1,41 @@
+package game
+
+import (
+ "thehouseoficarus/internal/object"
+ "thehouseoficarus/internal/player"
+)
+
+func (g *Game) playerEquipBonuses(p *player.Player) object.ItemStats {
+ var totals object.ItemStats
+ for _, itemID := range p.Equipment {
+ def, err := g.ItemStore.Load(itemID)
+ if err != nil {
+ continue
+ }
+ totals.StabAttack += def.Stats.StabAttack
+ totals.SlashAttack += def.Stats.SlashAttack
+ totals.CrushAttack += def.Stats.CrushAttack
+ totals.ScienceAttack += def.Stats.ScienceAttack
+ totals.RangedAttack += def.Stats.RangedAttack
+ totals.StabDefense += def.Stats.StabDefense
+ totals.SlashDefense += def.Stats.SlashDefense
+ totals.CrushDefense += def.Stats.CrushDefense
+ totals.ScienceDefense += def.Stats.ScienceDefense
+ totals.RangedDefense += def.Stats.RangedDefense
+ totals.StrengthBonus += def.Stats.StrengthBonus
+ totals.RangedStrength += def.Stats.RangedStrength
+ totals.ScienceDamage += def.Stats.ScienceDamage
+ totals.TechnologyBonus += def.Stats.TechnologyBonus
+ }
+ return totals
+}
+
+func (g *Game) playerWeaponSpeed(p *player.Player) float64 {
+ if itemID, ok := p.Equipment[object.SlotMainHand]; ok {
+ def, err := g.ItemStore.Load(itemID)
+ if err == nil && def.Speed > 0 {
+ return def.Speed
+ }
+ }
+ return 5.0
+}