Compare commits

..

No commits in common. "a3c3d2db9fdcb646a3284f6ff4a52d40bbc53ebe" and "d422ae61dd61bdaad0189331cad2c04e493c656d" have entirely different histories.

26 changed files with 172 additions and 346 deletions

View File

@ -1,18 +1,11 @@
class_name MovementParameters class_name MovementParameters
extends Reference extends Reference
# Allow floats from -10 to 20 and snap the value to multiples of 0.2.
export(PoolVector2Array) var _speed_start = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
export(PoolVector2Array) var _speed_end = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
export(PoolVector2Array) var _acceleration = PoolVector2Array([Vector2(0,0),Vector2(0,0),Vector2(0,0)])
## Vector based ones for x and y ## Vector based ones for x and y
#export var base_move_speed :Vector2 export var base_move_speed :Vector2
#export var base_move_acceleration :Vector2 export var base_move_acceleration :Vector2
#export var move_speed_modifier :Vector2 export var move_speed_modifier :Vector2
#export var move_speed_modifier_acceleration :Vector2 export var move_speed_modifier_acceleration :Vector2
export var jerk_factor :Vector2 export var jerk_factor :Vector2
var gravity: int = ProjectSettings.get_setting("physics/2d/default_gravity") var gravity: int = ProjectSettings.get_setting("physics/2d/default_gravity")
@ -31,25 +24,6 @@ export var debug_name :String
# export var v_move_speed_modifier :float # export var v_move_speed_modifier :float
# export var v_move_modifier_move_acceleration :float # export var v_move_modifier_move_acceleration :float
func get_speed_start(direction :int) -> Vector2:
return _speed_start[direction]
func set_speed_start(direction :int, value :Vector2) -> void:
_speed_start[direction] = value
func get_speed_end(direction :int) -> Vector2:
return _speed_end[direction]
func set_speed_end(direction :int, value :Vector2) -> void:
_speed_end[direction] = value
func get_acceleration(direction :int) -> Vector2:
return _acceleration[direction]
func set_acceleration(direction :int, value :Vector2) -> void:
_acceleration[direction] = value
func modify(_movement_parameters :MovementParameters): func modify(_movement_parameters :MovementParameters):
pass pass
@ -62,104 +36,47 @@ func apply_state_modifier(_modifier :StateModifierMovement, _movement_direction
#_modifier.direction == _modifier.APPLIED_DIRECTIONS.LEFT_OR_UP #_modifier.direction == _modifier.APPLIED_DIRECTIONS.LEFT_OR_UP
match _modifier.modifier_type: match _modifier.modifier_type:
StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT: StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT:
# var adjusted_move_speed = base_move_speed.x + _modifier.horizontal_speed var adjusted_move_speed = base_move_speed.x + _modifier.horizontal_speed
# ## We crossed the zero from the base ## We crossed the zero from the base
# if sign(adjusted_move_speed) != sign(base_move_speed.x): if sign(adjusted_move_speed) != sign(base_move_speed.x):
# base_move_speed.x = 0.0 base_move_speed.x = 0.0
# else:
# base_move_speed.x = adjusted_move_speed
var speed :Vector2 = get_speed_start(_modifier.direction)
var adjusted_move_speed = get_speed_start(_modifier.direction) + _modifier.speed_start
if sign(adjusted_move_speed.x) != sign(speed.x):
speed.x = 0.0
else: else:
speed.x = adjusted_move_speed.x base_move_speed.x = adjusted_move_speed
if sign(adjusted_move_speed.y) != sign(speed.y): var adjusted_accel = base_move_acceleration.x + _modifier.horizontal_acceleration
speed.y = 0.0 if sign(adjusted_accel) != sign(base_move_acceleration.x):
base_move_acceleration.x = 0.0
else: else:
speed.y = adjusted_move_speed.y base_move_acceleration.x = adjusted_accel
set_speed_start(_modifier.direction, speed)
speed = get_speed_end(_modifier.direction)
adjusted_move_speed = get_speed_end(_modifier.direction) + _modifier.speed_end
if sign(adjusted_move_speed.x) != sign(speed.x):
speed.x = 0.0
else:
speed.x = adjusted_move_speed.x
if sign(adjusted_move_speed.y) != sign(speed.y):
speed.y = 0.0
else:
speed.y = adjusted_move_speed.y
set_speed_end(_modifier.direction, speed)
# var adjusted_accel = base_move_acceleration.x + _modifier.horizontal_acceleration
# if sign(adjusted_accel) != sign(base_move_acceleration.x):
# base_move_acceleration.x = 0.0
# else:
# base_move_acceleration.x = adjusted_accel
var accel :Vector2 = get_acceleration(_modifier.direction)
var adjusted_accel = get_acceleration(_modifier.direction) + _modifier.acceleration
if sign(adjusted_accel.x) != sign(accel.x):
accel.x = 0.0
else:
accel.x = adjusted_accel.x
if sign(adjusted_accel.y) != sign(accel.y):
accel.y = 0.0
else:
accel.y = adjusted_accel.y
set_acceleration(_modifier.direction, accel)
if (true): #DEGUG
var foo = 2+2
##TODO: Um, modifiers are a little weirder for this ##TODO: Um, modifiers are a little weirder for this
#move_speed_modifier.x += _modifier.horizontal_speed_offset #move_speed_modifier.x += _modifier.horizontal_speed_offset
# var speed_differance = base_move_speed.x + (move_speed_modifier.x + _modifier.horizontal_speed_offset) var speed_differance = base_move_speed.x + (move_speed_modifier.x + _modifier.horizontal_speed_offset)
# if sign(speed_differance) != sign(base_move_speed.x) and base_move_speed.x != 0: if sign(speed_differance) != sign(base_move_speed.x) and base_move_speed.x != 0:
# ## Add the inverse of the modifier instead ## Add the inverse of the modifier instead
# move_speed_modifier.x += speed_differance * - 1 move_speed_modifier.x += speed_differance * - 1
# else: else:
# move_speed_modifier.x += _modifier.horizontal_speed_offset move_speed_modifier.x += _modifier.horizontal_speed_offset
#
# move_speed_modifier_acceleration.x += _modifier.horizontal_speed_offset_acceleration move_speed_modifier_acceleration.x += _modifier.horizontal_speed_offset_acceleration
# move_speed_modifier.y += _modifier.vertical_speed_offset move_speed_modifier.y += _modifier.vertical_speed_offset
# move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration
_: _:
# base_move_speed.x += _modifier.horizontal_speed base_move_speed.x += _modifier.horizontal_speed
# base_move_acceleration.x += _modifier.horizontal_acceleration base_move_acceleration.x += _modifier.horizontal_acceleration
# move_speed_modifier.x += _modifier.horizontal_speed_offset move_speed_modifier.x += _modifier.horizontal_speed_offset
# move_speed_modifier_acceleration.x += _modifier.horizontal_speed_offset_acceleration move_speed_modifier_acceleration.x += _modifier.horizontal_speed_offset_acceleration
#
# base_move_speed.y += _modifier.vertical_speed
# base_move_acceleration.y += _modifier.vertical_acceleration
# move_speed_modifier.y += _modifier.vertical_speed_offset
# move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration
set_speed_start(
_modifier.direction,
(get_speed_start(_modifier.direction) + _modifier.speed_start)
)
set_speed_end(
_modifier.direction,
(get_speed_end(_modifier.direction) + _modifier.speed_end)
)
set_acceleration(
_modifier.direction,
(get_acceleration(_modifier.direction) + _modifier.acceleration)
)
if (true): #DEGUG base_move_speed.y += _modifier.vertical_speed
var foo = 2+2 base_move_acceleration.y += _modifier.vertical_acceleration
move_speed_modifier.y += _modifier.vertical_speed_offset
move_speed_modifier_acceleration.y += _modifier.vertical_speed_offset_acceleration
# UiManager.debug_text = ( #"H_Speed x Dir: " + str(h_speed) + str('duh') + UiManager.debug_text = ( #"H_Speed x Dir: " + str(h_speed) + str('duh') +
# "BaseSpeed Fm:{0} To:{1}".format({"0":"%5.2f" % base_move_speed.x, "1":"%5.2f" % base_move_speed.y}) + "BaseSpeed Fm:{0} To:{1}".format({"0":"%5.2f" % base_move_speed.x, "1":"%5.2f" % base_move_speed.y}) +
# "\nSpeedMod Fm:{0} To:{1}".format({"0":"%5.2f" % move_speed_modifier.x, "1":"%5.2f" % move_speed_modifier.y}) + "\nSpeedMod Fm:{0} To:{1}".format({"0":"%5.2f" % move_speed_modifier.x, "1":"%5.2f" % move_speed_modifier.y}) +
# "\nMoveAccel: {0}, {1}".format({"0":"%4.1f" % base_move_acceleration.x, "1":"%4.1f" % base_move_acceleration.y}) + "\nMoveAccel: {0}, {1}".format({"0":"%4.1f" % base_move_acceleration.x, "1":"%4.1f" % base_move_acceleration.y}) +
# "\nType: " + str(_modifier.modifier_type) "\nType: " + str(_modifier.modifier_type)
# ) )

View File

@ -7,20 +7,7 @@ extends State
## ##
## @WIP ## @WIP
const RELATIVE_DIRECTION = 0
# Movement Speed in Pixels Per Second # Movement Speed in Pixels Per Second
export(Vector2) var speed_start
export(Vector2) var speed_end = Vector2(0,1000)
export(Vector2) var acceleration = Vector2(0,280)
export(Vector2) var jerk_factor = Vector2(1,1)
#export(Vector2) var speed_start_positive
#export(Vector2) var speed_end_positive
#export(Vector2) var acceleration_positive
#export(Vector2) var speed_start_negative
#export(Vector2) var speed_end_negative
#export(Vector2) var acceleration_negative
# The base movement speed and accelleration # The base movement speed and accelleration
export var horizontal_speed: float = 60 export var horizontal_speed: float = 60
export var horizontal_acceleration: float = 0 export var horizontal_acceleration: float = 0
@ -28,7 +15,7 @@ export var horizontal_acceleration: float = 0
export var horizontal_speed_offset: float = 0 export var horizontal_speed_offset: float = 0
## Applies only if offset applies ## Applies only if offset applies
export var horizontal_speed_offset_acceleration: float = 0 export var horizontal_speed_offset_acceleration: float = 0
#export var jerk_factor: float = 1.0 export var jerk_factor: float = 1.0
export var vertical_speed: float = 0 export var vertical_speed: float = 0
export var vertical_acceleration: float = 0 export var vertical_acceleration: float = 0
@ -38,7 +25,7 @@ export var vertical_speed_offset: float = 0
export var vertical_speed_offset_acceleration: float = 0 export var vertical_speed_offset_acceleration: float = 0
export var horizontal_jerk_factor: float = 1.0 export var horizontal_jerk_factor: float = 1.0
export var vertical_jerk_factor: float = 1.0 export var vertical_jerk_factor: float = 1.0
## Should this state keep the inertia from previous states ## Should this state keep the inertia from previous states
export var preserve_inertia :bool = true export var preserve_inertia :bool = true
@ -70,25 +57,15 @@ func enter() -> void:
func get_movement_parameters() -> MovementParameters: func get_movement_parameters() -> MovementParameters:
var movement_parameters = MovementParameters.new() var movement_parameters = MovementParameters.new()
movement_parameters.debug_name = name movement_parameters.debug_name = name
movement_parameters.set_speed_start(RELATIVE_DIRECTION, speed_start) movement_parameters.base_move_speed.x = horizontal_speed
#movement_parameters.speed_start = speed_start movement_parameters.base_move_acceleration.x = horizontal_acceleration
movement_parameters.set_speed_end(RELATIVE_DIRECTION, speed_end) movement_parameters.move_speed_modifier.x = horizontal_speed_offset
#movement_parameters.speed_end = speed_end movement_parameters.move_speed_modifier_acceleration.x = horizontal_speed_offset_acceleration
movement_parameters.set_acceleration(RELATIVE_DIRECTION, acceleration) movement_parameters.base_move_speed.y = vertical_speed
#movement_parameters.acceleration = acceleration movement_parameters.base_move_acceleration.y = vertical_acceleration
movement_parameters.jerk_factor = jerk_factor movement_parameters.move_speed_modifier.y = vertical_speed_offset
movement_parameters.move_speed_modifier_acceleration.y = vertical_speed_offset_acceleration
## Old stuff
# movement_parameters.base_move_speed.x = horizontal_speed
# movement_parameters.base_move_acceleration.x = horizontal_acceleration
# movement_parameters.move_speed_modifier.x = horizontal_speed_offset
# movement_parameters.move_speed_modifier_acceleration.x = horizontal_speed_offset_acceleration
# movement_parameters.base_move_speed.y = vertical_speed
# movement_parameters.base_move_acceleration.y = vertical_acceleration
# movement_parameters.move_speed_modifier.y = vertical_speed_offset
# movement_parameters.move_speed_modifier_acceleration.y = vertical_speed_offset_acceleration
return movement_parameters return movement_parameters

View File

@ -1,10 +1,24 @@
class_name StateModifierMovement class_name StateModifierMovement
extends StateModifier extends StateModifier
#export(float, -1.0, 1, 1.0) var applied_direction = 0 ## Movement Modifiers
export var horizontal_speed: float = 0
export var horizontal_acceleration: float = 0
## Movement Speed Offsets (Positive or Negative)
export var horizontal_speed_offset: float = 0
## Applies only if offset applies
export var horizontal_speed_offset_acceleration: float = 0
#export var jerk_factor: float = 0
export var vertical_speed: float = 0
export var vertical_acceleration: float = 0
## Movement Speed Offsets (Positive or Negative)
export var vertical_speed_offset: float = 0
## Applies only if offset applies
export var vertical_speed_offset_acceleration: float = 0
export var gravity: int = 0
#export (Transform2D) var speed = Transform2D(Vector2(0,0),Vector2(0,0),Vector2(0,0))
#export(float, EXP, -1, 1, .1) var jerk_offset = 0
## Processing Directives (help determine how the merge function works) ## Processing Directives (help determine how the merge function works)
enum APPLIED_DIRECTIONS { enum APPLIED_DIRECTIONS {
LEFT_OR_UP = -1, LEFT_OR_UP = -1,
@ -12,29 +26,6 @@ enum APPLIED_DIRECTIONS {
RIGHT_OR_DOWN = 1 RIGHT_OR_DOWN = 1
} }
export(APPLIED_DIRECTIONS) var direction :float = float(APPLIED_DIRECTIONS.RELATIVE) # -1, 0, 1 export(APPLIED_DIRECTIONS) var direction :float = float(APPLIED_DIRECTIONS.RELATIVE) # -1, 0, 1
export(Vector2) var speed_start
export(Vector2) var speed_end
export(Vector2) var acceleration
## Movement Modifiers
#export var horizontal_speed: float = 0
#export var horizontal_acceleration: float = 0
### Movement Speed Offsets (Positive or Negative)
#export var horizontal_speed_offset: float = 0
### Applies only if offset applies
#export var horizontal_speed_offset_acceleration: float = 0
##export var jerk_factor: float = 0
#
#export var vertical_speed: float = 0
#export var vertical_acceleration: float = 0
### Movement Speed Offsets (Positive or Negative)
#export var vertical_speed_offset: float = 0
### Applies only if offset applies
#export var vertical_speed_offset_acceleration: float = 0
export var gravity: int = 0
export var only_grounded :bool = false export var only_grounded :bool = false
## Ways to determine how modifiers are applied to movement parameters ## Ways to determine how modifiers are applied to movement parameters
@ -52,24 +43,21 @@ func _to_string():
func reset(): func reset():
.reset() .reset()
modifier_type = SUB_TYPE.NONE modifier_type = SUB_TYPE.NONE
# direction = 0.0 direction = 0.0
# horizontal_speed = 0 horizontal_speed = 0
# horizontal_acceleration = 0 horizontal_acceleration = 0
# ## Movement Speed Offsets (Positive or Negative) ## Movement Speed Offsets (Positive or Negative)
# horizontal_speed_offset = 0 horizontal_speed_offset = 0
# ## Applies only if offset applies ## Applies only if offset applies
# horizontal_speed_offset_acceleration = 0 horizontal_speed_offset_acceleration = 0
#jerk_factor = 0 #jerk_factor = 0
func copy(_copy_state: StateModifier): func copy(_copy_state: StateModifier):
.copy(_copy_state) .copy(_copy_state)
modifier_type = _copy_state.modifier_type modifier_type = _copy_state.modifier_type
if _copy_state.to_string() == "StateModifierMovement": if _copy_state.to_string() == "StateModifierMovement":
#_copy_state.horizontal_speed = horizontal_speed _copy_state.horizontal_speed = horizontal_speed
_copy_state.speed.start = speed_start _copy_state.horizontal_acceleration = horizontal_acceleration
_copy_state.speed_end = speed_end
#_copy_state.horizontal_acceleration = horizontal_acceleration
_copy_state.acceleration = acceleration
## Overrident to check whether this state is a grounded and this modifier ## Overrident to check whether this state is a grounded and this modifier
## should only apply while in the air. ## should only apply while in the air.
@ -93,17 +81,13 @@ func merge(_merge_from_modifier: StateModifier):
##TODO: I don't really need merge functions here? ##TODO: I don't really need merge functions here?
match _merge_from_modifier.modifier_type: match _merge_from_modifier.modifier_type:
_: _:
speed_end += _merge_from_modifier.speed_end horizontal_speed += _merge_from_modifier.horizontal_speed
speed_start += _merge_from_modifier.speed_start horizontal_acceleration += _merge_from_modifier.horizontal_acceleration
acceleration += _merge_from_modifier.acceleration horizontal_speed_offset += _merge_from_modifier.horizontal_speed_offset
horizontal_speed_offset_acceleration += _merge_from_modifier.horizontal_speed_offset_acceleration
# horizontal_speed += _merge_from_modifier.horizontal_speed vertical_speed += _merge_from_modifier.vertical_speed
# horizontal_acceleration += _merge_from_modifier.horizontal_acceleration vertical_acceleration += _merge_from_modifier.vertical_acceleration
# horizontal_speed_offset += _merge_from_modifier.horizontal_speed_offset vertical_speed_offset += _merge_from_modifier.vertical_speed_offset
# horizontal_speed_offset_acceleration += _merge_from_modifier.horizontal_speed_offset_acceleration vertical_speed_offset_acceleration += _merge_from_modifier.vertical_speed_offset_acceleration
# vertical_speed += _merge_from_modifier.vertical_speed
# vertical_acceleration += _merge_from_modifier.vertical_acceleration
# vertical_speed_offset += _merge_from_modifier.vertical_speed_offset
# vertical_speed_offset_acceleration += _merge_from_modifier.vertical_speed_offset_acceleration
direction = _merge_from_modifier.direction direction = _merge_from_modifier.direction
only_grounded = _merge_from_modifier.only_grounded only_grounded = _merge_from_modifier.only_grounded

View File

@ -9,10 +9,15 @@ script = ExtResource( 1 )
modifier_type = 0 modifier_type = 0
name = "ice_or_something" name = "ice_or_something"
timeout_seconds = 0.0 timeout_seconds = 0.0
direction = 0 horizontal_speed = 0.0
speed_start = Vector2( 0, 0 ) horizontal_acceleration = -250.0
speed_end = Vector2( 0, 0 ) horizontal_speed_offset = 0.0
acceleration = Vector2( -250, 1.36422e-12 ) horizontal_speed_offset_acceleration = 0.0
vertical_speed = 0.0
vertical_acceleration = 0.0
vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0
gravity = 0 gravity = 0
direction = 0
only_grounded = true only_grounded = true
processing_mode = 0 processing_mode = 0

View File

@ -9,10 +9,15 @@ script = ExtResource( 1 )
modifier_type = 0 modifier_type = 0
name = "conveyor_left" name = "conveyor_left"
timeout_seconds = 0.0 timeout_seconds = 0.0
direction = -1 horizontal_speed = -30.0
speed_start = Vector2( 30, 1.36422e-12 ) horizontal_acceleration = 0.0
speed_end = Vector2( 30, 1.36422e-12 ) horizontal_speed_offset = 0.0
acceleration = Vector2( 0, 0 ) horizontal_speed_offset_acceleration = 0.0
vertical_speed = 0.0
vertical_acceleration = 0.0
vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0
gravity = 0 gravity = 0
direction = -1
only_grounded = true only_grounded = true
processing_mode = 0 processing_mode = 0

View File

@ -9,10 +9,15 @@ script = ExtResource( 1 )
modifier_type = 0 modifier_type = 0
name = "wind_left" name = "wind_left"
timeout_seconds = 0.0 timeout_seconds = 0.0
direction = -1 horizontal_speed = -30.0
speed_start = Vector2( 30, 1.36422e-12 ) horizontal_acceleration = 0.0
speed_end = Vector2( 30, 1.36422e-12 ) horizontal_speed_offset = 0.0
acceleration = Vector2( 0, 0 ) horizontal_speed_offset_acceleration = 0.0
vertical_speed = 0.0
vertical_acceleration = 0.0
vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0
gravity = 0 gravity = 0
direction = -1
only_grounded = false only_grounded = false
processing_mode = 0 processing_mode = 0

View File

@ -11,7 +11,6 @@ onready var stamina_component = $"%Stamina_Component"
var state_stamina_cost :Dictionary var state_stamina_cost :Dictionary
func _ready(): func _ready():
velocity_controller.debug = true
#var state_ref :State #var state_ref :State
#var state_name :String #var state_name :String
#state_name = 'jump' #state_name = 'jump'

View File

@ -71,8 +71,7 @@ func _ready():
movement_component.state_stamina_cost = state_stamina_cost movement_component.state_stamina_cost = state_stamina_cost
tired_debuff_modifier.setup('so_tired', StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT) tired_debuff_modifier.setup('so_tired', StateModifierMovement.SUB_TYPE.NEGATIVE_CONSTRAINT)
tired_debuff_modifier.speed_start = Vector2(-40,0) tired_debuff_modifier.horizontal_speed = -40
#tired_debuff_modifier.horizontal_speed = -40
tired_debuff_modifier.only_grounded = true tired_debuff_modifier.only_grounded = true
movement_state_machine.push_state_modifier(tired_debuff_modifier) movement_state_machine.push_state_modifier(tired_debuff_modifier)

View File

@ -38,19 +38,15 @@
[sub_resource type="Resource" id=3] [sub_resource type="Resource" id=3]
resource_local_to_scene = true resource_local_to_scene = true
resource_name = "hurt"
script = ExtResource( 18 ) script = ExtResource( 18 )
debug_state = false debug_state = false
timeout_seconds = 2.0 timeout_seconds = 2.0
name = "hurt" name = "hurt"
speed_start = Vector2( 20, 1.36422e-12 )
speed_end = Vector2( 20, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 20.0 horizontal_speed = 20.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "attack_punch" name = "attack_punch"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "attack_shoot" name = "attack_shoot"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "attack_sword" name = "attack_sword"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -8,14 +8,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "climb" name = "climb"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 20.0 horizontal_speed = 20.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "crouch" name = "crouch"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "crouch_move" name = "crouch_move"
speed_start = Vector2( 60, 1.36422e-12 )
speed_end = Vector2( 60, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 60.0 horizontal_speed = 60.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,20 +9,17 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "death" name = "death"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0 vertical_speed_offset_acceleration = 0.0
horizontal_jerk_factor = 1.0 horizontal_jerk_factor = 1.0
vertical_jerk_factor = 1.0 vertical_jerk_factor = 1.0
preserve_inertia = false preserve_inertia = true
is_grounded = true is_grounded = true
animation_sequence = [ "death" ] animation_sequence = [ "death" ]

View File

@ -8,14 +8,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 1.0 timeout_seconds = 1.0
name = "enter_right" name = "enter_right"
speed_start = Vector2( 30, 1.36422e-12 )
speed_end = Vector2( 30, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 30.0 horizontal_speed = 30.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "fall" name = "fall"
speed_start = Vector2( 90, 1.36422e-12 )
speed_end = Vector2( 90, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 90.0 horizontal_speed = 90.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 1.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "idle" name = "idle"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 300.0 horizontal_acceleration = 300.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 1.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "jump" name = "jump"
speed_start = Vector2( 90, 1.36422e-12 )
speed_end = Vector2( 90, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 90.0 horizontal_speed = 90.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 1.0
vertical_speed = 200.0 vertical_speed = 200.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = -208.0 vertical_speed_offset = -208.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "land" name = "land"
speed_start = Vector2( 20, 1.36422e-12 )
speed_end = Vector2( 20, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 20.0 horizontal_speed = 20.0
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,20 +9,17 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "ledge_climb" name = "ledge_climb"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0 vertical_speed_offset_acceleration = 0.0
horizontal_jerk_factor = 1.0 horizontal_jerk_factor = 1.0
vertical_jerk_factor = 1.0 vertical_jerk_factor = 1.0
preserve_inertia = false preserve_inertia = true
is_grounded = true is_grounded = true
animation_sequence = [ "ledge-climb" ] animation_sequence = [ "ledge-climb" ]

View File

@ -9,20 +9,17 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "ledge_grab" name = "ledge_grab"
speed_start = Vector2( 0, 0 )
speed_end = Vector2( 0, 1000 )
acceleration = Vector2( 0, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 1.36422e-12 horizontal_speed = 1.36422e-12
horizontal_acceleration = 0.0 horizontal_acceleration = 0.0
horizontal_speed_offset = 0.0 horizontal_speed_offset = 0.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0
vertical_speed_offset_acceleration = 0.0 vertical_speed_offset_acceleration = 0.0
horizontal_jerk_factor = 1.0 horizontal_jerk_factor = 1.0
vertical_jerk_factor = 1.0 vertical_jerk_factor = 1.0
preserve_inertia = false preserve_inertia = true
is_grounded = true is_grounded = true
animation_sequence = [ "ledge-grab" ] animation_sequence = [ "ledge-grab" ]

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "move" name = "move"
speed_start = Vector2( 10, 1.36422e-12 )
speed_end = Vector2( 90, 1000 )
acceleration = Vector2( 70, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 10.0 horizontal_speed = 10.0
horizontal_acceleration = 70.0 horizontal_acceleration = 70.0
horizontal_speed_offset = 80.0 horizontal_speed_offset = 80.0
horizontal_speed_offset_acceleration = 0.0 horizontal_speed_offset_acceleration = 0.0
jerk_factor = 0.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -9,14 +9,11 @@ script = ExtResource( 1 )
debug_state = false debug_state = false
timeout_seconds = 0.0 timeout_seconds = 0.0
name = "roll" name = "roll"
speed_start = Vector2( 150, 1.36422e-12 )
speed_end = Vector2( 10, 1000 )
acceleration = Vector2( 300, 280 )
jerk_factor = Vector2( 1, 1 )
horizontal_speed = 150.0 horizontal_speed = 150.0
horizontal_acceleration = 1.36422e-12 horizontal_acceleration = 1.36422e-12
horizontal_speed_offset = -140.0 horizontal_speed_offset = -140.0
horizontal_speed_offset_acceleration = -300.0 horizontal_speed_offset_acceleration = -300.0
jerk_factor = 1.0
vertical_speed = 0.0 vertical_speed = 0.0
vertical_acceleration = 0.0 vertical_acceleration = 0.0
vertical_speed_offset = 0.0 vertical_speed_offset = 0.0

View File

@ -3,10 +3,6 @@ class_name VelocityController
var velocity :Vector2 var velocity :Vector2
var debug :bool = false var debug :bool = false
const RELATIVE_DIRECTION = 0
const POSITIVE_DIRECTION = 1
const NEGATIVE_DIRECTION = -1
enum RANGE_PLACEMENT { enum RANGE_PLACEMENT {
BEFORE_RANGE = -1, BEFORE_RANGE = -1,
WITHIN_RANGE = 0, WITHIN_RANGE = 0,
@ -77,25 +73,10 @@ func calculate_velocity(_delta :float,
# is the destination speed. # is the destination speed.
# We move towards h_speed.y at the acceleration rate # We move towards h_speed.y at the acceleration rate
## ##
#var h_speed = resolve_h_speed(movement_parameters) var h_speed = resolve_h_speed(movement_parameters)
var start_speed :float = ( var v_speed = resolve_v_speed(movement_parameters)
(movement_parameters.get_speed_start(RELATIVE_DIRECTION).x * move_direction.x) +
(movement_parameters.get_speed_start(POSITIVE_DIRECTION).x * POSITIVE_DIRECTION) -
(movement_parameters.get_speed_start(NEGATIVE_DIRECTION).x * NEGATIVE_DIRECTION)
)
var end_speed :float = (
(movement_parameters.get_speed_end(RELATIVE_DIRECTION).x * move_direction.x) +
(movement_parameters.get_speed_end(POSITIVE_DIRECTION).x * POSITIVE_DIRECTION) -
(movement_parameters.get_speed_end(NEGATIVE_DIRECTION).x * NEGATIVE_DIRECTION)
)
var h_speed = Vector2(start_speed, end_speed)
#var h_speed = Vector2(movement_parameters.get_speed_start(RELATIVE_DIRECTION).x , movement_parameters.get_speed_end(RELATIVE_DIRECTION).x)
#var v_speed = resolve_v_speed(movement_parameters)
var v_speed = Vector2(movement_parameters.get_speed_start(0).y, movement_parameters.get_speed_end(0).y)
## Speed will now be expected to move in the direction of travel ## Speed will now be expected to move in the direction of travel
#h_speed *= move_direction.x h_speed *= move_direction.x
v_speed *= move_direction.y v_speed *= move_direction.y
## Now determine placement of current velocity to speed range ## Now determine placement of current velocity to speed range
@ -120,13 +101,9 @@ func calculate_velocity(_delta :float,
## Acceleration is always postive because we use the ## Acceleration is always postive because we use the
# move toward functions. # move toward functions.
#calc_acceleration.x = abs(resolve_h_acceleration(movement_parameters, move_direction.x)) calc_acceleration.x = abs(resolve_h_acceleration(movement_parameters, move_direction.x))
if sign(move_direction.x) != 0:
calc_acceleration.x = movement_parameters.get_acceleration(0).x
if sign(move_direction.y) != 0:
calc_acceleration.y = movement_parameters.get_acceleration(0).y
if debug and movement_parameters.debug_name == 'move': if debug and movement_parameters.debug_name == 'roll':
var foo = 2+2 var foo = 2+2
## We are always moving from h_speed.x towards y at a given rate ## We are always moving from h_speed.x towards y at a given rate
## if we have a difference of speed and an acceleration ## if we have a difference of speed and an acceleration
@ -267,39 +244,49 @@ func placement_to_speed_range(speed: float, speed_range: Vector2) -> int:
## Returns an Vector where x is MIN_SPEED and y is MAX_SPEED ## Returns an Vector where x is MIN_SPEED and y is MAX_SPEED
func resolve_h_speed(_params :MovementParameters) -> Vector2: func resolve_h_speed(_params :MovementParameters) -> Vector2:
# var base_speed :float = _params.base_move_speed.x var base_speed :float = _params.base_move_speed.x
# ## if a speed difference applies ## if a speed difference applies
# if _params.move_speed_modifier.x != 0: if _params.move_speed_modifier.x != 0:
# var speed_differance = base_speed + _params.move_speed_modifier.x var speed_differance = base_speed + _params.move_speed_modifier.x
#
# return(Vector2(base_speed, speed_differance)) return(Vector2(base_speed, speed_differance))
# return Vector2(base_speed,base_speed) return Vector2(base_speed,base_speed)
return Vector2(0,0)
func resolve_v_speed(_params :MovementParameters) -> Vector2: func resolve_v_speed(_params :MovementParameters) -> Vector2:
# var base_speed :float = _params.base_move_speed.y var base_speed :float = _params.base_move_speed.y
# ## if a speed difference applies ## if a speed difference applies
# if _params.move_speed_modifier.y != 0: if _params.move_speed_modifier.y != 0:
# var speed_differance = base_speed + _params.move_speed_modifier.y var speed_differance = base_speed + _params.move_speed_modifier.y
#
# return(Vector2(base_speed, speed_differance)) return(Vector2(base_speed, speed_differance))
# return Vector2(base_speed,base_speed) return Vector2(base_speed,base_speed)
return Vector2(0,0)
func resolve_h_acceleration(_params :MovementParameters, _move_direction :float) -> float: func resolve_h_acceleration(_params :MovementParameters, _move_direction :float) -> float:
## TODO: Adjust for jerk, determine if we're currently experiencing accel ## TODO: Adjust for jerk, determine if we're currently experiencing accel
## if a speed difference applies ## if a speed difference applies
# var _acceleration :float = 0.0 var _acceleration :float = 0.0
# var base_speed :float = _params.base_move_speed.x var base_speed :float = _params.base_move_speed.x
# if _params.move_speed_modifier.x != 0: if _params.move_speed_modifier.x != 0:
# var speed_differance = base_speed + _params.move_speed_modifier.x var speed_differance = base_speed + _params.move_speed_modifier.x
# _acceleration = _params.base_move_acceleration.x + _params.move_speed_modifier_acceleration.x _acceleration = _params.base_move_acceleration.x + _params.move_speed_modifier_acceleration.x
# ##WIP: Add part where offset acceleration only applies until the inertia equals the offset or whatever
# else: # if sign(_params["_base_h_move_modifier_move_acceleration"]) == -1 and abs(_inertia.x) >= speed_differance:
# _acceleration = _params.base_move_acceleration.x # #print("I should add the modifier acceleration maybe?")
# # _acceleration += _params["_base_h_move_modifier_move_acceleration"]
# if sign(_move_direction) != 0: # else:
# return _acceleration # print ("not yet.")
else:
_acceleration = _params.base_move_acceleration.x
## This works but I want to try something differant.
# if _inertia.x != 0.0 and sign(_inertia.x) != sign(_move_direction):
# return _acceleration * -1
# elif sign(_move_direction) != 0:
# ## If no velocity or it matches just return as is.
# return _acceleration
if sign(_move_direction) != 0:
return _acceleration
# No accel returned unless intended # No accel returned unless intended
return 0.0 return 0.0