update
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
extends Node
|
||||
|
||||
func _ready() -> void:
|
||||
EventBus.role_changed.connect(_on_role_changed)
|
||||
|
||||
func _on_role_changed(player: Node, _role_type: int) -> void:
|
||||
var role: Node = player.get_node_or_null("Role")
|
||||
if not role:
|
||||
return
|
||||
var ability_set: AbilitySet = role.get_ability_set()
|
||||
if not ability_set:
|
||||
return
|
||||
var damage_mult := 1.0
|
||||
var heal_mult := 1.0
|
||||
var shield_mult := 1.0
|
||||
for ability in ability_set.abilities:
|
||||
if ability and ability.type == Ability.Type.PASSIVE:
|
||||
var bonus: float = ability.damage / 100.0
|
||||
match ability.passive_stat:
|
||||
"damage":
|
||||
damage_mult = 1.0 + bonus
|
||||
"heal":
|
||||
heal_mult = 1.0 + bonus
|
||||
"shield":
|
||||
shield_mult = 1.0 + bonus
|
||||
Stats.set_stat(player, "buff_damage", damage_mult)
|
||||
Stats.set_stat(player, "buff_heal", heal_mult)
|
||||
Stats.set_stat(player, "buff_shield", shield_mult)
|
||||
var base: BaseStats = Stats.get_base(player)
|
||||
if base:
|
||||
var new_max: float = base.max_shield * shield_mult
|
||||
Stats.set_stat(player, "max_shield", new_max)
|
||||
var shield: float = Stats.get_stat(player, "shield")
|
||||
shield = min(shield, new_max)
|
||||
Stats.set_stat(player, "shield", shield)
|
||||
EventBus.shield_changed.emit(player, shield, new_max)
|
||||
EventBus.buff_changed.emit(player, "damage", damage_mult)
|
||||
Reference in New Issue
Block a user