1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- class_name BaseMob
- extends KinematicBody2D
- var gravity = 300.0
- export var speed = 10
- export var base_max_velocity = 100.0
- var max_velocity = 100.0
- var jump_strength = 0.65
- var jump_burst = 210.0
- var velocity = Vector2()
- var previous_real_velocity = Vector2()
- var real_velocity = Vector2()
- var lives = 1
- export var frozen = true
- func read_input(_delta):
- pass
- func fundamental_forces(delta):
- velocity.y += delta * gravity * 2
-
- if abs(velocity.x) > max_velocity:
- velocity.x = sign(velocity.x) * max_velocity
- func apply_movement(_delta):
- previous_real_velocity = real_velocity
- real_velocity = move_and_slide(velocity, Vector2(0.0, -1.0))
-
- func stairs(_delta):
- pass
-
- func post_movement(_delta):
- pass
-
- func animate(_delta):
- pass
-
- func finalize(_delta):
- pass
-
- func strike():
- velocity = Vector2(0, 0)
-
- func watch_for_death(delta):
- if lives < 1:
- set_scale(Vector2(1.0, get_scale().y - delta * 5.0))
- frozen = true
- if get_scale().y < 0.0:
- queue_free()
- func _process(delta):
- watch_for_death(delta)
- if frozen:
- return
- if lives > 0:
- read_input(delta)
- fundamental_forces(delta)
- stairs(delta)
- apply_movement(delta)
- post_movement(delta)
- animate(delta)
- finalize(delta)
|