minijam-166/scripts/map.gd
2024-09-01 23:14:52 +02:00

54 lines
1.3 KiB
GDScript

class_name Map
extends Node2D
const OUT_OF_BOUND_DIST = 2000
signal win_game
@export var n_animals_to_liberate := 3
func _ready():
var map_size = GameTerrain.TERRAIN_SIZE * GameTerrain.MAP_RATIO
for polygon in [$Ground, $Fertility]:
polygon.set_polygon(PackedVector2Array([
Vector2(0,0),
Vector2(map_size.x, 0),
Vector2(map_size.x, map_size.y),
Vector2(0, map_size.y),
]))
polygon.material.set_shader_parameter("data_texture", GameTerrain.texture)
polygon.material.set_shader_parameter(
"data_texture_size",
GameTerrain.TERRAIN_SIZE * GameTerrain.MAP_RATIO
)
$OutOfBound.set_polygon(PackedVector2Array([
Vector2(-OUT_OF_BOUND_DIST,-OUT_OF_BOUND_DIST),
Vector2(map_size.x + OUT_OF_BOUND_DIST, -OUT_OF_BOUND_DIST),
Vector2(map_size.x + OUT_OF_BOUND_DIST, map_size.y + OUT_OF_BOUND_DIST),
Vector2(-OUT_OF_BOUND_DIST, map_size.y + OUT_OF_BOUND_DIST),
]))
func _on_gui_scanner_selected(type : Scanners.Type):
$Scanners.select_scanner(type)
func _on_animal_liberated() -> void:
n_animals_to_liberate -= 1
if n_animals_to_liberate == 0:
emit_signal("win_game")
func _on_animal_2_liberated() -> void:
n_animals_to_liberate -= 1
if n_animals_to_liberate == 0:
emit_signal("win_game")
func _on_animal_3_liberated() -> void:
n_animals_to_liberate -= 1
if n_animals_to_liberate == 0:
emit_signal("win_game")