#code help.

1 messages · Page 1 of 1 (latest)

balmy ridge
#

func _unhandled_input(event: InputEvent) -> void:
if in_range:
if event.is_action_pressed("show_dialogue"):
interactable_label_component.hide()
animated_sprite_2d.play("chest_open")
is_chest_open = true

        # create some dialogue
        var balloon: BaseGameDialogueBalloon = balloon_scene.instantiate() 
        get_tree().root.add_child(balloon)
        balloon.start(load("res://dialogue/conversations/chest.dialogue"), dialogue_start_command)

func on_feed_the_animals() -> void:
if in_range:
trigger_feed_harvest("corn", corn_harvest_scene)
trigger_feed_harvest("tomato", tomato_harvest_scene)

func trigger_feed_harvest(inventory_item: String, scene: Resource) -> void:
var inventory: Dictionary = InventoryManager.inventory

if !inventory.has(inventory_item):
    return

var inventory_item_count = inventory[inventory_item]

for index in inventory_item_count:
    var harvest_instance = scene.instantiate() as Node2D
    harvest_instance.global_position = Vector2(global_position.x, global_position.y - food_drop_height)
    get_tree().root.add_child(harvest_instance)
    var target_position = global_position
    
    var time_delay = randf_range(0.5, 2.0)
    await get_tree().create_timer(time_delay).timeout
    
    var tween = get_tree().create_tween()
    tween.tween_property(harvest_instance, "position", target_position, 1.0)
    tween.tween_property(harvest_instance, "scale", Vector2(0.5, 0.5), 1.0)
    tween.tween_callback(harvest_instance.queue_free)
    
    InventoryManager.remove_collectable(inventory_item)

func on_food_received(area: Area2D) -> void:
call_deferred("add_reward_scene")

#

func add_reward_scene() -> void:
for scene in output_reward_scenes:
var reward_scene: Node2D = scene.instantiate()
var reward_position: Vector2 = get_random_position_in_circle(reward_marker.global_position, reward_output_radius)
reward_scene.global_position = reward_position
get_tree().root.add_child(reward_scene)

func get_random_position_in_circle(center: Vector2, radius: int) -> Vector2i:
var angle = randf() * TAU

var distance_from_center = sqrt(randf()) * radius

var x: int = center.x + distance_from_center * cos(angle)
var y: int = center.y + distance_from_center * cos(angle)

return Vector2i(x, y)