diff options
Diffstat (limited to 'internal/game/color.go')
| -rw-r--r-- | internal/game/color.go | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/internal/game/color.go b/internal/game/color.go deleted file mode 100644 index 962728a..0000000 --- a/internal/game/color.go +++ /dev/null @@ -1,79 +0,0 @@ -package game - -import ( - "thehouseoficarus/internal/color" - "thehouseoficarus/internal/config" - "thehouseoficarus/internal/net" - "thehouseoficarus/internal/object" -) - -func (g *Game) colorMode(sess *net.Session) string { - if p := sess.Player; p != nil { - return p.OptionString("color") - } - return "none" -} - -func (g *Game) resolveColor(sess *net.Session, category string) color.ColorSpec { - if sess.Account != nil && sess.Account.Colors != nil { - if val, ok := sess.Account.Colors[category]; ok { - if val == "off" { - return color.NoColor() - } - if val != "" { - return color.Parse(val) - } - } - } - if g.ColorConfig != nil { - if val, ok := (*g.ColorConfig)[category]; ok && val != "" { - return color.Parse(val) - } - } - if val, ok := config.DefaultColors()[category]; ok && val != "" { - return color.Parse(val) - } - return color.NoColor() -} - -func (g *Game) colorize(sess *net.Session, category, text string) string { - spec := g.resolveColor(sess, category) - return color.Render(g.colorMode(sess), spec, text) -} - -func levelColorSpec(myLevel, theirLevel int) color.ColorSpec { - diff := theirLevel - myLevel - switch { - case diff == 0: - return color.Parse("231") - case diff > 0 && diff < 5: - return color.Parse("208") - case diff >= 5: - return color.Parse("196") - case diff < 0 && diff > -5: - return color.Parse("190") - default: - return color.Parse("34") - } -} - -func (g *Game) levelColorize(sess *net.Session, myLevel, theirLevel int, text string) string { - spec := levelColorSpec(myLevel, theirLevel) - return color.Render(g.colorMode(sess), spec, text) -} - -func (g *Game) objColorize(sess *net.Session, objDef *object.ObjectDef, text string) string { - if objDef != nil && objDef.Color != "" { - spec := color.Parse(objDef.Color) - return color.Render(g.colorMode(sess), spec, text) - } - return text -} - -func (g *Game) itemColorize(sess *net.Session, itemDef *object.ItemDef, text string) string { - if itemDef != nil && itemDef.Color != "" { - spec := color.Parse(itemDef.Color) - return color.Render(g.colorMode(sess), spec, text) - } - return g.colorize(sess, "item", text) -} |
