diff --git a/vegeconda/door.gd b/vegeconda/door.gd index 0dd35e3..31eb3ac 100644 --- a/vegeconda/door.gd +++ b/vegeconda/door.gd @@ -10,12 +10,12 @@ enum DoorState {OPENED, CLOSED, OPENING, CLOSING} @export var state: DoorState -var ANIMATIONS_BY_TYPE : Dictionary = { +const ANIMATIONS_BY_TYPE := { DoorType.BOTTOM_DOOR: "bottom_door", DoorType.TOP_DOOR: "top_door", } -var ANIMATIONS_BY_STATE : Dictionary = { +const ANIMATIONS_BY_STATE := { DoorState.OPENED: "opened", DoorState.CLOSED: "closed", DoorState.OPENING: "opening", @@ -33,7 +33,7 @@ func _ready() -> void: func _play_animation() -> void: - var animation : String = "%s_%s" % [ + var animation := "%s_%s" % [ ANIMATIONS_BY_TYPE[type], ANIMATIONS_BY_STATE[state] ] diff --git a/vegeconda/level.gd b/vegeconda/level.gd index 4767fb1..c0234b9 100644 --- a/vegeconda/level.gd +++ b/vegeconda/level.gd @@ -1,37 +1,37 @@ extends Node2D -@export_range(2, 17) var top_door_x: int = 2 -@export_range(2, 17) var bottom_door_x: int = 2 +@export_range(2, 17) var top_door_x := 2 +@export_range(2, 17) var bottom_door_x := 2 -const DOOR = preload("res://door.tscn") +const DOOR := preload("res://door.tscn") -const TOP_LEFT_FOREST = Vector2i(0,0) -const TOP_RIGHT_FOREST = Vector2i(3,0) -const BOTTOM_LEFT_FOREST = Vector2i(0,3) -const BOTTOM_RIGHT_FOREST = Vector2i(3,3) +const TOP_LEFT_FOREST := Vector2i(0,0) +const TOP_RIGHT_FOREST := Vector2i(3,0) +const BOTTOM_LEFT_FOREST := Vector2i(0,3) +const BOTTOM_RIGHT_FOREST := Vector2i(3,3) -const TOP_FORESTS = [ Vector2i(1,0), Vector2i(2,0), Vector2i(1,1), Vector2i(2,1) ] -const BOTTOM_FORESTS = [ Vector2i(1,2), Vector2i(2,2), Vector2i(1,3), Vector2i(2,3) ] +const TOP_FORESTS := [ Vector2i(1,0), Vector2i(2,0), Vector2i(1,1), Vector2i(2,1) ] +const BOTTOM_FORESTS := [ Vector2i(1,2), Vector2i(2,2), Vector2i(1,3), Vector2i(2,3) ] -const LEFT_FORESTS = [ Vector2i(0,1), Vector2i(0,2) ] -const RIGHT_FORESTS = [ Vector2i(3,1), Vector2i(3,2) ] +const LEFT_FORESTS := [ Vector2i(0,1), Vector2i(0,2) ] +const RIGHT_FORESTS := [ Vector2i(3,1), Vector2i(3,2) ] -const TOP_LEFT_DOOR = Vector2i(4,2) -const TOP_RIGHT_DOOR = Vector2i(4,3) -const BOTTOM_LEFT_DOOR = Vector2i(4,0) -const BOTTOM_RIGHT_DOOR = Vector2i(4,1) +const TOP_LEFT_DOOR := Vector2i(4,2) +const TOP_RIGHT_DOOR := Vector2i(4,3) +const BOTTOM_LEFT_DOOR := Vector2i(4,0) +const BOTTOM_RIGHT_DOOR := Vector2i(4,1) -const CORNER_FIELDS = [ Vector2i(4,2), Vector2i(4,3) ] -const TOP_FIELDS = [ +const CORNER_FIELDS := [ Vector2i(4,2), Vector2i(4,3) ] +const TOP_FIELDS := [ Vector2i(0,2), Vector2i(1,2), Vector2i(2,2), Vector2i(0,3), Vector2i(1,3), Vector2i(2,3), ] -const LEFT_FIELDS = [ +const LEFT_FIELDS := [ Vector2i(3,0), Vector2i(4,0), Vector2i(3,1), Vector2i(4,1), Vector2i(3,2), Vector2i(3,3), ] -const CENTER_FIELDS = [ +const CENTER_FIELDS := [ Vector2i(0,0), Vector2i(1,0), Vector2i(2,0), Vector2i(0,1), Vector2i(1,1), Vector2i(2,1), ] @@ -78,8 +78,8 @@ func _create_field() -> void: for j in range(2, 10): $TileMapLayer.set_cell(Vector2i(i,j), 1, CENTER_FIELDS[randi() % CENTER_FIELDS.size()]) -func _create_top_door(): - const y = 0 +func _create_top_door() -> void: + const y := 0 $TileMapLayer.set_cell(Vector2i(top_door_x-1,y), 0, TOP_LEFT_DOOR) $TileMapLayer.set_cell(Vector2i(top_door_x,y), 1, LEFT_FIELDS[randi() % LEFT_FIELDS.size()]) $TileMapLayer.set_cell(Vector2i(top_door_x,y+1), 1, CENTER_FIELDS[randi() % LEFT_FIELDS.size()]) @@ -98,7 +98,7 @@ func _create_top_door(): $CollisionBoxTopRight.position.x -= $CollisionBoxTopRight.shape.size.x/2 - 8 -func _create_bottom_door(): +func _create_bottom_door() -> void: const y = 10 $TileMapLayer.set_cell(Vector2i(bottom_door_x-1,y), 0, BOTTOM_LEFT_DOOR) $TileMapLayer.set_cell(Vector2i(bottom_door_x,y), 1, LEFT_FIELDS[randi() % LEFT_FIELDS.size()]) @@ -110,9 +110,30 @@ func _create_bottom_door(): bottom_door.position = Vector2i(bottom_door_x,y)*16 add_child(bottom_door) - $CollisionBoxBottomLeft.shape.size.x = (bottom_door_x - 1) * 16 $CollisionBoxBottomLeft.position.x += $CollisionBoxBottomLeft.shape.size.x/2 - 8 $CollisionBoxBottomRight.shape.size.x = (20 - bottom_door_x - 2) * 16 $CollisionBoxBottomRight.position.x -= $CollisionBoxBottomRight.shape.size.x/2 - 8 + + +func open_top_door() -> void: + if top_door: + top_door.open() + + +func close_top_door() -> void: + if top_door: + top_door.close() + + +func open_bottom_door() -> void: + if bottom_door: + bottom_door.open() + + +func close_bottom_door() -> void: + if bottom_door: + bottom_door.close() + + diff --git a/vegeconda/pickup.gd b/vegeconda/pickup.gd index 4b31162..05b4e2b 100644 --- a/vegeconda/pickup.gd +++ b/vegeconda/pickup.gd @@ -4,20 +4,20 @@ extends StaticBody2D enum PickupType {CHERRY, FLY_AGARIC, GREEN_APPLE, RED_APPLE} -@export var type: PickupType +@export var type: PickupType = PickupType.RED_APPLE enum PickupState {PREPARING, SHOWING_UP, IDLING, HIGHLIGHTING} @export var state: PickupState = PickupState.PREPARING -var ANIMATIONS_BY_TYPE : Dictionary = { +const ANIMATIONS_BY_TYPE := { PickupType.CHERRY: "cherry", PickupType.FLY_AGARIC: "fly_agaric", PickupType.GREEN_APPLE: "green_apple", PickupType.RED_APPLE: "red_apple", } -var ANIMATIONS_BY_STATE : Dictionary = { +const ANIMATIONS_BY_STATE := { PickupState.PREPARING: "preparing", PickupState.SHOWING_UP: "showing_up", PickupState.IDLING: "idling",