Better lava
|
@ -6,5 +6,7 @@ extends Area2D
|
|||
|
||||
var animReady = false
|
||||
|
||||
func _on_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
func _on_body_shape_entered(_body_rid, _body, _body_shape_index, _local_shape_index):
|
||||
animator.play(animation)
|
||||
if playOnce:
|
||||
queue_free()
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
extends Node2D
|
||||
extends Area2D
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
func _on_body_shape_entered(_body_rid, body, _body_shape_index, _local_shape_index):
|
||||
if "checkpointPos" in body:
|
||||
body.checkpointPos = body.global_position
|
||||
queue_free()
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
[gd_scene format=3 uid="uid://dep314vkturtp"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dep314vkturtp"]
|
||||
|
||||
[node name="Checkpoint" type="Node2D"]
|
||||
[ext_resource type="Script" path="res://Objects/Checkpoint/Checkpoint.gd" id="1_63qyw"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4a0ws"]
|
||||
|
||||
[node name="Checkpoint" type="Area2D"]
|
||||
script = ExtResource("1_63qyw")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_4a0ws")
|
||||
|
||||
[connection signal="body_shape_entered" from="." to="." method="_on_body_shape_entered"]
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
extends Node2D
|
||||
|
||||
var detecting = true
|
||||
@export var once = false
|
||||
|
||||
func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
func _on_anim_trigger_body_shape_entered(_body_rid, _body, _body_shape_index, _local_shape_index):
|
||||
if detecting:
|
||||
detecting = false
|
||||
|
||||
|
@ -16,15 +17,18 @@ func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local
|
|||
|
||||
await tween.finished
|
||||
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
tween.set_trans(Tween.TRANS_SINE)
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property($SmasherBody, "position", Vector2(0, -100), 2).set_delay(1)
|
||||
tween.tween_property($SmasherBody2, "position", Vector2(0, 100), 2).set_delay(1)
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
if not once:
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
tween.set_trans(Tween.TRANS_SINE)
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.tween_property($SmasherBody, "position", Vector2(0, -100), 2).set_delay(1)
|
||||
tween.tween_property($SmasherBody2, "position", Vector2(0, 100), 2).set_delay(1)
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
else:
|
||||
$AnimTrigger.queue_free()
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://cnkms0met64fy" path="res://Objects/GroundSmasher/Smasher.png" id="2_6f7iw"]
|
||||
|
||||
[node name="Smasher" type="Node2D"]
|
||||
z_index = -1
|
||||
script = ExtResource("1_px0wu")
|
||||
|
||||
[node name="AnimTrigger" parent="." instance=ExtResource("1_cq28h")]
|
||||
|
|
BIN
Objects/GroundSmasher/SmashWarning.kra
Normal file
BIN
Objects/GroundSmasher/SmashWarning.kra~
Normal file
BIN
Objects/GroundSmasher/SmashWarning.png
Normal file
After Width: | Height: | Size: 400 B |
34
Objects/GroundSmasher/SmashWarning.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cdxsc8kilrmvb"
|
||||
path="res://.godot/imported/SmashWarning.png-6c070f1d5606019cc656f33507b9688b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/GroundSmasher/SmashWarning.png"
|
||||
dest_files=["res://.godot/imported/SmashWarning.png-6c070f1d5606019cc656f33507b9688b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
Objects/GroundSmasher/SmashWarning.png~
Normal file
After Width: | Height: | Size: 395 B |
|
@ -1,6 +1,10 @@
|
|||
extends AnimatableBody2D
|
||||
|
||||
@onready var tip = $"Tip"
|
||||
@onready var warnSign = $"../WarnSign"
|
||||
@onready var warnBorder = $"../WarnBorder"
|
||||
|
||||
@export var once = false
|
||||
|
||||
var detecting = true
|
||||
|
||||
|
@ -8,8 +12,9 @@ var velocity = Vector2.ZERO
|
|||
|
||||
@onready var startPos = global_position
|
||||
|
||||
func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
func _on_anim_trigger_body_shape_entered(_body_rid, _body, _body_shape_index, _local_shape_index):
|
||||
if detecting:
|
||||
|
||||
detecting = false
|
||||
var tween = get_tree().create_tween()
|
||||
var space_state = get_world_2d().direct_space_state
|
||||
|
@ -21,26 +26,57 @@ func _on_anim_trigger_body_shape_entered(body_rid, body, body_shape_index, local
|
|||
if result:
|
||||
finalPos = result.position - tip.global_position
|
||||
|
||||
warnBorder.points[0] = Vector2(15.5, -0.25)
|
||||
warnBorder.points[1] = Vector2(-15.5, -0.25)
|
||||
warnBorder.points[3] = Vector2(15.5, (finalPos.length() / $"../".scale.y) + 4.5)
|
||||
warnBorder.points[2] = Vector2(-15.5, (finalPos.length() / $"../".scale.y) + 4.5)
|
||||
|
||||
warnSign.global_rotation = 0
|
||||
warnSign.global_position = tip.global_position + (finalPos / 2) + Vector2(0, 4.5).rotated(global_rotation)
|
||||
|
||||
tween.set_trans(Tween.TRANS_CUBIC)
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property(self, "global_position", global_position + finalPos, 0.4).set_delay(0.05)
|
||||
tween.tween_property(self, "velocity", Vector2(0, 400).rotated(global_rotation), 0.4).set_ease(Tween.EASE_OUT)
|
||||
|
||||
tween.tween_property(self, "global_position", global_position + finalPos, 0.5).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(self, "velocity", Vector2(0, 700).rotated(global_rotation), 0.5).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(warnSign, "modulate", Color8(255, 255, 255, 255), 0.3).set_ease(Tween.EASE_OUT)
|
||||
tween.tween_property(warnBorder, "modulate", Color8(255, 0, 0, 255), 0.3).set_ease(Tween.EASE_OUT)
|
||||
tween.chain()
|
||||
tween.tween_property(warnSign, "modulate", Color8(255, 255, 255, 0), 0.5).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(warnBorder, "modulate", Color8(255, 0, 0, 0), 0.5).set_ease(Tween.EASE_IN)
|
||||
|
||||
await tween.finished
|
||||
if not once:
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_parallel(true)
|
||||
var launcherHitbox = $Tip/LauncherHitbox
|
||||
var hitTable = launcherHitbox.get_overlapping_bodies()
|
||||
for object in hitTable:
|
||||
if object is CharacterBody2D and "velocity" in object and object.has_method("forceLaunch"):
|
||||
object.forceLaunch(velocity.x * 3)
|
||||
#object.velocity.y = velocity.y * 1.5
|
||||
if velocity.x < 5:
|
||||
object.forceLowGrav = true
|
||||
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_parallel(true)
|
||||
tween.set_trans(Tween.TRANS_SINE)
|
||||
tween.set_ease(Tween.EASE_IN)
|
||||
|
||||
tween.tween_property(warnSign, "modulate", Color8(255, 255, 255, 0), 0.6)
|
||||
|
||||
tween.tween_property(self, "global_position", startPos, 1).set_delay(0.5)
|
||||
tween.tween_property(self, "velocity", Vector2.ZERO, 0.5).set_delay(0.25)
|
||||
|
||||
#await get_tree().create_timer(0.25).timeout
|
||||
|
||||
#constant_linear_velocity = Vector2.ZERO
|
||||
|
||||
tween.tween_property(self, "global_position", startPos, 2).set_trans(Tween.TRANS_SINE).set_delay(1).set_ease(Tween.EASE_IN)
|
||||
tween.tween_property(self, "velocity", Vector2.ZERO, 0.5).set_trans(Tween.TRANS_SINE).set_delay(0.25).set_ease(Tween.EASE_IN)
|
||||
|
||||
#await get_tree().create_timer(0.25).timeout
|
||||
|
||||
#constant_linear_velocity = Vector2.ZERO
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
|
||||
await tween.finished
|
||||
|
||||
detecting = true
|
||||
|
||||
#func _on_launcher_hitbox_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
#if "velocity" in body:
|
||||
#body.velocity /= 10
|
||||
|
|
BIN
Objects/GroundSmasher/WarningSymbol.kra
Normal file
BIN
Objects/GroundSmasher/WarningSymbol.kra~
Normal file
BIN
Objects/GroundSmasher/WarningSymbol.png
Normal file
After Width: | Height: | Size: 525 B |
34
Objects/GroundSmasher/WarningSymbol.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://3gsjdgvlscl"
|
||||
path="res://.godot/imported/WarningSymbol.png-e83b2301a93ca928f881077d9da41541.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/GroundSmasher/WarningSymbol.png"
|
||||
dest_files=["res://.godot/imported/WarningSymbol.png-e83b2301a93ca928f881077d9da41541.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
Objects/GroundSmasher/WarningSymbol.png~
Normal file
After Width: | Height: | Size: 540 B |
|
@ -1,8 +1,12 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://c7vbin1wckti1"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://c7vbin1wckti1"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dc8odchuhx80d" path="res://Objects/AnimTrigger/anim_trigger.tscn" id="1_qvh2l"]
|
||||
[ext_resource type="Script" path="res://Objects/GroundSmasher/SmasherCollide.gd" id="2_0g66p"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnkms0met64fy" path="res://Objects/GroundSmasher/Smasher.png" id="2_s8d83"]
|
||||
[ext_resource type="Script" path="res://Objects/GroundSmasher/SmasherCollide.gd" id="3_2qfts"]
|
||||
[ext_resource type="Texture2D" uid="uid://3gsjdgvlscl" path="res://Objects/GroundSmasher/WarningSymbol.png" id="4_5psq0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnkms0met64fy" path="res://Objects/GroundSmasher/Smasher.png" id="4_kj73c"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_pnc2c"]
|
||||
size = Vector2(30, 10)
|
||||
|
||||
[node name="Smasher" type="Node2D"]
|
||||
|
||||
|
@ -12,19 +16,37 @@ collision_layer = 2
|
|||
collision_mask = 2
|
||||
script = null
|
||||
|
||||
[node name="SmasherBody" type="AnimatableBody2D" parent="."]
|
||||
position = Vector2(0, -137)
|
||||
script = ExtResource("2_0g66p")
|
||||
[node name="WarnSign" type="Sprite2D" parent="."]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
show_behind_parent = true
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("4_5psq0")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="SmasherBody"]
|
||||
texture = ExtResource("2_s8d83")
|
||||
offset = Vector2(0, 40)
|
||||
[node name="WarnBorder" type="Line2D" parent="."]
|
||||
modulate = Color(1, 0, 0, 0)
|
||||
position = Vector2(0, -39)
|
||||
points = PackedVector2Array(-15.5, 0, 15.5, 0, 15.5, 78.5, -15.5, 78.5)
|
||||
closed = true
|
||||
width = 1.25
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="SmasherBody"]
|
||||
position = Vector2(0, 24)
|
||||
polygon = PackedVector2Array(-16, -47, -16, 73, -13, 79, 13, 79, 16, 73, 16, -47)
|
||||
[node name="Crusher" type="AnimatableBody2D" parent="."]
|
||||
position = Vector2(0, -97)
|
||||
script = ExtResource("3_2qfts")
|
||||
|
||||
[node name="Tip" type="Node2D" parent="SmasherBody"]
|
||||
position = Vector2(0, 103)
|
||||
[node name="Sprite" type="Sprite2D" parent="Crusher"]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
texture = ExtResource("4_kj73c")
|
||||
|
||||
[connection signal="body_shape_entered" from="AnimTrigger" to="SmasherBody" method="_on_anim_trigger_body_shape_entered"]
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Crusher"]
|
||||
polygon = PackedVector2Array(-13, 63, -16, 63, -16, -63, 16, -63, 16, 57, 16, 63, 13, 63)
|
||||
|
||||
[node name="Tip" type="Node2D" parent="Crusher"]
|
||||
position = Vector2(0, 63)
|
||||
|
||||
[node name="LauncherHitbox" type="Area2D" parent="Crusher/Tip"]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Crusher/Tip/LauncherHitbox"]
|
||||
shape = SubResource("RectangleShape2D_pnc2c")
|
||||
|
||||
[connection signal="body_shape_entered" from="AnimTrigger" to="Crusher" method="_on_anim_trigger_body_shape_entered"]
|
||||
[connection signal="body_shape_entered" from="Crusher/Tip/LauncherHitbox" to="Crusher" method="_on_launcher_hitbox_body_shape_entered"]
|
||||
|
|
37
Objects/Lava/Lava.gd
Normal file
|
@ -0,0 +1,37 @@
|
|||
extends Node2D
|
||||
|
||||
@export var enabled = false
|
||||
@onready var player = $"../../Character"
|
||||
|
||||
func _ready():
|
||||
visible = false
|
||||
|
||||
func _physics_process(delta):
|
||||
if enabled:
|
||||
#position.y -= delta * (35 + clamp(abs(player.global_position.y) - abs(global_position.y) - 500, 0, INF))
|
||||
global_position.y = lerpf(global_position.y, max(player.global_position.y - 100, -8425), delta / 5)
|
||||
|
||||
visible = true
|
||||
$Particles.emitting = true
|
||||
if global_position.y <= -8425:
|
||||
enabled = false
|
||||
var alarmSync = roundi(fmod(Music.get_playback_position(), 1.86))
|
||||
if player.global_position.y < -8425 and Music.get_playback_position() < 59.1 and alarmSync == 2 and (Music.get_playback_position() < 33 or Music.get_playback_position() > 54):
|
||||
Music.seek(59)
|
||||
elif player.global_position.y > -8425 and Music.get_playback_position() > 59.1:
|
||||
Music.seek(18.5)
|
||||
#if enabled:
|
||||
#enabled = false
|
||||
#var tween = create_tween()
|
||||
#tween.tween_property(self, "global_position", global_position - Vector2(0, 000), 68)
|
||||
#visible = true
|
||||
#$Particles.emitting = true
|
||||
#print(tween)
|
||||
|
||||
func _process(delta):
|
||||
$LavaSprite.region_rect.position.x = fmod($LavaSprite.region_rect.position.x + delta * 100, 64)
|
||||
|
||||
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
if body.has_method("die"):
|
||||
Music.stop()
|
||||
body.die()
|
BIN
Objects/Lava/Lava.png
Normal file
After Width: | Height: | Size: 315 B |
34
Objects/Lava/Lava.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0whh5ogd1d6u"
|
||||
path="res://.godot/imported/Lava.png-12ee5be03fffb3ac1b8fafd48d63e347.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/Lava/Lava.png"
|
||||
dest_files=["res://.godot/imported/Lava.png-12ee5be03fffb3ac1b8fafd48d63e347.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
Objects/LavaButton/Button.kra
Normal file
BIN
Objects/LavaButton/Button.kra-autosave.kra
Normal file
BIN
Objects/LavaButton/Button.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
34
Objects/LavaButton/Button.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c5ytge77dxip1"
|
||||
path="res://.godot/imported/Button.png-5e7d379d4ed4195cd53844d12167b92b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/LavaButton/Button.png"
|
||||
dest_files=["res://.godot/imported/Button.png-5e7d379d4ed4195cd53844d12167b92b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
BIN
Objects/LavaButton/Button.png~
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Objects/LavaButton/Explosion.ogv
Normal file
52
Objects/LavaButton/LavaButton.gd
Normal file
|
@ -0,0 +1,52 @@
|
|||
extends StaticBody2D
|
||||
|
||||
const alarm = preload("res://Maps/Level1/Music/Alarm.wav")
|
||||
|
||||
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||
if "can_move" in body:
|
||||
$CutsceneDetection.queue_free()
|
||||
body.can_move = false
|
||||
$Squeak.play()
|
||||
var tween = create_tween()
|
||||
#scale.y /= 2
|
||||
#position.y += 48
|
||||
|
||||
await get_tree().create_timer(2).timeout
|
||||
#scale.y *= 2
|
||||
#position.y -= 48
|
||||
|
||||
body.can_move = true
|
||||
$Sprite.queue_free()
|
||||
$Collider.queue_free()
|
||||
var video : VideoStreamPlayer = $Explosion
|
||||
video.play()
|
||||
#await video.finished
|
||||
var tilemap : TileMap = $"../TileMap"
|
||||
var player = $"../../Character"
|
||||
var sprite = player.find_child("Sprite")
|
||||
var light = player.find_child("LightSource")
|
||||
var vignette = Camera.find_child("Dark")
|
||||
var background = $"../ParallaxBackground/ParallaxLayer"
|
||||
tween = create_tween()
|
||||
tween.set_parallel(true)
|
||||
tween.set_ease(Tween.EASE_IN).set_trans(Tween.TRANS_CUBIC)
|
||||
tween.tween_property(sprite, "self_modulate", Color8(100, 150, 255), 11)
|
||||
tween.tween_property(background, "modulate", Color8(25, 0, 0), 11)
|
||||
tween.tween_property(tilemap, "modulate", Color8(200, 0, 0), 11)
|
||||
tween.tween_property(light, "energy", .15, 11)
|
||||
tween.tween_property(vignette, "energy", 1.5, 11)
|
||||
tween.tween_property(vignette, "texture_scale", .5, 11)
|
||||
tween.tween_property(Camera, "zoom", Camera.zoom * 1.5, 11)
|
||||
tween.chain()
|
||||
tween.set_ease(Tween.EASE_OUT)
|
||||
tween.tween_property(Camera, "zoom", Camera.resetZoom(), 1)
|
||||
tween.tween_property(vignette, "texture_scale", 3 , 1)
|
||||
tween.tween_property(vignette, "energy", 0 , 2)
|
||||
tween.tween_property(light, "energy", 0 , 1)
|
||||
Music.stream = alarm
|
||||
Music.play()
|
||||
await tween.finished
|
||||
$"../Lava".enabled = true
|
||||
|
||||
queue_free()
|
||||
|
BIN
Objects/LavaButton/Squeak.wav
Normal file
24
Objects/LavaButton/Squeak.wav.import
Normal file
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bj6ei616sdyqi"
|
||||
path="res://.godot/imported/Squeak.wav-3d7d9c2b00ed5f4753a1e54ca1fc2ec1.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/LavaButton/Squeak.wav"
|
||||
dest_files=["res://.godot/imported/Squeak.wav-3d7d9c2b00ed5f4753a1e54ca1fc2ec1.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
11
Objects/LavaButton/button.tscn
Normal file
|
@ -0,0 +1,11 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://uscernaqw5ll"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c5ytge77dxip1" path="res://Objects/LavaButton/Button.png" id="1_3hvsu"]
|
||||
|
||||
[node name="LavaButton" type="StaticBody2D"]
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_3hvsu")
|
||||
|
||||
[node name="Collider" type="CollisionPolygon2D" parent="."]
|
||||
polygon = PackedVector2Array(-38, 15, -38, -2, -34, -12, -24, -16, 24, -16, 34, -12, 38, -2, 38, 15, 55, 15, 61, 18, 64, 24, 64, 32, -64, 32, -64, 24, -61, 18, -55, 15)
|
28
Objects/MovingPlatform/MovingPlatform.gd
Normal file
|
@ -0,0 +1,28 @@
|
|||
extends AnimatableBody2D
|
||||
|
||||
@export var endPoint : Vector2
|
||||
var velocity = Vector2.ZERO
|
||||
|
||||
var moving = false
|
||||
|
||||
func _on_area_2d_body_shape_entered(body_rid, body, bod_shape_index, local_shape_index):
|
||||
if not moving:
|
||||
moving = true
|
||||
var tween = create_tween()
|
||||
|
||||
tween.set_parallel(true)
|
||||
|
||||
tween.set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_SINE)
|
||||
|
||||
var dur = position.distance_to(position + endPoint) / 750
|
||||
|
||||
tween.tween_property(self, "position", position + endPoint, dur)
|
||||
tween.tween_property(self, "velocity", endPoint / dur / 3, dur / 2)
|
||||
tween.tween_property(self, "velocity", Vector2.ZERO, 1.25).set_delay((dur / 2))
|
||||
tween.chain()
|
||||
tween.tween_property(self, "position", position, dur).set_delay(2)
|
||||
tween.tween_property(self, "velocity", -endPoint / 3, 1).set_delay(2)
|
||||
tween.tween_property(self, "velocity", Vector2.ZERO, 1.25).set_delay(3)
|
||||
|
||||
await tween.finished
|
||||
moving = false
|
29
Objects/MovingPlatform/MovingPlatform.tscn
Normal file
|
@ -0,0 +1,29 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://vfpfao4e18vn"]
|
||||
|
||||
[ext_resource type="Script" path="res://Objects/MovingPlatform/MovingPlatform.gd" id="1_01pul"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwj4inpj7mawo" path="res://Objects/MovingPlatform/Sprite.png" id="1_1t8bc"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_o874y"]
|
||||
size = Vector2(128, 32)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yhojp"]
|
||||
size = Vector2(128, 30)
|
||||
|
||||
[node name="MovingPlatform" type="AnimatableBody2D"]
|
||||
script = ExtResource("1_01pul")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_1t8bc")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_o874y")
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
position = Vector2(0, -10)
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
shape = SubResource("RectangleShape2D_yhojp")
|
||||
|
||||
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
BIN
Objects/MovingPlatform/Sprite.kra
Normal file
BIN
Objects/MovingPlatform/Sprite.kra~
Normal file
BIN
Objects/MovingPlatform/Sprite.png
Normal file
After Width: | Height: | Size: 242 B |
34
Objects/MovingPlatform/Sprite.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bwj4inpj7mawo"
|
||||
path="res://.godot/imported/Sprite.png-4d12e4f0bdc35ccba20a205fded1dede.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/MovingPlatform/Sprite.png"
|
||||
dest_files=["res://.godot/imported/Sprite.png-4d12e4f0bdc35ccba20a205fded1dede.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|