Merge branch 'main' of https://github.com/MarcEricMartel/Game-Jam-A23
This commit is contained in:
commit
90e33b6728
51
Scenes/Props/candle.tscn
Normal file
51
Scenes/Props/candle.tscn
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[gd_scene load_steps=9 format=3 uid="uid://dgtscjxcqoxls"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dvtntmnfw83ms" path="res://Assets/RF_Catacombs_v1.0/candleA_02.png" id="1_24qhp"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://biomqy201h4yk" path="res://Assets/RF_Catacombs_v1.0/candleA_03.png" id="2_ntbip"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dri12hbajn7f7" path="res://Assets/RF_Catacombs_v1.0/candleA_04.png" id="3_hqrx1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c0wvpyvnm1xyq" path="res://Assets/RF_Catacombs_v1.0/candleA_01.png" id="4_6sycj"]
|
||||||
|
[ext_resource type="Material" uid="uid://id4bl5ph4sbj" path="res://candle_part_material.tres" id="5_g2xr2"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_mdrfm"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("1_24qhp")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_ntbip")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("3_hqrx1")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_6sycj")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 8.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_0u7ax"]
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_pb6np"]
|
||||||
|
gradient = SubResource("Gradient_0u7ax")
|
||||||
|
|
||||||
|
[node name="Candle" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(-1.05837e-13, 4.76837e-07)
|
||||||
|
rotation = -3.14159
|
||||||
|
scale = Vector2(1.14286, 1.10476)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_mdrfm")
|
||||||
|
frame_progress = 0.87695
|
||||||
|
centered = false
|
||||||
|
offset = Vector2(-3.5, -7)
|
||||||
|
flip_v = true
|
||||||
|
|
||||||
|
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||||
|
texture = SubResource("GradientTexture2D_pb6np")
|
||||||
|
|
||||||
|
[node name="Particles2D" type="GPUParticles2D" parent="."]
|
||||||
|
amount = 16
|
||||||
|
process_material = ExtResource("5_g2xr2")
|
File diff suppressed because one or more lines are too long
@ -383,7 +383,23 @@ autoplay = "Idle"
|
|||||||
frame_progress = 0.487368
|
frame_progress = 0.487368
|
||||||
flip_h = true
|
flip_h = true
|
||||||
|
|
||||||
|
[node name="Hit" type="CPUParticles2D" parent="."]
|
||||||
|
emitting = false
|
||||||
|
amount = 12
|
||||||
|
lifetime = 0.2
|
||||||
|
one_shot = true
|
||||||
|
explosiveness = 0.75
|
||||||
|
randomness = 0.72
|
||||||
|
emission_shape = 1
|
||||||
|
emission_sphere_radius = 5.53
|
||||||
|
initial_velocity_min = 12.0
|
||||||
|
initial_velocity_max = 12.0
|
||||||
|
angular_velocity_min = 50.0
|
||||||
|
angular_velocity_max = 50.0
|
||||||
|
color = Color(0.623529, 0, 0, 0.729412)
|
||||||
|
|
||||||
[node name="Atk_cooldown" type="Timer" parent="."]
|
[node name="Atk_cooldown" type="Timer" parent="."]
|
||||||
|
wait_time = 2.0
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
[node name="LvlUp" type="CPUParticles2D" parent="."]
|
[node name="LvlUp" type="CPUParticles2D" parent="."]
|
||||||
@ -416,6 +432,7 @@ collision_layer = 2
|
|||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
|
|
||||||
[node name="Attack1CollisionR" type="CollisionShape2D" parent="AttackArea"]
|
[node name="Attack1CollisionR" type="CollisionShape2D" parent="AttackArea"]
|
||||||
|
visible = false
|
||||||
position = Vector2(3, -7)
|
position = Vector2(3, -7)
|
||||||
rotation = 1.5708
|
rotation = 1.5708
|
||||||
skew = 0.223402
|
skew = 0.223402
|
||||||
@ -423,6 +440,7 @@ shape = SubResource("CapsuleShape2D_qykhm")
|
|||||||
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
||||||
|
|
||||||
[node name="Attack1CollisionL" type="CollisionShape2D" parent="AttackArea"]
|
[node name="Attack1CollisionL" type="CollisionShape2D" parent="AttackArea"]
|
||||||
|
visible = false
|
||||||
position = Vector2(-3, -7)
|
position = Vector2(-3, -7)
|
||||||
rotation = 1.5708
|
rotation = 1.5708
|
||||||
skew = -0.169297
|
skew = -0.169297
|
||||||
@ -430,6 +448,7 @@ shape = SubResource("CapsuleShape2D_qykhm")
|
|||||||
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
||||||
|
|
||||||
[node name="Attack2CollisionR" type="CollisionShape2D" parent="AttackArea"]
|
[node name="Attack2CollisionR" type="CollisionShape2D" parent="AttackArea"]
|
||||||
|
visible = false
|
||||||
position = Vector2(25, -7)
|
position = Vector2(25, -7)
|
||||||
rotation = 1.5708
|
rotation = 1.5708
|
||||||
skew = 0.0837758
|
skew = 0.0837758
|
||||||
@ -437,6 +456,7 @@ shape = SubResource("CapsuleShape2D_qykhm")
|
|||||||
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
debug_color = Color(0.956863, 0.203922, 0, 0.419608)
|
||||||
|
|
||||||
[node name="Attack2CollisionL" type="CollisionShape2D" parent="AttackArea"]
|
[node name="Attack2CollisionL" type="CollisionShape2D" parent="AttackArea"]
|
||||||
|
visible = false
|
||||||
position = Vector2(-25, -7)
|
position = Vector2(-25, -7)
|
||||||
rotation = 1.5708
|
rotation = 1.5708
|
||||||
skew = -0.0837758
|
skew = -0.0837758
|
||||||
|
@ -13,7 +13,9 @@ extends CharacterBody2D
|
|||||||
@export var experience: int = 0
|
@export var experience: int = 0
|
||||||
@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
|
||||||
|
|
||||||
|
@onready var currAtks: int = 0
|
||||||
@onready var anim: Node = get_node("Sprite")
|
@onready var anim: Node = get_node("Sprite")
|
||||||
@onready var cooldown: Node = get_node("Atk_cooldown")
|
@onready var cooldown: Node = get_node("Atk_cooldown")
|
||||||
@onready var lvlanim: Node = get_node("LvlUp")
|
@onready var lvlanim: Node = get_node("LvlUp")
|
||||||
@ -24,6 +26,18 @@ extends CharacterBody2D
|
|||||||
@onready var atk2l: Node = get_node("AttackArea/Attack2CollisionL")
|
@onready var atk2l: Node = get_node("AttackArea/Attack2CollisionL")
|
||||||
@onready var atk2r: Node = get_node("AttackArea/Attack2CollisionR")
|
@onready var atk2r: Node = get_node("AttackArea/Attack2CollisionR")
|
||||||
|
|
||||||
|
@onready var atkL: Node = atk1l
|
||||||
|
@onready var atkR: Node = atk1r
|
||||||
|
@onready var atk: String = "Attack"
|
||||||
|
|
||||||
|
@onready var list: Array = []
|
||||||
|
|
||||||
|
func add_foe(foe):
|
||||||
|
list.append(foe)
|
||||||
|
|
||||||
|
func remove_foe(foe):
|
||||||
|
list.erase(foe)
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
@ -36,11 +50,17 @@ func _process(delta):
|
|||||||
elif !is_attacking:
|
elif !is_attacking:
|
||||||
setAnimState("Run")
|
setAnimState("Run")
|
||||||
|
|
||||||
is_facing_left = velocity.x >= 0
|
if state != "Attack" && state != "Attack2":
|
||||||
|
is_facing_left = velocity.x >= 0
|
||||||
|
|
||||||
# AI STUFF
|
# AI STUFF
|
||||||
#velocity = processAI(objects,velocity,delta)
|
#velocity += processAI(list,delta)
|
||||||
|
|
||||||
|
velocity.x += delta * 4
|
||||||
|
velocity.y += delta * 4
|
||||||
|
|
||||||
|
if !hitanim.is_emitting():
|
||||||
|
anim.modulate.a = 1
|
||||||
|
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
|
||||||
@ -54,26 +74,33 @@ func processAI(objs, delta):
|
|||||||
|
|
||||||
func attack():
|
func attack():
|
||||||
is_attacking = true
|
is_attacking = true
|
||||||
if (level > 1):
|
|
||||||
setAnimState("Attack2")
|
setAnimState(atk)
|
||||||
if is_facing_left:
|
if is_facing_left:
|
||||||
atk2r.set_disabled(false)
|
atkL.set_disabled(false)
|
||||||
else:
|
|
||||||
atk2l.set_disabled(false)
|
|
||||||
else:
|
else:
|
||||||
setAnimState("Attack")
|
atkR.set_disabled(false)
|
||||||
if is_facing_left:
|
|
||||||
atk1r.set_disabled(false)
|
#if (level > 3):
|
||||||
else:
|
# setAnimState("Attack2")
|
||||||
atk1l.set_disabled(false)
|
# if is_facing_left:
|
||||||
|
# atk2r.set_disabled(false)
|
||||||
|
# else:
|
||||||
|
# atk2l.set_disabled(false)
|
||||||
|
# else:
|
||||||
|
# setAnimState("Attack")
|
||||||
|
# if is_facing_left:
|
||||||
|
# atk1r.set_disabled(false)
|
||||||
|
# else:
|
||||||
|
# atk1l.set_disabled(false)
|
||||||
|
|
||||||
|
|
||||||
func stop_attack():
|
func stop_attack():
|
||||||
is_attacking = false
|
is_attacking = false
|
||||||
atk1l.set_disabled(true)
|
atkL.set_disabled(true)
|
||||||
atk1r.set_disabled(true)
|
atkR.set_disabled(true)
|
||||||
atk2l.set_disabled(true)
|
#atk2l.set_disabled(true)
|
||||||
atk2r.set_disabled(true)
|
#atk2r.set_disabled(true)
|
||||||
|
|
||||||
|
|
||||||
func setAnimState(newstate):
|
func setAnimState(newstate):
|
||||||
@ -88,6 +115,7 @@ func receive_damage(dmg):
|
|||||||
pass
|
pass
|
||||||
hp -= dmg
|
hp -= dmg
|
||||||
hitanim.restart()
|
hitanim.restart()
|
||||||
|
anim.modulate.a = 0.5
|
||||||
if hp < 0:
|
if hp < 0:
|
||||||
velocity = Vector2(0,0)
|
velocity = Vector2(0,0)
|
||||||
setAnimState("Die")
|
setAnimState("Die")
|
||||||
@ -101,27 +129,50 @@ func receive_exp(x):
|
|||||||
setLevel(level + 1)
|
setLevel(level + 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func setLevel(lvl):
|
func setLevel(lvl):
|
||||||
level = lvl
|
level = lvl
|
||||||
lvlanim.restart()
|
lvlanim.restart()
|
||||||
lvlsnd.play()
|
lvlsnd.play()
|
||||||
|
|
||||||
if level > 2:
|
if level > 3:
|
||||||
cooldown.wait_time = 0.5
|
atk = "Attack2"
|
||||||
|
atkL = atk2l
|
||||||
|
atkR = atk2r
|
||||||
|
damage = 7
|
||||||
|
|
||||||
|
if level > 4:
|
||||||
|
cooldown.wait_time = 1
|
||||||
|
|
||||||
|
if level > 5:
|
||||||
|
damage = 12
|
||||||
|
|
||||||
|
if level > 7:
|
||||||
|
maxAtks = 2
|
||||||
|
|
||||||
|
maxhp += 5
|
||||||
|
hp += maxhp / 2
|
||||||
|
|
||||||
|
if hp > maxhp:
|
||||||
|
hp = maxhp
|
||||||
|
|
||||||
|
|
||||||
func _on_atk_cooldown_timeout():
|
func _on_atk_cooldown_timeout():
|
||||||
|
currAtks = maxAtks
|
||||||
attack()
|
attack()
|
||||||
|
|
||||||
|
|
||||||
func _on_sprite_animation_looped():
|
func _on_sprite_animation_looped():
|
||||||
if is_attacking:
|
if is_attacking:
|
||||||
|
currAtks -= 1
|
||||||
stop_attack()
|
stop_attack()
|
||||||
|
if currAtks > 0:
|
||||||
|
is_facing_left = !is_facing_left
|
||||||
|
attack()
|
||||||
|
else:
|
||||||
|
currAtks = maxAtks
|
||||||
is_dying = false
|
is_dying = false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_attack_area_body_entered(body):
|
func _on_attack_area_body_entered(body):
|
||||||
if typeof(body) == typeof(TemplateSpawnable):
|
if typeof(body) == typeof(TemplateSpawnable):
|
||||||
body.receive_damage(damage)
|
body.receive_damage(damage)
|
||||||
|
13
candle_part_material.tres
Normal file
13
candle_part_material.tres
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[gd_resource type="ParticleProcessMaterial" format=3 uid="uid://id4bl5ph4sbj"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
direction = Vector3(0, -1, 0)
|
||||||
|
spread = 12.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
initial_velocity_min = 25.0
|
||||||
|
initial_velocity_max = 25.0
|
||||||
|
orbit_velocity_min = 0.0
|
||||||
|
orbit_velocity_max = 0.0
|
||||||
|
damping_min = 4.0
|
||||||
|
damping_max = 10.0
|
@ -19,7 +19,6 @@ config/icon="res://icon.svg"
|
|||||||
|
|
||||||
window/size/viewport_width=960
|
window/size/viewport_width=960
|
||||||
window/size/viewport_height=540
|
window/size/viewport_height=540
|
||||||
window/size/mode=3
|
|
||||||
window/size/resizable=false
|
window/size/resizable=false
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user