From 8c5ab22d90ff604c1a7f9789debf1ab122db7a3e Mon Sep 17 00:00:00 2001 From: Hurlu Date: Sun, 5 Apr 2020 18:11:40 +0200 Subject: [PATCH] hop les trails fdp --- Assets/BigPlaceholder.png | Bin 236 -> 1376 bytes Scene/FastTrail.tscn | 15 +++++++++++++-- Scene/SlowTrail.tscn | 17 ++++++++++++++--- Scripts/FastTrail.gd | 18 +++++++++++++----- Scripts/Player.gd | 3 +++ Scripts/SlowTrail.gd | 21 +++++++++++++++------ 6 files changed, 58 insertions(+), 16 deletions(-) diff --git a/Assets/BigPlaceholder.png b/Assets/BigPlaceholder.png index 06c0a8c3a329ac4b90835dd06b9f59d84c9ce7e8..36a6eaef5f28fa726a340e5c5612d2a43cbb6c28 100644 GIT binary patch delta 1348 zcmV-K1-ts}0pJRd8Gi-<001hMvXB4(0@iv|SaechcOYYuFXS=g@ z;-nMkytoCFH8P{qPm(8)@MWj->@r`S5xH3m+p;#p}yD8x8orXIj%srX~h?vj-B+qep{uF84({Be!SSI z<^IVh{pRdx&VO;uu7v0yS3HxtO>y_&h>3+ujfiTv6n)z@qb6T`1GSE+R)-bVC=)~L zNr5^QnlyIXs3FC`gAFZnW7)PO#+jQe1YuR0Y)-OtN#N8#PGIJHF0{wZYdj2=Fmfk& zG9eh@i>K;d4PUKKf#zJxoM?#|>edQ*@mhpPW06~Tcz*#1&7-MqeaT&oe=Q5FfS_)f z6DC-Ey+Tx_$J&z3S-d*927m1rvVH;}A&jj^h6DtBBvFdwjoFBxV*;Oo%vl0g5FmBR z9a(Y^iGY)Mjg4=Nwl6DRW*jd7p%SrG5&#vz3PD4}eoI(F#bNsdRgG$zG;4_xL(~|f z#dS^<6MqY)7R@YKwvr@;q$ws#Ddki$XTdS1F2`&+<(x~wpd}QDs<<9|RPZi@gGG%sd8Q3$-qEoMHmIKjDv zEOo)@w1|OV7{og1&hA0(m)soG{ZnrIj+|TQ{slR=(0w5HncEv`z3k&wHlVc&p(##C z!S;hw;e;RlPQKPU|Ca&&2l^jq1(J!Cn(^QL6RTD@`LOT+#Q*>SglR)VP)S2WAW%|I zMt@06MF0SJoPCi!NW(xJ#b48wic~t-LBt_Lb+RBT#ZjtQ1Pi6D(5i#UrC-p*kfgXc z3a$kQKNhPFF3!3-xC(;c2Z)oSlcI~1_`jskBF2N`e!RQ)xO)c(tvXZ9zyzRbmXS>* z#X@mK480Dc8)koELM70?qOCnRN`skn4)TwFBDu> zIB#)Q>kZbqCx2nMq%G&TPICk)EFz5zM965MhB_?7Y1K$Ek){2lhkw}dXUHX!tA7SY zj(KcAh2;3b|KNAGW_fDTO$sN0;EQd4i~^xupxw0X?_=9;p8)=6;7aTIH(J2VC+W?u z7CQnW+rY(jSCjXE%N=0oNtX=Ck^D4;av69(qi-q#gSSBcs@q#y{D6rJ{W%obV*G` z2jm0=4>t{FwLWqH004VQL_t(|+U?Ro4FCWL#4y0W=R*Y#l2*d9PEzpINPvOCz+hku z3IS1za g0uDzyz=IoW6<6N+{=I8mJp00i_>zopr06`HocK`qY diff --git a/Scene/FastTrail.tscn b/Scene/FastTrail.tscn index 45c7a28..3d038e6 100644 --- a/Scene/FastTrail.tscn +++ b/Scene/FastTrail.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=5 format=2] -[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=1] +[ext_resource path="res://Assets/PAINT1.png" type="Texture" id=1] [ext_resource path="res://Scripts/FastTrail.gd" type="Script" id=2] +[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=3] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 88.8117, 26.2111 ) @@ -12,6 +13,7 @@ script = ExtResource( 2 ) [node name="Sprite" type="Sprite" parent="."] modulate = Color( 0.901961, 0, 0, 1 ) +light_mask = 64 z_index = 10 texture = ExtResource( 1 ) offset = Vector2( 88, 0 ) @@ -19,4 +21,13 @@ offset = Vector2( 88, 0 ) [node name="Area2D" type="Area2D" parent="Sprite"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"] +visible = false +position = Vector2( 87, 0 ) shape = SubResource( 1 ) + +[node name="Mask" type="Light2D" parent="."] +position = Vector2( 88.2346, -0.629855 ) +scale = Vector2( 1, 1.2 ) +texture = ExtResource( 3 ) +mode = 3 +range_item_cull_mask = 64 diff --git a/Scene/SlowTrail.tscn b/Scene/SlowTrail.tscn index 12d1853..bdba376 100644 --- a/Scene/SlowTrail.tscn +++ b/Scene/SlowTrail.tscn @@ -1,16 +1,18 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=5 format=2] -[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=1] +[ext_resource path="res://Assets/PAINT1.png" type="Texture" id=1] [ext_resource path="res://Scripts/SlowTrail.gd" type="Script" id=2] +[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=3] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 88.8117, 26.2111 ) [node name="SlowTrail" type="Node2D"] -rotation = -6.28319 script = ExtResource( 2 ) [node name="Sprite" type="Sprite" parent="."] +modulate = Color( 0.0392157, 0.0313726, 0.917647, 1 ) +light_mask = 512 z_index = 10 texture = ExtResource( 1 ) offset = Vector2( 88, 0 ) @@ -18,4 +20,13 @@ offset = Vector2( 88, 0 ) [node name="Area2D" type="Area2D" parent="Sprite"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"] +visible = false +position = Vector2( 87, 0 ) shape = SubResource( 1 ) + +[node name="Mask" type="Light2D" parent="."] +position = Vector2( 88, 0 ) +scale = Vector2( 1, 1.2 ) +texture = ExtResource( 3 ) +mode = 3 +range_item_cull_mask = 512 diff --git a/Scripts/FastTrail.gd b/Scripts/FastTrail.gd index 7076b6b..d4ea5e4 100644 --- a/Scripts/FastTrail.gd +++ b/Scripts/FastTrail.gd @@ -4,25 +4,33 @@ var fastFactor var lifetime = 5 var elapsed = 0 var sprite +var players + +onready var mask = $Mask func slow_player(victim): if victim.is_in_group("Player"): - victim.MAX_SPEED *= fastFactor - victim.ACCELERATION *= fastFactor + players.append(victim) func unslow_player(victim): - if victim.is_in_group("Player"): - victim.MAX_SPEED /= fastFactor - victim.ACCELERATION /= fastFactor + players.remove(players.find(victim)) # Called when the node enters the scene tree for the first time. func _ready(): + players = [] sprite = get_node("Sprite") get_node("Sprite/Area2D").connect("body_entered", self, "slow_player") get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player") func _process(delta): elapsed += delta + if mask != null: + mask.offset.x = lerp(88, 270, elapsed / 0.8) + if mask.offset.x >= 269: + mask.queue_free() + mask = null + for each in players: + each.SPEED_FACTORS.append(2) if elapsed >= lifetime * 0.7: sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3))) if elapsed >= lifetime: diff --git a/Scripts/Player.gd b/Scripts/Player.gd index 488d68b..bf63c65 100644 --- a/Scripts/Player.gd +++ b/Scripts/Player.gd @@ -71,6 +71,7 @@ func _ready(): func launch_slow(): if slow_cooldown_elapsed < slow_cooldown: return + curLife -= 3 slow_cooldown_elapsed = 0 var world = get_parent() var inst = load("res://Scene/SlowTrail.tscn").instance() @@ -89,6 +90,7 @@ func launch_slow(): func launch_fast(): if fast_cooldown_elapsed < fast_cooldown: return + curLife -= 3 fast_cooldown_elapsed = 0 var world = get_parent() var inst = load("res://Scene/FastTrail.tscn").instance() @@ -119,6 +121,7 @@ func _process(delta): updatePaintEffects(delta) curLife -= delta slow_cooldown_elapsed += delta + fast_cooldown_elapsed += delta if curLife <= 0: get_node("/root/World/GameManager").endGame() healthBar.healthUpdated(curLife) diff --git a/Scripts/SlowTrail.gd b/Scripts/SlowTrail.gd index 6e1f699..568229a 100644 --- a/Scripts/SlowTrail.gd +++ b/Scripts/SlowTrail.gd @@ -4,24 +4,33 @@ var slowFactor var lifetime = 5 var elapsed = 0 var sprite +var players -func slow_player(victim): +onready var mask = $Mask + +func slow_player(victim): if victim.is_in_group("Player"): - victim.MAX_SPEED /= slowFactor + players.append(victim) -func unslow_player(victim): - if victim.is_in_group("Player"): - victim.MAX_SPEED *= slowFactor +func unslow_player(victim): + players.remove(players.find(victim)) # Called when the node enters the scene tree for the first time. func _ready(): + players = [] 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_exited", self, "unslow_player") func _process(delta): elapsed += delta + if mask != null: + mask.offset.x = lerp(88, 270, elapsed / 0.8) + if mask.offset.x >= 269: + mask.queue_free() + mask = null + for each in players: + each.SPEED_FACTORS.append(0.5) if elapsed >= lifetime * 0.7: sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3))) if elapsed >= lifetime: