Skip to content
Snippets Groups Projects
Commit d80e035c authored by Jannik Rosendahl's avatar Jannik Rosendahl
Browse files

fix dies das

parent 33a43892
No related branches found
No related tags found
No related merge requests found
......@@ -22,3 +22,15 @@ func _on_Area2D_body_entered(body : Node):
if body.is_in_group("enemyweapon"):
print("blocked")
queue_free()
if body.is_class("TileMap"):
queue_free()
#print("collided with " + str(body.name) + " - " + str(body.get_class()) + " - " + str(body.get_groups()))
func set_direction(dir: Vector2):
direction = dir
print(dir)
if dir.x < 0:
print("flip")
$Sprite.flip_v = true
$Sprite.offset.y = 25
[gd_scene load_steps=4 format=2]
[ext_resource path="res://src/actors/player/FireBall.gd" type="Script" id=1]
[ext_resource path="res://src/assets/actors/Enemy1/dead/enemy-death-1.png" type="Texture" id=2]
[ext_resource path="res://src/assets/actors/Player/ectoplasma.png" type="Texture" id=2]
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 10, 7.01674 )
......@@ -12,7 +12,7 @@ collision_mask = 24
script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
position = Vector2( 0, -18 )
position = Vector2( -12, -18 )
rotation = -1.57079
texture = ExtResource( 2 )
......@@ -21,7 +21,7 @@ collision_layer = 5
collision_mask = 24
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2( 12, -18 )
position = Vector2( 0, -18 )
shape = SubResource( 2 )
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
......@@ -5,9 +5,12 @@ const TYPE = "player"
""" SECTION VARIABLE DEFINITIONS """
enum ANIMATION_STATES { IDLE, RUN, HURT, JUMP, DEATH, ATTACK }
enum ANIMATION_STATES { IDLE, RUN, HURT, JUMP, DEATH, ATTACK_MELEE, ATTACK_RANGED }
var animation_state = ANIMATION_STATES.IDLE
enum ATTACK_STATES { MELEE, RANGED }
var attack_state = null
var is_jumping : bool
var is_attacking : bool
var is_moving : bool
......@@ -25,6 +28,7 @@ var last_look_direction : Vector2
const move_speed : float = 32*7/.8
const jump_speed : int = -720
const gravity : int = 1800
export var velocity_cap_v : int = 1000
# keep these values between 0-1
const friction : float = 0.25
......@@ -40,7 +44,7 @@ var time_since_last_air_jump : float
var terminate_jump : bool
var double_jump : bool
const attack_cooldown : float = .4
const attack_cooldown : float = .7
var attack : bool = false
var attack_timer : Timer
......@@ -97,14 +101,22 @@ func _physics_process(delta):
# update vertical velocity
velocity.y += gravity * delta
if velocity.y > velocity_cap_v:
print("velocity cap")
velocity.y = velocity_cap_v
update_animation()
if !is_hurt and !is_attacking:
animation_state = ANIMATION_STATES.IDLE if direction.x == 0 else ANIMATION_STATES.RUN
animation_state = animation_state if is_on_floor() else ANIMATION_STATES.JUMP
if attack:
animation_state = ANIMATION_STATES.ATTACK
if attack_state == ATTACK_STATES.MELEE:
print("set state melee")
animation_state = ANIMATION_STATES.ATTACK_MELEE
elif attack_state == ATTACK_STATES.RANGED:
print("set state ranged")
animation_state = ANIMATION_STATES.ATTACK_RANGED
is_jumping = false if is_on_floor() else true
is_moving = direction.length() != 0
......@@ -134,8 +146,14 @@ func input_process(delta):
if Input.is_action_just_released("jump"):
terminate_jump = true
if Input.is_action_just_pressed("attack"):
if not is_attacking:
if !is_attacking:
attack = true
attack_state = ATTACK_STATES.RANGED
if Input.is_action_just_pressed("melee"):
if !is_attacking:
attack = true
attack_state = ATTACK_STATES.MELEE
if Input.is_action_just_pressed("hit_self"):
print("ow")
take_damage(1)
......@@ -178,6 +196,9 @@ func jump_process():
velocity.y = 0
func attack_process():
if is_attacking:
return
if attack:
is_attacking = true
attack_timer = Timer.new()
......@@ -200,6 +221,17 @@ func die():
queue_free()
func take_damage(n : int):
if is_hurt:
return
is_hurt = true
hurt_timer = Timer.new()
hurt_timer.one_shot = true
hurt_timer.wait_time = invincible_cooldown
hurt_timer.connect("timeout", self, "hurt_timer_timeout")
add_child(hurt_timer)
hurt_timer.start()
animation_state = ANIMATION_STATES.HURT
hitpoints -= n
if hitpoints >= 7:
......@@ -223,9 +255,6 @@ func on_stomp():
pass
func update_animation():
if is_attacking or is_hurt:
return
match animation_state:
ANIMATION_STATES.IDLE:
$AnimatedSprite.play("idle")
......@@ -233,24 +262,12 @@ func update_animation():
$AnimatedSprite.play("move")
ANIMATION_STATES.JUMP:
$AnimatedSprite.play("jump")
ANIMATION_STATES.ATTACK:
is_attacking = true
ANIMATION_STATES.ATTACK_RANGED:
$AnimatedSprite.play("attack1")
attack_timer = Timer.new()
attack_timer.one_shot = true
attack_timer.wait_time = attack_cooldown
attack_timer.connect("timeout", self, "attack_timer_timeout")
add_child(attack_timer)
attack_timer.start()
ANIMATION_STATES.ATTACK_MELEE:
$AnimatedSprite.play("melee")
ANIMATION_STATES.HURT:
is_hurt = true
$AnimatedSprite.play("hurt")
hurt_timer = Timer.new()
hurt_timer.one_shot = true
hurt_timer.wait_time = invincible_cooldown
hurt_timer.connect("timeout", self, "hurt_timer_timeout")
add_child(hurt_timer)
hurt_timer.start()
ANIMATION_STATES.DEATH:
print("play death animation")
$AnimatedSprite.play("death")
......@@ -258,9 +275,11 @@ func update_animation():
if direction.x == -1:
$AnimatedSprite.flip_h = true
$AnimatedSprite.offset.x = -20
$MeleeDetector/CollisionShape2D.position.x = -1 * abs($MeleeDetector/CollisionShape2D.position.x)
if direction.x == 1:
$AnimatedSprite.flip_h = false
$AnimatedSprite.offset.x = 0
$MeleeDetector/CollisionShape2D.position.x = abs($MeleeDetector/CollisionShape2D.position.x)
$InfoLabel.text = "is_moving: " + str(is_moving) + "\nis_jumping: " + str(is_jumping) + "\nis_attacking: " + str(is_attacking) + "\nvh: " + str(velocity.x) + "\nvv" + str(velocity.y) + "\nhp: " + str(hitpoints)
......@@ -274,6 +293,7 @@ func set_black_white(boolean: bool):
func attack_timer_timeout():
is_attacking = false
$MeleeDetector.monitoring = false
func hurt_timer_timeout():
print("hurt finished")
......@@ -283,14 +303,6 @@ func _on_EnemyDetector_body_entered(body):
print(body.name, " entered player body")
# die()
func _on_StompDetector_area_entered(area):
print("stomping ", area.name)
# velocity.y = stomp_velocity
func _on_EnemyDetector_area_entered(area):
print(area.name, " area entered")
......@@ -302,6 +314,7 @@ func _on_AnimatedSprite_animation_finished():
func _on_StompDetector_body_entered(body):
if body.is_in_group("enemy"):
print(body.name)
if body.is_stompable:
body.on_stomp()
velocity.y = stomp_velocity
......
......@@ -55,74 +55,34 @@ region = Rect2( 144, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=23]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 0, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=18]
[sub_resource type="AtlasTexture" id=24]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 48, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=19]
[sub_resource type="AtlasTexture" id=25]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 96, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=20]
[sub_resource type="AtlasTexture" id=26]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 144, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=21]
[sub_resource type="AtlasTexture" id=27]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 192, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=22]
[sub_resource type="AtlasTexture" id=28]
flags = 4
atlas = ExtResource( 8 )
atlas = ExtResource( 3 )
region = Rect2( 240, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=43]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=44]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 48, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=45]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 96, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=46]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 144, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=47]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 192, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=48]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 240, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=49]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 288, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=50]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 336, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=5]
flags = 4
atlas = ExtResource( 6 )
......@@ -163,16 +123,6 @@ flags = 4
atlas = ExtResource( 6 )
region = Rect2( 336, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=29]
flags = 4
atlas = ExtResource( 7 )
region = Rect2( 48, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=42]
flags = 4
atlas = ExtResource( 7 )
region = Rect2( 0, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=17]
flags = 4
atlas = ExtResource( 8 )
......@@ -203,6 +153,56 @@ flags = 4
atlas = ExtResource( 8 )
region = Rect2( 240, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=29]
flags = 4
atlas = ExtResource( 7 )
region = Rect2( 48, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=42]
flags = 4
atlas = ExtResource( 7 )
region = Rect2( 0, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=43]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=44]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 48, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=45]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 96, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=46]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 144, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=47]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 192, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=48]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 240, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=49]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 288, 0, 48, 48 )
[sub_resource type="AtlasTexture" id=50]
flags = 4
atlas = ExtResource( 1 )
region = Rect2( 336, 0, 48, 48 )
[sub_resource type="SpriteFrames" id=38]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ],
......@@ -217,28 +217,28 @@ animations = [ {
}, {
"frames": [ SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ],
"loop": true,
"name": "punch",
"name": "move",
"speed": 5.0
}, {
"frames": [ SubResource( 43 ), SubResource( 44 ), SubResource( 45 ), SubResource( 46 ), SubResource( 47 ), SubResource( 48 ), SubResource( 49 ), SubResource( 50 ) ],
"loop": true,
"name": "melee",
"speed": 17.0
}, {
"frames": [ SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ) ],
"loop": true,
"name": "attack1",
"speed": 20.0
}, {
"frames": [ SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ) ],
"loop": false,
"name": "death",
"speed": 7.0
}, {
"frames": [ SubResource( 29 ), SubResource( 42 ), SubResource( 29 ), SubResource( 42 ), SubResource( 29 ), SubResource( 29 ), SubResource( 42 ) ],
"loop": true,
"name": "hurt",
"speed": 5.0
}, {
"frames": [ SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ), SubResource( 22 ) ],
"loop": false,
"name": "death",
"speed": 7.0
"frames": [ SubResource( 43 ), SubResource( 44 ), SubResource( 45 ), SubResource( 46 ), SubResource( 47 ), SubResource( 48 ), SubResource( 49 ), SubResource( 50 ) ],
"loop": true,
"name": "melee",
"speed": 17.0
} ]
[sub_resource type="RectangleShape2D" id=39]
......@@ -248,10 +248,12 @@ extents = Vector2( 9.5, 15.5 )
extents = Vector2( 14.4844, 15.5 )
[sub_resource type="RectangleShape2D" id=41]
extents = Vector2( 9.11914, 2.37328 )
extents = Vector2( 9.11914, 2.77663 )
[sub_resource type="RectangleShape2D" id=51]
extents = Vector2( 12.751, 6.23259 )
[node name="Player" type="KinematicBody2D" groups=["player"]]
scale = Vector2( 1.35, 1.35 )
collision_layer = 3
collision_mask = 249
collision/safe_margin = 0.01
......@@ -262,7 +264,7 @@ material = ExtResource( 12 )
position = Vector2( 10, -24 )
frames = SubResource( 38 )
animation = "melee"
frame = 7
frame = 5
playing = true
[node name="Camera2D" type="Camera2D" parent="."]
......@@ -277,7 +279,7 @@ smoothing_speed = 10.0
[node name="InfoLabel" type="Label" parent="."]
margin_left = -18.3265
margin_top = -83.0373
margin_top = -144.037
margin_right = 21.6735
margin_bottom = -113.037
text = "test
......@@ -303,7 +305,7 @@ shape = SubResource( 40 )
position = Vector2( 0, -19 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="StompDetector"]
position = Vector2( 0, 16.8304 )
position = Vector2( 0, 17.2338 )
shape = SubResource( 41 )
[node name="MeleeDetector" type="Area2D" parent="."]
......@@ -341,3 +343,4 @@ __meta__ = {
[connection signal="body_entered" from="EnemyDetector" to="." method="_on_EnemyDetector_body_entered"]
[connection signal="area_entered" from="StompDetector" to="." method="_on_StompDetector_area_entered"]
[connection signal="body_entered" from="StompDetector" to="." method="_on_StompDetector_body_entered"]
[connection signal="body_entered" from="MeleeDetector" to="." method="_on_MeleeDetector_body_entered"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment