Add game components 246-268; data.DrawSlot, Canvas.TextVeil
Health, mana and experience bars, quarter hearts, lives, a spinning coin counter, score board, stage timer, minimap with fog, compass, hotbar, paper-doll equipment, skill tree, skill buttons with cooldown wipes, status effects, a boss bar, damage numbers, quest log and tracker, party frames, character sheet, level-up screen and shop. data exports DrawSlot so every slot looks alike; pixel adds TextVeil for dissolving text. Messages the font cannot draw are fixed and TestMessagesHaveGlyphs holds every message to the font.
This commit is contained in:
42 files changed
+3260
-26
No files matched your search
@@ -268,3 +268,26 @@ func boolInt(b bool) int {
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func TestTextVeilKeepsDotsBelowTheLevel(t *testing.T) {
|
||||
plain := canvas(t, 40, 40, func(g pixel.Canvas) { g.Text(2, 2, "HM", pixel.Ink, 2) })
|
||||
for _, level := range []int{0, 8, 16} {
|
||||
veil := canvas(t, 40, 40, func(g pixel.Canvas) { g.TextVeil(2, 2, "HM", pixel.Ink, level, 2) })
|
||||
kept, all := 0, 0
|
||||
for y := range 40 {
|
||||
for x := range 40 {
|
||||
ink, got := plain.at(x, y) == pixel.Ink, veil.at(x, y) == pixel.Ink
|
||||
if got && (!ink || pixel.Bayer(x, y) >= level) {
|
||||
t.Fatalf("level %d: dot %d,%d drawn", level, x, y)
|
||||
}
|
||||
if ink && pixel.Bayer(x, y) < level && !got {
|
||||
t.Fatalf("level %d: dot %d,%d missing", level, x, y)
|
||||
}
|
||||
kept, all = kept+boolInt(got), all+boolInt(ink)
|
||||
}
|
||||
}
|
||||
if want := all * level / 16; kept < want-all/8 || kept > want+all/8 {
|
||||
t.Fatalf("level %d kept %d of %d dots", level, kept, all)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user