Fixing merge conflicts

This commit is contained in:
Jasmine Hyder
2021-12-09 20:52:13 -06:00
100 changed files with 2347 additions and 537 deletions

View File

@@ -3,4 +3,15 @@ extends Node2D
func _ready() -> void:
$YSort/Player.load_hud($HUD)
for level_portal in $'YSort/Level Portals'.get_children():
if level_portal.connect('enter_level', self, 'enter_level') != OK:
print('ERROR: Level Portal "enter_level" signal already connected.')
return
func enter_level(level: String) -> void:
if get_tree().change_scene(level) != OK:
print('ERROR: Hub World failed to change scene to Level.')
queue_free()
return

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
extends Area2D
signal coin_grabbed
func _on_Node2D_body_entered(body: Node) -> void:
if body.get_name() == 'Player':
emit_signal("coin_grabbed")
print("coin!")
queue_free()

View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Levels/Interactables/Coin.gd" type="Script" id=1]
[ext_resource path="res://Sprites/Assets/coin.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
radius = 6.38067
[node name="coin" type="Area2D"]
script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
position = Vector2( 0, 1 )
texture = ExtResource( 2 )
[node name="coin" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_Node2D_body_entered"]

View File

@@ -0,0 +1,11 @@
extends Area2D
signal enter_level(level)
export var level_path: String = 'res://Levels/LEVEL.tscn'
func _on_level_portal_body_entered(body: Node) -> void:
if body.is_in_group('player'):
emit_signal('enter_level', level_path)
return

View File

@@ -0,0 +1,28 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Levels/Interactables/Level_Portal.png" type="Texture" id=1]
[ext_resource path="res://Levels/Interactables/Level Portal.gd" type="Script" id=2]
[sub_resource type="CapsuleShape2D" id=1]
radius = 8.0
height = 18.0
[node name="Level Portal" type="Area2D"]
light_mask = 0
collision_layer = 0
collision_mask = 2
input_pickable = false
monitorable = false
script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
offset = Vector2( 0, -8 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
light_mask = 0
position = Vector2( 0, -8 )
shape = SubResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_level_portal_body_entered"]

View File

@@ -38,10 +38,10 @@ shape = SubResource( 2 )
[node name="Unlock" type="Area2D" parent="."]
light_mask = 0
collision_layer = 0
collision_mask = 2
input_pickable = false
monitorable = false
collision_layer = 0
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Unlock"]
visible = false

View File

@@ -1,10 +1,27 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Sprites/Assets/blue_star.png" type="Texture" id=1]
[ext_resource path="res://Sprites/Assets/bule_star_sprite_spread.png" type="Texture" id=1]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 7.95021, 8.07351 )
[sub_resource type="Animation" id=2]
resource_name = "Sparkle"
length = 2.0
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.5, 1, 1.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ 0, 1, 2, 3 ]
}
[node name="Star" type="RigidBody2D"]
collision_layer = 4
collision_mask = 0
@@ -15,3 +32,10 @@ shape = SubResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
hframes = 4
frame = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "Sparkle"
method_call_mode = 1
anims/Sparkle = SubResource( 2 )

View File

@@ -36,7 +36,6 @@ limit_bottom = 225
[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 )
@@ -64,3 +63,12 @@ position = Vector2( 323.666, 161.038 )
[node name="HUD" parent="." instance=ExtResource( 2 )]
[node name="Pause Screen" parent="." instance=ExtResource( 3 )]
[node name="Map_boundary" type="RigidBody2D" parent="."]
collision_layer = 7
collision_mask = 7
mode = 1
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Map_boundary"]
build_mode = 1
polygon = PoolVector2Array( 0.762451, -22.0982, 427.859, -18.7308, 425.053, 245.609, -22.248, 248.976, -21.1256, -22.6594, -0.589813, -21.9661, -0.589806, 225.272, 400.359, 224.843, 399.969, -0.312477, 0.455406, -0.154987 )

56
Levels/Level 3.gd Normal file
View File

@@ -0,0 +1,56 @@
extends Node2D
onready var coin = preload('res://Levels/Interactables/Coin.tscn')
var screensize
var score = 0
func _ready() -> void:
$YSort/Player.load_hud($HUD)
screensize = get_viewport_rect().size
spawn_coins(8)
return
func spawn_coins(num: int) -> void:
for _i in range(num):
var g: Node = coin.instance()
$'coin_container'.add_child(g)
g.connect('coin_grabbed', self, '_on_coin_grabbed')
#g.set_pos(Vector2(rand_range(0, screensize.x - 40), rand_range(0, screensize.y - 40)))
g.position = Vector2(rand_range(0, screensize.x - 40), rand_range(0, screensize.y - 40))
return
func _on_coin_grabbed() -> void:
score += 1
print(score)
$'Level 3 HUD/Label'.set_text(str(score) + '/5')
return
func _timer_out() -> void:
get_tree().change_scene('res://Levels/Hub World.tscn')
return
func _on_TreasureChest_ice_key_collected() -> void:
$YSort/Door/doorClosed.visible = false
$YSort/Door/doorOpened.visible = true
$YSort/DoorCollision.layers = 5
return
func _on_DoorDetector_body_entered(body: Node) -> void:
if body.is_in_group('player'):
print('WIN WIN WIN')
get_tree().change_scene('res://Levels/Hub World.tscn')
return
func _on_DoorDetector_area_entered(area: Area2D) -> void:
if area.get_parent().name == 'Player':
print('WIN WIN WIN')
get_tree().change_scene('res://Levels/Hub World.tscn')
return

227
Levels/Level 3.tscn Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

16
Levels/Objects/IceDoor.gd Normal file
View File

@@ -0,0 +1,16 @@
extends Sprite
# 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

View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=3 format=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="IceDoor" type="Sprite"]
[node name="doorClosed" type="Sprite" parent="."]
modulate = Color( 0.00392157, 0.905882, 1, 1 )
self_modulate = Color( 0.0352941, 0.705882, 1, 1 )
position = Vector2( 0.530327, 0.0883861 )
scale = Vector2( 0.742002, 0.706551 )
texture = ExtResource( 2 )
[node name="doorOpened" type="Sprite" parent="."]
visible = false
modulate = Color( 0.00392157, 0.905882, 1, 1 )
self_modulate = Color( 0.0352941, 0.705882, 1, 1 )
position = Vector2( 0.353549, 0.97227 )
scale = Vector2( 0.732446, 0.669794 )
texture = ExtResource( 1 )

24
Levels/Objects/Key.gd Normal file
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:
$IceKeySprite.visible = false
func _on_AnimationPlayer_animation_started(anim_name: String) -> void:
$IceKeySprite.visible = true

21
Levels/Objects/Key.tscn Normal file
View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Levels/Objects/icekey.png" type="Texture" id=1]
[ext_resource path="res://Levels/Interactables/Gem.gd" type="Script" id=2]
[sub_resource type="Animation" id=1]
resource_name = "rise"
length = 1.2
[node name="Key" type="Node2D"]
script = ExtResource( 2 )
[node name="IceKeySprite" type="Sprite" parent="."]
position = Vector2( -0.0417144, 0.145997 )
scale = Vector2( 0.760146, 0.732771 )
texture = ExtResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/rise = SubResource( 1 )
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"]

View File

@@ -0,0 +1,34 @@
extends Sprite
var is_player_inside: bool = false
var is_opened: bool = false
var has_key: bool = true
signal ice_key_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:
print(get_parent().get_parent().score)
if area.get_parent().name == 'Player' and get_parent().get_parent().score >= 5:
if is_opened == false:
$chestClosed.visible = false
$chestOpened.visible = true
$Key.visible = true
$Key/AnimationPlayer.play("rise")
is_opened = true
has_key = false
emit_signal("ice_key_collected")

View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://Levels/Interactables/Treasure Chest.gd" type="Script" id=1]
[ext_resource path="res://Levels/Objects/Key.tscn" type="PackedScene" id=2]
[ext_resource path="res://Sprites/Levels/Interactables/Treasure_Chest_Closed.png" type="Texture" id=3]
[ext_resource path="res://Sprites/Levels/Interactables/Treasure_Chest_Open.png" type="Texture" id=4]
[ext_resource path="res://Levels/Objects/Key.gd" type="Script" id=5]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 21.3333, 17.3333 )
[node name="TreasureChest" type="Sprite" groups=["enemies"]]
script = ExtResource( 1 )
[node name="chestOpened" type="Sprite" parent="."]
visible = false
texture = ExtResource( 4 )
[node name="chestClosed" type="Sprite" parent="."]
texture = ExtResource( 3 )
[node name="Key" parent="." instance=ExtResource( 2 )]
visible = false
script = ExtResource( 5 )
[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"]

View File

@@ -3,18 +3,15 @@
[ext_resource path="res://Sprites/Assets/forestTreeBig.png" type="Texture" id=1]
[sub_resource type="CapsuleShape2D" id=1]
radius = 6.0
height = 10.0
radius = 5.0
height = 9.0
[node name="Tree" type="Node2D"]
[node name="Tree" type="StaticBody2D"]
[node name="Sprite" type="Sprite" parent="."]
modulate = Color( 0.870588, 0.215686, 0.215686, 1 )
texture = ExtResource( 1 )
offset = Vector2( 0, -5 )
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource( 1 )

BIN
Levels/Objects/icekey.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icekey.png-527d7dd5cd660f0970e78efce0eda1a1.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Levels/Objects/icekey.png"
dest_files=[ "res://.import/icekey.png-527d7dd5cd660f0970e78efce0eda1a1.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

35
Levels/SlowTime.gd Normal file
View File

@@ -0,0 +1,35 @@
extends Node
signal unfreeze
const END_VALUE: int = 1
var is_active: bool = false
var time_start: int
var duration_ms: int
var start_value: float
func start(duration: int = 1, strength: float = 0.9):
time_start = OS.get_ticks_msec()
duration_ms = duration * 1000
start_value = 1 - strength
Engine.time_scale = start_value
is_active = true
func _process(_delta: float) -> void:
if is_active:
var current_time = OS.get_ticks_msec() - time_start
var value = circl_ease_in(current_time, start_value, END_VALUE, duration_ms)
if current_time >= duration_ms:
is_active = false
value = END_VALUE
emit_signal('unfreeze')
Engine.time_scale = value
return
func circl_ease_in(t, b, c, d):
t /= d
return -c * (sqrt(1 - t * t) - 1) + b

View File

@@ -7,7 +7,7 @@ export var relative_y_tiles: int
func _on_spawn_trap_body_entered(body: Node) -> void:
if body.is_in_group('player'):
set_deferred('monitoring', false)
$Tile.set_deferred('disabled', true)
var enemy: KinematicBody2D = load(enemy_path).instance()
enemy.position.x = position.x + (relative_x_tiles * 16 + 8)