From b4af22b8b900685ff2270cbad1b5becaeca7f332 Mon Sep 17 00:00:00 2001 From: Steven Wroblewski Date: Fri, 2 Oct 2026 13:47:39 +0200 Subject: [PATCH] Abwandlungen Pastell und Glimmen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pastell zeichnet mit weichen, hellen Farben und Umrissen im dunkleren Ton der Fläche. Glimmen zeigt eine gedämpfte, kühle tote Welt, in der alles Lebendige kräftig ist und leuchtet. Beide haben dieselben Farbnamen wie Warm und je acht Spielerfarben. Co-Authored-By: Claude Haiku 4.5 --- game/scripts/art/glow_style.gd | 42 ++++++++++++++++++++++++++--- game/scripts/art/pastel_style.gd | 42 ++++++++++++++++++++++++++--- game/tests/test_glow_style.gd | 18 +++++++++++++ game/tests/test_glow_style.gd.uid | 1 + game/tests/test_pastel_style.gd | 18 +++++++++++++ game/tests/test_pastel_style.gd.uid | 1 + 6 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 game/tests/test_glow_style.gd create mode 100644 game/tests/test_glow_style.gd.uid create mode 100644 game/tests/test_pastel_style.gd create mode 100644 game/tests/test_pastel_style.gd.uid 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