Commit d8419cb9 authored by Gerard Gascón's avatar Gerard Gascón
Browse files

feat: improved dragon walking behaviour

parent b4594bdd
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ class_name DragonEntity
@export var min_exit_time: float
@export var max_exit_time: float

signal on_pick(dragon_id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String)
signal on_pick(dragon_id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D)
signal on_quit(dragon_id: int)

var rng: RandomNumberGenerator = RandomNumberGenerator.new()
@@ -43,13 +43,9 @@ func _input_event(viewport, event, shape_idx) -> void:
	if event is InputEventMouseButton \
	and event.button_index == MOUSE_BUTTON_LEFT \
	and event.is_pressed():
		on_pick.emit(id, position + $CollisionShape2D.position, dragon.hat.texture, dragon.shirt.texture, dragon.shoes.texture, dragon.name_label.text)
		on_pick.emit(id, position + $CollisionShape2D.position, dragon.hat.texture, dragon.shirt.texture, dragon.shoes.texture)
		queue_free()


func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
	dragon.dress(hat, shirt, shoes)


func set_dragon_name(dragon_name: String):
	dragon.set_dragon_name(dragon_name)
+4 −13
Original line number Diff line number Diff line
@@ -5,11 +5,6 @@ class_name DragonSprite
@export var hat: Sprite2D
@export var shirt: Sprite2D
@export var shoes: Sprite2D
@export var name_label: Label


func _ready() -> void:
	name_label.hide()


func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
@@ -18,13 +13,9 @@ func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
	self.shoes.texture = shoes


func set_dragon_name(dragon_name: String):
	name_label.text = dragon_name


func _on_area_2d_mouse_entered() -> void:
	name_label.show()
func walk_left():
	$Sprite.scale.x = 1


func _on_area_2d_mouse_exited() -> void:
	name_label.hide()
func walk_right():
	$Sprite.scale.x = -1
+1 −13
Original line number Diff line number Diff line
@@ -9,12 +9,11 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_oaoux"]
size = Vector2(76, 88)

[node name="Dragon" type="Node2D" node_paths=PackedStringArray("hat", "shirt", "shoes", "name_label")]
[node name="Dragon" type="Node2D" node_paths=PackedStringArray("hat", "shirt", "shoes")]
script = ExtResource("1_oaoux")
hat = NodePath("Sprite/Hat")
shirt = NodePath("Sprite/Shirt")
shoes = NodePath("Sprite/Shoes")
name_label = NodePath("Label")

[node name="Area2D" type="Area2D" parent="."]

@@ -35,16 +34,5 @@ texture = ExtResource("4_oaoux")
[node name="Shoes" type="Sprite2D" parent="Sprite"]
texture = ExtResource("5_stf6f")

[node name="Label" type="Label" parent="."]
offset_left = -10.0
offset_top = 78.0
offset_right = 86.0
offset_bottom = 101.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 5
text = "AAAAAAAA"
horizontal_alignment = 1

[connection signal="mouse_entered" from="Area2D" to="." method="_on_area_2d_mouse_entered"]
[connection signal="mouse_exited" from="Area2D" to="." method="_on_area_2d_mouse_exited"]
+3 −4
Original line number Diff line number Diff line
@@ -101,14 +101,13 @@ func _load_game():
			var hat: Texture2D = hat_outfits.get_texture(d['hat'])
			var shirt: Texture2D = shirt_outfits.get_texture(d['shirt'])
			var shoes: Texture2D = shoes_outfits.get_texture(d['shoes'])
			_pick_dragon(d['id'], d['pos'], hat, shirt, shoes, d['name'], false)
			_pick_dragon(d['id'], d['pos'], hat, shirt, shoes, false)
	print(_save_load.contents_to_save)


func _instantiate_dragon_ingame(position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String, id: int) -> DragonEntity:
	var dragon: DragonEntity = dragon_ingame.instantiate()
	dragon.dress(hat, shirt, shoes)
	dragon.set_dragon_name(dragon_name)
	add_child(dragon)
	dragon.id = id
	dragon.position = position
@@ -118,8 +117,8 @@ func _instantiate_dragon_ingame(position: Vector2, hat: Texture2D, shirt: Textur
	return dragon


func _pick_dragon(id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String, drag: bool = true):
	var dragon: Dragon = _instantiator.instantiate(position, hat, shirt, shoes, dragon_name, drag)
func _pick_dragon(id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, drag: bool = true):
	var dragon: Dragon = _instantiator.instantiate(position, hat, shirt, shoes, drag)
	dragon.id = id
	_dragon_entities[id] = dragon
	dragon.place_back.connect(_dragon_place_back)
+5 −0
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ var dragging_start_position: Vector2i = Vector2i()

var _initial_drag_requested: bool = false

signal on_drag()
signal on_drop()


func _ready() -> void:
	set_process_input(true)
@@ -33,9 +36,11 @@ func _input(event) -> void:
		
	if event.pressed:
		dragging = true
		on_drag.emit()
		dragging_start_position = Vector2i(get_global_mouse_position())
	else:
		dragging = false
		on_drop.emit()
		if _is_inside_main_window():
			_destroy_dragon()

Loading