feat: add shared styles and monster ASCII art

This commit is contained in:
2026-03-24 12:36:10 +09:00
parent 84431c888a
commit 7fc13a6a32
2 changed files with 99 additions and 0 deletions

67
ui/ascii_art.go Normal file
View File

@@ -0,0 +1,67 @@
package ui
import "github.com/tolelom/catacombs/entity"
// MonsterArt returns ASCII art lines for a monster type.
func MonsterArt(mt entity.MonsterType) []string {
switch mt {
case entity.MonsterSlime:
return []string{
` /\OO/\ `,
` \ / `,
` |__| `,
}
case entity.MonsterSkeleton:
return []string{
` ,--. `,
` |oo| `,
` /||\ `,
}
case entity.MonsterOrc:
return []string{
` .---. `,
`/o o\`,
`| --- |`,
}
case entity.MonsterDarkKnight:
return []string{
` /|||\ `,
` |===| `,
` | | `,
}
case entity.MonsterBoss5:
return []string{
` /\ /\ `,
`| @ @ |`,
`| || |`,
`| \__/ |`,
` \ / `,
}
case entity.MonsterBoss10:
return []string{
` __|__ `,
` /|o o|\ `,
` | === | `,
` |\___/| `,
` |___| `,
}
case entity.MonsterBoss15:
return []string{
` ,=====. `,
`/ \ / \`,
`| (O) |`,
` \ |=| / `,
` '===' `,
}
case entity.MonsterBoss20:
return []string{
` ___/\___ `,
`| x x |`,
`| === |`,
`|\_____/|`,
`|_| |_|`,
}
default:
return []string{` ??? `}
}
}

32
ui/styles.go Normal file
View File

@@ -0,0 +1,32 @@
package ui
import "github.com/charmbracelet/lipgloss"
// Colors
var (
colorRed = lipgloss.Color("196")
colorGreen = lipgloss.Color("46")
colorYellow = lipgloss.Color("226")
colorCyan = lipgloss.Color("51")
colorMagenta = lipgloss.Color("201")
colorWhite = lipgloss.Color("255")
colorGray = lipgloss.Color("240")
colorOrange = lipgloss.Color("208")
colorPink = lipgloss.Color("205")
)
// Text styles
var (
styleDamage = lipgloss.NewStyle().Foreground(colorRed).Bold(true)
styleHeal = lipgloss.NewStyle().Foreground(colorGreen).Bold(true)
styleCoop = lipgloss.NewStyle().Foreground(colorYellow).Bold(true)
styleFlee = lipgloss.NewStyle().Foreground(colorCyan)
styleStatus = lipgloss.NewStyle().Foreground(colorMagenta)
styleGold = lipgloss.NewStyle().Foreground(colorYellow)
styleSystem = lipgloss.NewStyle().Foreground(colorGray).Italic(true)
styleEnemy = lipgloss.NewStyle().Foreground(colorRed)
stylePlayer = lipgloss.NewStyle().Foreground(colorWhite).Bold(true)
styleHeader = lipgloss.NewStyle().Foreground(colorPink).Bold(true)
styleAction = lipgloss.NewStyle().Bold(true)
styleTimer = lipgloss.NewStyle().Foreground(colorYellow).Bold(true)
)