Add the postie and sound effects
This commit is contained in:
parent
3fe50a6865
commit
b40adc2e86
|
@ -1,2 +1,3 @@
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
*.kra filter=lfs diff=lfs merge=lfs -text
|
*.kra filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
|
@ -61,7 +61,7 @@ func on_press_area_entered(press: Node2D):
|
||||||
self._crush_jump()
|
self._crush_jump()
|
||||||
|
|
||||||
|
|
||||||
func on_press_area_exited(press: Node2D):
|
func on_press_area_exited(_press: Node2D):
|
||||||
press_area_press = null
|
press_area_press = null
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ animations = [ {
|
||||||
radius = 23.0217
|
radius = 23.0217
|
||||||
|
|
||||||
[node name="Player" type="KinematicBody2D"]
|
[node name="Player" type="KinematicBody2D"]
|
||||||
position = Vector2( 0, -14 )
|
|
||||||
collision_layer = 9
|
collision_layer = 9
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
|
@ -24,7 +23,7 @@ __meta__ = {
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||||
position = Vector2( 5.68434e-14, -3 )
|
position = Vector2( 0, -17 )
|
||||||
scale = Vector2( 0.05, 0.05 )
|
scale = Vector2( 0.05, 0.05 )
|
||||||
frames = SubResource( 1 )
|
frames = SubResource( 1 )
|
||||||
animation = "right"
|
animation = "right"
|
||||||
|
@ -33,9 +32,11 @@ __meta__ = {
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2( 0, -14 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
[node name="InteractionArea" type="Area2D" parent="."]
|
[node name="InteractionArea" type="Area2D" parent="."]
|
||||||
|
position = Vector2( 0, -14 )
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ collision_mask = 2
|
||||||
polygon = PoolVector2Array( 0, -21, 20, -8, 20, 12, 0, 24, 0, 35, 52, 21, 52, -20, 0, -32 )
|
polygon = PoolVector2Array( 0, -21, 20, -8, 20, 12, 0, 24, 0, 35, 52, 21, 52, -20, 0, -32 )
|
||||||
|
|
||||||
[node name="PlayerAttachmentManager" parent="." instance=ExtResource( 3 )]
|
[node name="PlayerAttachmentManager" parent="." instance=ExtResource( 3 )]
|
||||||
|
position = Vector2( 0, -14 )
|
||||||
|
|
||||||
[node name="Tween" type="Tween" parent="."]
|
[node name="Tween" type="Tween" parent="."]
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,8 @@ func _physics_process(_delta):
|
||||||
if distance > MAX_DISTANCE_BEFORE_DETACH:
|
if distance > MAX_DISTANCE_BEFORE_DETACH:
|
||||||
attached = null
|
attached = null
|
||||||
anchor_offset = Vector2.ZERO
|
anchor_offset = Vector2.ZERO
|
||||||
# TODO play sfx
|
$DetachSfx.pitch_scale = rand_range(0.9, 1.1)
|
||||||
|
$DetachSfx.play()
|
||||||
print("detached!")
|
print("detached!")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://characters/player/PlayerAttachmentManager.gd" type="Script" id=1]
|
[ext_resource path="res://characters/player/PlayerAttachmentManager.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://sfx/detach.wav" type="AudioStream" id=2]
|
||||||
|
|
||||||
[node name="PlayerAttachmentManager" type="Node2D"]
|
[node name="PlayerAttachmentManager" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="DetachSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 2 )
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -16,7 +16,10 @@ config/icon="res://icon.png"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/height=640
|
window/size/width=1600
|
||||||
|
window/size/height=900
|
||||||
|
window/size/test_width=1280
|
||||||
|
window/size/test_height=720
|
||||||
window/stretch/mode="2d"
|
window/stretch/mode="2d"
|
||||||
window/stretch/aspect="keep"
|
window/stretch/aspect="keep"
|
||||||
|
|
||||||
|
@ -67,6 +70,7 @@ interact={
|
||||||
2d_physics/layer_2="Interaction"
|
2d_physics/layer_2="Interaction"
|
||||||
2d_physics/layer_3="AutoCollection"
|
2d_physics/layer_3="AutoCollection"
|
||||||
2d_physics/layer_4="PressArea"
|
2d_physics/layer_4="PressArea"
|
||||||
|
2d_physics/layer_5="SaleArea"
|
||||||
|
|
||||||
[physics]
|
[physics]
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ radius = 8.95455
|
||||||
height = 8.67516
|
height = 8.67516
|
||||||
|
|
||||||
[node name="OliveProjectile" type="Area2D"]
|
[node name="OliveProjectile" type="Area2D"]
|
||||||
|
z_index = 1
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -17,7 +18,7 @@ position = Vector2( 11, 9 )
|
||||||
rotation = -0.87441
|
rotation = -0.87441
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="."]
|
[node name="OliveSprite" type="Sprite" parent="."]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
centered = false
|
centered = false
|
||||||
offset = Vector2( -5, -5 )
|
offset = Vector2( -5, -5 )
|
||||||
|
|
|
@ -20,4 +20,6 @@ func interact(_player):
|
||||||
for child in self.get_children():
|
for child in self.get_children():
|
||||||
if child.has_method("drop_olive"):
|
if child.has_method("drop_olive"):
|
||||||
if child.drop_olive():
|
if child.drop_olive():
|
||||||
|
$FallSfx.pitch_scale = rand_range(0.9, 1.5)
|
||||||
|
$FallSfx.play()
|
||||||
break
|
break
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scenery/facilities/olivetree.png" type="Texture" id=1]
|
[ext_resource path="res://scenery/facilities/olivetree.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://scenery/facilities/OliveTreeBud.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://scenery/facilities/OliveTreeBud.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://scenery/facilities/OliveTree.gd" type="Script" id=3]
|
[ext_resource path="res://scenery/facilities/OliveTree.gd" type="Script" id=3]
|
||||||
|
[ext_resource path="res://sfx/fall.wav" type="AudioStream" id=4]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape2D" id=1]
|
[sub_resource type="CapsuleShape2D" id=1]
|
||||||
radius = 28.0
|
radius = 28.0
|
||||||
|
@ -38,3 +39,6 @@ rotation = 0.546288
|
||||||
[node name="OliveTreeBud5" parent="." instance=ExtResource( 2 )]
|
[node name="OliveTreeBud5" parent="." instance=ExtResource( 2 )]
|
||||||
position = Vector2( 2, -131 )
|
position = Vector2( 2, -131 )
|
||||||
rotation = 0.328122
|
rotation = 0.328122
|
||||||
|
|
||||||
|
[node name="FallSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 4 )
|
||||||
|
|
|
@ -5,7 +5,7 @@ var growing: bool = false
|
||||||
export var grow_rate: float = 0.05
|
export var grow_rate: float = 0.05
|
||||||
|
|
||||||
# TODO 50 is debug
|
# TODO 50 is debug
|
||||||
const GROW_RATE = 50.05
|
const GROW_RATE = 0.05
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
reset()
|
reset()
|
||||||
|
|
|
@ -128,6 +128,9 @@ func _spray_bottle():
|
||||||
$Tween.interpolate_method(self, "_set_oil_height", old_oil_h, new_oil_h, 1.0, Tween.TRANS_QUAD, Tween.EASE_IN_OUT)
|
$Tween.interpolate_method(self, "_set_oil_height", old_oil_h, new_oil_h, 1.0, Tween.TRANS_QUAD, Tween.EASE_IN_OUT)
|
||||||
$Tween.start()
|
$Tween.start()
|
||||||
|
|
||||||
|
$SpraySfx.pitch_scale = rand_range(0.9, 1.2)
|
||||||
|
$SpraySfx.play()
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
@ -154,6 +157,8 @@ func crush():
|
||||||
# make it a bit more yellowy
|
# make it a bit more yellowy
|
||||||
olive_sprite.modulate = Color(0.5, 1.0, 1.0)
|
olive_sprite.modulate = Color(0.5, 1.0, 1.0)
|
||||||
crushed_olive_sprites.push_back(olive_sprite)
|
crushed_olive_sprites.push_back(olive_sprite)
|
||||||
|
$SquishSfx.pitch_scale = rand_range(0.9, 1.2)
|
||||||
|
$SquishSfx.play()
|
||||||
_next_step()
|
_next_step()
|
||||||
|
|
||||||
func add_fresh_olives(num: int):
|
func add_fresh_olives(num: int):
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=11 format=2]
|
[gd_scene load_steps=13 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://items/bottle_oliveoil.png" type="Texture" id=1]
|
[ext_resource path="res://items/bottle_oliveoil.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://items/bottle_oliveoil_bottle.png" type="Texture" id=2]
|
[ext_resource path="res://items/bottle_oliveoil_bottle.png" type="Texture" id=2]
|
||||||
|
@ -8,6 +8,8 @@
|
||||||
[ext_resource path="res://items/bottle_oliveoil_oil.png" type="Texture" id=6]
|
[ext_resource path="res://items/bottle_oliveoil_oil.png" type="Texture" id=6]
|
||||||
[ext_resource path="res://items/bottle_oliveoil_lid.png" type="Texture" id=7]
|
[ext_resource path="res://items/bottle_oliveoil_lid.png" type="Texture" id=7]
|
||||||
[ext_resource path="res://scenery/facilities/Press.gd" type="Script" id=8]
|
[ext_resource path="res://scenery/facilities/Press.gd" type="Script" id=8]
|
||||||
|
[ext_resource path="res://sfx/spray.wav" type="AudioStream" id=9]
|
||||||
|
[ext_resource path="res://sfx/squish1.wav" type="AudioStream" id=10]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 29.5128, 2.79108 )
|
extents = Vector2( 29.5128, 2.79108 )
|
||||||
|
@ -98,6 +100,12 @@ collision_mask = 8
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CollectionArea"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CollectionArea"]
|
||||||
polygon = PoolVector2Array( 68, -78, 67, -24, 5, -3, -63, -22, -62, -84, 5, -103 )
|
polygon = PoolVector2Array( 68, -78, 67, -24, 5, -3, -63, -22, -62, -84, 5, -103 )
|
||||||
|
|
||||||
|
[node name="SquishSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 10 )
|
||||||
|
|
||||||
|
[node name="SpraySfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 9 )
|
||||||
|
|
||||||
[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_tween_all_completed"]
|
[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_tween_all_completed"]
|
||||||
[connection signal="body_entered" from="CollectionArea" to="." method="_on_CollectionArea_body_entered"]
|
[connection signal="body_entered" from="CollectionArea" to="." method="_on_CollectionArea_body_entered"]
|
||||||
[connection signal="body_exited" from="CollectionArea" to="." method="_on_CollectionArea_body_exited"]
|
[connection signal="body_exited" from="CollectionArea" to="." method="_on_CollectionArea_body_exited"]
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/road.png-dda19101357f3a889deaa8df88b16e69.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://scenery/tiles/road.png"
|
||||||
|
dest_files=[ "res://.import/road.png-dda19101357f3a889deaa8df88b16e69.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=true
|
||||||
|
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
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/backgate_closed.wav-f014c3e0e0d93183abb1cc69f9c2d309.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/backgate_closed.wav"
|
||||||
|
dest_files=[ "res://.import/backgate_closed.wav-f014c3e0e0d93183abb1cc69f9c2d309.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/backgate_open.wav-f7be67da16658d53b71196cc08305adb.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/backgate_open.wav"
|
||||||
|
dest_files=[ "res://.import/backgate_open.wav-f7be67da16658d53b71196cc08305adb.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/detach.wav-5bcdb173f103ff6e475d3e2109680a0b.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/detach.wav"
|
||||||
|
dest_files=[ "res://.import/detach.wav-5bcdb173f103ff6e475d3e2109680a0b.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/drive_up.wav-73d0c6898f09f5e44ee565f13e1ea31e.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/drive_up.wav"
|
||||||
|
dest_files=[ "res://.import/drive_up.wav-73d0c6898f09f5e44ee565f13e1ea31e.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/engine_start_and_drive.wav-8550d88a67b94b716b69a928e2287f36.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/engine_start_and_drive.wav"
|
||||||
|
dest_files=[ "res://.import/engine_start_and_drive.wav-8550d88a67b94b716b69a928e2287f36.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/fall.wav-d2f4abdcff4f43adfb935f24d6d7d0c4.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/fall.wav"
|
||||||
|
dest_files=[ "res://.import/fall.wav-d2f4abdcff4f43adfb935f24d6d7d0c4.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/spray.wav-eb9e641350516f7246f3384d37a053fd.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/spray.wav"
|
||||||
|
dest_files=[ "res://.import/spray.wav-eb9e641350516f7246f3384d37a053fd.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamSample"
|
||||||
|
path="res://.import/squish1.wav-80ecf9302ce4ca36606ac35dd15cfffb.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sfx/squish1.wav"
|
||||||
|
dest_files=[ "res://.import/squish1.wav-80ecf9302ce4ca36606ac35dd15cfffb.sample" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
|
@ -0,0 +1,107 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
|
# Declare member variables here. Examples:
|
||||||
|
# var a = 2
|
||||||
|
# var b = "text"
|
||||||
|
|
||||||
|
var marker: Node2D = null
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
set_ramp_enabled(false)
|
||||||
|
set_backgate_enabled(true)
|
||||||
|
marker = get_parent().get_parent().find_node("MarkerRoadPoint")
|
||||||
|
if marker == null:
|
||||||
|
print("No marker!")
|
||||||
|
return
|
||||||
|
self.position = Vector2(-600, marker.position.y)
|
||||||
|
_drive_anim()
|
||||||
|
|
||||||
|
var state = null
|
||||||
|
|
||||||
|
func _drive_anim():
|
||||||
|
$Tween.interpolate_property(self, "position", self.position, marker.position, 5.0, Tween.TRANS_CUBIC, Tween.EASE_OUT)
|
||||||
|
state = "driving_in"
|
||||||
|
$Tween.start()
|
||||||
|
$DriveInSfx.pitch_scale = rand_range(0.9, 1.2)
|
||||||
|
$DriveInSfx.play()
|
||||||
|
|
||||||
|
func set_ramp_enabled(enabled: bool):
|
||||||
|
$N/BackRamp.visible = enabled
|
||||||
|
$N/BackRamp/StaticBody2D/BackRampShape.disabled = not enabled
|
||||||
|
|
||||||
|
func set_backgate_enabled(enabled: bool):
|
||||||
|
$N/BackGate.visible = enabled
|
||||||
|
$N/BackGate/StaticBody2D/BackGateShape.disabled = not enabled
|
||||||
|
|
||||||
|
func _on_driven_in():
|
||||||
|
set_backgate_enabled(false)
|
||||||
|
set_ramp_enabled(true)
|
||||||
|
$BackgateOpenSfx.pitch_scale = rand_range(0.8, 1.2)
|
||||||
|
$BackgateOpenSfx.play()
|
||||||
|
|
||||||
|
$Tween.interpolate_callback(self, 5.0, "_drive_off")
|
||||||
|
$Tween.start()
|
||||||
|
|
||||||
|
func _drive_off():
|
||||||
|
set_ramp_enabled(false)
|
||||||
|
set_backgate_enabled(true)
|
||||||
|
|
||||||
|
# Attach bodies that are in the back, if they are sellable.
|
||||||
|
var saleable_bodies = $SaleArea.get_overlapping_bodies()
|
||||||
|
for body in saleable_bodies:
|
||||||
|
if body.is_in_group("saleable") and body.has_property("sale_value") and body.sale_value != null:
|
||||||
|
var glob_pos = body.global_position
|
||||||
|
body.get_parent().remove(body)
|
||||||
|
$N/Back/ToSell.add_child(body)
|
||||||
|
body.global_position = glob_pos
|
||||||
|
|
||||||
|
# Disable collisions
|
||||||
|
$N.collision_layer = 0
|
||||||
|
|
||||||
|
$BackgateClosedSfx.pitch_scale = rand_range(0.8, 1.2)
|
||||||
|
$BackgateClosedSfx.play()
|
||||||
|
|
||||||
|
state = "driving_off"
|
||||||
|
|
||||||
|
$Tween.interpolate_property(self, "position:x", position.x, 2000, 5.0, Tween.TRANS_QUAD, Tween.EASE_IN, 3.5)
|
||||||
|
$DriveOffSfx.pitch_scale = rand_range(0.8, 1.2)
|
||||||
|
$Tween.interpolate_callback($DriveOffSfx, 1.0, "play")
|
||||||
|
$Tween.start()
|
||||||
|
|
||||||
|
func _on_driven_off():
|
||||||
|
# Find out what is in the back of the van
|
||||||
|
# Give the player monies for that.
|
||||||
|
# N.B. anything that was purchased by the player is resellable for quarter of its original price.
|
||||||
|
|
||||||
|
var coin_made = 0
|
||||||
|
|
||||||
|
for body in $N/Back/ToSell.get_children():
|
||||||
|
if body.is_in_group("saleable") and body.has_property("sale_value") and body.sale_value != null:
|
||||||
|
coin_made += body.sale_value
|
||||||
|
else:
|
||||||
|
print("trying to sell ", body, " but no value!")
|
||||||
|
|
||||||
|
print("coin made: ", coin_made)
|
||||||
|
|
||||||
|
func _on_Tween_tween_all_completed():
|
||||||
|
if state == "driving_in":
|
||||||
|
self._on_driven_in()
|
||||||
|
if state == "driving_off":
|
||||||
|
self._on_driven_off()
|
||||||
|
self.queue_free()
|
||||||
|
state = null
|
||||||
|
|
||||||
|
|
||||||
|
var sale_value_so_far = 0
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SaleArea_body_entered(body):
|
||||||
|
if body.is_in_group("saleable") and body.has_property("sale_value") and body.sale_value != null:
|
||||||
|
sale_value_so_far += body.sale_value
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SaleArea_body_exited(body):
|
||||||
|
if body.is_in_group("saleable") and body.has_property("sale_value") and body.sale_value != null:
|
||||||
|
sale_value_so_far -= body.sale_value
|
|
@ -0,0 +1,90 @@
|
||||||
|
[gd_scene load_steps=14 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://vehicles/postie_backramp.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://vehicles/postie_back.png" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://vehicles/postie_fore.png" type="Texture" id=3]
|
||||||
|
[ext_resource path="res://vehicles/postie_backclosed.png" type="Texture" id=4]
|
||||||
|
[ext_resource path="res://vehicles/Postie.gd" type="Script" id=5]
|
||||||
|
[ext_resource path="res://sfx/drive_up.wav" type="AudioStream" id=6]
|
||||||
|
[ext_resource path="res://sfx/backgate_open.wav" type="AudioStream" id=7]
|
||||||
|
[ext_resource path="res://sfx/backgate_closed.wav" type="AudioStream" id=8]
|
||||||
|
[ext_resource path="res://sfx/engine_start_and_drive.wav" type="AudioStream" id=9]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 28.9012, 1.69078 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
|
extents = Vector2( 3, 47.5 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
|
extents = Vector2( 92.5, 1.5 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=4]
|
||||||
|
extents = Vector2( 89, 47 )
|
||||||
|
|
||||||
|
[node name="Postie" type="Node2D"]
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="N" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2( 160, 1 )
|
||||||
|
|
||||||
|
[node name="Back" type="Sprite" parent="N"]
|
||||||
|
texture = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="ToSell" type="Node2D" parent="N/Back"]
|
||||||
|
|
||||||
|
[node name="BackRamp" type="Sprite" parent="N"]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D" parent="N/BackRamp"]
|
||||||
|
|
||||||
|
[node name="BackRampShape" type="CollisionShape2D" parent="N/BackRamp/StaticBody2D"]
|
||||||
|
position = Vector2( -137.814, 92.987 )
|
||||||
|
rotation = -0.914553
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="BackGate" type="Sprite" parent="N"]
|
||||||
|
texture = ExtResource( 4 )
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D" parent="N/BackGate"]
|
||||||
|
|
||||||
|
[node name="BackGateShape" type="CollisionShape2D" parent="N/BackGate/StaticBody2D"]
|
||||||
|
position = Vector2( -116, 20.5 )
|
||||||
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="Front" type="Sprite" parent="N"]
|
||||||
|
z_index = 1
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="N"]
|
||||||
|
polygon = PoolVector2Array( -118, 63, 68, 65, 68, -83, 116, -83, 159, -8, 159, 93, 147, 93, 139, 113, 112, 113, 100, 96, -45, 95, -54, 111, -80, 111, -90, 96, -118, 96 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="N"]
|
||||||
|
position = Vector2( -26.5, -29.5 )
|
||||||
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
|
[node name="Tween" type="Tween" parent="."]
|
||||||
|
|
||||||
|
[node name="BackgateOpenSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 7 )
|
||||||
|
|
||||||
|
[node name="DriveInSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 6 )
|
||||||
|
|
||||||
|
[node name="BackgateClosedSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 8 )
|
||||||
|
|
||||||
|
[node name="DriveOffSfx" type="AudioStreamPlayer2D" parent="."]
|
||||||
|
stream = ExtResource( 9 )
|
||||||
|
|
||||||
|
[node name="SaleArea" type="Area2D" parent="."]
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="SaleArea"]
|
||||||
|
position = Vector2( 136, 21 )
|
||||||
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
|
[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_tween_all_completed"]
|
||||||
|
[connection signal="body_entered" from="SaleArea" to="." method="_on_SaleArea_body_entered"]
|
||||||
|
[connection signal="body_exited" from="SaleArea" to="." method="_on_SaleArea_body_exited"]
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/postie_back.png-097eb7e4d79c10754cfe780a8f346db9.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://vehicles/postie_back.png"
|
||||||
|
dest_files=[ "res://.import/postie_back.png-097eb7e4d79c10754cfe780a8f346db9.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=true
|
||||||
|
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
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/postie_backclosed.png-188eed316f1a9a86c14964b419814d0e.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://vehicles/postie_backclosed.png"
|
||||||
|
dest_files=[ "res://.import/postie_backclosed.png-188eed316f1a9a86c14964b419814d0e.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=true
|
||||||
|
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
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/postie_backramp.png-e10a4dac361dd2732df9c2cc0dd7ad7c.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://vehicles/postie_backramp.png"
|
||||||
|
dest_files=[ "res://.import/postie_backramp.png-e10a4dac361dd2732df9c2cc0dd7ad7c.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=true
|
||||||
|
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
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/postie_fore.png-669daa96665f1872e3c74fbf11332dd1.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://vehicles/postie_fore.png"
|
||||||
|
dest_files=[ "res://.import/postie_fore.png-669daa96665f1872e3c74fbf11332dd1.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=true
|
||||||
|
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
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
Loading…
Reference in New Issue