54 lines
1.8 KiB
GDScript
54 lines
1.8 KiB
GDScript
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()
|