Compare commits

..

No commits in common. "7e03daa236ccf201f799ba86c33beae09d3da779" and "a87955eb0dfe24cb5ec739327556be6f59c0c7d9" have entirely different histories.

13 changed files with 23 additions and 234 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,4 +1,4 @@
[gd_resource type="TileSet" load_steps=15 format=2] [gd_resource type="TileSet" load_steps=13 format=2]
[ext_resource path="res://assets/Tiles/Assets/Assets.png" type="Texture" id=1] [ext_resource path="res://assets/Tiles/Assets/Assets.png" type="Texture" id=1]
@ -35,12 +35,6 @@ points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=12] [sub_resource type="ConvexPolygonShape2D" id=12]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=13]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[sub_resource type="ConvexPolygonShape2D" id=14]
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
[resource] [resource]
0/name = "Assets.png 0" 0/name = "Assets.png 0"
0/texture = ExtResource( 1 ) 0/texture = ExtResource( 1 )
@ -128,17 +122,5 @@ points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
"one_way_margin": 1.0, "one_way_margin": 1.0,
"shape": SubResource( 12 ), "shape": SubResource( 12 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 8, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 13 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
}, {
"autotile_coord": Vector2( 9, 2 ),
"one_way": false,
"one_way_margin": 1.0,
"shape": SubResource( 14 ),
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
} ] } ]
0/z_index = 0 0/z_index = 0

View File

@ -49,11 +49,6 @@ _global_script_classes=[ {
"language": "GDScript", "language": "GDScript",
"path": "res://src/state_modifier_properties.gd" "path": "res://src/state_modifier_properties.gd"
}, { }, {
"base": "Node2D",
"class": "Modifier_Receiver",
"language": "GDScript",
"path": "res://src/components/Modifier_Receiver.gd"
}, {
"base": "Node", "base": "Node",
"class": "MovementComponent", "class": "MovementComponent",
"language": "GDScript", "language": "GDScript",
@ -98,7 +93,6 @@ _global_script_class_icons={
"Interactable_Receiver": "", "Interactable_Receiver": "",
"Level": "", "Level": "",
"ModifierProperties": "", "ModifierProperties": "",
"Modifier_Receiver": "",
"MovementComponent": "", "MovementComponent": "",
"State": "", "State": "",
"StateAnimatedActor": "", "StateAnimatedActor": "",

File diff suppressed because one or more lines are too long

View File

@ -1,48 +0,0 @@
extends Area2D
var modifier_type = 0
export var modifier_name :String = ''
var animation_name: String = '' # Not using this one
var timeout_seconds: float = 0.0 # Not doing timeout based ones yet either.
export var move_speed: float = 0.0
export var move_acceleration: float = 0.0
export var move_speed_modifier: float = 0.0
export var move_modifier_move_acceleration: float = 0.0
export var jerk_factor: float = 0
export var gravity_modifier: int = 0
#var state_timeout: Timer
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
var modifier :StateModifier
#var modifier_properties: ModifierProperties
# Called when the node enters the scene tree for the first time.
func _ready():
modifier = StateModifier.new()
modifier.ready( modifier_name, animation_name , modifier.TYPE.NONE, timeout_seconds)
modifier.modifier_properties = ModifierProperties.new( move_speed,
gravity_modifier,
move_acceleration,
move_speed_modifier,
move_modifier_move_acceleration,
jerk_factor)
func _on_Modifier_Component_body_entered(body):
var colliding_node = body
if colliding_node.has_node("Modifier_Receiver"):
colliding_node.get_node("Modifier_Receiver").register_modifier(modifier)
func _on_Modifier_Component_body_exited(body):
var colliding_node = body
if colliding_node.has_node("Modifier_Receiver"):
colliding_node.get_node("Modifier_Receiver").remove_modifier(modifier)

View File

@ -1,9 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/components/Modifier_Component.gd" type="Script" id=1]
[node name="Modifier_Component" type="Area2D"]
script = ExtResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_Modifier_Component_body_entered"]
[connection signal="body_exited" from="." to="." method="_on_Modifier_Component_body_exited"]

View File

@ -1,53 +0,0 @@
class_name Modifier_Receiver
extends Node2D
# This may be stupid but we're going to have two kinds of callbacks here.
# It's going to be up to the parent/actor/kinematicbody2d/whatever to know
# what conditions have to be met before being able to call that interactible's
# function.
# This is a nice and generic interface that I might be able to use for
# things like opening doors in a level, opening chests/flipping switches etc.
# This node can keep an array of various interactibles within a level
# and provide several helper functions for managing them perhaps.
export(String) var modifier_parent_callback = ""
export var debug_receiver :bool = false
var call_function: FuncRef
#var interactable_function_callables = []
var modifier_collection = []
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
##NOTE:
## Call function should be implemented as two parameters, one expecting a modifier
## and the other expecting a boolean as to whether its being added
# Called when the node enters the scene tree for the first time.
func _ready():
if modifier_parent_callback:
call_function = funcref(owner, modifier_parent_callback)
else:
print("Warning: No modifier receiver function defined on ", owner.name)
# Switching to a new model that starts with Hitbox
func register_modifier(modifier: StateModifier):
if modifier_collection.has(modifier) == false:
print("New Modifier Registered " + modifier.name)
modifier_collection.append(modifier)
if call_function.is_valid():
call_function.call_func(modifier, true)
func remove_modifier(modifier):
print("Modifier Removal " + modifier.name)
if modifier_collection.has(modifier):
var modifier_index = modifier_collection.rfind(modifier)
if modifier_index != -1:
modifier_collection.remove(modifier_index)
if call_function.is_valid():
call_function.call_func(modifier, false)

View File

@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/components/Modifier_Receiver.gd" type="Script" id=1]
[node name="Modifier_Receiver" type="Node2D"]
script = ExtResource( 1 )

View File

@ -27,17 +27,6 @@ func hit_Receiver(damage):
yield( get_tree().create_timer(2 + $movement_state_machine/hurt.timeout_seconds), "timeout") yield( get_tree().create_timer(2 + $movement_state_machine/hurt.timeout_seconds), "timeout")
$Hurtbox_Component.set_hurtbox(true) $Hurtbox_Component.set_hurtbox(true)
func receive_modifier(incomming_modifier :StateModifier, is_adding_modifier_operation: bool):
#var mod :StateModifier
if is_adding_modifier_operation:
print("Player Received modifier:", incomming_modifier.name)
if movement_state_machine.current_state is StateAnimatedActor:
movement_state_machine.current_state.physics_modifier = incomming_modifier
else:
print("Player Removed modifier:", incomming_modifier.name)
if movement_state_machine.current_state is StateAnimatedActor:
movement_state_machine.current_state.physics_modifier = null
func touch_the_thing(the_thing: Interactable) -> bool: func touch_the_thing(the_thing: Interactable) -> bool:
print("You see! a THING...", the_thing.name) print("You see! a THING...", the_thing.name)
if the_thing is HealthPickup: if the_thing is HealthPickup:

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=127 format=2] [gd_scene load_steps=126 format=2]
[ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1] [ext_resource path="res://src/templates/Actor/ActorTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/playerD/movement_component.gd" type="Script" id=2] [ext_resource path="res://src/playerD/movement_component.gd" type="Script" id=2]
@ -8,7 +8,6 @@
[ext_resource path="res://src/playerD/states/fall.gd" type="Script" id=6] [ext_resource path="res://src/playerD/states/fall.gd" type="Script" id=6]
[ext_resource path="res://src/components/Health_Component.tscn" type="PackedScene" id=7] [ext_resource path="res://src/components/Health_Component.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/playerD/states/jump.gd" type="Script" id=8] [ext_resource path="res://src/playerD/states/jump.gd" type="Script" id=8]
[ext_resource path="res://src/components/Modifier_Receiver.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/playerD/states/attack.gd" type="Script" id=10] [ext_resource path="res://src/playerD/states/attack.gd" type="Script" id=10]
[ext_resource path="res://src/playerD/states/dash.gd" type="Script" id=11] [ext_resource path="res://src/playerD/states/dash.gd" type="Script" id=11]
[ext_resource path="res://src/playerD/states/hurt.gd" type="Script" id=12] [ext_resource path="res://src/playerD/states/hurt.gd" type="Script" id=12]
@ -579,12 +578,14 @@ roll_node = NodePath("../roll")
[node name="fall" parent="movement_state_machine" index="1"] [node name="fall" parent="movement_state_machine" index="1"]
script = ExtResource( 6 ) script = ExtResource( 6 )
debug_state = true
move_speed = 90.0 move_speed = 90.0
animation_sequence = [ "jump" ] animation_sequence = [ "jump" ]
landing_node = NodePath("") landing_node = NodePath("")
[node name="move" parent="movement_state_machine" index="2"] [node name="move" parent="movement_state_machine" index="2"]
script = ExtResource( 5 ) script = ExtResource( 5 )
debug_state = true
move_speed = 90.0 move_speed = 90.0
animation_sequence = [ "step", "run" ] animation_sequence = [ "step", "run" ]
jump_node = NodePath("../jump") jump_node = NodePath("../jump")
@ -592,6 +593,7 @@ attack_node = NodePath("../attack")
[node name="jump" type="Node" parent="movement_state_machine" index="3"] [node name="jump" type="Node" parent="movement_state_machine" index="3"]
script = ExtResource( 8 ) script = ExtResource( 8 )
debug_state = true
move_speed = 90.0 move_speed = 90.0
animation_sequence = [ "jump" ] animation_sequence = [ "jump" ]
idle_node = NodePath("../idle") idle_node = NodePath("../idle")
@ -619,9 +621,9 @@ idle_node = NodePath("../idle")
[node name="dash" type="Node" parent="movement_state_machine" index="6"] [node name="dash" type="Node" parent="movement_state_machine" index="6"]
script = ExtResource( 11 ) script = ExtResource( 11 )
move_speed = 90.0 move_speed = 90.0
move_speed_modifier = 90.0 move_speed_modifier = 160.0
move_modifier_move_acceleration = -180.0 move_modifier_move_acceleration = -160.0
jerk_factor = -90.0 jerk_factor = -190.0
animation_sequence = [ "dash" ] animation_sequence = [ "dash" ]
fall_node = NodePath("../fall") fall_node = NodePath("../fall")
idle_node = NodePath("../idle") idle_node = NodePath("../idle")
@ -673,10 +675,6 @@ default_color = Color( 1, 0.607843, 0, 1 )
script = ExtResource( 16 ) script = ExtResource( 16 )
interactable_parent_callback = "touch_the_thing" interactable_parent_callback = "touch_the_thing"
[node name="Modifier_Receiver" parent="." index="9" instance=ExtResource( 9 )]
modifier_parent_callback = "receive_modifier"
debug_receiver = true
[connection signal="do_attack" from="movement_state_machine/attack" to="." method="_on_attack_do_attack"] [connection signal="do_attack" from="movement_state_machine/attack" to="." method="_on_attack_do_attack"]
[connection signal="frame_reached" from="movement_state_machine/roll" to="." method="_on_roll_frame_reached"] [connection signal="frame_reached" from="movement_state_machine/roll" to="." method="_on_roll_frame_reached"]
[connection signal="state_exited" from="movement_state_machine/roll" to="." method="_on_roll_state_exited"] [connection signal="state_exited" from="movement_state_machine/roll" to="." method="_on_roll_state_exited"]

View File

@ -26,8 +26,6 @@ export var jerk_factor: float = 0
var adjusted_move_speed: float var adjusted_move_speed: float
var jerk: float var jerk: float
var physics_modifier :StateModifier
##TODO: Deprecate this useless fool! ##TODO: Deprecate this useless fool!
var speed_multiplier: float = 1.0 var speed_multiplier: float = 1.0
@ -261,60 +259,26 @@ func process_physics(_delta: float) -> State:
# animation_index += 1 # animation_index += 1
func move_actor_as_desired(delta: float, x_direction: float = 0): func move_actor_as_desired(delta: float, x_direction: float = 0):
var _move_speed = move_speed
var _move_speed_modifier = move_speed_modifier
var _move_modifier_move_acceleration = move_modifier_move_acceleration
var _move_acceleration = move_acceleration
var _jerk_factor = jerk_factor
var _gravity = gravity
if physics_modifier:
#physics_modifier.modifier_properties.jerk_factor
#print(physics_modifier.name)
#UiManager.debug_text = physics_modifier.name + str(round(adjusted_move_speed))
var mod_props :ModifierProperties = physics_modifier.get_modifier_properties()
if mod_props.move_speed != 0:
_move_speed = mod_props.move_speed
_move_speed_modifier += mod_props.move_speed_modifier
_move_acceleration += mod_props.move_acceleration
_move_modifier_move_acceleration += mod_props.move_modifier_move_acceleration
_jerk_factor += mod_props.jerk_factor
# else:
# UiManager.debug_text = ''
# Assuming adjusted_move_speed is set to the mood speed modifier on state entry # Assuming adjusted_move_speed is set to the mood speed modifier on state entry
# Move speed is the base speed plus the modifier minus the decay adjusted for time # Move speed is the base speed plus the modifier minus the decay adjusted for time
jerk += _jerk_factor * delta jerk += jerk_factor * delta
adjusted_move_speed += _move_modifier_move_acceleration * delta adjusted_move_speed += move_modifier_move_acceleration * delta
#Another crappy normalization hack var new_move_speed = move_speed + (move_acceleration * delta) + adjusted_move_speed + jerk
if adjusted_move_speed > _move_speed_modifier and _move_speed_modifier > 0:
adjusted_move_speed = _move_speed_modifier
elif adjusted_move_speed < _move_speed_modifier and _move_speed_modifier < 0:
adjusted_move_speed = _move_speed_modifier
if _move_speed_modifier == 0:
adjusted_move_speed = 0
var new_move_speed = (_move_speed + _move_speed_modifier ) + (_move_acceleration * delta) + adjusted_move_speed + jerk
# A really crappy normalization to prevent modifying past the base move speed. # A really crappy normalization to prevent modifying past the base move speed.
if _move_speed_modifier > 0 and new_move_speed < _move_speed: # positive modifier if move_speed_modifier > 0 and new_move_speed < move_speed: # positive modifier
#print("nope1") #print("nope1")
new_move_speed = _move_speed new_move_speed = move_speed
#adjusted_move_speed = 0 elif move_speed_modifier < 0 and new_move_speed > move_speed: # negative modifier
elif _move_speed_modifier < 0 and new_move_speed > _move_speed: # negative modifier
#print("nope2") #print("nope2")
new_move_speed = _move_speed new_move_speed = move_speed
#adjusted_move_speed = 0 # else:
else: # UiManager.debug_text = str(round(adjusted_move_speed)) + "," + str(round(new_move_speed)) + "," + str(round(jerk))
if new_move_speed != move_speed: # #print(adjusted_move_speed, ",", new_move_speed, ",", jerk)
UiManager.debug_text = str(round(adjusted_move_speed)) + "," + str(round(new_move_speed)) + "," + str(round(jerk))
#print(adjusted_move_speed, ",", new_move_speed, ",", jerk)
#print(new_move_speed, " ", adjusted_move_speed) #print(new_move_speed, " ", adjusted_move_speed)
move_component.velocity.y += _gravity * delta move_component.velocity.y += gravity * delta
#parent.velocity = parent.move_and_slide(parent.velocity, Vector2(0, -1)) #parent.velocity = parent.move_and_slide(parent.velocity, Vector2(0, -1))
#print(speed_multiplier) #print(speed_multiplier)
if (x_direction != 0): if (x_direction != 0):

View File

@ -1,7 +1,5 @@
class_name StateMachineAnimatedActor extends StateMachine class_name StateMachineAnimatedActor extends StateMachine
#var physics_modifier : StateModifier
func change_state(new_state: State) -> void: func change_state(new_state: State) -> void:
if new_state.state_ready == false: if new_state.state_ready == false:
# Don't transition to unready state # Don't transition to unready state
@ -14,9 +12,6 @@ func change_state(new_state: State) -> void:
if current_state.modifier: # Current state has a modifier if current_state.modifier: # Current state has a modifier
new_state.transfer_modifiers(current_state.modifier) new_state.transfer_modifiers(current_state.modifier)
current_state.modifier = null current_state.modifier = null
if current_state.physics_modifier: # Current state has a physics modifier
new_state.physics_modifier = current_state.physics_modifier
current_state.physics_modifier = null
current_state = new_state current_state = new_state
current_state.enter() current_state.enter()

View File

@ -92,7 +92,6 @@ func get_modifier_properties() -> ModifierProperties:
modifier_properties.jerk_factor) modifier_properties.jerk_factor)
func ready(modifier_name:String, anim_name:String = '', type = TYPE.NONE, timeout : float = 0, parent:Node = null, function_name : String = "") -> Timer: func ready(modifier_name:String, anim_name:String = '', type = TYPE.NONE, timeout : float = 0, parent:Node = null, function_name : String = "") -> Timer:
name = modifier_name
# If somebody forgot to specify the type # If somebody forgot to specify the type
if anim_name != '' and type == TYPE.NONE: if anim_name != '' and type == TYPE.NONE:
modifier_type = TYPE.REPLACE_ANIMATION modifier_type = TYPE.REPLACE_ANIMATION