Link
https://bratek.itch.io/kwiaty-wilanowa
About
At first, we had a completely different game idea centered around Warsaw’s metro, and we worked on it for the first two hours of the game jam. However, we quickly ran into problems, and development was anything but smooth from the start. I made the call to go back to the drawing board and try something entirely different—a decision that ultimately paid off.
We then moved forward with an idea I came up with, which remained unchanged until the end: a tower-defense game where flowers serve as both weapons and resources. Players can place a flower to defend the base or harvest it to craft a different one.
Our game won 3rd place at Warsaw Mermaid Jam 2024.
Crafting
At the core of the crafting system is a simple if
statement — depending on which flowers the player is holding, crafting a set combination spawns a new plant. This branching system extends up to two levels deep.
if storage[0].type == "red" and storage[1].type == "red":
Hold.show()
Hold.self_modulate = Color("ae595b")
plant_scene = load("res://scenes/plants/explosive_plant.tscn")
elif storage[0].type == "blue" and storage[1].type == "blue":
Hold.show()
Hold.self_modulate = Color("725d55")
plant_scene = load("res://scenes/plants/slowing_plant.tscn")
...
However, since any two flowers can be combined, mixing a flower that isn’t part of a predefined recipe results in a hybrid with combined properties from both plants.
As a visual cue, the colors of the two flowers are also blended. I achieved this by interpreting each hue on a color wheel and comparing their saturations, creating a completely new color that becomes more intense with each crafting.
parent, child = storage[0], storage[1]
# Adopt the child and update the parent's adopted children list
child.adopt_by(parent)
parent.adopted_children.append(child)
# Adjust hue based on the child's hue
parent_hue = parent.color.h
child_hue = child.color.h
parent_hue = (parent_hue + child_hue / 3) % 359 # Ensure hue stays within bounds
# Determine the new saturation (taking the higher value)
new_saturation = max(parent.color.s, child.color.s)
# Apply the new color to the parent
new_color = parent.color
new_color.h = parent_hue
new_color.s = new_saturation
parent.change_color(new_color)