Mdr le jeu il fonctionne plus de la même façon
This commit is contained in:
parent
ca1b21e95e
commit
b54e6d0233
@ -1,9 +1,10 @@
|
|||||||
[gd_scene load_steps=29 format=2]
|
[gd_scene load_steps=30 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Assets/spriteset test.png" type="Texture" id=1]
|
[ext_resource path="res://Assets/spriteset test.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://Scripts/Player.gd" type="Script" id=2]
|
[ext_resource path="res://Scripts/Player.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://Assets/zétoile.png" type="Texture" id=3]
|
[ext_resource path="res://Assets/zétoile.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://Sounds/PaintJamPickupSound.wav" type="AudioStream" id=4]
|
[ext_resource path="res://Sounds/PaintJamPickupSound.wav" type="AudioStream" id=4]
|
||||||
|
[ext_resource path="res://Assets/Patain.png" type="Texture" id=5]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 15.5015, 46.849 )
|
extents = Vector2( 15.5015, 46.849 )
|
||||||
@ -243,7 +244,7 @@ parameters/Idle/blend_position = Vector2( -1.1, 0.0314158 )
|
|||||||
parameters/Run/blend_position = Vector2( -0.0925897, 0.517895 )
|
parameters/Run/blend_position = Vector2( -0.0925897, 0.517895 )
|
||||||
|
|
||||||
[node name="ConfusionStars" type="Node2D" parent="."]
|
[node name="ConfusionStars" type="Node2D" parent="."]
|
||||||
scale = Vector2( 10, 10 )
|
visible = false
|
||||||
|
|
||||||
[node name="Path2D" type="Path2D" parent="ConfusionStars"]
|
[node name="Path2D" type="Path2D" parent="ConfusionStars"]
|
||||||
position = Vector2( -19.4617, -21.2425 )
|
position = Vector2( -19.4617, -21.2425 )
|
||||||
@ -275,5 +276,39 @@ scale = Vector2( 1.1136, 1.2906 )
|
|||||||
z_index = -1
|
z_index = -1
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="Patins" type="Node2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="Path2D" type="Path2D" parent="Patins"]
|
||||||
|
position = Vector2( -19.4617, -21.2425 )
|
||||||
|
scale = Vector2( 0.731191, 0.591658 )
|
||||||
|
curve = SubResource( 24 )
|
||||||
|
|
||||||
|
[node name="PathFollow2D" type="PathFollow2D" parent="Patins/Path2D"]
|
||||||
|
position = Vector2( 42.3056, -54.7672 )
|
||||||
|
rotation = 0.639347
|
||||||
|
offset = 68.39
|
||||||
|
rotate = false
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="Patins/Path2D/PathFollow2D"]
|
||||||
|
position = Vector2( 0.823479, -2.89215 )
|
||||||
|
rotation = -0.639347
|
||||||
|
scale = Vector2( 1.1136, 1.2906 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="PathFollow2D2" type="PathFollow2D" parent="Patins/Path2D"]
|
||||||
|
position = Vector2( 3.62132, -97.5903 )
|
||||||
|
rotation = 0.639347
|
||||||
|
offset = 203.97
|
||||||
|
rotate = false
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="Patins/Path2D/PathFollow2D2"]
|
||||||
|
position = Vector2( 0.823479, -2.89215 )
|
||||||
|
rotation = -0.639347
|
||||||
|
scale = Vector2( 1.1136, 1.2906 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="PickupPlayer" type="AudioStreamPlayer2D" parent="."]
|
[node name="PickupPlayer" type="AudioStreamPlayer2D" parent="."]
|
||||||
stream = ExtResource( 4 )
|
stream = ExtResource( 4 )
|
||||||
|
|||||||
@ -25,10 +25,8 @@ margin_bottom = -5.0
|
|||||||
] instance=ExtResource( 1 )]
|
] instance=ExtResource( 1 )]
|
||||||
position = Vector2( 317.194, 221.462 )
|
position = Vector2( 317.194, 221.462 )
|
||||||
|
|
||||||
[node name="Player2" parent="." groups=[
|
[node name="Player2" parent="." instance=ExtResource( 1 )]
|
||||||
"player",
|
position = Vector2( 1338.97, 220.441 )
|
||||||
] instance=ExtResource( 1 )]
|
|
||||||
position = Vector2( 1593.81, 209.193 )
|
|
||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource( 4 )]
|
[node name="CanvasLayer" parent="." instance=ExtResource( 4 )]
|
||||||
|
|
||||||
@ -55,9 +53,178 @@ position = Vector2( 1659.71, 594.146 )
|
|||||||
position = Vector2( 340.904, 670.119 )
|
position = Vector2( 340.904, 670.119 )
|
||||||
|
|
||||||
[node name="Clopinette" parent="." instance=ExtResource( 2 )]
|
[node name="Clopinette" parent="." instance=ExtResource( 2 )]
|
||||||
position = Vector2( 265.689, 415.412 )
|
position = Vector2( 201.25, 408.252 )
|
||||||
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
|
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Invisible"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette3" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 201.25, 533.362 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette3"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Invisible"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette5" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 201.25, 635.861 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette5"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Invisible"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette6" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 202.757, 735.346 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette6"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Invisible"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Clopinette2" parent="." instance=ExtResource( 2 )]
|
[node name="Clopinette2" parent="." instance=ExtResource( 2 )]
|
||||||
position = Vector2( 259.961, 538.562 )
|
position = Vector2( 1454.23, 429.732 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette2"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Gigantisme"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette10" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 1455.74, 509.621 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette10"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Gigantisme"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette11" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 1460.26, 589.511 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette11"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Gigantisme"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette12" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 1464.78, 675.429 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette12"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Gigantisme"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette4" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 733.945, 418.276 )
|
||||||
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
|
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette4"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Patinage"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette7" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 736.96, 525.298 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette7"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Patinage"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette8" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 742.99, 638.348 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette8"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Patinage"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Clopinette9" parent="." instance=ExtResource( 2 )]
|
||||||
|
position = Vector2( 746.004, 716.73 )
|
||||||
|
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Clopinette9"]
|
||||||
|
margin_left = -22.9116
|
||||||
|
margin_top = -44.3913
|
||||||
|
margin_right = 17.0884
|
||||||
|
margin_bottom = -30.3913
|
||||||
|
text = "Patinage"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="DebugLabel" type="Label" parent="."]
|
||||||
|
margin_left = 701.0
|
||||||
|
margin_top = 52.0
|
||||||
|
margin_right = 1289.0
|
||||||
|
margin_bottom = 264.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|||||||
@ -2,16 +2,13 @@ extends Node
|
|||||||
|
|
||||||
export var Duration = 7.5
|
export var Duration = 7.5
|
||||||
|
|
||||||
func ConfusionRoutine(player, delta):
|
func ConfusionRoutine(player, delta):
|
||||||
player.get_node("ConfusionStars").visible = true
|
|
||||||
var tex = load("res://Assets/zétoile.png")
|
|
||||||
player.get_node("ConfusionStars/Path2D/PathFollow2D/Sprite").texture = tex
|
|
||||||
player.get_node("ConfusionStars/Path2D/PathFollow2D2/Sprite").texture = tex
|
|
||||||
var elapsed = delta
|
var elapsed = delta
|
||||||
var inputs = player.baseInputs + []
|
var inputs = player.baseInputs + []
|
||||||
inputs.shuffle()
|
inputs.shuffle()
|
||||||
player.inputs = inputs
|
player.inputs = inputs
|
||||||
while elapsed < Duration:
|
while elapsed < Duration:
|
||||||
|
player.get_node("ConfusionStars").visible = true
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
player.inputs = player.baseInputs
|
player.inputs = player.baseInputs
|
||||||
player.get_node("ConfusionStars").visible = false
|
player.get_node("ConfusionStars").visible = false
|
||||||
|
|||||||
@ -13,18 +13,17 @@ func AlmostFadeOutRoutine(player, delta):
|
|||||||
var elapsed = delta
|
var elapsed = delta
|
||||||
var origin = sprite.get_modulate().a
|
var origin = sprite.get_modulate().a
|
||||||
while sprite.self_modulate.a > FadeOutValue:
|
while sprite.self_modulate.a > FadeOutValue:
|
||||||
var a = lerp(origin, FadeOutValue, elapsed / FadeOutTime)
|
player.ALPHA_FACTORS.append(lerp(1, FadeOutValue, elapsed / FadeOutTime))
|
||||||
sprite.self_modulate = Color(1,1,1, a)
|
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
|
|
||||||
elapsed -= FadeOutTime;
|
elapsed -= FadeOutTime;
|
||||||
while elapsed < InvisTime:
|
while elapsed < InvisTime:
|
||||||
|
player.ALPHA_FACTORS.append(FadeOutValue)
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
elapsed -= InvisTime;
|
elapsed -= InvisTime;
|
||||||
|
|
||||||
while sprite.self_modulate.a < origin:
|
while sprite.self_modulate.a < origin:
|
||||||
var a = lerp(FadeOutValue, origin, elapsed / FadeInTime)
|
player.ALPHA_FACTORS.append(lerp(FadeOutValue, 1, elapsed / FadeInTime))
|
||||||
sprite.self_modulate = Color(1,1,1, a)
|
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,28 +4,19 @@ extends Node
|
|||||||
export var SlipperyTime = 7.5
|
export var SlipperyTime = 7.5
|
||||||
|
|
||||||
#How much less friction should the player have
|
#How much less friction should the player have
|
||||||
export var FrictionFactor = 20
|
export var FrictionFactor = 1.0 / 20.0
|
||||||
export var SpeedFactor = 3
|
export var SpeedFactor = 3
|
||||||
|
|
||||||
func SlipperyRoutine(player, delta):
|
func SlipperyRoutine(player, delta):
|
||||||
var elapsed = delta
|
var elapsed = delta
|
||||||
player.get_node("ConfusionStars").visible = true
|
|
||||||
var tex = load("res://Assets/Patain.png")
|
|
||||||
player.get_node("ConfusionStars/Path2D/PathFollow2D/Sprite").texture = tex
|
|
||||||
player.get_node("ConfusionStars/Path2D/PathFollow2D2/Sprite").texture = tex
|
|
||||||
var originalFriction = player.FRICTION
|
|
||||||
var originalSpeed = player.MAX_SPEED
|
|
||||||
|
|
||||||
player.FRICTION /= FrictionFactor
|
|
||||||
player.MAX_SPEED *= SpeedFactor
|
|
||||||
|
|
||||||
while elapsed < SlipperyTime:
|
while elapsed < SlipperyTime:
|
||||||
|
player.get_node("Patins").visible = true
|
||||||
|
player.FRICTION_FACTORS.append(FrictionFactor)
|
||||||
|
player.SPEED_FACTORS.append(SpeedFactor)
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
|
|
||||||
player.get_node("ConfusionStars").visible = false
|
player.get_node("Patins").visible = false
|
||||||
player.FRICTION = originalFriction
|
|
||||||
player.MAX_SPEED = originalSpeed
|
|
||||||
|
|
||||||
|
|
||||||
func StartEffect(player):
|
func StartEffect(player):
|
||||||
var rout = SlipperyRoutine(player, 0)
|
var rout = SlipperyRoutine(player, 0)
|
||||||
|
|||||||
@ -9,14 +9,10 @@ export var GrowDownTime = 1.0
|
|||||||
export var GrowUpFactor = 5
|
export var GrowUpFactor = 5
|
||||||
|
|
||||||
#How much slower should the player become
|
#How much slower should the player become
|
||||||
export var SlowFactor = 6
|
export var SlowFactor = 1.0 / 6.0
|
||||||
|
|
||||||
func GiantRoutine(player, delta):
|
func GiantRoutine(player, delta):
|
||||||
var elapsed = delta
|
var elapsed = delta
|
||||||
var fast_speed = player.MAX_SPEED
|
|
||||||
var slow_speed = player.MAX_SPEED / SlowFactor
|
|
||||||
var fast_acc = player.ACCELERATION
|
|
||||||
var slow_acc = player.ACCELERATION / SlowFactor
|
|
||||||
var small_scale = player.transform.get_scale()
|
var small_scale = player.transform.get_scale()
|
||||||
var big_scale = player.transform.get_scale() * GrowUpFactor
|
var big_scale = player.transform.get_scale() * GrowUpFactor
|
||||||
var sprite = player.get_node("Sprite")
|
var sprite = player.get_node("Sprite")
|
||||||
@ -24,26 +20,24 @@ func GiantRoutine(player, delta):
|
|||||||
var conf = player.get_node("ConfusionStars")
|
var conf = player.get_node("ConfusionStars")
|
||||||
|
|
||||||
while elapsed < GrowUpTime:
|
while elapsed < GrowUpTime:
|
||||||
player.MAX_SPEED = lerp(fast_speed, slow_speed, elapsed / GrowUpTime)
|
player.SPEED_FACTORS.append(lerp(1, SlowFactor, elapsed / GrowUpTime))
|
||||||
player.ACCELERATION = lerp(fast_acc, slow_acc, elapsed / GrowUpTime)
|
player.ACCELERATION_FACTORS.append(lerp(1, SlowFactor, elapsed / GrowUpTime))
|
||||||
setScale(sprite, coll, conf, lerp(small_scale, big_scale, elapsed / GrowUpTime))
|
player.SCALE_FACTORS.append(lerp(1, GrowUpFactor, elapsed / GrowUpTime))
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
|
|
||||||
elapsed -= GrowUpTime;
|
elapsed -= GrowUpTime;
|
||||||
while elapsed < IsBigTime:
|
while elapsed < IsBigTime:
|
||||||
|
player.SPEED_FACTORS.append(SlowFactor)
|
||||||
|
player.ACCELERATION_FACTORS.append(SlowFactor)
|
||||||
|
player.SCALE_FACTORS.append(GrowUpFactor)
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
elapsed -= IsBigTime;
|
elapsed -= IsBigTime;
|
||||||
|
|
||||||
while elapsed < GrowDownTime:
|
while elapsed < GrowDownTime:
|
||||||
player.MAX_SPEED = lerp(slow_speed, fast_speed, elapsed / GrowDownTime)
|
player.SPEED_FACTORS.append(lerp(SlowFactor, 1, elapsed / GrowDownTime))
|
||||||
player.ACCELERATION = lerp(slow_acc, fast_acc, elapsed / GrowDownTime)
|
player.ACCELERATION_FACTORS.append(lerp(SlowFactor, 1, elapsed / GrowDownTime))
|
||||||
setScale(sprite, coll, conf, lerp(big_scale, small_scale, elapsed / GrowDownTime))
|
player.SCALE_FACTORS.append(lerp(GrowUpFactor, 1, elapsed / GrowDownTime))
|
||||||
elapsed += yield()
|
elapsed += yield()
|
||||||
|
|
||||||
func setScale(sprite, coll, conf, scale):
|
|
||||||
sprite.scale = scale;
|
|
||||||
coll.scale = scale;
|
|
||||||
conf.scale = scale;
|
|
||||||
|
|
||||||
func StartEffect(player):
|
func StartEffect(player):
|
||||||
var rout = GiantRoutine(player, 0)
|
var rout = GiantRoutine(player, 0)
|
||||||
|
|||||||
@ -1,8 +1,20 @@
|
|||||||
extends KinematicBody2D
|
extends KinematicBody2D
|
||||||
|
|
||||||
var MAX_SPEED = 600
|
const MAX_SPEED = 600
|
||||||
var ACCELERATION = 1800
|
const ACCELERATION = 1800
|
||||||
var FRICTION = 2000
|
const FRICTION = 2000
|
||||||
|
var SPEED_FACTORS = []
|
||||||
|
var ACCELERATION_FACTORS = []
|
||||||
|
var FRICTION_FACTORS = []
|
||||||
|
var SCALE_FACTORS = []
|
||||||
|
var ALPHA_FACTORS = []
|
||||||
|
|
||||||
|
var empty_coroutine_frames = 0
|
||||||
|
|
||||||
|
var current_speed = MAX_SPEED
|
||||||
|
var current_acceleration = ACCELERATION
|
||||||
|
var current_friction = FRICTION
|
||||||
|
|
||||||
var MAX_LIFE = 30
|
var MAX_LIFE = 30
|
||||||
const PICKUP_BONUS = 5
|
const PICKUP_BONUS = 5
|
||||||
export var rota_speed = 100
|
export var rota_speed = 100
|
||||||
@ -15,8 +27,7 @@ var fast_trail = load("res://Scene/FastPaint.tscn")
|
|||||||
var slow_cooldown_elapsed = 5
|
var slow_cooldown_elapsed = 5
|
||||||
var fast_cooldown_elapsed = 5
|
var fast_cooldown_elapsed = 5
|
||||||
|
|
||||||
var follow1;
|
var pathFollows = []
|
||||||
var follow2;
|
|
||||||
|
|
||||||
var vel = Vector2.ZERO
|
var vel = Vector2.ZERO
|
||||||
var last_dir = Vector2.ZERO
|
var last_dir = Vector2.ZERO
|
||||||
@ -38,12 +49,19 @@ onready var animationPlayer = $AnimationPlayer
|
|||||||
onready var animationTree = $AnimationTree
|
onready var animationTree = $AnimationTree
|
||||||
onready var animationState = animationTree.get("parameters/playback")
|
onready var animationState = animationTree.get("parameters/playback")
|
||||||
onready var pickupPlayer = $PickupPlayer
|
onready var pickupPlayer = $PickupPlayer
|
||||||
|
onready var sprite = $Sprite
|
||||||
|
onready var coll = $CollisionShape2D
|
||||||
|
onready var conf = $ConfusionStars
|
||||||
|
onready var pati = $Patins
|
||||||
|
|
||||||
var healthBar = null
|
var healthBar = null
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
get_node("ConfusionStars").visible = false
|
coroutines = []
|
||||||
follow1 = get_node("ConfusionStars/Path2D/PathFollow2D")
|
pathFollows.append(get_node("ConfusionStars/Path2D/PathFollow2D"))
|
||||||
follow2 = get_node("ConfusionStars/Path2D/PathFollow2D2")
|
pathFollows.append(get_node("ConfusionStars/Path2D/PathFollow2D2"))
|
||||||
|
pathFollows.append(get_node("Patins/Path2D/PathFollow2D"))
|
||||||
|
pathFollows.append(get_node("Patins/Path2D/PathFollow2D2"))
|
||||||
if self.name == "Player1":
|
if self.name == "Player1":
|
||||||
healthBar = get_tree().get_nodes_in_group("healthbar")[0]
|
healthBar = get_tree().get_nodes_in_group("healthbar")[0]
|
||||||
elif self.name == "Player2":
|
elif self.name == "Player2":
|
||||||
@ -87,8 +105,8 @@ func launch_fast():
|
|||||||
world.add_child(inst)
|
world.add_child(inst)
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
follow1.set_offset(follow1.get_offset() + delta * rota_speed)
|
for each in pathFollows:
|
||||||
follow2.set_offset(follow2.get_offset() + delta * rota_speed)
|
each.set_offset(each.get_offset() + delta * rota_speed)
|
||||||
|
|
||||||
if (self.name == "Player1" && Input.get_action_strength("gameplay_slow") > 0) \
|
if (self.name == "Player1" && Input.get_action_strength("gameplay_slow") > 0) \
|
||||||
|| (self.name == "Player2" && Input.get_action_strength("gameplay_slow2") > 0):
|
|| (self.name == "Player2" && Input.get_action_strength("gameplay_slow2") > 0):
|
||||||
@ -118,32 +136,82 @@ func get_dir():
|
|||||||
input_vector = input_vector.normalized()
|
input_vector = input_vector.normalized()
|
||||||
return input_vector
|
return input_vector
|
||||||
|
|
||||||
|
func setScale(scale):
|
||||||
|
sprite.scale = scale;
|
||||||
|
coll.scale = scale;
|
||||||
|
conf.scale = scale;
|
||||||
|
|
||||||
|
func setAlpha(alpha):
|
||||||
|
sprite.self_modulate = Color(1,1,1, alpha)
|
||||||
|
|
||||||
|
func array_mul(array):
|
||||||
|
var val = 1
|
||||||
|
for i in array:
|
||||||
|
val *= i
|
||||||
|
return val
|
||||||
|
|
||||||
|
func array_sum(array):
|
||||||
|
var val = 0
|
||||||
|
for i in array:
|
||||||
|
val += i
|
||||||
|
return val
|
||||||
|
|
||||||
|
func array_specsum(array):
|
||||||
|
if array.size() == 0:
|
||||||
|
return 1
|
||||||
|
var smaller = []
|
||||||
|
var bigger = []
|
||||||
|
for val in array:
|
||||||
|
smaller.append(val) if val < 1 else bigger.append(val)
|
||||||
|
smaller = array_mul(smaller)
|
||||||
|
bigger = 1 if bigger.size() == 0 else array_sum(bigger)
|
||||||
|
return smaller * bigger
|
||||||
|
|
||||||
|
func update_current():
|
||||||
|
current_speed = MAX_SPEED * array_specsum(SPEED_FACTORS)
|
||||||
|
current_acceleration = ACCELERATION * array_specsum(ACCELERATION_FACTORS)
|
||||||
|
current_friction = FRICTION * array_specsum(FRICTION_FACTORS)
|
||||||
|
setScale(Vector2.ONE * array_specsum(SCALE_FACTORS))
|
||||||
|
if SCALE_FACTORS.size() > 1:
|
||||||
|
print("FACTO == " + String(SCALE_FACTORS))
|
||||||
|
print("SCALE == " + String(Vector2.ONE * array_specsum(SCALE_FACTORS)))
|
||||||
|
setAlpha(1 * array_specsum(ALPHA_FACTORS))
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
var input_vector = get_dir()
|
var input_vector = get_dir()
|
||||||
|
|
||||||
|
update_current()
|
||||||
|
|
||||||
if input_vector != Vector2.ZERO:
|
if input_vector != Vector2.ZERO:
|
||||||
last_dir = input_vector
|
last_dir = input_vector
|
||||||
animationTree.set("parameters/Idle/blend_position", input_vector)
|
animationTree.set("parameters/Idle/blend_position", input_vector)
|
||||||
animationTree.set("parameters/Run/blend_position", input_vector)
|
animationTree.set("parameters/Run/blend_position", input_vector)
|
||||||
animationState.travel("Run")
|
animationState.travel("Run")
|
||||||
vel = vel.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta)
|
vel = vel.move_toward(input_vector * current_speed, current_acceleration * delta)
|
||||||
else:
|
else:
|
||||||
animationState.travel("Idle")
|
animationState.travel("Idle")
|
||||||
vel = vel.move_toward(Vector2.ZERO, FRICTION * delta)
|
vel = vel.move_toward(Vector2.ZERO, current_friction * delta)
|
||||||
|
|
||||||
vel = move_and_slide(vel)
|
vel = move_and_slide(vel)
|
||||||
|
|
||||||
func updatePaintEffects(delta):
|
func updatePaintEffects(delta):
|
||||||
var updated = []
|
var updated = []
|
||||||
for rout in coroutines:
|
#if coroutines.size() == 0:
|
||||||
if rout != null && rout.is_valid():
|
# empty_coroutine_frames += 1
|
||||||
var new_rout = rout.resume(delta)
|
#else:
|
||||||
if new_rout != null && new_rout.is_valid():
|
# empty_coroutine_frames = 0
|
||||||
updated.append(new_rout)
|
|
||||||
coroutines.remove(coroutines.find(rout))
|
#if empty_coroutine_frames > 2 || coroutines.size() > 0:
|
||||||
|
ACCELERATION_FACTORS = []
|
||||||
for rout in updated:
|
FRICTION_FACTORS = []
|
||||||
coroutines.append(rout)
|
SPEED_FACTORS = []
|
||||||
|
SCALE_FACTORS = []
|
||||||
|
ALPHA_FACTORS = []
|
||||||
|
for rout in coroutines:
|
||||||
|
if rout != null && rout.is_valid():
|
||||||
|
updated.append(rout.resume(delta))
|
||||||
|
|
||||||
|
coroutines = updated + []
|
||||||
|
|
||||||
func addCoroutine(routine):
|
func addCoroutine(routine):
|
||||||
pickupPlayer.play()
|
pickupPlayer.play()
|
||||||
|
|||||||
@ -17,6 +17,7 @@ func unslow_player(victim):
|
|||||||
func _ready():
|
func _ready():
|
||||||
sprite = get_node("Sprite")
|
sprite = get_node("Sprite")
|
||||||
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
|
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
|
||||||
|
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
|
||||||
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
|
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user