Changes several hp and damage numbers to get slightly better balance

main
Artur 2026-06-02 17:46:33 +02:00
parent ec27fa03e4
commit 76e36c7c9c
5 changed files with 36 additions and 18 deletions

View File

@ -5,6 +5,7 @@ func _ready() -> void:
speed = 15.0
max_hp = 25
hp = max_hp
damage = 5
# $Area2D.body_entered.connect(_on_area_2d_body_entered)
func _process(delta: float) -> void:

View File

@ -5,6 +5,7 @@ func _ready() -> void:
speed = 15.0
max_hp = 50
hp = max_hp
damage = 10
$Area2D.body_entered.connect(_on_area_2d_body_entered)
func _process(delta: float) -> void:

View File

@ -16,6 +16,7 @@ var _knife_timer: float = 0.0
var spellbook_scene = preload("res://scenes/spellbook.tscn")
var spellbook_count: int = 0
var spellbook_damage: int = 12
const SPELLBOOK_MAX_DAMAGE: int = 40
var spellbook_speed: float = 1.5
const SPELLBOOK_RADIUS: float = 60.0
var _spellbook_angle: float = 0.0
@ -68,8 +69,8 @@ func _ready() -> void:
var dsh = Perk.new()
dsh.name = "Double Shuriken"
dsh.description = "Fire two shurikens at once"
dsh.stats = _stat("Shurikens", "1", "2")
dsh.description = "Fire two more shurikens at once"
dsh.stats = _stat("Shurikens", str(witch.shuriken_count), str(witch.shuriken_count + 2))
dsh.spell = SpellLibrary.SHURIKEN
dsh.icon = _icon_shuriken
dsh.effect = double_shuriken
@ -84,6 +85,15 @@ func _ready() -> void:
faoe.effect = fireball_aoe
available_perks.append(faoe)
var fsp = Perk.new()
fsp.name = "Fireball Spread"
fsp.description = "Fireballs target more enemies"
fsp.stats = _stat("Targets", str(witch.fireball_max_targets), str(witch.fireball_max_targets + 3))
fsp.spell = SpellLibrary.FIREBALL
fsp.icon = _icon_fireball
fsp.effect = fireball_spread
available_perks.append(fsp)
var bexp = Perk.new()
bexp.name = "Brew Explosion"
bexp.description = "Trigger an explosion on brew"
@ -154,11 +164,14 @@ func laser_retarget():
laser_retarget_enabled = true
func double_shuriken():
witch.shuriken_count = 2
witch.shuriken_count += 2
func fireball_aoe():
fireball_aoe_enabled = true
func fireball_spread():
witch.fireball_max_targets += 3
func brew_explosion():
cauldron.brew_explosion = true
@ -255,13 +268,14 @@ func faster_orbit() -> void:
available_perks.append(fo)
func book_damage() -> void:
spellbook_damage += 4
spellbook_damage = min(spellbook_damage + 4, SPELLBOOK_MAX_DAMAGE)
for book in _spellbooks:
book.damage = spellbook_damage
if spellbook_damage < SPELLBOOK_MAX_DAMAGE:
var bd = Perk.new()
bd.name = "Book Damage"
bd.description = "Books hit harder"
bd.stats = _stat("Damage", str(spellbook_damage), str(spellbook_damage + 4))
bd.stats = _stat("Damage", str(spellbook_damage), str(min(spellbook_damage + 4, SPELLBOOK_MAX_DAMAGE)))
bd.icon = _icon_book
bd.effect = book_damage
available_perks.append(bd)

View File

@ -8,7 +8,7 @@ var elapsed_time: float = 0.0
const STAGES_JSON = "res://data/spawn_stages.json"
const ELITE_HP_MULT := 10
const ELITE_HP_MULT := 20
const ELITE_SPD_MULT := 0.25
const ELITE_SCALE := 3.0

View File

@ -13,9 +13,10 @@ var shuriken_count = 1
var _fire_sfx = preload("res://assets/music&sfx/sfx/fire.wav")
var _laser_sfx = preload("res://assets/music&sfx/sfx/laser.wav")
var max_hp: int = 100
var current_hp: int = 100
var max_hp: int = 50
var current_hp: int = 50
var is_invincible: bool = false
var fireball_max_targets: int = 5
const HP_BAR_WIDTH = 20
const HP_BAR_HEIGHT = 3
@ -53,9 +54,10 @@ func _on_collect(DropsBase):
func shoot_fireballs():
var enemies = get_tree().get_nodes_in_group("enemies")
for enemy in enemies:
if not is_instance_valid(enemy):
continue
enemies = enemies.filter(func(e): return is_instance_valid(e))
enemies.sort_custom(func(a, b): return global_position.distance_to(a.global_position) < global_position.distance_to(b.global_position))
var targets = enemies.slice(0, fireball_max_targets)
for enemy in targets:
var dir = global_position.direction_to(enemy.global_position)
_face_direction(dir)
var fb = fireball.instantiate()
@ -126,7 +128,7 @@ func take_damage(amount: int) -> void:
get_tree().call_deferred("reload_current_scene")
return
is_invincible = true
await get_tree().create_timer(1.0).timeout
await get_tree().create_timer(0.5).timeout
is_invincible = false
func get_nearest_enemy(from: Vector2, filter: Callable = Callable()) -> Node: