diff --git a/game/scripts/art/glow_style.gd b/game/scripts/art/glow_style.gd index 7f856c6..86b6363 100644 --- a/game/scripts/art/glow_style.gd +++ b/game/scripts/art/glow_style.gd @@ -1,11 +1,47 @@ class_name GlowStyle -extends ArtStyle -## A dim, cool world in which everything living shines and glows. -## Until it draws pixel art, it draws the placeholders of ArtStyle. +extends PixelStyle +## A dim, cool world in grey and slate, in which everything living shines in +## strong colours and glows: the dead and the living apart at a glance. const KEY := &"glow" +func _init() -> void: + glow = 1.0 + palette = { + "outline": Color("15171f"), "dust": Color("b9b5af"), + "ground": Color("6f6a68"), "ground_dark": Color("5f5a59"), "ground_light": Color("7f7a77"), + "pebble": Color("57534f"), "pebble_light": Color("8a8580"), "pebble_dark": Color("45413e"), + "dead_crack": Color("4c4846"), + "soft_top": Color("8d8a87"), "soft_top_dark": Color("7c7976"), "soft_top_light": Color("a3a09c"), + "soft_face": Color("636160"), "soft_face_dark": Color("514f4f"), "soft_lip": Color("b5b2ae"), + "hard_top": Color("4f5a75"), "hard_top_dark": Color("434d66"), "hard_top_light": Color("62708f"), + "hard_face": Color("39425a"), "hard_face_dark": Color("2e354a"), "hard_lip": Color("7a89aa"), + "hard_glint": Color("8ff0ff"), + "bed_top": Color("2e2b30"), "bed_top_dark": Color("262328"), "bed_top_light": Color("3a363c"), + "bed_face": Color("1e1b20"), "bed_face_dark": Color("171519"), "bed_lip": Color("48434a"), + "grass": Color("3fbf5a"), "grass_dark": Color("2e9c48"), "grass_light": Color("6ee887"), + "grass_edge": Color("1f7a3a"), + "flower_a": Color("fff27a"), "flower_b": Color("e8fff0"), "flower_c": Color("ff8ad0"), + "moss": Color("35c46a"), "moss_dark": Color("25a052"), "moss_light": Color("7cf5a5"), "spore": Color("fff59a"), + "vine": Color("3dbb63"), "vine_dark": Color("2a8f4a"), "leaf": Color("52d47a"), "leaf_dark": Color("34a85c"), + "stem": Color("45c068"), "bud": Color("a0f5b8"), "fibre": Color("f0fff6"), "fibre_shade": Color("c8e8d6"), + "seed": Color("8a6a4a"), + "stone": Color("8e8b88"), "stone_light": Color("aeaaa6"), "stone_dark": Color("6c6967"), + "wool": Color("eef2f0"), "wool_shade": Color("cfd6d3"), "wool_light": Color("ffffff"), + "face": Color("3a3438"), "hoof": Color("2a2629"), + "ruin": Color("7d7a80"), "ruin_dark": Color("68656b"), "ruin_light": Color("94919a"), + "ruin_moss": Color("3fbf6a"), "door": Color("121014"), "glow": Color("ffe066"), "glow_light": Color("fffbd0"), + "skin": Color("f0c4a0"), "skin_shade": Color("d39e7a"), "hair": Color("3d2a24"), "hair_light": Color("5a3e34"), + "eye": Color("1a1416"), "pants": Color("3b4466"), "pants_dark": Color("2e3552"), "boots": Color("3a2a22"), + "marker_near": Color("c8fff0"), "marker_far": Color("ff6a5a"), + } + players = [ + Color("ff5f4f"), Color("4f9fff"), Color("ffc847"), Color("4fd06a"), + Color("b77aff"), Color("3fd8c8"), Color("ff7ac0"), Color("ff9a4a"), + ] + + func key() -> StringName: return KEY diff --git a/game/scripts/art/pastel_style.gd b/game/scripts/art/pastel_style.gd index bf90c9b..9eb52b4 100644 --- a/game/scripts/art/pastel_style.gd +++ b/game/scripts/art/pastel_style.gd @@ -1,11 +1,47 @@ class_name PastelStyle -extends ArtStyle -## Soft, light colours with outlines in a darker shade of what they surround. -## Until it draws pixel art, it draws the placeholders of ArtStyle. +extends PixelStyle +## Soft, light colours, and outlines in a darker shade of what they +## surround instead of one dark line. const KEY := &"pastel" +func _init() -> void: + tinted_outlines = true + palette = { + "outline": Color("7a6670"), "dust": Color("fff6ea"), + "ground": Color("e2c7a6"), "ground_dark": Color("d2b591"), "ground_light": Color("eedac0"), + "pebble": Color("c2b6aa"), "pebble_light": Color("ddd4ca"), "pebble_dark": Color("a3978c"), + "dead_crack": Color("c3a585"), + "soft_top": Color("dcd5cf"), "soft_top_dark": Color("cbc3bc"), "soft_top_light": Color("eeeae6"), + "soft_face": Color("bab1ab"), "soft_face_dark": Color("a89f99"), "soft_lip": Color("f6f3f1"), + "hard_top": Color("abb6da"), "hard_top_dark": Color("99a4c9"), "hard_top_light": Color("c5ceea"), + "hard_face": Color("8e98bf"), "hard_face_dark": Color("7c86ad"), "hard_lip": Color("dde4f6"), + "hard_glint": Color("ffffff"), + "bed_top": Color("8d8292"), "bed_top_dark": Color("7e7383"), "bed_top_light": Color("9e93a3"), + "bed_face": Color("6f6574"), "bed_face_dark": Color("615866"), "bed_lip": Color("b0a6b5"), + "grass": Color("9dd28b"), "grass_dark": Color("86c177"), "grass_light": Color("bae4a7"), + "grass_edge": Color("74ae67"), + "flower_a": Color("fff2a8"), "flower_b": Color("ffffff"), "flower_c": Color("ffb6cf"), + "moss": Color("88c57b"), "moss_dark": Color("72ae67"), "moss_light": Color("abde9a"), "spore": Color("fff0a8"), + "vine": Color("80c077"), "vine_dark": Color("67a460"), "leaf": Color("94d086"), "leaf_dark": Color("76b16a"), + "stem": Color("88c37b"), "bud": Color("cae9b2"), "fibre": Color("fffdf6"), "fibre_shade": Color("ede7db"), + "seed": Color("b38d6c"), + "stone": Color("c6bfb8"), "stone_light": Color("ded9d4"), "stone_dark": Color("aaa39c"), + "wool": Color("fffaf2"), "wool_shade": Color("ede5d9"), "wool_light": Color("ffffff"), + "face": Color("8c7c76"), "hoof": Color("71635d"), + "ruin": Color("cfc8d2"), "ruin_dark": Color("b7b0bd"), "ruin_light": Color("e2dde5"), + "ruin_moss": Color("94c888"), "door": Color("62596d"), "glow": Color("ffe7a2"), "glow_light": Color("fffbe9"), + "skin": Color("fcddc3"), "skin_shade": Color("efc3a4"), "hair": Color("b27c5c"), "hair_light": Color("cb987c"), + "eye": Color("5c4852"), "pants": Color("91a2d2"), "pants_dark": Color("7c8dbf"), "boots": Color("a28068"), + "marker_near": Color("ffffff"), "marker_far": Color("ff9c8c"), + } + players = [ + Color("f08c7c"), Color("7cb0ea"), Color("f2ce6c"), Color("88cb7c"), + Color("ba98e2"), Color("76d1c8"), Color("f2a2c6"), Color("f4af7a"), + ] + + func key() -> StringName: return KEY diff --git a/game/tests/test_glow_style.gd b/game/tests/test_glow_style.gd new file mode 100644 index 0000000..b0fe856 --- /dev/null +++ b/game/tests/test_glow_style.gd @@ -0,0 +1,18 @@ +extends TestCase + + +func test_four_players_have_four_colours() -> void: + var style := GlowStyle.new() + var colours := {} + for player in 4: + colours[style.player_color(player)] = true + check_eq(colours.size(), 4, "four players, four colours") + check_eq(style.player_color(-1), style.player_color(0), "a player not in the world yet looks like the first") + + +func test_it_has_every_colour_the_warm_style_has() -> void: + var names := GlowStyle.new().palette.keys() + var warm := WarmStyle.new().palette.keys() + names.sort() + warm.sort() + check_eq(names, warm, "the same colours by name") diff --git a/game/tests/test_glow_style.gd.uid b/game/tests/test_glow_style.gd.uid new file mode 100644 index 0000000..ac93ace --- /dev/null +++ b/game/tests/test_glow_style.gd.uid @@ -0,0 +1 @@ +uid://bllgwrsoumvpl diff --git a/game/tests/test_pastel_style.gd b/game/tests/test_pastel_style.gd new file mode 100644 index 0000000..92106eb --- /dev/null +++ b/game/tests/test_pastel_style.gd @@ -0,0 +1,18 @@ +extends TestCase + + +func test_four_players_have_four_colours() -> void: + var style := PastelStyle.new() + var colours := {} + for player in 4: + colours[style.player_color(player)] = true + check_eq(colours.size(), 4, "four players, four colours") + check_eq(style.player_color(-1), style.player_color(0), "a player not in the world yet looks like the first") + + +func test_it_has_every_colour_the_warm_style_has() -> void: + var names := PastelStyle.new().palette.keys() + var warm := WarmStyle.new().palette.keys() + names.sort() + warm.sort() + check_eq(names, warm, "the same colours by name") diff --git a/game/tests/test_pastel_style.gd.uid b/game/tests/test_pastel_style.gd.uid new file mode 100644 index 0000000..45fcb8a --- /dev/null +++ b/game/tests/test_pastel_style.gd.uid @@ -0,0 +1 @@ +uid://biq70tu64w7gu