diff --git a/Assets/Buckets/black_bucket.png b/Assets/Buckets/black_bucket.png new file mode 100644 index 0000000..629ef49 Binary files /dev/null and b/Assets/Buckets/black_bucket.png differ diff --git a/Assets/Buckets/black_bucket.png.import b/Assets/Buckets/black_bucket.png.import new file mode 100644 index 0000000..93b1abe --- /dev/null +++ b/Assets/Buckets/black_bucket.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/black_bucket.png-82db57be954d8dc9c85bfc4bcaad4a6d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Buckets/black_bucket.png" +dest_files=[ "res://.import/black_bucket.png-82db57be954d8dc9c85bfc4bcaad4a6d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Buckets/blue_bucket.png b/Assets/Buckets/blue_bucket.png new file mode 100644 index 0000000..1e72cf0 Binary files /dev/null and b/Assets/Buckets/blue_bucket.png differ diff --git a/Assets/Buckets/blue_bucket.png.import b/Assets/Buckets/blue_bucket.png.import new file mode 100644 index 0000000..278d395 --- /dev/null +++ b/Assets/Buckets/blue_bucket.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/blue_bucket.png-bb4a2cd85d523edb28ca097f1bee975d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Buckets/blue_bucket.png" +dest_files=[ "res://.import/blue_bucket.png-bb4a2cd85d523edb28ca097f1bee975d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Buckets/potpeinture_final.png b/Assets/Buckets/potpeinture_final.png new file mode 100644 index 0000000..8b3dd99 Binary files /dev/null and b/Assets/Buckets/potpeinture_final.png differ diff --git a/Assets/Buckets/potpeinture_final.png.import b/Assets/Buckets/potpeinture_final.png.import new file mode 100644 index 0000000..43cbb1c --- /dev/null +++ b/Assets/Buckets/potpeinture_final.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/potpeinture_final.png-929fa18218f237f27869ef1e3f97a147.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Buckets/potpeinture_final.png" +dest_files=[ "res://.import/potpeinture_final.png-929fa18218f237f27869ef1e3f97a147.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Buckets/red_bucket.png b/Assets/Buckets/red_bucket.png new file mode 100644 index 0000000..48f5b86 Binary files /dev/null and b/Assets/Buckets/red_bucket.png differ diff --git a/Assets/Buckets/red_bucket.png.import b/Assets/Buckets/red_bucket.png.import new file mode 100644 index 0000000..f0f5a63 --- /dev/null +++ b/Assets/Buckets/red_bucket.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/red_bucket.png-958a2b0d2f584075330a88638999e5b6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Buckets/red_bucket.png" +dest_files=[ "res://.import/red_bucket.png-958a2b0d2f584075330a88638999e5b6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Buckets/yellow_bucket.png b/Assets/Buckets/yellow_bucket.png new file mode 100644 index 0000000..540fcbc Binary files /dev/null and b/Assets/Buckets/yellow_bucket.png differ diff --git a/Assets/Buckets/yellow_bucket.png.import b/Assets/Buckets/yellow_bucket.png.import new file mode 100644 index 0000000..373aa07 --- /dev/null +++ b/Assets/Buckets/yellow_bucket.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/yellow_bucket.png-9d7610dd39cd08593211fc7a4b07df59.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Buckets/yellow_bucket.png" +dest_files=[ "res://.import/yellow_bucket.png-9d7610dd39cd08593211fc7a4b07df59.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Scene/TestScene.tscn b/Scene/TestScene.tscn index 80fd880..2fd7fdb 100644 --- a/Scene/TestScene.tscn +++ b/Scene/TestScene.tscn @@ -1,10 +1,8 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://Scene/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://Assets/Placeholder.png" type="Texture" id=2] [ext_resource path="res://Scene/Clopinette.tscn" type="PackedScene" id=3] -[ext_resource path="res://Scene/EndGameWindow.tscn" type="PackedScene" id=4] -[ext_resource path="res://Scene/GameManager.tscn" type="PackedScene" id=5] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 15.6178, 15.7669 ) @@ -29,10 +27,8 @@ shape = SubResource( 1 ) [node name="Player2" parent="." instance=ExtResource( 1 )] position = Vector2( 221.278, 126.45 ) -[node name="Clopinette" parent="." groups=[ -"bucket", -] instance=ExtResource( 3 )] -position = Vector2( 324.755, 84.649 ) +[node name="Clopinette" parent="." instance=ExtResource( 3 )] +position = Vector2( 96.6926, 271.557 ) scriptName = "res://Scripts/PaintEffects/Invisibility.gd" [node name="Clopinette2" parent="." instance=ExtResource( 3 )] @@ -47,6 +43,13 @@ scriptName = "res://Scripts/PaintEffects/Downscale.gd" position = Vector2( 604.527, 280.888 ) scriptName = "res://Scripts/PaintEffects/ConfuseDirections.gd" +[node name="Clopinette6" parent="." instance=ExtResource( 3 )] +position = Vector2( 521.04, 463.822 ) + +[node name="Clopinette5" parent="." instance=ExtResource( 3 )] +position = Vector2( 204.282, 391.385 ) +scriptName = "res://Scripts/PaintEffects/Slippery.gd" + [node name="Label" type="Label" parent="."] margin_left = 67.496 margin_top = 232.645 @@ -57,6 +60,16 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="Label6" type="Label" parent="."] +margin_left = 480.017 +margin_top = 416.806 +margin_right = 548.017 +margin_bottom = 430.806 +text = "Randomisé !" +__meta__ = { +"_edit_use_anchors_": false +} + [node name="Label2" type="Label" parent="."] margin_left = 263.559 margin_top = 234.351 @@ -87,11 +100,12 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="CanvasLayer" parent="." instance=ExtResource( 4 )] - -[node name="GameManager" parent="." instance=ExtResource( 5 )] - -[node name="SpawnPoint" type="Node2D" parent="." groups=[ -"spawn_point", -]] -position = Vector2( 476.901, 71.2501 ) +[node name="Label5" type="Label" parent="."] +margin_left = 163.787 +margin_top = 348.938 +margin_right = 247.787 +margin_bottom = 362.938 +text = "Patinoire" +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Scripts/Clopinette.gd b/Scripts/Clopinette.gd index 2ce6413..cf767ba 100644 --- a/Scripts/Clopinette.gd +++ b/Scripts/Clopinette.gd @@ -7,13 +7,24 @@ var loadedScript export(String, FILE, "*.gd") var scriptName +var scriptSprite = { "Invisibility": "black", + "Slippery": "blue", + "Upscale": "red", + "ConfuseDirections": "yellow"} + # Called when the node enters the scene tree for the first time. func _ready(): + randomize() sprite = get_node("Sprite") area = get_node("Area2D") - loadedScript = load(scriptName).new() + if scriptName != "": + loadedScript = load(scriptName).new() + else: + var i = randi() % scriptSprite.size() + loadedScript = load("res://Scripts/PaintEffects/" + scriptSprite.keys()[i] + ".gd").new() + sprite.texture = load("res://Assets/Buckets/" + scriptSprite.values()[i] + "_bucket.png") area.connect("body_entered", self, "onBodyEntered") -func onBodyEntered(body): +func onBodyEntered(body): body.addCoroutine(loadedScript.StartEffect(body)) queue_free() 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 +