17 lines
816 B
GDScript
17 lines
816 B
GDScript
extends RefCounted
|
|
const SAMPLE_CHANCE := 0.15
|
|
|
|
static func drop(enemy: Node2D) -> void:
|
|
if randf() < SAMPLE_CHANCE:
|
|
spawn(enemy,{"samples":1},Vector2(-38,30))
|
|
if int(enemy.get("loot_tier")) == 2 and GameState.active_distant_map.is_empty():
|
|
var profile := {"id":"boss:%d:%d" % [GameState.system_seed,randi()],"seed":randi(),"name":"Boss układu %d" % GameState.system_level}
|
|
spawn(enemy,{"map":preload("res://scripts/planets/distant_expeditions.gd").offer(profile,GameState.system_level)},Vector2(0,65))
|
|
|
|
static func spawn(enemy: Node2D, payload: Dictionary, offset: Vector2) -> void:
|
|
var pickup := Node2D.new()
|
|
pickup.set_script(preload("res://scripts/items/expedition_pickup.gd"))
|
|
pickup.payload = payload
|
|
pickup.position = enemy.position + offset
|
|
enemy.get_parent().call_deferred("add_child",pickup)
|