Changes several hp and damage numbers to get slightly better balance
parent
ec27fa03e4
commit
76e36c7c9c
|
|
@ -5,6 +5,7 @@ func _ready() -> void:
|
||||||
speed = 15.0
|
speed = 15.0
|
||||||
max_hp = 25
|
max_hp = 25
|
||||||
hp = max_hp
|
hp = max_hp
|
||||||
|
damage = 5
|
||||||
# $Area2D.body_entered.connect(_on_area_2d_body_entered)
|
# $Area2D.body_entered.connect(_on_area_2d_body_entered)
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ func _ready() -> void:
|
||||||
speed = 15.0
|
speed = 15.0
|
||||||
max_hp = 50
|
max_hp = 50
|
||||||
hp = max_hp
|
hp = max_hp
|
||||||
|
damage = 10
|
||||||
$Area2D.body_entered.connect(_on_area_2d_body_entered)
|
$Area2D.body_entered.connect(_on_area_2d_body_entered)
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ var _knife_timer: float = 0.0
|
||||||
var spellbook_scene = preload("res://scenes/spellbook.tscn")
|
var spellbook_scene = preload("res://scenes/spellbook.tscn")
|
||||||
var spellbook_count: int = 0
|
var spellbook_count: int = 0
|
||||||
var spellbook_damage: int = 12
|
var spellbook_damage: int = 12
|
||||||
|
const SPELLBOOK_MAX_DAMAGE: int = 40
|
||||||
var spellbook_speed: float = 1.5
|
var spellbook_speed: float = 1.5
|
||||||
const SPELLBOOK_RADIUS: float = 60.0
|
const SPELLBOOK_RADIUS: float = 60.0
|
||||||
var _spellbook_angle: float = 0.0
|
var _spellbook_angle: float = 0.0
|
||||||
|
|
@ -68,8 +69,8 @@ func _ready() -> void:
|
||||||
|
|
||||||
var dsh = Perk.new()
|
var dsh = Perk.new()
|
||||||
dsh.name = "Double Shuriken"
|
dsh.name = "Double Shuriken"
|
||||||
dsh.description = "Fire two shurikens at once"
|
dsh.description = "Fire two more shurikens at once"
|
||||||
dsh.stats = _stat("Shurikens", "1", "2")
|
dsh.stats = _stat("Shurikens", str(witch.shuriken_count), str(witch.shuriken_count + 2))
|
||||||
dsh.spell = SpellLibrary.SHURIKEN
|
dsh.spell = SpellLibrary.SHURIKEN
|
||||||
dsh.icon = _icon_shuriken
|
dsh.icon = _icon_shuriken
|
||||||
dsh.effect = double_shuriken
|
dsh.effect = double_shuriken
|
||||||
|
|
@ -84,6 +85,15 @@ func _ready() -> void:
|
||||||
faoe.effect = fireball_aoe
|
faoe.effect = fireball_aoe
|
||||||
available_perks.append(faoe)
|
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()
|
var bexp = Perk.new()
|
||||||
bexp.name = "Brew Explosion"
|
bexp.name = "Brew Explosion"
|
||||||
bexp.description = "Trigger an explosion on brew"
|
bexp.description = "Trigger an explosion on brew"
|
||||||
|
|
@ -154,11 +164,14 @@ func laser_retarget():
|
||||||
laser_retarget_enabled = true
|
laser_retarget_enabled = true
|
||||||
|
|
||||||
func double_shuriken():
|
func double_shuriken():
|
||||||
witch.shuriken_count = 2
|
witch.shuriken_count += 2
|
||||||
|
|
||||||
func fireball_aoe():
|
func fireball_aoe():
|
||||||
fireball_aoe_enabled = true
|
fireball_aoe_enabled = true
|
||||||
|
|
||||||
|
func fireball_spread():
|
||||||
|
witch.fireball_max_targets += 3
|
||||||
|
|
||||||
func brew_explosion():
|
func brew_explosion():
|
||||||
cauldron.brew_explosion = true
|
cauldron.brew_explosion = true
|
||||||
|
|
||||||
|
|
@ -255,16 +268,17 @@ func faster_orbit() -> void:
|
||||||
available_perks.append(fo)
|
available_perks.append(fo)
|
||||||
|
|
||||||
func book_damage() -> void:
|
func book_damage() -> void:
|
||||||
spellbook_damage += 4
|
spellbook_damage = min(spellbook_damage + 4, SPELLBOOK_MAX_DAMAGE)
|
||||||
for book in _spellbooks:
|
for book in _spellbooks:
|
||||||
book.damage = spellbook_damage
|
book.damage = spellbook_damage
|
||||||
var bd = Perk.new()
|
if spellbook_damage < SPELLBOOK_MAX_DAMAGE:
|
||||||
bd.name = "Book Damage"
|
var bd = Perk.new()
|
||||||
bd.description = "Books hit harder"
|
bd.name = "Book Damage"
|
||||||
bd.stats = _stat("Damage", str(spellbook_damage), str(spellbook_damage + 4))
|
bd.description = "Books hit harder"
|
||||||
bd.icon = _icon_book
|
bd.stats = _stat("Damage", str(spellbook_damage), str(min(spellbook_damage + 4, SPELLBOOK_MAX_DAMAGE)))
|
||||||
bd.effect = book_damage
|
bd.icon = _icon_book
|
||||||
available_perks.append(bd)
|
bd.effect = book_damage
|
||||||
|
available_perks.append(bd)
|
||||||
|
|
||||||
func _rebuild_spellbooks() -> void:
|
func _rebuild_spellbooks() -> void:
|
||||||
for book in _spellbooks:
|
for book in _spellbooks:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ var elapsed_time: float = 0.0
|
||||||
|
|
||||||
const STAGES_JSON = "res://data/spawn_stages.json"
|
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_SPD_MULT := 0.25
|
||||||
const ELITE_SCALE := 3.0
|
const ELITE_SCALE := 3.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,10 @@ var shuriken_count = 1
|
||||||
var _fire_sfx = preload("res://assets/music&sfx/sfx/fire.wav")
|
var _fire_sfx = preload("res://assets/music&sfx/sfx/fire.wav")
|
||||||
var _laser_sfx = preload("res://assets/music&sfx/sfx/laser.wav")
|
var _laser_sfx = preload("res://assets/music&sfx/sfx/laser.wav")
|
||||||
|
|
||||||
var max_hp: int = 100
|
var max_hp: int = 50
|
||||||
var current_hp: int = 100
|
var current_hp: int = 50
|
||||||
var is_invincible: bool = false
|
var is_invincible: bool = false
|
||||||
|
var fireball_max_targets: int = 5
|
||||||
|
|
||||||
const HP_BAR_WIDTH = 20
|
const HP_BAR_WIDTH = 20
|
||||||
const HP_BAR_HEIGHT = 3
|
const HP_BAR_HEIGHT = 3
|
||||||
|
|
@ -53,9 +54,10 @@ func _on_collect(DropsBase):
|
||||||
|
|
||||||
func shoot_fireballs():
|
func shoot_fireballs():
|
||||||
var enemies = get_tree().get_nodes_in_group("enemies")
|
var enemies = get_tree().get_nodes_in_group("enemies")
|
||||||
for enemy in enemies:
|
enemies = enemies.filter(func(e): return is_instance_valid(e))
|
||||||
if not is_instance_valid(enemy):
|
enemies.sort_custom(func(a, b): return global_position.distance_to(a.global_position) < global_position.distance_to(b.global_position))
|
||||||
continue
|
var targets = enemies.slice(0, fireball_max_targets)
|
||||||
|
for enemy in targets:
|
||||||
var dir = global_position.direction_to(enemy.global_position)
|
var dir = global_position.direction_to(enemy.global_position)
|
||||||
_face_direction(dir)
|
_face_direction(dir)
|
||||||
var fb = fireball.instantiate()
|
var fb = fireball.instantiate()
|
||||||
|
|
@ -126,7 +128,7 @@ func take_damage(amount: int) -> void:
|
||||||
get_tree().call_deferred("reload_current_scene")
|
get_tree().call_deferred("reload_current_scene")
|
||||||
return
|
return
|
||||||
is_invincible = true
|
is_invincible = true
|
||||||
await get_tree().create_timer(1.0).timeout
|
await get_tree().create_timer(0.5).timeout
|
||||||
is_invincible = false
|
is_invincible = false
|
||||||
|
|
||||||
func get_nearest_enemy(from: Vector2, filter: Callable = Callable()) -> Node:
|
func get_nearest_enemy(from: Vector2, filter: Callable = Callable()) -> Node:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue