update
This commit is contained in:
@@ -23,8 +23,12 @@ func _update_combat_timers(delta: float) -> void:
|
||||
|
||||
func _decay_aggro(enemy: Node, delta: float) -> void:
|
||||
var table: Dictionary = tracker.aggro_tables[enemy]
|
||||
var base: BaseStats = Stats.get_base(enemy)
|
||||
var aggro_decay: float = base.aggro_decay if base is EnemyStats else 1.0
|
||||
var data_source: Node = tracker._get_data_source(enemy)
|
||||
var aggro_decay: float = 1.0
|
||||
if data_source:
|
||||
var base: EnemyStats = data_source.get_base(enemy)
|
||||
if base:
|
||||
aggro_decay = base.aggro_decay
|
||||
for player in table.keys():
|
||||
if is_in_combat(player):
|
||||
continue
|
||||
@@ -58,10 +62,11 @@ func spread_aggro(source: Node, attacker: Node, amount: float) -> void:
|
||||
func alert_nearby(enemy: Node, target: Node) -> void:
|
||||
var radius: float = tracker.get_alert_radius(enemy)
|
||||
for other in tracker.get_enemies_in_radius(enemy, radius):
|
||||
if "state" in other and other.state == other.State.IDLE:
|
||||
var data_source: Node = tracker._get_data_source(other)
|
||||
if data_source and data_source.get_stat(other, "state") == 0:
|
||||
tracker.add_aggro(other, target, 1.0)
|
||||
other.target = target
|
||||
other.state = other.State.CHASE
|
||||
data_source.set_stat(other, "target", target)
|
||||
data_source.set_stat(other, "state", 1)
|
||||
EventBus.enemy_engaged.emit(other, target)
|
||||
|
||||
func erase_entity(entity: Node) -> void:
|
||||
|
||||
Reference in New Issue
Block a user