game: add player stats and modifiers
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
extends Node2D
|
||||
|
||||
@export var default_attack_time: float = 0.5
|
||||
@export var default_damage: float = 5.0
|
||||
@export var player: Player = null
|
||||
|
||||
@onready var trigger_area: Area2D = $TriggerArea
|
||||
@onready var trigger_collision: CollisionShape2D = $TriggerArea/TriggerCollision
|
||||
@@ -10,7 +10,7 @@ extends Node2D
|
||||
@onready var path_follow_2d: PathFollow2D = $AttackPath/PathFollow2D
|
||||
@onready var attack_area: Area2D = $AttackPath/PathFollow2D/Sprite2D/AttackArea
|
||||
|
||||
var damage: float
|
||||
var base_damage: float = 5.0
|
||||
var current_target: Node2D = null
|
||||
var current_progress: float = 0.0
|
||||
var damaged_this_attack: Array = []
|
||||
@@ -19,7 +19,6 @@ var is_attacking: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
attack_path.visible = false
|
||||
damage = default_damage
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
@@ -93,5 +92,11 @@ func _on_attack_area_body_entered(body: Node2D) -> void:
|
||||
if body in damaged_this_attack:
|
||||
return
|
||||
if body.is_in_group(GlobalConst.GROUP_ENEMY) and body.is_in_group(GlobalConst.GROUP_DAMAGEABLE):
|
||||
body.take_damage(damage)
|
||||
var crit_chance = player.player_stats.get_final("crit_chance", player.modifiers)
|
||||
var damage_dealt = base_damage
|
||||
var is_crit = randf() >= 1 - crit_chance
|
||||
if is_crit:
|
||||
damage_dealt *= player.player_stats.get_final("crit_multiplier", player.modifiers)
|
||||
|
||||
body.take_damage(damage_dealt, is_crit)
|
||||
damaged_this_attack.append(body)
|
||||
|
Reference in New Issue
Block a user