153 lines
4.0 KiB
Go
153 lines
4.0 KiB
Go
package gamemap
|
|
|
|
import (
|
|
. "lab.zaar.be/thefish/alchemyst-go/engine/types"
|
|
)
|
|
|
|
type Tile struct {
|
|
*Appearance `json:"app"`
|
|
Name string `json:"name"`
|
|
Description string `json:"desc"`
|
|
BlocksPass bool `json:"blocksPass"`
|
|
BlocksSight bool `json:"blocksSight"`
|
|
Explored bool
|
|
MustDraw bool
|
|
Visible bool
|
|
}
|
|
|
|
func (t *Tile) GetChar() string {
|
|
return t.Glyph.GetGlyph()
|
|
}
|
|
|
|
func (t *Tile) GetRawColor() uint32 {
|
|
if t.Visible {
|
|
return t.Appearance.ColorSet.Fg.GetColor()
|
|
} else {
|
|
return t.Appearance.ColorSet.DarkFg.GetColor()
|
|
}
|
|
}
|
|
|
|
func (t *Tile) GetRawBgColor() uint32 {
|
|
if t.Visible {
|
|
return t.Appearance.ColorSet.Bg.GetColor()
|
|
} else {
|
|
return t.Appearance.ColorSet.DarkBg.GetColor()
|
|
}
|
|
}
|
|
|
|
func NewWall() *Tile {
|
|
return &Tile{
|
|
Appearance: &Appearance{
|
|
Glyph: &PlainGlyphHolder{Glyph: "#"},
|
|
ColorSet: TileColorSet{
|
|
Fg: &PlainColorHolder{A: 255, R: 130, G: 110, B: 150},
|
|
Bg: &PlainColorHolder{A: 255, R: 172, G: 170, B: 173},
|
|
DarkFg: &PlainColorHolder{A: 255, R: 20, G: 20, B: 68},
|
|
DarkBg: &PlainColorHolder{A: 255, R: 7, G: 7, B: 30},
|
|
},
|
|
},
|
|
Name: "Wall",
|
|
Description: "A dull rock wall",
|
|
BlocksPass: true,
|
|
BlocksSight: true,
|
|
Explored: false,
|
|
MustDraw: false,
|
|
Visible: false,
|
|
}
|
|
}
|
|
|
|
func NewDecoratedWall() *Tile {
|
|
return &Tile{
|
|
Name: "Decorated Wall",
|
|
Description: "A rock wall covered with paintings",
|
|
BlocksPass: true,
|
|
BlocksSight: true,
|
|
Explored: false,
|
|
MustDraw: false,
|
|
Appearance: &Appearance{
|
|
Glyph: &PlainGlyphHolder{Glyph: "#"},
|
|
ColorSet: TileColorSet{
|
|
Fg: &PlainColorHolder{A: 255, R: 130, G: 110, B: 150},
|
|
//Bg: &PlainColorHolder{255, 172, 170, 173},
|
|
Bg: &DanceColorHolder{
|
|
A: 255,
|
|
R: DeviatedColorRing(172, -15, 10),
|
|
G: DeviatedColorRing(170, -5, 15),
|
|
B: DeviatedColorRing(173, -10, 10),
|
|
},
|
|
DarkFg: &PlainColorHolder{A: 255, R: 20, G: 20, B: 68},
|
|
DarkBg: &PlainColorHolder{A: 255, R: 7, G: 7, B: 30},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func NewFloor() *Tile {
|
|
return &Tile{
|
|
Name: "Floor",
|
|
Description: "Dusty rock floor",
|
|
BlocksPass: false,
|
|
BlocksSight: false,
|
|
Explored: false,
|
|
MustDraw: false,
|
|
Appearance: &Appearance{
|
|
Glyph: &PlainGlyphHolder{Glyph: "."},
|
|
ColorSet: TileColorSet{
|
|
Fg: &PlainColorHolder{A: 255, R: 220, G: 220, B: 250},
|
|
Bg: &PlainColorHolder{A: 255, R: 19, G: 19, B: 70},
|
|
DarkFg: &PlainColorHolder{A: 255, R: 30, G: 20, B: 50},
|
|
DarkBg: &PlainColorHolder{A: 255, R: 7, G: 7, B: 30},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func NewWaterTile() *Tile {
|
|
//ch := &ColorHolder{19, 19, 70}
|
|
return &Tile{
|
|
Name: "Water",
|
|
Description: "Murky water",
|
|
BlocksPass: false,
|
|
BlocksSight: false,
|
|
Explored: false,
|
|
MustDraw: true, //fixme debug
|
|
Appearance: &Appearance{
|
|
Glyph: &PlainGlyphHolder{Glyph: " "},
|
|
ColorSet: TileColorSet{
|
|
Fg: &PlainColorHolder{A: 255, R: 220, G: 220, B: 250},
|
|
Bg: &DanceColorHolder{
|
|
A: 255,
|
|
R: SingleColorRing(5),
|
|
G: FillColorRing(2, 2, 42, 4),
|
|
B: FillColorRing(154, 150, 229, 12),
|
|
},
|
|
DarkFg: &PlainColorHolder{A: 255, R: 30, G: 20, B: 50},
|
|
DarkBg: &PlainColorHolder{A: 255, R: 7, G: 7, B: 30},
|
|
},
|
|
},
|
|
|
|
}
|
|
}
|
|
|
|
func NewDeepWaterTile() *Tile {
|
|
//ch := &ColorHolder{5, 2, 154}
|
|
return &Tile{
|
|
Appearance: &Appearance{
|
|
Glyph: &PlainGlyphHolder{Glyph: " "},
|
|
ColorSet: TileColorSet{
|
|
Fg: &PlainColorHolder{A: 255, R: 220, G: 220, B: 250},
|
|
Bg: &DanceColorHolder{A: 255, R: SingleColorRing(19), G: FillColorRing(19, 0, 15, 2), B: FillColorRing(127, 120, 176, 12)},
|
|
DarkFg: &PlainColorHolder{A: 255, R: 30, G: 20, B: 50},
|
|
DarkBg: &PlainColorHolder{A: 255, R: 7, G: 7, B: 30},
|
|
},
|
|
},
|
|
Name: "Deep Water",
|
|
Description: "Deep water",
|
|
BlocksPass: false,
|
|
BlocksSight: false,
|
|
Explored: false,
|
|
MustDraw: true,
|
|
Visible: false,
|
|
}
|
|
}
|