ol
This commit is contained in:
parent
bf6483bf7b
commit
4887f593f6
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/level.gd" id="1_0nmok"]
|
[ext_resource type="Script" path="res://Scripts/level.gd" id="1_0nmok"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b8s2seg2lf7wo" path="res://Scenes/Tilemaps/tileset_1.tscn" id="1_4n82n"]
|
[ext_resource type="PackedScene" uid="uid://b8s2seg2lf7wo" path="res://Scenes/Tilemaps/tileset_1.tscn" id="1_4n82n"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dgtscjxcqoxls" path="res://Scenes/Props/candle_1.tscn" id="2_5hdq4"]
|
[ext_resource type="PackedScene" uid="uid://cl7w6ndvons1a" path="res://Scenes/Props/candle_1.tscn" id="2_5hdq4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cf7al5uln33rn" path="res://Scenes/Props/candle_2.tscn" id="2_o33c4"]
|
[ext_resource type="PackedScene" uid="uid://cf7al5uln33rn" path="res://Scenes/Props/candle_2.tscn" id="2_o33c4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b5lnjonlf4i1b" path="res://Scenes/enemy.tscn" id="4_g0oey"]
|
[ext_resource type="PackedScene" uid="uid://b5lnjonlf4i1b" path="res://Scenes/enemy.tscn" id="4_g0oey"]
|
||||||
[ext_resource type="PackedScene" uid="uid://0onqgygm832d" path="res://Scenes/Player/player.tscn" id="5_ik47y"]
|
[ext_resource type="PackedScene" uid="uid://0onqgygm832d" path="res://Scenes/Player/player.tscn" id="5_ik47y"]
|
||||||
|
@ -93,7 +93,8 @@ func endAttack():
|
|||||||
animatedSprite.play("default")
|
animatedSprite.play("default")
|
||||||
|
|
||||||
func receive_damage(dmg):
|
func receive_damage(dmg):
|
||||||
hitSnd[rng.randi_range(0,4)].play();
|
if hitSnd:
|
||||||
|
hitSnd[rng.randi_range(0,4)].play();
|
||||||
if !isAlive:
|
if !isAlive:
|
||||||
return
|
return
|
||||||
if currentHp - dmg <= 0:
|
if currentHp - dmg <= 0:
|
||||||
@ -104,7 +105,8 @@ func receive_damage(dmg):
|
|||||||
spawnableUI.setHP(currentHp, maxHp)
|
spawnableUI.setHP(currentHp, maxHp)
|
||||||
|
|
||||||
func die():
|
func die():
|
||||||
dieSnd[rng.randi_range(0,4)].play();
|
if dieSnd:
|
||||||
|
dieSnd[rng.randi_range(0,4)].play();
|
||||||
enemy.remove_foe(self)
|
enemy.remove_foe(self)
|
||||||
signal_death.emit(self)
|
signal_death.emit(self)
|
||||||
bodyCollision.disabled = true
|
bodyCollision.disabled = true
|
||||||
@ -133,5 +135,6 @@ func _on_damage_area_body_entered(body):
|
|||||||
|
|
||||||
|
|
||||||
func _on_tree_entered():
|
func _on_tree_entered():
|
||||||
spawnSnd[rng.randi_range(0,4)].play();
|
if spawnSnd:
|
||||||
|
spawnSnd[rng.randi_range(0,4)].play();
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ extends CharacterBody2D
|
|||||||
@export var state: String = "Idle"
|
@export var state: String = "Idle"
|
||||||
@export var damage: int = 5
|
@export var damage: int = 5
|
||||||
@export var maxAtks: int = 1
|
@export var maxAtks: int = 1
|
||||||
@export var maxcooldown: float = 0.5
|
@export var maxcooldown: float = 0.75
|
||||||
|
|
||||||
@onready var currentcooldown: float = 0
|
@onready var currentcooldown: float = 0
|
||||||
@onready var killcount: int = 0
|
@onready var killcount: int = 0
|
||||||
@ -102,30 +102,44 @@ func _process(delta):
|
|||||||
|
|
||||||
func processAI(objs):
|
func processAI(objs):
|
||||||
var vec: Vector2 = Vector2(0,0)
|
var vec: Vector2 = Vector2(0,0)
|
||||||
|
var skel = false
|
||||||
var weight: int = 0
|
var weight: int = 0
|
||||||
if hp <= 0:
|
if hp <= 0:
|
||||||
return vec
|
return vec
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
if !obj || !obj.isAlive:
|
if !obj || !obj.isAlive:
|
||||||
continue
|
continue
|
||||||
if position.distance_to(obj.position) > 50:
|
if position.distance_to(obj.position) < 25:
|
||||||
weight = abs(obj.priority) * position.distance_to(obj.position)
|
if obj.priority == 10:
|
||||||
vec += weight * position.direction_to(obj.position)
|
vec += position.direction_to(obj.position) * 30
|
||||||
else:
|
if currentcooldown <= 0:
|
||||||
weight = obj.priority * position.distance_to(obj.position) * ((maxhp + 1) / hp)
|
attack()
|
||||||
|
currentcooldown = maxcooldown
|
||||||
|
weight = obj.priority * position.distance_to(obj.position) * ((maxhp + 1) / hp) * 1.25
|
||||||
vec = weight * -position.direction_to(obj.position)
|
vec = weight * -position.direction_to(obj.position)
|
||||||
if currentcooldown <= 0:
|
if currentcooldown <= 0:
|
||||||
attack()
|
attack()
|
||||||
currentcooldown = maxcooldown
|
currentcooldown = maxcooldown
|
||||||
|
else:
|
||||||
|
if obj.priority == 10:
|
||||||
|
skel = true
|
||||||
|
vec = position.direction_to(obj.position) * 10
|
||||||
|
if currentcooldown <= 0:
|
||||||
|
attack()
|
||||||
|
currentcooldown = maxcooldown
|
||||||
|
break
|
||||||
|
weight = abs(obj.priority) * position.distance_to(obj.position)
|
||||||
|
vec += weight * position.direction_to(obj.position)
|
||||||
|
|
||||||
|
|
||||||
if vec.length() < 5 && objs.size() > 1:
|
if vec.length() < 5 && objs.size() > 1 && !skel:
|
||||||
vec.y *= 3
|
vec.y *= 3
|
||||||
|
|
||||||
if velocity.length() < 95 && objs.size() > 1:
|
if velocity.length() < 95 && objs.size() > 1 && !skel:
|
||||||
vec.y += 10
|
vec.y += 10
|
||||||
vec.x += 5
|
vec.x += 5
|
||||||
|
|
||||||
return vec.normalized() * 100
|
return vec.normalized() * 1000
|
||||||
|
|
||||||
|
|
||||||
func attack():
|
func attack():
|
||||||
@ -192,7 +206,7 @@ func setLevel(lvl):
|
|||||||
maxAtks = 2
|
maxAtks = 2
|
||||||
|
|
||||||
maxhp += 5
|
maxhp += 5
|
||||||
hp += 10
|
hp += 5 * level + 5
|
||||||
|
|
||||||
if hp > maxhp:
|
if hp > maxhp:
|
||||||
hp = maxhp
|
hp = maxhp
|
||||||
|
Loading…
Reference in New Issue
Block a user