Compare commits
5 commits
bcc939df1c
...
bd628d669e
| Author | SHA1 | Date | |
|---|---|---|---|
| bd628d669e | |||
| aaa2d76d37 | |||
| 4fe3d252b5 | |||
| 2d3df6bdca | |||
| 083a935833 |
6 changed files with 105 additions and 25 deletions
|
|
@ -11,8 +11,8 @@ var level: Level
|
|||
|
||||
func _ready() -> void:
|
||||
await owner.ready
|
||||
level = owner as Level
|
||||
assert(level != null, "The LevelState state type must be used only in the level scene. It needs the owner to be a Level node.")
|
||||
level = owner.owner as Level # ugly i know. im so sorry im so fucking sorry TODO: SAFER IMPLEMENTATION
|
||||
assert(level != null, "The LevelState state type must be used only in the level scene. It needs the owner's parent to be a Level node.")
|
||||
|
||||
|
||||
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
|
||||
|
|
|
|||
|
|
@ -121,6 +121,16 @@ p2_power_hit={
|
|||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194439,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
p1_pause={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
p2_pause={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194435,"key_label":0,"unicode":45,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://4eo7g5abxolw"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://4eo7g5abxolw"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bio2cjqps6kg1" path="res://scenes/level_director/level_director.gd" id="1_4q8ux"]
|
||||
[ext_resource type="Script" uid="uid://dikxx4j1auywf" path="res://scenes/levels/states/level_starting.gd" id="2_ywjt3"]
|
||||
|
||||
[node name="LevelDirector" type="Node"]
|
||||
[node name="LevelDirector" type="Node" node_paths=PackedStringArray("initial_state")]
|
||||
process_mode = 3
|
||||
script = ExtResource("1_4q8ux")
|
||||
initial_state = NodePath("Starting")
|
||||
metadata/_custom_type_script = "uid://dqjaxgmyxq3rx"
|
||||
|
||||
[node name="Starting" type="Node" parent="."]
|
||||
script = ExtResource("2_ywjt3")
|
||||
metadata/_custom_type_script = "uid://dioh6egp2x760"
|
||||
|
|
|
|||
52
scenes/levels/level1.tscn
Normal file
52
scenes/levels/level1.tscn
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,9 @@
|
|||
extends LevelState
|
||||
|
||||
|
||||
var trans_tween: Tween
|
||||
|
||||
|
||||
func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "restart": false}) -> void:
|
||||
get_tree().paused = true
|
||||
assert((_data["round"] as int) in range(3), "round number is invalid")
|
||||
|
|
@ -17,10 +20,6 @@ func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "rest
|
|||
level.scoreboard = Vector2i(0,0)
|
||||
level.restarted = false
|
||||
|
||||
if level.current_round + 1 == 4:
|
||||
finished.emit(FINISHING)
|
||||
return
|
||||
|
||||
assert(
|
||||
(level.player_1 != null and level.player_2 != null) or
|
||||
(level.player_1 == null and level.player_2 == null),
|
||||
|
|
@ -31,12 +30,24 @@ func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "rest
|
|||
level.player_1.queue_free()
|
||||
level.player_2.queue_free()
|
||||
|
||||
if level.ball != null:
|
||||
level.ball.queue_free()
|
||||
|
||||
assert(level.player_1 == null and level.player_2 == null, "players werent nulled")
|
||||
assert(level.ball == null, "ball wasnt nulled")
|
||||
|
||||
level.current_round += 1
|
||||
|
||||
if level.current_round == 4:
|
||||
finished.emit(FINISHING)
|
||||
return
|
||||
|
||||
level.player_1 = _instantiate_player(1)
|
||||
level.player_2 = _instantiate_player(2)
|
||||
level.ball = _instantiate_ball()
|
||||
|
||||
_trans_zoom_out(level.ball.global_position, Vector2(4,4), 2)
|
||||
|
||||
|
||||
func _instantiate_player(id: int) -> Player:
|
||||
var s: PlayerSpawnPoint = level.player_1_spawn if id == 1 else level.player_2_spawn
|
||||
|
|
@ -62,3 +73,20 @@ func _instantiate_ball() -> Ball:
|
|||
b.global_position = s.global_position
|
||||
|
||||
return b
|
||||
|
||||
|
||||
func _trans_zoom_out(pos: Vector2, zoom_in: Vector2, duration: float = 1) -> void:
|
||||
if trans_tween:
|
||||
trans_tween.kill()
|
||||
|
||||
assert(trans_tween == null, "transgender tween wasnt nulled")
|
||||
|
||||
trans_tween = create_tween()
|
||||
|
||||
level.camera.global_position = pos
|
||||
level.camera.zoom = zoom_in
|
||||
trans_tween.tween_property(level.camera, "zoom", Vector2(1,1), duration).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT)
|
||||
trans_tween.tween_callback(func() -> void:
|
||||
finished.emit(PLAYING)
|
||||
trans_tween = null
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,27 +1,11 @@
|
|||
[gd_scene load_steps=6 format=4 uid="uid://d3c6aioatcy20"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://d3c6aioatcy20"]
|
||||
|
||||
[ext_resource type="TileSet" uid="uid://doja61ouvb77l" path="res://resources/tilesets/level.tres" id="1_uu6xs"]
|
||||
[ext_resource type="PackedScene" uid="uid://642nm6c4mpxx" path="res://scenes/player/player.tscn" id="2_r0du0"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0kslsucl4xhy" path="res://scenes/tilemaps/block_tile_layer.tscn" id="2_tbgi4"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmgwv41ht3q4j" path="res://scenes/ball/ball.tscn" id="3_r0du0"]
|
||||
[ext_resource type="PackedScene" uid="uid://7nljh05o8b8e" path="res://scenes/level_camera/level_camera_2d.tscn" id="4_jyhfs"]
|
||||
|
||||
[node name="Main" type="Node"]
|
||||
|
||||
[node name="FloorTilemap" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAAEAAAAAgAAAAAAAAAEAAEAAgAAAAAAAAAEAAIAAgAAAAAAAAAEAAMAAgAAAAAAAAAEAAQAAgAAAAAAAAAEAAUAAgAAAAAAAAAEAAYAAgAAAAAAAAAEAAcAAgAAAAAAAAAEAAgAAgAAAAAAAAAEAAkAAgAAAAAAAAAEAAoAAgAAAAAAAAAEAAsAAgAAAAAAAAAEAAwAAgAAAAAAAAAEAA0AAgAAAAAAAAAEAA4AAgAAAAAAAAAFAAAAAgAAAAAAAAAFAAEAAgAAAAAAAAAFAAIAAgAAAAAAAAAFAAMAAgAAAAAAAAAFAAQAAgAAAAAAAAAFAAUAAgAAAAAAAAAFAAYAAgAAAAAAAAAFAAcAAgAAAAAAAAAFAAgAAgAAAAAAAAAFAAkAAgAAAAAAAAAFAAoAAgAAAAAAAAAFAAsAAgAAAAAAAAAFAAwAAgAAAAAAAAAFAA0AAgAAAAAAAAAFAA4AAgAAAAAAAAAGAAAAAgAAAAAAAAAGAAEAAgAAAAAAAAAGAAIAAgAAAAAAAAAGAAMAAgAAAAAAAAAGAAQAAgAAAAAAAAAGAAUAAgAAAAAAAAAGAAYAAgAAAAAAAAAGAAcAAgAAAAAAAAAGAAgAAgAAAAAAAAAGAAkAAgAAAAAAAAAGAAoAAgAAAAAAAAAGAAsAAgAAAAAAAAAGAAwAAgAAAAAAAAAGAA0AAgAAAAAAAAAGAA4AAgAAAAAAAAAHAAAAAgAAAAAAAAAHAAEAAgAAAAAAAAAHAAIAAgAAAAAAAAAHAAMAAgAAAAAAAAAHAAQAAgAAAAAAAAAHAAUAAgAAAAAAAAAHAAYAAgAAAAAAAAAHAAcAAgAAAAAAAAAHAAgAAgAAAAAAAAAHAAkAAgAAAAAAAAAHAAoAAgAAAAAAAAAHAAsAAgAAAAAAAAAHAAwAAgAAAAAAAAAHAA0AAgAAAAAAAAAHAA4AAgAAAAAAAAAIAAAAAgAAAAAAAAAIAAEAAgAAAAAAAAAIAAIAAgAAAAAAAAAIAAMAAgAAAAAAAAAIAAQAAgAAAAAAAAAIAAUAAgAAAAAAAAAIAAYAAgAAAAAAAAAIAAcAAgAAAAAAAAAIAAgAAgAAAAAAAAAIAAkAAgAAAAAAAAAIAAoAAgAAAAAAAAAIAAsAAgAAAAAAAAAIAAwAAgAAAAAAAAAIAA0AAgAAAAAAAAAIAA4AAgAAAAAAAAAJAAAAAgAAAAAAAAAJAAEAAgAAAAAAAAAJAAIAAgAAAAAAAAAJAAMAAgAAAAAAAAAJAAQAAgAAAAAAAAAJAAUAAgAAAAAAAAAJAAYAAgAAAAAAAAAJAAcAAgAAAAAAAAAJAAgAAgAAAAAAAAAJAAkAAgAAAAAAAAAJAAoAAgAAAAAAAAAJAAsAAgAAAAAAAAAJAAwAAgAAAAAAAAAJAA0AAgAAAAAAAAAJAA4AAgAAAAAAAAAKAAAAAgAAAAAAAAAKAAEAAgAAAAAAAAAKAAIAAgAAAAAAAAAKAAMAAgAAAAAAAAAKAAQAAgAAAAAAAAAKAAUAAgAAAAAAAAAKAAYAAgAAAAAAAAAKAAcAAgAAAAAAAAAKAAgAAgAAAAAAAAAKAAkAAgAAAAAAAAAKAAoAAgAAAAAAAAAKAAsAAgAAAAAAAAAKAAwAAgAAAAAAAAAKAA0AAgAAAAAAAAAKAA4AAgAAAAAAAAALAAAAAgAAAAAAAAALAAEAAgAAAAAAAAALAAIAAgAAAAAAAAALAAMAAgAAAAAAAAALAAQAAgAAAAAAAAALAAUAAgAAAAAAAAALAAYAAgAAAAAAAAALAAcAAgAAAAAAAAALAAgAAgAAAAAAAAALAAkAAgAAAAAAAAALAAoAAgAAAAAAAAALAAsAAgAAAAAAAAALAAwAAgAAAAAAAAALAA0AAgAAAAAAAAALAA4AAgAAAAAAAAAMAAAAAgAAAAAAAAAMAAEAAgAAAAAAAAAMAAIAAgAAAAAAAAAMAAMAAgAAAAAAAAAMAAQAAgAAAAAAAAAMAAUAAgAAAAAAAAAMAAYAAgAAAAAAAAAMAAcAAgAAAAAAAAAMAAgAAgAAAAAAAAAMAAkAAgAAAAAAAAAMAAoAAgAAAAAAAAAMAAsAAgAAAAAAAAAMAAwAAgAAAAAAAAAMAA0AAgAAAAAAAAAMAA4AAgAAAAAAAAANAAAAAgAAAAAAAAANAAEAAgAAAAAAAAANAAIAAgAAAAAAAAANAAMAAgAAAAAAAAANAAQAAgAAAAAAAAANAAUAAgAAAAAAAAANAAYAAgAAAAAAAAANAAcAAgAAAAAAAAANAAgAAgAAAAAAAAANAAkAAgAAAAAAAAANAAoAAgAAAAAAAAANAAsAAgAAAAAAAAANAAwAAgAAAAAAAAANAA0AAgAAAAAAAAANAA4AAgAAAAAAAAAOAAAAAgAAAAAAAAAOAAEAAgAAAAAAAAAOAAIAAgAAAAAAAAAOAAMAAgAAAAAAAAAOAAQAAgAAAAAAAAAOAAUAAgAAAAAAAAAOAAYAAgAAAAAAAAAOAAcAAgAAAAAAAAAOAAgAAgAAAAAAAAAOAAkAAgAAAAAAAAAOAAoAAgAAAAAAAAAOAAsAAgAAAAAAAAAOAAwAAgAAAAAAAAAOAA0AAgAAAAAAAAAOAA4AAgAAAAAAAAAPAAAAAgAAAAAAAAAPAAEAAgAAAAAAAAAPAAIAAgAAAAAAAAAPAAMAAgAAAAAAAAAPAAQAAgAAAAAAAAAPAAUAAgAAAAAAAAAPAAYAAgAAAAAAAAAPAAcAAgAAAAAAAAAPAAgAAgAAAAAAAAAPAAkAAgAAAAAAAAAPAAoAAgAAAAAAAAAPAAsAAgAAAAAAAAAPAAwAAgAAAAAAAAAPAA0AAgAAAAAAAAAPAA4AAgAAAAAAAAA=")
|
||||
tile_set = ExtResource("1_uu6xs")
|
||||
collision_enabled = false
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="WallTilemap" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAADAA0AAwAEAAIAAAADAAwAAwAEAAIAAAADAAsAAwAEAAIAAAADAAoAAwAEAAIAAAADAAkAAwAEAAIAAAADAAgAAwAEAAIAAAADAAcAAwAEAAIAAAADAAYAAwAEAAIAAAADAAUAAwAEAAIAAAADAAQAAwAEAAIAAAADAAMAAwAEAAIAAAADAAIAAwAEAAIAAAADAAEAAwAEAAIAAAAQAA0AAwAEAAIAAAAQAAwAAwAEAAIAAAAQAAsAAwAEAAIAAAAQAAoAAwAEAAIAAAAQAAkAAwAEAAIAAAAQAAgAAwAEAAIAAAAQAAcAAwAEAAIAAAAQAAYAAwAEAAIAAAAQAAUAAwAEAAIAAAAQAAQAAwAEAAIAAAAQAAMAAwAEAAIAAAAQAAIAAwAEAAIAAAAQAAEAAwAEAAIAAAADAAAAAwAEAAEAAAAQAAAAAwAEAAEAAAADAA4AAwAEAAMAAAAQAA4AAwAEAAMAAAAEAAoAAwAHAAQAAAAEAAsAAwAFAAQAAAAEAAwAAwAHAAAAAAAEAA0AAwAGAAUAAAAEAA4AAwAGAAcAAAAFAAsAAwAHAAQAAAAFAAwAAwAFAAQAAAAFAA0AAwAHAAUAAAAFAA4AAwAHAAcAAAAGAAwAAwAHAAQAAAAGAA0AAwAEAAEAAAAGAA4AAwAEAAMAAAANAAwAAwAHAAMAAAANAA0AAwAEAAEAAAANAA4AAwAEAAMAAAAOAAsAAwAHAAMAAAAOAAwAAwAGAAMAAAAOAA0AAwAHAAIAAAAOAA4AAwAGAAcAAAAPAAoAAwAHAAMAAAAPAAsAAwAGAAMAAAAPAAwAAwAEAAEAAAAPAA0AAwAEAAMAAAAPAA4AAwAHAAcAAAAFAAAAAwAGAAUAAAAGAAAAAwAHAAUAAAANAAAAAwAEAAEAAAAOAAAAAwAGAAAAAAAGAAIAAwAGAAQAAAAFAAMAAwAGAAQAAAAEAAQAAwAGAAQAAAANAAIAAwAFAAMAAAAOAAMAAwAFAAMAAAAPAAQAAwAFAAMAAAAOAAIAAwAGAAMAAAAPAAMAAwAGAAMAAAAFAAIAAwAFAAIAAAAEAAMAAwAFAAIAAAANAAEAAwAEAAMAAAAGAAEAAwAHAAIAAAAEAAEAAwAEAAQAAAAFAAEAAwAHAAcAAAAEAAAAAwAEAAAAAAAPAAIAAwAEAAQAAAAOAAEAAwAHAAAAAAAEAAIAAwAEAAUAAAAPAAEAAwAGAAMAAAAPAAAAAwAGAAMAAAAEAAcAAAAAAAAAAAAEAAYAAAAAAAAAAAAFAAYAAAAAAAAAAAAGAAYAAAAAAAAAAAAHAAYAAAAAAAAAAAAIAAYAAAAAAAAAAAAJAAYAAAAAAAAAAAAKAAYAAAAAAAAAAAALAAYAAAAAAAAAAAAMAAYAAAAAAAAAAAANAAYAAAAAAAAAAAAOAAYAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAOAAcAAAAAAAAAAAANAAcAAAAAAAAAAAAMAAcAAAAAAAAAAAALAAcAAAAAAAAAAAAKAAcAAAAAAAAAAAAJAAcAAAAAAAAAAAAIAAcAAAAAAAAAAAAHAAcAAAAAAAAAAAAGAAcAAAAAAAAAAAAFAAcAAAAAAAAAAAA=")
|
||||
tile_set = ExtResource("1_uu6xs")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="BlockTileLayer" parent="." instance=ExtResource("2_tbgi4")]
|
||||
tile_map_data = PackedByteArray("AAAHAA0ABAAAAAcAAAAIAA0ABAAAAAcAAAAJAA0ABAAAAAcAAAAKAA0ABAAAAAcAAAALAA0ABAAAAAcAAAAMAA0ABAAAAAcAAAAHAAEABAAAAAcAAAAIAAEABAAAAAcAAAAJAAEABAAAAAcAAAAKAAEABAAAAAcAAAALAAEABAAAAAcAAAAMAAEABAAAAAcAAAA=")
|
||||
|
||||
[node name="Player1" parent="." instance=ExtResource("2_r0du0")]
|
||||
position = Vector2(141, 184)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue