NPC now dies when reaching rising level

main
Ervan Lefevre 2 years ago
parent 478b5b9c60
commit e1855c4719
  1. 15
      nodes/npc/npc.gd
  2. 2
      nodes/npc/npc.tscn
  3. 4
      scenes/poc.tscn
  4. 3
      scripts/gameplay/rising_level.gd

@ -5,10 +5,11 @@ class_name Npc
const SPEED = 100
const MINIMUM_STATE_DURATION = 3
const STATES = ['panic']
const STATES = ['panic', 'dead']
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var direction = 0
var rising_speed = 0
func _ready():
pick_new_direction()
@ -31,5 +32,17 @@ func panic_state(delta):
velocity.y += gravity * delta
move_and_slide()
func on_enter_dead_state():
$shape.queue_free()
func dead_state(_delta):
velocity = Vector2(0, -rising_speed * (randf_range(0.9,1)))
move_and_slide()
func die(level_speed):
$fsm.set_next_state('dead')
rising_speed = level_speed
func pick_new_direction():
direction = [1,-1][randi_range(0,1)] * SPEED

@ -8,7 +8,7 @@
radius = 1.0
height = 4.0
[node name="npc" type="CharacterBody2D"]
[node name="npc" type="CharacterBody2D" groups=["npc"]]
script = ExtResource("1_38jh5")
[node name="shape" type="CollisionShape2D" parent="."]

File diff suppressed because one or more lines are too long

@ -14,3 +14,6 @@ func _physics_process(delta):
func _body_entered(body):
if body.is_in_group("player"):
body.die()
if body.is_in_group("npc"):
body.die(RISING_SPEED)

Loading…
Cancel
Save