extends StaticBody2D const PROFILES := preload("res://scripts/planets/planet_profiles.gd") var base_id := "" var reward_seed := 1 var level := 1 var kind := "enemy_base" var hull := 100.0 var _claimed := false var _label: Label static func materials(seed_value: int, sector_level: int) -> Dictionary: var rng := RandomNumberGenerator.new() rng.seed = seed_value var result := {} for key in PROFILES.MATERIALS: result[key] = rng.randi_range(18,28) * maxi(1,ceili(sqrt(maxi(1,sector_level)))) return result func _ready() -> void: add_to_group("exploration_pois") collision_layer = 4 collision_mask = 0 hull = 100.0 * preload("res://scripts/levels/level_balance.gd").item_stat_scale(level) var shape := CollisionShape2D.new() var circle := CircleShape2D.new() circle.radius = 85 shape.shape = circle add_child(shape) var sprite := Sprite2D.new() sprite.texture = preload("res://assets/expeditions/abandoned_relay.png") sprite.scale = Vector2.ONE * 190.0 / maxf(sprite.texture.get_width(),sprite.texture.get_height()) sprite.modulate = Color("ff9b88") add_child(sprite) _label = Label.new() _label.position = Vector2(-170,100) _label.size.x = 340 _label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER _label.add_theme_font_size_override("font_size",12) _label.text = "BAZA ZAOPATRZENIOWA WROGA\nZniszcz, aby uwolnić surowce" add_child(_label) func take_weapon_hit(amount: float, _critical := false, _damage_type := 0) -> void: if _claimed: return hull -= maxf(0,amount) if hull > 0: return _claimed = true GameState.explored_pois[base_id] = true var pickup := Node2D.new() pickup.set_script(preload("res://scripts/items/expedition_pickup.gd")) pickup.payload = {"materials":materials(reward_seed,level)} pickup.position = position get_parent().call_deferred("add_child",pickup) queue_free()