diff options
| author | historia <[not public]> | 2026-07-14 16:35:28 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-07-14 16:35:28 -0400 |
| commit | e679811057bedda7864b61a325a11e472e0034ad (patch) | |
| tree | 5a9a580f808a13e2e6aad24635ab5c567fec13f2 /internal/game | |
| parent | 351f1d78e2d94da4445c015d863dbaa34bc58619 (diff) | |
| download | thehouseoficarus-e679811057bedda7864b61a325a11e472e0034ad.tar.gz | |
feat: new default color scheme
Diffstat (limited to 'internal/game')
| -rw-r--r-- | internal/game/cmd_aps.go | 8 | ||||
| -rw-r--r-- | internal/game/cmd_color.go | 8 | ||||
| -rw-r--r-- | internal/game/cmd_mods.go | 8 | ||||
| -rw-r--r-- | internal/game/cmd_option.go | 16 | ||||
| -rw-r--r-- | internal/game/cmd_score.go | 46 | ||||
| -rw-r--r-- | internal/game/cmd_skills.go | 12 | ||||
| -rw-r--r-- | internal/game/cmd_tech.go | 8 | ||||
| -rw-r--r-- | internal/game/look_target.go | 2 | ||||
| -rw-r--r-- | internal/game/render_color.go | 10 | ||||
| -rw-r--r-- | internal/game/render_combat.go | 12 | ||||
| -rw-r--r-- | internal/game/render_map.go | 8 | ||||
| -rw-r--r-- | internal/game/sys_labor.go | 2 |
12 files changed, 70 insertions, 70 deletions
diff --git a/internal/game/cmd_aps.go b/internal/game/cmd_aps.go index 839455e..727bf8b 100644 --- a/internal/game/cmd_aps.go +++ b/internal/game/cmd_aps.go @@ -129,11 +129,11 @@ func displayApsNodes(g *Game, sess *net.Session, p *player.Player, known []int) for i, info := range infos { distStr := strconv.Itoa(info.Distance) if info.Distance == 0 { - distStr = color.Render(mode, color.Parse("52"), "here") + distStr = color.Render(mode, color.Parse("6C"), "here") } rows[i] = []string{ color.Render(mode, color.Parse("F5"), fmt.Sprintf("#%d", info.ID)), - color.Render(mode, color.Parse("4B"), info.Name), + color.Render(mode, color.Parse("49"), info.Name), distStr, } } @@ -142,8 +142,8 @@ func displayApsNodes(g *Game, sess *net.Session, p *player.Player, known []int) Title: "APS Datapad", Columns: []string{ color.Render(mode, color.Parse("F5"), "Room"), - color.Render(mode, color.Parse("4B"), "Name"), - color.Render(mode, color.Parse("E6"), "Distance"), + color.Render(mode, color.Parse("49"), "Name"), + color.Render(mode, color.Parse("FA"), "Distance"), }, Rows: rows, } diff --git a/internal/game/cmd_color.go b/internal/game/cmd_color.go index d48e314..95ccbc4 100644 --- a/internal/game/cmd_color.go +++ b/internal/game/cmd_color.go @@ -176,9 +176,9 @@ func showColorTable(g *Game, sess *net.Session) { mode := g.colorMode(sess) table := &ui.Table{ Columns: []string{ - color.Render(mode, color.Parse("4B"), "Target"), + color.Render(mode, color.Parse("49"), "Target"), "Color", - color.Render(mode, color.Parse("F3"), "Source"), + color.Render(mode, color.Parse("F5"), "Source"), }, } for _, cat := range colorCategoryOrder { @@ -192,9 +192,9 @@ func showColorTable(g *Game, sess *net.Session) { } } table.Rows = append(table.Rows, []string{ - color.Render(mode, color.Parse("4B"), cat), + color.Render(mode, color.Parse("49"), cat), coloredVal, - color.Render(mode, color.Parse("F3"), source), + color.Render(mode, color.Parse("F5"), source), }) } for _, line := range table.Render(p.OptionBool("unicode"), p.OptionInt("wrap_width")) { diff --git a/internal/game/cmd_mods.go b/internal/game/cmd_mods.go index 9468e89..26b0e95 100644 --- a/internal/game/cmd_mods.go +++ b/internal/game/cmd_mods.go @@ -55,9 +55,9 @@ func (g *Game) doMods(sess *net.Session, showAll bool) { t := &ui.Table{ Title: cat.Name, Columns: []string{ - color.Render(mode, color.Parse("4B"), "Module"), + color.Render(mode, color.Parse("49"), "Module"), color.Render(mode, color.Parse("F5"), "Level"), - color.Render(mode, color.Parse("DE"), "Cost"), + color.Render(mode, color.Parse("B3"), "Cost"), color.Render(mode, color.Parse("B3"), "XP"), }, } @@ -77,9 +77,9 @@ func (g *Game) doMods(sess *net.Session, showAll bool) { }) } else if unlocked { t.Rows = append(t.Rows, []string{ - color.Render(mode, color.Parse("4B"), m.Name), + color.Render(mode, color.Parse("49"), m.Name), color.Render(mode, color.Parse("F5"), levelStr), - color.Render(mode, color.Parse("DE"), costStr), + color.Render(mode, color.Parse("B3"), costStr), color.Render(mode, color.Parse("B3"), xpStr), }) } else { diff --git a/internal/game/cmd_option.go b/internal/game/cmd_option.go index f404c2e..2d6f3f0 100644 --- a/internal/game/cmd_option.go +++ b/internal/game/cmd_option.go @@ -18,10 +18,10 @@ func (g *Game) doOption(sess *net.Session, input string) { if input == "" { table := &ui.Table{ Columns: []string{ - color.Render(mode, color.Parse("4B"), "Option"), - color.Render(mode, color.Parse("E6"), "Value"), - color.Render(mode, color.Parse("F3"), "Valid"), - color.Render(mode, color.Parse("FC"), "Description"), + color.Render(mode, color.Parse("49"), "Option"), + color.Render(mode, color.Parse("FA"), "Value"), + color.Render(mode, color.Parse("F5"), "Valid"), + color.Render(mode, color.Parse("FF"), "Description"), }, } for _, def := range player.OptionDefs { @@ -29,10 +29,10 @@ func (g *Game) doOption(sess *net.Session, input string) { val = truncateForTable(val, p.OptionBool("unicode")) valid := formatValidValues(&def) table.Rows = append(table.Rows, []string{ - color.Render(mode, color.Parse("4B"), def.Name), - color.Render(mode, color.Parse("E6"), val), - color.Render(mode, color.Parse("F3"), valid), - color.Render(mode, color.Parse("FC"), def.Description), + color.Render(mode, color.Parse("49"), def.Name), + color.Render(mode, color.Parse("FA"), val), + color.Render(mode, color.Parse("F5"), valid), + color.Render(mode, color.Parse("FF"), def.Description), }) } for _, line := range table.Render(p.OptionBool("unicode"), p.OptionInt("wrap_width")) { diff --git a/internal/game/cmd_score.go b/internal/game/cmd_score.go index 59cedb1..488979c 100644 --- a/internal/game/cmd_score.go +++ b/internal/game/cmd_score.go @@ -92,14 +92,14 @@ func (g *Game) doScore(sess *net.Session) { sep() nameStr := g.colorize(sess, "player_name", p.Name) - clStr := color.Render(mode, color.Parse("E6"), fmt.Sprintf("Combat Lvl %d", p.CombatLevel())) + clStr := color.Render(mode, color.Parse("FA"), fmt.Sprintf("Combat Lvl %d", p.CombatLevel())) roomStr := g.colorize(sess, "room_number", fmt.Sprintf("Room #%d", p.RoomID)) row1 := padded(nameStr, 20) + padded(clStr, 24) + roomStr content(row1) creditsStr := g.colorize(sess, "credits_pickup", formatInt(p.Credits)) chipsStr := g.colorize(sess, "chips_pickup", formatInt(countChips(p))) - styleStr := color.Render(mode, color.Parse("4B"), fmt.Sprintf("Style: %s", p.AttackStyle)) + styleStr := color.Render(mode, color.Parse("49"), fmt.Sprintf("Style: %s", p.AttackStyle)) invStr := fmt.Sprintf("Inv: %d/28", 28-p.FreeSlots()) row2 := padded("Credits: "+creditsStr, 19) + padded("Chips: "+chipsStr, 16) + padded(styleStr, 22) + invStr content(row2) @@ -112,15 +112,15 @@ func (g *Game) doScore(sess *net.Session) { hpLine := fmt.Sprintf("HP [%s] %s / %s", hpBarStr, color.Render(mode, color.ColorSpec{Fg: hpFg}, fmt.Sprint(p.HP)), - color.Render(mode, color.Parse("E6"), fmt.Sprint(p.MaxHP()))) + color.Render(mode, color.Parse("FA"), fmt.Sprint(p.MaxHP()))) content(hpLine) batBarRaw := ui.RenderBarF(p.Battery, p.MaxBattery(), 26, unicode) - batBarStr := color.Render(mode, color.ColorSpec{Fg: 45}, batBarRaw) + batBarStr := color.Render(mode, color.ColorSpec{Fg: 110}, batBarRaw) batLine := fmt.Sprintf("BAT [%s] %s / %s", batBarStr, - color.Render(mode, color.ColorSpec{Fg: 45}, fmt.Sprintf("%.1f", p.Battery)), - color.Render(mode, color.Parse("E6"), fmt.Sprintf("%.0f", p.MaxBattery()))) + color.Render(mode, color.ColorSpec{Fg: 110}, fmt.Sprintf("%.1f", p.Battery)), + color.Render(mode, color.Parse("FA"), fmt.Sprintf("%.0f", p.MaxBattery()))) content(batLine) gap() @@ -148,7 +148,7 @@ func (g *Game) doScore(sess *net.Session) { buildSkillCell := func(s player.SkillName) string { level := p.Level(s) lvlColor := skillLevelColor(level) - name := padded(color.Render(mode, color.ColorSpec{Fg: 75}, skillDisplay[s]), 12) + name := padded(color.Render(mode, color.ColorSpec{Fg: 110}, skillDisplay[s]), 12) lvl := color.Render(mode, color.ColorSpec{Fg: lvlColor}, fmt.Sprintf("%2d", level)) xpBar := xpProgressBar(p.Skills[s], 12, unicode) return fmt.Sprintf("%s %s [%s]", name, lvl, xpBar) @@ -187,8 +187,8 @@ func (g *Game) doScore(sess *net.Session) { for _, id := range p.ActiveTechList() { def := GetTechDef(id) if def != nil { - on := color.Render(mode, color.ColorSpec{Fg: 82}, "[ON]") - name := color.Render(mode, color.ColorSpec{Fg: 75}, def.Name) + on := color.Render(mode, color.ColorSpec{Fg: 108}, "[ON]") + name := color.Render(mode, color.ColorSpec{Fg: 110}, def.Name) techParts = append(techParts, on+" "+name) } } @@ -197,9 +197,9 @@ func (g *Game) doScore(sess *net.Session) { if len(p.ActiveBuffs) > 0 { for _, buff := range p.ActiveBuffs { buffLine := fmt.Sprintf("%s +%d%% %s (%d ticks remaining)", - color.Render(mode, color.ColorSpec{Fg: 82}, "[BUFF]"), + color.Render(mode, color.ColorSpec{Fg: 108}, "[BUFF]"), buff.BonusPercent, - color.Render(mode, color.ColorSpec{Fg: 75}, buff.Stat), + color.Render(mode, color.ColorSpec{Fg: 110}, buff.Stat), buff.TicksLeft) content(buffLine) } @@ -252,13 +252,13 @@ func hpBarStyle(current, max int) *ui.BarStyle { var fg int switch { case pct >= 0.7: - fg = 84 + fg = 108 case pct >= 0.4: - fg = 208 + fg = 179 default: - fg = 196 + fg = 167 } - return &ui.BarStyle{FilledColor: fg, EmptyColor: 238, EmptyDim: true} + return &ui.BarStyle{FilledColor: fg, EmptyColor: 237, EmptyDim: true} } func hpBarFg(current, max int) int { @@ -268,26 +268,26 @@ func hpBarFg(current, max int) int { pct := float64(current) / float64(max) switch { case pct >= 0.7: - return 84 + return 108 case pct >= 0.4: - return 208 + return 179 default: - return 196 + return 167 } } func skillLevelColor(level int) int { switch { case level >= 99: - return 196 + return 180 case level >= 80: - return 214 + return 179 case level >= 60: - return 208 + return 116 case level >= 40: - return 220 + return 73 default: - return 40 + return 66 } } diff --git a/internal/game/cmd_skills.go b/internal/game/cmd_skills.go index 4aacd31..2eeb149 100644 --- a/internal/game/cmd_skills.go +++ b/internal/game/cmd_skills.go @@ -17,10 +17,10 @@ func (g *Game) doSkills(sess *net.Session) { p := sess.Player mode := g.colorMode(sess) t := &ui.Table{Title: "Skills", Columns: []string{ - color.Render(mode, color.Parse("4B"), "Skill"), + color.Render(mode, color.Parse("49"), "Skill"), color.Render(mode, color.Parse("F5"), "Abbr"), - color.Render(mode, color.Parse("E6"), "Level"), - color.Render(mode, color.Parse("DE"), "XP"), + color.Render(mode, color.Parse("FA"), "Level"), + color.Render(mode, color.Parse("B3"), "XP"), color.Render(mode, color.Parse("B3"), "XP to Next"), }} for _, s := range player.AllSkills { @@ -28,10 +28,10 @@ func (g *Game) doSkills(sess *net.Session) { xp := p.Skills[s] next := player.XPForNextLevel(xp) t.Rows = append(t.Rows, []string{ - color.Render(mode, color.Parse("4B"), string(s)), + color.Render(mode, color.Parse("49"), string(s)), color.Render(mode, color.Parse("F5"), player.SkillAbbr[s]), - color.Render(mode, color.Parse("E6"), strconv.Itoa(level)), - color.Render(mode, color.Parse("DE"), strconv.Itoa(xp)), + color.Render(mode, color.Parse("FA"), strconv.Itoa(level)), + color.Render(mode, color.Parse("B3"), strconv.Itoa(xp)), color.Render(mode, color.Parse("B3"), strconv.Itoa(next)), }) } diff --git a/internal/game/cmd_tech.go b/internal/game/cmd_tech.go index cb0465f..4ca1382 100644 --- a/internal/game/cmd_tech.go +++ b/internal/game/cmd_tech.go @@ -118,7 +118,7 @@ func (g *Game) doTechList(sess *net.Session) { "", fmt.Sprintf("Battery: %s/%s", g.colorize(sess, "battery", fmt.Sprintf("%.1f", p.Battery)), - color.Render(mode, color.Parse("E6"), fmt.Sprintf("%.0f", p.MaxBattery())), + color.Render(mode, color.Parse("FA"), fmt.Sprintf("%.0f", p.MaxBattery())), ), ) @@ -129,13 +129,13 @@ func (g *Game) doTechList(sess *net.Session) { nameStr := tech.Name if tech.Level <= techLevel { if p.HasActiveTech(tech.ID) { - status = color.Render(mode, color.Parse("52"), "ON") + status = color.Render(mode, color.Parse("6C"), "ON") } else { status = color.Render(mode, color.Parse("F0"), "off") } - nameStr = color.Render(mode, color.Parse("4B"), tech.Name) + nameStr = color.Render(mode, color.Parse("49"), tech.Name) } else { - status = color.Render(mode, color.Parse("A0"), "locked") + status = color.Render(mode, color.Parse("A7"), "locked") nameStr = color.Render(mode, color.Parse("F0"), tech.Name) } diff --git a/internal/game/look_target.go b/internal/game/look_target.go index 3f7141e..bb9b5da 100644 --- a/internal/game/look_target.go +++ b/internal/game/look_target.go @@ -64,7 +64,7 @@ func (g *Game) doLookTarget(sess *net.Session, input string) { } var levelStr string if best.Protected { - levelStr = color.Render(g.colorMode(sess), color.Parse("DF"), "(protected)") + levelStr = color.Render(g.colorMode(sess), color.Parse("FA"), "(protected)") } else { mobLevel := mobCombatLevel(best) levelStr = g.levelColorize(sess, p.CombatLevel(), mobLevel, fmt.Sprintf("(level %d)", mobLevel)) diff --git a/internal/game/render_color.go b/internal/game/render_color.go index 0e31538..3464f26 100644 --- a/internal/game/render_color.go +++ b/internal/game/render_color.go @@ -46,15 +46,15 @@ func levelColorSpec(myLevel, theirLevel int) color.ColorSpec { diff := theirLevel - myLevel switch { case diff == 0: - return color.Parse("E7") + return color.Parse("FA") case diff > 0 && diff < 5: - return color.Parse("D0") + return color.Parse("B3") case diff >= 5: - return color.Parse("C4") + return color.Parse("A7") case diff < 0 && diff > -5: - return color.Parse("BE") + return color.Parse("6E") default: - return color.Parse("22") + return color.Parse("41") } } diff --git a/internal/game/render_combat.go b/internal/game/render_combat.go index 7285ce7..c3c594c 100644 --- a/internal/game/render_combat.go +++ b/internal/game/render_combat.go @@ -6,8 +6,8 @@ import ( ) // renderBar is the shared bar renderer for both HP bars and task-progress bars. -// lowColor is the color used when the value falls below 40% (160 red for HP, -// 39 cyan for progress). +// lowColor is the color used when the value falls below 40% (167 dusty red for +// HP, 67 steel blue for progress) -- both palette colors. func (g *Game) renderBar(sess *net.Session, current, max, lowColor int) string { if max <= 0 { max = 1 @@ -23,19 +23,19 @@ func (g *Game) renderBar(sess *net.Session, current, max, lowColor int) string { var fgColor int switch { case pct >= 70: - fgColor = 82 + fgColor = 108 case pct >= 40: - fgColor = 220 + fgColor = 179 default: fgColor = lowColor } unicode := sess.Player != nil && sess.Player.OptionBool("unicode") - style := &ui.BarStyle{FilledColor: fgColor, EmptyColor: 238, EmptyDim: true} + style := &ui.BarStyle{FilledColor: fgColor, EmptyColor: 237, EmptyDim: true} bar := ui.RenderColoredBar(current, max, 10, unicode, style, g.colorMode(sess)) return "[" + bar + "]" } func (g *Game) hpBar(sess *net.Session, current, max int) string { - return g.renderBar(sess, current, max, 160) + return g.renderBar(sess, current, max, 167) } diff --git a/internal/game/render_map.go b/internal/game/render_map.go index 3f9c4da..a28538b 100644 --- a/internal/game/render_map.go +++ b/internal/game/render_map.go @@ -427,28 +427,28 @@ func resolveMapAt(g *Game, sess *net.Session) color.ColorSpec { if sess != nil { return g.resolveColor(sess, "map_at") } - return color.Parse("0F") + return color.Parse("B4 bold") } func resolveDim(g *Game, sess *net.Session) color.ColorSpec { if sess != nil { return g.resolveColor(sess, "dim") } - return color.Parse("F3 dim") + return color.Parse("F5 dim") } func resolveMapBlocked(g *Game, sess *net.Session) color.ColorSpec { if sess != nil { return g.resolveColor(sess, "map_blocked") } - return color.Parse("C4") + return color.Parse("A7") } func resolveMapCourse(g *Game, sess *net.Session) color.ColorSpec { if sess != nil { return g.resolveColor(sess, "map_course") } - return color.Parse("1B") + return color.Parse("43") } // mapRenderCtx bundles the per-render state shared by node and connector drawing diff --git a/internal/game/sys_labor.go b/internal/game/sys_labor.go index 43f7bb2..6004b75 100644 --- a/internal/game/sys_labor.go +++ b/internal/game/sys_labor.go @@ -22,7 +22,7 @@ func taskWorkVerb(mob *world.MobInstance) string { // inverse of hpBar. It is used for task worksites whose internal HP drains to 0 // to complete the work (progress = MaxHP - HP). func (g *Game) progressBar(sess *net.Session, progress, max int) string { - return g.renderBar(sess, progress, max, 39) + return g.renderBar(sess, progress, max, 67) } // writeTaskProgress prints the per-tick progress line for a task worksite, |
