From d4a20cf14aff4645b638bf897179df7916afb066 Mon Sep 17 00:00:00 2001 From: Hurlu Date: Sat, 4 Apr 2020 17:23:08 +0200 Subject: [PATCH] c la patinoir --- Scripts/PaintEffects/ConfuseDirections.gd | 12 ++------- Scripts/PaintEffects/Downscale.gd | 8 +++--- Scripts/PaintEffects/Slippery.gd | 32 +++++++++++++++++++++++ 3 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 Scripts/PaintEffects/Slippery.gd diff --git a/Scripts/PaintEffects/ConfuseDirections.gd b/Scripts/PaintEffects/ConfuseDirections.gd index 95cfc11..69327d9 100644 --- a/Scripts/PaintEffects/ConfuseDirections.gd +++ b/Scripts/PaintEffects/ConfuseDirections.gd @@ -2,19 +2,11 @@ extends Node export var Duration = 7.5 -func shuffleList(list): - var shuffledList = [] - var indexList = range(list.size()) - for i in range(list.size()): - var x = randi() % indexList.size() - shuffledList.append(list[indexList[x]]) - indexList.remove(x) - return shuffledList - func ConfusionRoutine(player, delta): var elapsed = 0 var inputs = player.baseInputs - player.inputs = shuffleList(inputs) + inputs.shuffle() + player.inputs = inputs while elapsed < Duration: elapsed += yield() player.inputs = player.baseInputs diff --git a/Scripts/PaintEffects/Downscale.gd b/Scripts/PaintEffects/Downscale.gd index d909189..d473fa9 100644 --- a/Scripts/PaintEffects/Downscale.gd +++ b/Scripts/PaintEffects/Downscale.gd @@ -15,8 +15,8 @@ func DwarfRoutine(player, delta): var elapsed = delta var fast_speed = player.MAX_SPEED * FastFactor var slow_speed = player.MAX_SPEED - var fast_acc = player.ACCELERATION * (FastFactor / 2) - var slow_acc = player.ACCELERATION + var fast_friction = player.FRICTION * (FastFactor / 2) + var slow_friction = player.FRICTION var small_scale = player.transform.get_scale() / GrowDownFactor var big_scale = player.transform.get_scale() var sprite = player.get_node("Sprite") @@ -24,7 +24,7 @@ func DwarfRoutine(player, delta): while elapsed < GrowDownTime: player.MAX_SPEED = lerp(slow_speed, fast_speed, elapsed / GrowDownTime) - player.ACCELERATION = lerp(slow_acc, fast_acc, elapsed / GrowDownTime) + player.FRICTION = lerp(slow_friction, fast_friction, elapsed / GrowDownTime) setScale(sprite, coll, lerp(big_scale, small_scale, elapsed / GrowDownTime)) elapsed += yield() @@ -35,7 +35,7 @@ func DwarfRoutine(player, delta): while elapsed < GrowBigTime: player.MAX_SPEED = lerp(fast_speed, slow_speed, elapsed / GrowBigTime) - player.ACCELERATION = lerp(fast_acc, slow_acc, elapsed / GrowBigTime) + player.FRICTION = lerp(fast_friction, slow_friction, elapsed / GrowBigTime) setScale(sprite, coll, lerp(small_scale, big_scale, elapsed / GrowBigTime)) elapsed += yield() diff --git a/Scripts/PaintEffects/Slippery.gd b/Scripts/PaintEffects/Slippery.gd new file mode 100644 index 0000000..f173d84 --- /dev/null +++ b/Scripts/PaintEffects/Slippery.gd @@ -0,0 +1,32 @@ +extends Node + +#The time, in seconds, it should take for the character to grow up +export var SlipperyTime = 7.5 + +#How much less friction should the player have +export var FrictionFactor = 20 +export var SpeedFactor = 3 + +func SlipperyRoutine(player, delta): + var elapsed = delta + + var originalFriction = player.FRICTION + var originalSpeed = player.MAX_SPEED + + player.FRICTION /= FrictionFactor + player.MAX_SPEED *= SpeedFactor + + var sprite = player.get_node("Sprite") + var coll = player.get_node("CollisionShape2D") + + while elapsed < SlipperyTime: + elapsed += yield() + + player.FRICTION = originalFriction + player.MAX_SPEED = originalSpeed + + +func StartEffect(player): + var rout = SlipperyRoutine(player, 0) + return rout +