forked from 2121578/gai-ca2
21 lines
993 B
GDScript
21 lines
993 B
GDScript
class_name TaskDeliverBoatPart
|
|
extends Task
|
|
|
|
func run(blackboard: Dictionary) -> void:
|
|
var world: World = blackboard["world"]
|
|
var player: PlayerManager = blackboard["player"]
|
|
|
|
if tilemap_types.is_part_of_collection(tilemap_types.OBJECT_COLLECTION_BOAT_PARTS, player.inventory_slot):
|
|
EventsTracker.track(EventsTracker.Event.CAMP_BOAT_PART_DELIVERED, {"item": player.inventory_slot})
|
|
world.camp_manager.boat_items.append(player.inventory_slot)
|
|
player.inventory_slot = tilemap_types.EMPTY
|
|
if world.camp_manager.boat_items.size() >= world.camp_manager.required_boat_parts:
|
|
EventsTracker.track(EventsTracker.Event.CAMP_BOAT_COMPLETE, {"item": tilemap_types.OBJECT_I_BOAT_WITH_ENGINE})
|
|
world.tilemap_interactive.set_cell(world.camp_manager.boat_build_location, tilemap_types.OBJECT_I_BOAT_WITH_ENGINE)
|
|
status = SUCCESS
|
|
status_reason = "Player delivered boat part"
|
|
return
|
|
|
|
status = FAILURE
|
|
status_reason = "Player does not have boat part to deliver"
|