seeding-planets/entities/underground_loot/scripts/underground_loot.gd
Zacharie Guet ed7a8bcb6e gros dev pre proto
* Changement de l'UI, ajouts de l'inspecteur par carte et changement de police
* Ajout d'un semblant d'exploration
* Ajout de la sauvegarde des entités
* Restructuration mineure de l'arborescence
* Fix divers et réécriture des textes
2025-10-31 13:52:45 +01:00

45 lines
1.1 KiB
GDScript

extends InspectableEntity
class_name UndergroundLoot
const AREA_WIDTH = 20
const LOOTED_ITEM_RANDOM_RANGE = 50
const SPRITE_SCENE : PackedScene = preload("res://entities/underground_loot/underground_loot_sprite.tscn")
@export var loot : Array[Item]
@onready var sprite_object: Node2D = generate_sprite()
@onready var collision_shape: CollisionShape2D = generate_collision_shape()
func _init(_loot : Array[Item] = []):
loot = _loot
default_info_desc = "Contain some random seeds. [b]Dig it with a shovel.[/b]"
func pointer_text() -> String:
return "Buried Loot"
func generate_sprite() -> Node2D:
var object = SPRITE_SCENE.instantiate()
add_child(object)
return object
func generate_collision_shape() -> CollisionShape2D:
var collision = CollisionShape2D.new()
var shape = CircleShape2D.new()
shape.radius = AREA_WIDTH
collision.shape = shape
add_child(collision)
return collision
func dig():
for item in loot:
planet.drop_item(item, global_position, LOOTED_ITEM_RANDOM_RANGE)
queue_free()
func save() -> UndergroundLootData:
return UndergroundLootData.new(self)