Fix merge conflicts when trying to merge main into forest

This commit is contained in:
Jasmine Hyder
2021-12-08 14:43:39 -06:00
131 changed files with 3271 additions and 294 deletions

View File

@@ -0,0 +1,24 @@
extends Node2D
# Declare member variables here. Examples:
# var a: int = 2
# var b: String = "text"
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta: float) -> void:
# pass
func _on_AnimationPlayer_animation_finished(anim_name: String) -> void:
$GemSprite.visible = false
func _on_AnimationPlayer_animation_started(anim_name: String) -> void:
$GemSprite.visible = true

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Assets/Resources_Basic.png" type="Texture" id=1]
[ext_resource path="res://Levels/Interactables/Gem.gd" type="Script" id=2]
[sub_resource type="Animation" id=3]
resource_name = "rise"
length = 1.2
tracks/0/type = "value"
tracks/0/path = NodePath("GemSprite:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.3, 0.8, 1.2 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ), Vector2( 0, -10 ), Vector2( 0, -18 ), Vector2( 0, -20 ) ]
}
[node name="Gem" type="Node2D"]
script = ExtResource( 2 )
[node name="GemSprite" type="Sprite" parent="."]
position = Vector2( 0, -20 )
texture = ExtResource( 1 )
region_enabled = true
region_rect = Rect2( 2, 50, 20, 20 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/rise = SubResource( 3 )
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"]

View File

@@ -0,0 +1,23 @@
extends StaticBody2D
export var alignment: String = 'V'
func _ready() -> void:
if not alignment in ['V', 'H']:
print('Silver Barrier rotation needs to be "V" or "H"')
elif alignment == 'H':
rotation_degrees = 90
return
func _on_unlock_body_entered(body: Node) -> void:
if not 'player' in body.get_groups():
return
if body.has_item('Silver Key'):
body.remove_item('Silver Key')
$Sprite.animation = 'open'
$Collision.set_deferred('disabled', true)
$Unlock.set_deferred('monitoring', false)
return

View File

@@ -0,0 +1,51 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://Sprites/Levels/Interactables/Silver_Barrier_Open.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Levels/Interactables/Silver_Barrier_Closed.png" type="Texture" id=2]
[ext_resource path="res://Levels/Interactables/Silver Barrier.gd" type="Script" id=3]
[sub_resource type="SpriteFrames" id=1]
animations = [ {
"frames": [ ExtResource( 1 ) ],
"loop": true,
"name": "open",
"speed": 5.0
}, {
"frames": [ ExtResource( 2 ) ],
"loop": true,
"name": "closed",
"speed": 5.0
} ]
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 6, 8 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 12, 10 )
[node name="Silver Barrier" type="StaticBody2D"]
collision_mask = 0
script = ExtResource( 3 )
[node name="Sprite" type="AnimatedSprite" parent="."]
light_mask = 8
frames = SubResource( 1 )
animation = "closed"
[node name="Collision" type="CollisionShape2D" parent="."]
light_mask = 0
shape = SubResource( 2 )
[node name="Unlock" type="Area2D" parent="."]
light_mask = 0
collision_layer = 0
collision_mask = 2
input_pickable = false
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Unlock"]
visible = false
light_mask = 0
shape = SubResource( 3 )
[connection signal="body_entered" from="Unlock" to="." method="_on_unlock_body_entered"]

View File

@@ -0,0 +1,9 @@
extends Area2D
func _on_silver_key_pickup_body_entered(body: Node):
if 'player' in body.get_groups():
body.add_item('Silver Key')
call_deferred('queue_free')
return

View File

@@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Levels/Interactables/Silver_Key.png" type="Texture" id=1]
[ext_resource path="res://Levels/Interactables/Silver Key Pickup.gd" type="Script" id=2]
[sub_resource type="CircleShape2D" id=1]
[node name="Silver Key Pickup" type="Area2D"]
collision_layer = 0
collision_mask = 2
monitorable = false
script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
centered = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2( 8, 8 )
shape = SubResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_silver_key_pickup_body_entered"]

View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://Sprites/Assets/blue_star.png" type="Texture" id=1]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 7.95021, 8.07351 )
[node name="Star" type="RigidBody2D"]
collision_layer = 4
collision_mask = 0
mode = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )

View File

@@ -0,0 +1,33 @@
extends Sprite
var is_player_inside: bool = false
var is_opened: bool = false
var has_gem: bool = true
signal gem_collected
# Declare member variables here. Examples:
# var a: int = 2
# var b: String = "text"
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta: float) -> void:
# pass
func _on_Player_Detector_area_entered(area: Area2D) -> void:
if area.get_parent().name == 'Player':
if is_opened == false:
$chestClosed.visible = false
$chestOpened.visible = true
$Gem.visible = true
$Gem/AnimationPlayer.play('rise')
is_opened = true
has_gem = false
emit_signal('gem_collected')

View File

@@ -0,0 +1,36 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://Sprites/Levels/Interactables/Treasure_Chest_Open.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Levels/Interactables/Treasure_Chest_Closed.png" type="Texture" id=2]
[ext_resource path="res://Levels/Interactables/Gem.tscn" type="PackedScene" id=3]
[ext_resource path="res://Levels/Interactables/Treasure Chest.gd" type="Script" id=4]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 21.3333, 17.3333 )
[node name="TreasureChest" type="Sprite" groups=["enemies"]]
script = ExtResource( 4 )
[node name="chestOpened" type="Sprite" parent="."]
visible = false
texture = ExtResource( 1 )
[node name="chestClosed" type="Sprite" parent="."]
texture = ExtResource( 2 )
[node name="Gem" parent="." instance=ExtResource( 3 )]
visible = false
[node name="Player Detector" type="Area2D" parent="."]
collision_layer = 0
collision_mask = 2
input_pickable = false
monitorable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Player Detector"]
visible = false
position = Vector2( 1, -1 )
scale = Vector2( 1.5, 1.5 )
shape = SubResource( 1 )
[connection signal="area_entered" from="Player Detector" to="." method="_on_Player_Detector_area_entered"]

17
Levels/Level 1.gd Normal file
View File

@@ -0,0 +1,17 @@
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$YSort/Player.load_hud($HUD)
return
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass

66
Levels/Level 1.tscn Normal file
View File

@@ -0,0 +1,66 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://Sprites/Assets/galaxy_background.png" type="Texture" id=1]
[ext_resource path="res://GUI/HUD.tscn" type="PackedScene" id=2]
[ext_resource path="res://GUI/Pause Screen.tscn" type="PackedScene" id=3]
[ext_resource path="res://Player/Player.tscn" type="PackedScene" id=4]
[ext_resource path="res://Levels/Level 1.gd" type="Script" id=5]
[ext_resource path="res://Enemies/Dark Matter.tscn" type="PackedScene" id=6]
[ext_resource path="res://Levels/Interactables/Star.tscn" type="PackedScene" id=7]
[node name="Space Level" type="Node2D"]
script = ExtResource( 5 )
[node name="TextureRect" type="TextureRect" parent="."]
margin_right = 160.0
margin_bottom = 90.0
rect_scale = Vector2( 2.5, 2.5 )
texture = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="YSort" type="YSort" parent="."]
[node name="Player" parent="YSort" instance=ExtResource( 4 )]
position = Vector2( 178.673, 89.1493 )
[node name="Camera2D" type="Camera2D" parent="YSort/Player"]
current = true
limit_left = 0
limit_top = 0
limit_right = 400
limit_bottom = 225
[node name="Enemies" type="YSort" parent="YSort"]
[node name="Dark Matter" parent="YSort/Enemies" instance=ExtResource( 6 )]
position = Vector2( 97.0154, 82.0323 )
collision_mask = 0
[node name="Dark Matter2" parent="YSort/Enemies" instance=ExtResource( 6 )]
position = Vector2( 205.006, 50.8542 )
[node name="Dark Matter3" parent="YSort/Enemies" instance=ExtResource( 6 )]
position = Vector2( 321.547, 98.5301 )
[node name="Dark Matter4" parent="YSort/Enemies" instance=ExtResource( 6 )]
position = Vector2( 72.0435, 202.887 )
[node name="Dark Matter5" parent="YSort/Enemies" instance=ExtResource( 6 )]
position = Vector2( 289.233, 198.649 )
[node name="Stars" type="YSort" parent="YSort"]
[node name="Star" parent="YSort/Stars" instance=ExtResource( 7 )]
position = Vector2( 140.092, 133.724 )
[node name="Star2" parent="YSort/Stars" instance=ExtResource( 7 )]
position = Vector2( 278.639, 33.3731 )
[node name="Star3" parent="YSort/Stars" instance=ExtResource( 7 )]
position = Vector2( 323.666, 161.038 )
[node name="HUD" parent="." instance=ExtResource( 2 )]
[node name="Pause Screen" parent="." instance=ExtResource( 3 )]

View File

@@ -3,22 +3,22 @@ extends Node2D
var gems: int = 4
func _ready() -> void:
#$YSort/Player.position = get_viewport_rect().size / 2
$YSort/Player.load_hud($HUD)
return
#$YSort/Player.position = get_viewport_rect().size / 2
$YSort/Player.load_hud($HUD)
return
func _on_TreasureChest_gem_collected() -> void:
gems -= 1
if gems == 0:
$YSort/Items/Door/doorClosed.visible = false
$YSort/Items/Door/doorOpened.visible = true
$DoorCollision.layers = 5
gems -= 1
if gems == 0:
$YSort/Items/Door/doorClosed.visible = false
$YSort/Items/Door/doorOpened.visible = true
$DoorCollision.layers = 5
func _on_NextArea_area_entered(area: Area2D) -> void:
if area.get_parent().name == 'Player':
$YSort/Player.position.x = 195
$YSort/Player.position.y = -335
if area.get_parent().name == 'Player':
$YSort/Player.position.x = 195
$YSort/Player.position.y = -335

View File

@@ -1,10 +1,25 @@
[gd_scene load_steps=16 format=2]
[gd_scene load_steps=31 format=2]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_12.png" type="Texture" id=1]
[ext_resource path="res://Enemies/Hellhound.tscn" type="PackedScene" id=2]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_03.png" type="Texture" id=3]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_09.png" type="Texture" id=4]
[ext_resource path="res://Levels/Objects/Door.tscn" type="PackedScene" id=5]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_10.png" type="Texture" id=6]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_04.png" type="Texture" id=7]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_06.png" type="Texture" id=8]
[ext_resource path="res://Levels/Level 4.gd" type="Script" id=9]
[ext_resource path="res://Sprites/Assets/tileset_mk_16_16_nature_tileset_godot.tres" type="TileSet" id=15]
[ext_resource path="res://Levels/Objects/TreasureChest.tscn" type="PackedScene" id=16]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_01.png" type="Texture" id=10]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_13.png" type="Texture" id=11]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_14.png" type="Texture" id=12]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_11.png" type="Texture" id=13]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_08.png" type="Texture" id=14]
[ext_resource path="res://Resources/Level_4_Tileset.tres" type="TileSet" id=15]
[ext_resource path="res://Levels/Interactables/Treasure Chest.tscn" type="PackedScene" id=16]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_02.png" type="Texture" id=17]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_07.png" type="Texture" id=18]
[ext_resource path="res://Sprites/Assets/Transparent_16x16.png" type="Texture" id=19]
[ext_resource path="res://Sprites/Levels/Environment/Fire_Column_Medium_05.png" type="Texture" id=20]
[ext_resource path="res://Player/Player.tscn" type="PackedScene" id=21]
[ext_resource path="res://GUI/Pause Screen.tscn" type="PackedScene" id=22]
[ext_resource path="res://GUI/HUD.tscn" type="PackedScene" id=23]
@@ -13,7 +28,7 @@
[sub_resource type="SpriteFrames" id=1]
animations = [ {
"frames": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"frames": [ ExtResource( 10 ), ExtResource( 17 ), ExtResource( 3 ), ExtResource( 7 ), ExtResource( 20 ), ExtResource( 8 ), ExtResource( 18 ), ExtResource( 14 ), ExtResource( 4 ), ExtResource( 6 ), ExtResource( 13 ), ExtResource( 1 ), ExtResource( 11 ), ExtResource( 12 ) ],
"loop": true,
"name": "default",
"speed": 10.0
@@ -24,6 +39,7 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
[sub_resource type="TileSet" id=3]
0/name = "transparent16x16.png 0"
0/texture = ExtResource( 19 )
0/tex_offset = Vector2( 0, 0 )
0/modulate = Color( 1, 1, 1, 1 )
0/region = Rect2( 0, 0, 16, 16 )
@@ -70,21 +86,20 @@ tile_data = PoolIntArray( -2359292, 0, 5, -2359291, 0, 196610, -2359290, 0, 1966
[node name="Fire3" type="AnimatedSprite" parent="."]
position = Vector2( -607.628, -210.601 )
frames = SubResource( 1 )
frame = 8
frame = 4
playing = true
offset = Vector2( 679.819, 333.222 )
[node name="Fire2" type="AnimatedSprite" parent="."]
position = Vector2( -543.25, -212.563 )
frames = SubResource( 1 )
frame = 11
frame = 7
playing = true
offset = Vector2( 679.819, 333.222 )
[node name="Fire1" type="AnimatedSprite" parent="."]
position = Vector2( -479.806, -214.167 )
frames = SubResource( 1 )
frame = 4
playing = true
offset = Vector2( 679.819, 333.222 )

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://Sprites/Assets/DoorOpen.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Assets/DoorClosed.png" type="Texture" id=2]
[ext_resource path="res://Sprites/Levels/Objects/Gate_Open.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Levels/Objects/Gate_Closed.png" type="Texture" id=2]
[node name="Door" type="Sprite"]
@@ -10,4 +11,4 @@ texture = ExtResource( 2 )
[node name="doorOpened" type="Sprite" parent="."]
visible = false
texture = ExtResource( 1 )
texture = ExtResource( 1 )

View File

@@ -5,14 +5,15 @@ export var relative_x_tiles: int
export var relative_y_tiles: int
func _on_spawn_trap_area_entered(_area: Area2D) -> void:
set_deferred('monitoring', false)
$Tile.set_deferred('disabled', true)
func _on_spawn_trap_body_entered(body: Node) -> void:
if body.is_in_group('player'):
set_deferred('monitoring', false)
var enemy: KinematicBody2D = load(enemy_path).instance()
enemy.position.x = position.x + (relative_x_tiles * 16 + 8)
enemy.position.y = position.y + (relative_y_tiles * 16 + 8)
var enemy: KinematicBody2D = load(enemy_path).instance()
enemy.position.x = position.x + (relative_x_tiles * 16 + 8)
enemy.position.y = position.y + (relative_y_tiles * 16 + 8)
var enemies: YSort = get_tree().get_current_scene().get_node('YSort/Enemies')
enemies.call_deferred('add_child', enemy)
var enemies: YSort = get_tree().get_current_scene().get_node('YSort/Enemies')
enemies.call_deferred('add_child', enemy)
call_deferred('queue_free')
return

View File

@@ -14,7 +14,8 @@ monitorable = false
script = ExtResource( 1 )
[node name="Tile" type="CollisionShape2D" parent="."]
light_mask = 0
position = Vector2( 8, 8 )
shape = SubResource( 1 )
[connection signal="area_entered" from="." to="." method="_on_spawn_trap_area_entered"]
[connection signal="body_entered" from="." to="." method="_on_spawn_trap_body_entered"]