Merge branch 'feature/bottle_throwing'

# Conflicts:
#	godot/scenes/Tim.gd
#	godot/scenes/crowd/person.gd
#	godot/scenes/crowd/person.tscn
#	godot/scenes/stage.tscn
This commit is contained in:
Marvin Dalheimer 2024-01-27 16:50:22 +01:00
commit 7021cf6634
6 changed files with 82 additions and 9 deletions

View File

@ -7,7 +7,7 @@ extends Node2D
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta): func _process(delta):

View File

@ -4,11 +4,11 @@ extends Node2D
var max_persons = 16 var max_persons = 16
func _ready(): func _ready():
var counter = 0 var counter = 0
var person = preload("res://scenes/crowd/person.tscn") var person = preload("res://scenes/crowd/person.tscn")
for seat in $Seats.get_children(): for seat in $Seats.get_children():
seat.add_child(person.instantiate()) seat.add_child(person.instantiate())
counter += 1 counter += 1
if counter == max_persons: if counter == max_persons:
break break

View File

@ -6,6 +6,7 @@
[node name="Crowd" type="Node2D"] [node name="Crowd" type="Node2D"]
position = Vector2(240, 232) position = Vector2(240, 232)
script = ExtResource("1_y7wyj") script = ExtResource("1_y7wyj")
max_persons = 1
[node name="Tables" type="Node" parent="."] [node name="Tables" type="Node" parent="."]

View File

@ -67,6 +67,10 @@ func _process(delta):
elif mood < profile.lashout_threshold * .9: elif mood < profile.lashout_threshold * .9:
mood += profile.lashout_decay * delta mood += profile.lashout_decay * delta
if mood < -9.9:
throw_bottle()
update_expression() update_expression()
func _input(event): func _input(event):
@ -119,3 +123,11 @@ func set_random_face():
func on_joke(joke: Joke): func on_joke(joke: Joke):
pass pass
func throw_bottle():
mood += 2.0
var bottle_scene = preload("res://scenes/objects/bottle.tscn")
var bottle = bottle_scene.instantiate()
add_child(bottle);

View File

@ -0,0 +1,31 @@
extends Sprite2D
@export var bottle_speed: float = 120;
var tim_global_position: Vector2
var is_hidding: bool
# Called when the node enters the scene tree for the first time.
func _ready():
tim_global_position = get_node("/root/IngameScene/Stage/Tim/ThrowPoint").global_position
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
var t = create_tween()
t.tween_property(self, "global_position", tim_global_position, 3.0)
t.tween_callback(remove_bottle)
func _on_bottle_area_entered(area):
is_hidding = true
func _on_bottle_area_exited(area):
is_hidding = false
func _on_growth_timer_timeout():
var t = create_tween()
t.tween_property(self, "scale", self.scale + Vector2(0.01, 0.01), 0.02)
func remove_bottle():
if is_hidding:
print("Ouch")
queue_free()

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=4 format=3 uid="uid://c5f5v1wtottyp"]
[ext_resource type="Script" path="res://scenes/objects/bottle.gd" id="1_87ktq"]
[ext_resource type="Texture2D" uid="uid://cow4dd0hlxrgr" path="res://sprites/room/bottle.svg" id="1_uea7l"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_p8qcj"]
radius = 22.4893
height = 44.9786
[node name="BottleSprite" type="Sprite2D"]
scale = Vector2(0.25, 0.25)
texture = ExtResource("1_uea7l")
script = ExtResource("1_87ktq")
[node name="GrowthTimer" type="Timer" parent="."]
wait_time = 0.1
autostart = true
[node name="Bottle" type="Area2D" parent="."]
collision_layer = 4096
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bottle"]
rotation = 0.487459
scale = Vector2(1, 2.66666)
shape = SubResource("CapsuleShape2D_p8qcj")
[connection signal="timeout" from="GrowthTimer" to="." method="_on_growth_timer_timeout"]
[connection signal="area_entered" from="Bottle" to="." method="_on_bottle_area_entered"]
[connection signal="area_exited" from="Bottle" to="." method="_on_bottle_area_exited"]