diff options
| author | historia <[not public]> | 2026-06-25 15:40:48 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-25 15:40:48 -0400 |
| commit | abd612c15799f604e671e83dc7c410ed2b44185f (patch) | |
| tree | 0597ca92350de73aac2a7cf26b2f2d6595dac0cc /internal/game/action_finishing_blow.go | |
| parent | 2725e2927a1595c7b100d942d1f14146252adeb7 (diff) | |
| download | thehouseoficarus-abd612c15799f604e671e83dc7c410ed2b44185f.tar.gz | |
slop refactor
Diffstat (limited to 'internal/game/action_finishing_blow.go')
| -rw-r--r-- | internal/game/action_finishing_blow.go | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/internal/game/action_finishing_blow.go b/internal/game/action_finishing_blow.go deleted file mode 100644 index d404fb3..0000000 --- a/internal/game/action_finishing_blow.go +++ /dev/null @@ -1,78 +0,0 @@ -package game - -import ( - "fmt" - "strings" - - "thehouseoficarus/internal/combat" - "thehouseoficarus/internal/net" - "thehouseoficarus/internal/player" - "thehouseoficarus/internal/world" -) - -func (g *Game) tryFinishingBlow(sess *net.Session, input string) bool { - p := sess.Player - cs := combat.GetCombat(p.Name) - if cs == nil { - return false - } - mob := g.MobStore.GetInstance(cs.MobID) - if mob == nil || mob.FinishingBlow == "" || mob.HP != 1 { - return false - } - lower := strings.ToLower(input) - var itemPart, targetPart string - for _, sep := range []string{" on ", " with "} { - if idx := strings.Index(lower, sep); idx > 0 { - itemPart = strings.TrimSpace(input[:idx]) - targetPart = strings.TrimSpace(input[idx+len(sep):]) - break - } - } - if targetPart == "" { - itemPart = strings.TrimSpace(input) - if mob.MatchQuality(itemPart) != world.MatchNone { - targetPart = itemPart - itemPart = strings.TrimSpace(mob.FinishingBlow) - } - } - if targetPart == "" { - return false - } - if mob.MatchQuality(targetPart) == world.MatchNone { - return false - } - g.doFinishingBlow(sess, p, mob, itemPart) - return true -} - -func (g *Game) doFinishingBlow(sess *net.Session, p *player.Player, mob *world.MobInstance, itemInput string) { - fbDef, err := g.ItemStore.Load(mob.FinishingBlow) - if err != nil { - sess.WriteLine("Something went wrong.") - return - } - if !fbDef.MatchesName(itemInput) && !strings.EqualFold(itemInput, fbDef.ID) { - sess.WriteLine(fmt.Sprintf("That won't work on %s. You need %s.", mobDisplayName(mob, true), g.itemColorize(sess, fbDef, fbDef.Name))) - return - } - if !p.HasItem(mob.FinishingBlow) { - sess.WriteLine(fmt.Sprintf("You don't have any %s.", g.itemColorize(sess, fbDef, fbDef.Name))) - return - } - autoKey := "assassin_unlocked_auto_" + mob.FinishingBlow - consumed := true - if p.Flags != nil { - if val, ok := p.Flags[autoKey]; ok { - if b, ok := val.(bool); ok && b { - consumed = false - } - } - } - if consumed { - p.RemoveItem(mob.FinishingBlow, 1) - } - sess.WriteLine(fmt.Sprintf("You use the %s on %s!", g.itemColorize(sess, fbDef, fbDef.Name), g.colorize(sess, "mob", mobDisplayName(mob, true)))) - mob.HP = 0 - g.endCombat(sess, p, mob) -} |
