mirror of
https://github.com/Dariasteam/Cows-Revenge.git
synced 2026-01-23 02:15:17 +00:00
Compare commits
No commits in common. "startpoint" and "stable" have entirely different histories.
startpoint
...
stable
269 changed files with 227718 additions and 1341 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
*~
|
||||
.directory
|
||||
godot
|
||||
build
|
||||
369
.tmp
369
.tmp
|
|
@ -1,369 +0,0 @@
|
|||
[gd_resource type="TileSet" load_steps=23 format=2]
|
||||
|
||||
[ext_resource type="Texture" path="res://tile full.tex" id=0]
|
||||
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -32, 32, -32, 32, 32, -32, 32, -32, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=11]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 28, -32, 28, -32, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=12]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 27, -32, 27, 15, 25, 21, 21.115, 25.3147, 11.2565, 26.8224, -32, 28, -32, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=35]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 32, -32, 32, -31.8891, -27.3414, -29, -30 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=36]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -27, -32, 32, -32, -29, -30 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=37]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -31, -32, 33, -32, 33, 32, -27, 32, -29, 30, -31, 28 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=38]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -32, 32, -32, 32, 28, 30, 30, 28, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=30]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -32, 27.4498, -32.0095, 31.9963, -27.7854, 32.0174, 32.0416, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=20]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -13, -27, 13, -27, 20.1871, -23.398, 26, -16, 26, 18, 22, 24, 12, 27, -11.8241, 27.0544, -22.7264, 24.6188, -27, 19, -26.9018, -15.1633, -21.7986, -22.5862, -18, -25 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=41]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -27, 32, 32, -28, 32.0174, 31.9257 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=40]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -27, -30.1058, -27.0105, 28, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=23]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -32, 27, -32, -32, 28 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -32, 32, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=24]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 28, -28, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -21.2298, -23.8952, -16.2848, -26.453, -9.37893, -26.9645, 32, -28, 32, 32, -27, 32, -26.601, -15.7957, -24.4696, -20.3144 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -28, 32, -28, 32, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( -32, -28, 13.8965, -27.135, 19.9498, -24.2363, 24.2127, -19.4618, 25.4063, -15.7105, 26, 32, -32, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 32, -28, 32, -27.4817, -32.0967 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32, -32, 32, 32, -32, 32, -32, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 27, -32, 27, 32, -32, 32, -32, -32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=10]
|
||||
|
||||
custom_solver_bias=0.0
|
||||
points=PoolVector2Array( 32.0174, -32.3287, 32.2493, 27.9823, -9.96833, 27.1704, -21.5666, 24.9667, -24.4662, 22.763, -27, 17, -26.9018, -31.7488 )
|
||||
|
||||
[resource]
|
||||
|
||||
0/name="Suelo"
|
||||
0/texture=null
|
||||
0/tex_offset=Vector2( 0, 0 )
|
||||
0/material=null
|
||||
0/modulate=Color( 1, 1, 1, 1 )
|
||||
0/region=Rect2( 0, 0, 320, 320 )
|
||||
0/occluder_offset=Vector2( 160, 160 )
|
||||
0/occluder=null
|
||||
0/navigation_offset=Vector2( 160, 160 )
|
||||
0/navigation=null
|
||||
0/shape_offset=Vector2( 160, 160 )
|
||||
0/shapes=[ ]
|
||||
1/name="Rampa_LR"
|
||||
1/texture=null
|
||||
1/tex_offset=Vector2( 0, 0 )
|
||||
1/material=null
|
||||
1/modulate=Color( 1, 1, 1, 1 )
|
||||
1/region=Rect2( 320, 256, 64, 64 )
|
||||
1/occluder_offset=Vector2( 32, 32 )
|
||||
1/occluder=null
|
||||
1/navigation_offset=Vector2( 32, 32 )
|
||||
1/navigation=null
|
||||
1/shape_offset=Vector2( 32, 32 )
|
||||
1/shapes=[ ]
|
||||
2/name="Rampa_RL"
|
||||
2/texture=null
|
||||
2/tex_offset=Vector2( 0, 0 )
|
||||
2/material=null
|
||||
2/modulate=Color( 1, 1, 1, 1 )
|
||||
2/region=Rect2( 512, 256, 64, 64 )
|
||||
2/occluder_offset=Vector2( 32, 32 )
|
||||
2/occluder=null
|
||||
2/navigation_offset=Vector2( 32, 32 )
|
||||
2/navigation=null
|
||||
2/shape_offset=Vector2( 32, 32 )
|
||||
2/shapes=[ ]
|
||||
3/name="Arriba_Izquierda"
|
||||
3/texture=null
|
||||
3/tex_offset=Vector2( 0, 0 )
|
||||
3/material=null
|
||||
3/modulate=Color( 1, 1, 1, 1 )
|
||||
3/region=Rect2( 0, 0, 64, 64 )
|
||||
3/occluder_offset=Vector2( 32, 32 )
|
||||
3/occluder=null
|
||||
3/navigation_offset=Vector2( 32, 32 )
|
||||
3/navigation=null
|
||||
3/shape_offset=Vector2( 32, 32 )
|
||||
3/shapes=[ ]
|
||||
4/name="Arriba"
|
||||
4/texture=null
|
||||
4/tex_offset=Vector2( 0, 0 )
|
||||
4/material=null
|
||||
4/modulate=Color( 1, 1, 1, 1 )
|
||||
4/region=Rect2( 64, 0, 64, 64 )
|
||||
4/occluder_offset=Vector2( 32, 32 )
|
||||
4/occluder=null
|
||||
4/navigation_offset=Vector2( 32, 32 )
|
||||
4/navigation=null
|
||||
4/shape_offset=Vector2( 32, 32 )
|
||||
4/shapes=[ ]
|
||||
5/name="Arriba_Derecha"
|
||||
5/texture=null
|
||||
5/tex_offset=Vector2( 0, 0 )
|
||||
5/material=null
|
||||
5/modulate=Color( 1, 1, 1, 1 )
|
||||
5/region=Rect2( 128, 0, 64, 64 )
|
||||
5/occluder_offset=Vector2( 32, 32 )
|
||||
5/occluder=null
|
||||
5/navigation_offset=Vector2( 32, 32 )
|
||||
5/navigation=null
|
||||
5/shape_offset=Vector2( 32, 32 )
|
||||
5/shapes=[ ]
|
||||
6/name="Izquierda"
|
||||
6/texture=null
|
||||
6/tex_offset=Vector2( 0, 0 )
|
||||
6/material=null
|
||||
6/modulate=Color( 1, 1, 1, 1 )
|
||||
6/region=Rect2( 0, 64, 64, 64 )
|
||||
6/occluder_offset=Vector2( 32, 32 )
|
||||
6/occluder=null
|
||||
6/navigation_offset=Vector2( 32, 32 )
|
||||
6/navigation=null
|
||||
6/shape_offset=Vector2( 32, 32 )
|
||||
6/shapes=[ ]
|
||||
7/name="Centro"
|
||||
7/texture=null
|
||||
7/tex_offset=Vector2( 0, 0 )
|
||||
7/material=null
|
||||
7/modulate=Color( 1, 1, 1, 1 )
|
||||
7/region=Rect2( 64, 64, 64, 64 )
|
||||
7/occluder_offset=Vector2( 32, 32 )
|
||||
7/occluder=null
|
||||
7/navigation_offset=Vector2( 32, 32 )
|
||||
7/navigation=null
|
||||
7/shape_offset=Vector2( 32, 32 )
|
||||
7/shapes=[ ]
|
||||
8/name="Derecha"
|
||||
8/texture=null
|
||||
8/tex_offset=Vector2( 0, 0 )
|
||||
8/material=null
|
||||
8/modulate=Color( 1, 1, 1, 1 )
|
||||
8/region=Rect2( 128, 64, 64, 64 )
|
||||
8/occluder_offset=Vector2( 32, 32 )
|
||||
8/occluder=null
|
||||
8/navigation_offset=Vector2( 32, 32 )
|
||||
8/navigation=null
|
||||
8/shape_offset=Vector2( 32, 32 )
|
||||
8/shapes=[ ]
|
||||
9/name="Abajo_Izquierda"
|
||||
9/texture=null
|
||||
9/tex_offset=Vector2( 0, 0 )
|
||||
9/material=null
|
||||
9/modulate=Color( 1, 1, 1, 1 )
|
||||
9/region=Rect2( 0, 128, 64, 64 )
|
||||
9/occluder_offset=Vector2( 32, 32 )
|
||||
9/occluder=null
|
||||
9/navigation_offset=Vector2( 32, 32 )
|
||||
9/navigation=null
|
||||
9/shape_offset=Vector2( 32, 32 )
|
||||
9/shapes=[ ]
|
||||
10/name="Abajo"
|
||||
10/texture=null
|
||||
10/tex_offset=Vector2( 0, 0 )
|
||||
10/material=null
|
||||
10/modulate=Color( 1, 1, 1, 1 )
|
||||
10/region=Rect2( 64, 128, 64, 64 )
|
||||
10/occluder_offset=Vector2( 32, 32 )
|
||||
10/occluder=null
|
||||
10/navigation_offset=Vector2( 32, 32 )
|
||||
10/navigation=null
|
||||
10/shape_offset=Vector2( 32, 32 )
|
||||
10/shapes=[ ]
|
||||
11/name="Abajo_Derecha"
|
||||
11/texture=null
|
||||
11/tex_offset=Vector2( 0, 0 )
|
||||
11/material=null
|
||||
11/modulate=Color( 1, 1, 1, 1 )
|
||||
11/region=Rect2( 128, 128, 64, 64 )
|
||||
11/occluder_offset=Vector2( 32, 32 )
|
||||
11/occluder=null
|
||||
11/navigation_offset=Vector2( 32, 32 )
|
||||
11/navigation=null
|
||||
11/shape_offset=Vector2( 32, 32 )
|
||||
11/shapes=[ ]
|
||||
12/name="Inner_Derecha_Abajo"
|
||||
12/texture=null
|
||||
12/tex_offset=Vector2( 0, 0 )
|
||||
12/material=null
|
||||
12/modulate=Color( 1, 1, 1, 1 )
|
||||
12/region=Rect2( 256, 256, 64, 64 )
|
||||
12/occluder_offset=Vector2( 32, 32 )
|
||||
12/occluder=null
|
||||
12/navigation_offset=Vector2( 32, 32 )
|
||||
12/navigation=null
|
||||
12/shape_offset=Vector2( 32, 32 )
|
||||
12/shapes=[ , ]
|
||||
13/name="Inner_Derecha_Arriba"
|
||||
13/texture=null
|
||||
13/tex_offset=Vector2( 0, 0 )
|
||||
13/material=null
|
||||
13/modulate=Color( 1, 1, 1, 1 )
|
||||
13/region=Rect2( 256, 192, 64, 64 )
|
||||
13/occluder_offset=Vector2( 32, 32 )
|
||||
13/occluder=null
|
||||
13/navigation_offset=Vector2( 32, 32 )
|
||||
13/navigation=null
|
||||
13/shape_offset=Vector2( 32, 32 )
|
||||
13/shapes=[ ]
|
||||
14/name="Inner_Izquierda_Arriba"
|
||||
14/texture=null
|
||||
14/tex_offset=Vector2( 0, 0 )
|
||||
14/material=null
|
||||
14/modulate=Color( 1, 1, 1, 1 )
|
||||
14/region=Rect2( 192, 192, 64, 64 )
|
||||
14/occluder_offset=Vector2( 32, 32 )
|
||||
14/occluder=null
|
||||
14/navigation_offset=Vector2( 32, 32 )
|
||||
14/navigation=null
|
||||
14/shape_offset=Vector2( 32, 32 )
|
||||
14/shapes=[ ]
|
||||
15/name="Inner_Izquierda_Abajo"
|
||||
15/texture=null
|
||||
15/tex_offset=Vector2( 0, 0 )
|
||||
15/material=null
|
||||
15/modulate=Color( 1, 1, 1, 1 )
|
||||
15/region=Rect2( 192, 256, 64, 64 )
|
||||
15/occluder_offset=Vector2( 32, 32 )
|
||||
15/occluder=null
|
||||
15/navigation_offset=Vector2( 32, 32 )
|
||||
15/navigation=null
|
||||
15/shape_offset=Vector2( 32, 32 )
|
||||
15/shapes=[ ]
|
||||
16/name="Unico"
|
||||
16/texture=null
|
||||
16/tex_offset=Vector2( 0, 0 )
|
||||
16/material=null
|
||||
16/modulate=Color( 1, 1, 1, 1 )
|
||||
16/region=Rect2( 192, 64, 64, 64 )
|
||||
16/occluder_offset=Vector2( 32, 32 )
|
||||
16/occluder=null
|
||||
16/navigation_offset=Vector2( 32, 32 )
|
||||
16/navigation=null
|
||||
16/shape_offset=Vector2( 32, 32 )
|
||||
16/shapes=[ ]
|
||||
17/name="Rampa1"
|
||||
17/texture=null
|
||||
17/tex_offset=Vector2( 0, 0 )
|
||||
17/material=null
|
||||
17/modulate=Color( 1, 1, 1, 1 )
|
||||
17/region=Rect2( 0, 192, 64, 64 )
|
||||
17/occluder_offset=Vector2( 32, 32 )
|
||||
17/occluder=null
|
||||
17/navigation_offset=Vector2( 32, 32 )
|
||||
17/navigation=null
|
||||
17/shape_offset=Vector2( 32, 32 )
|
||||
17/shapes=[ ]
|
||||
18/name="Rampa2"
|
||||
18/texture=null
|
||||
18/tex_offset=Vector2( 0, 0 )
|
||||
18/material=null
|
||||
18/modulate=Color( 1, 1, 1, 1 )
|
||||
18/region=Rect2( 64, 192, 64, 64 )
|
||||
18/occluder_offset=Vector2( 32, 32 )
|
||||
18/occluder=null
|
||||
18/navigation_offset=Vector2( 32, 32 )
|
||||
18/navigation=null
|
||||
18/shape_offset=Vector2( 32, 32 )
|
||||
18/shapes=[ ]
|
||||
19/name="Rampa3"
|
||||
19/texture=null
|
||||
19/tex_offset=Vector2( 0, 0 )
|
||||
19/material=null
|
||||
19/modulate=Color( 1, 1, 1, 1 )
|
||||
19/region=Rect2( 64, 256, 64, 64 )
|
||||
19/occluder_offset=Vector2( 32, 32 )
|
||||
19/occluder=null
|
||||
19/navigation_offset=Vector2( 32, 32 )
|
||||
19/navigation=null
|
||||
19/shape_offset=Vector2( 32, 32 )
|
||||
19/shapes=[ ]
|
||||
20/name="Rampa4"
|
||||
20/texture=null
|
||||
20/tex_offset=Vector2( 0, 0 )
|
||||
20/material=null
|
||||
20/modulate=Color( 1, 1, 1, 1 )
|
||||
20/region=Rect2( 0, 256, 64, 64 )
|
||||
20/occluder_offset=Vector2( 32, 32 )
|
||||
20/occluder=null
|
||||
20/navigation_offset=Vector2( 32, 32 )
|
||||
20/navigation=null
|
||||
20/shape_offset=Vector2( 32, 32 )
|
||||
20/shapes=[ ]
|
||||
BIN
Fonts/Press_Start_2P/PressStart2P-Regular.ttf
Normal file
BIN
Fonts/Press_Start_2P/PressStart2P-Regular.ttf
Normal file
Binary file not shown.
BIN
Fonts/pixelated_regular.fnt
Normal file
BIN
Fonts/pixelated_regular.fnt
Normal file
Binary file not shown.
77144
Fonts/pixelated_regular.inc
Normal file
77144
Fonts/pixelated_regular.inc
Normal file
File diff suppressed because it is too large
Load diff
BIN
Fonts/pixelated_regular.sv.png
Normal file
BIN
Fonts/pixelated_regular.sv.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
BIN
Fonts/pixelated_title.fnt
Normal file
BIN
Fonts/pixelated_title.fnt
Normal file
Binary file not shown.
121090
Fonts/pixelated_title.inc
Normal file
121090
Fonts/pixelated_title.inc
Normal file
File diff suppressed because it is too large
Load diff
BIN
Fonts/pixelated_title.sv.png
Normal file
BIN
Fonts/pixelated_title.sv.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
5
LICENSE_FONTS
Normal file
5
LICENSE_FONTS
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Press Start 2P by CodeMan38
|
||||
|
||||
(Open Font License)
|
||||
https://fonts.google.com/specimen/Press+Start+2P?selection.family=Press+Start+2P
|
||||
|
||||
1
Locales/.~lock.locales.csv#
Normal file
1
Locales/.~lock.locales.csv#
Normal file
|
|
@ -0,0 +1 @@
|
|||
,darias,darias-laptop,19.10.2018 06:24,file:///home/darias/.config/libreoffice/4;
|
||||
178
Locales/locales.csv
Normal file
178
Locales/locales.csv
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
id,es,en,de,EXPLANATIONS
|
||||
PLAY_GAME,Jugar,Play,Starten,
|
||||
SETTINGS,Ajustes,Settings,Optionen,
|
||||
ABOUT,Info,About,Über,
|
||||
SWITCH_SCREEN_CONTROLS,Usar botones táctiles,Use onscreen controls,Touch-Steuerung anzeigen,
|
||||
SWITCH_RETRO_EFFECT,Simular pantalla retro,Simulate retro TV,Röhrenfernseher simulieren,
|
||||
SWITCH_MUSIC,Música,Music,Musik,
|
||||
SWITCH_SOUND,Sonidos,Sound,Ton,
|
||||
SWITCH_BOTTOM_PARTICLES,Resaltar final del nivel,Show level end,,
|
||||
BTTN_BACK,Volver,Back,Zurück,
|
||||
TEXT_LICENSE,"El código fuente de este juego está licenciado bajo Geneal Public License versión 3. Todos los recursos gráficos, sonidos y música han sido creados por nosotros y están licenciados como Creative Commons Attribution-Non Commercial-Share Alike 4.0. La tipografía utilizada es Press Start 2P creada por CodeMan38 (Open Font License)
|
||||
|
||||
Puedes obtener el código fuente y los recusos en gitlab.com/dariasteam/cows-revenge
|
||||
|
||||
Hecho en Godot Engine 2.1.5 (MIT)","This game's code is licensed as General Public License version 3. All the graphics, sounds and music resources were made by us and are published as Creative Commons Attribution-Non Commercial-Share Alike 4.0 International. Font is Press Start 2P by CodeMan38 (Open Font License)
|
||||
|
||||
You can get the source code and assets at gitlab.com/dariasteam/cows-revenge
|
||||
|
||||
Made with Godot Engine 2.1.5 (MIT)
|
||||
","Der Code dieses Spiels ist unter der General Public License Version 3 lizensiert. Alle Grafiken, Klänge und Musikstücke wurden von uns erstellt und unter Creative Commons Attribution-Non Commercial-Share Alike 4.0 International veröffentlicht. Als Schriftart wird Press Start 2P von CodeMan38 unter der Open Font License verwendet.
|
||||
|
||||
Der Quell-Code und alle weiteren Materialien stehen unter gitlab.com/dariasteam/cows-revenge zur Verfügung.
|
||||
|
||||
Erstellt mit Godot Engine 2.1.5 (MIT)",
|
||||
CHAPTERS,Capítulos,Chapters,Kapitel,
|
||||
EP1,La escuela,The school,Die Schule,
|
||||
EP2,Gatear antes de caminar,Crawl before you walk,"Erst krabbeln, dann laufen",
|
||||
EP3,Independizándose,Independence,Unabhängigkeit,
|
||||
EP4,Una ubre y sus consecuencias,An udder and her consequences,Ein Euter und seine Folgen,
|
||||
EP5,Siempre fiel,Always faithful,Immer treu,
|
||||
EP6,Ucronía,Uchronia,Uchronie,
|
||||
EP7,Sístole y Diástole,Systole and Diastole,Systole und Diastole,
|
||||
EP8,Anfibios,Amphibious,Amphibisch,
|
||||
EP9,R.U.B.E.N,R.U.B.E.N,R.U.B.E.N,
|
||||
UFO_JAIL_COUNTER,Vuelve cuando hayas salvado a todas las gallinas. Te quedan: ,Come back when you have rescued all the hens. Remaining:,Komm wieder wenn du alle Hennen gerettet hast. Verbleibend: ,
|
||||
DANIEL_INFO,"dariasteam94@gmail.com
|
||||
Mastodon.social/@darias
|
||||
|
||||
- Código
|
||||
- Gráficos
|
||||
- Música
|
||||
- Animaciones","dariasteam94@gmail.com
|
||||
mastodon.social/@darias
|
||||
|
||||
- Code
|
||||
- Sprites
|
||||
- Music
|
||||
- Animations","dariasteam94@gmail.com
|
||||
Mastodon.social/@darias
|
||||
|
||||
- Code
|
||||
- Sprites
|
||||
- Musik
|
||||
- Animationen",
|
||||
YANARA_INFO,"needafreefall-@hotmail.com
|
||||
twitter.com/yanaronna
|
||||
instagam.com/yanaronna
|
||||
|
||||
|
||||
- Gráficos
|
||||
- Animaciones
|
||||
- Diseño de personajes","needafreefall-@hotmail.com
|
||||
twitter.com/yanaronna
|
||||
instagam.com/yanaronna
|
||||
|
||||
- Sprites
|
||||
- Animations
|
||||
- Character design","needafreefall-@hotmail.com
|
||||
twitter.com/yanaronna
|
||||
instagam.com/yanaronna
|
||||
|
||||
- Sprites
|
||||
- Animationen
|
||||
- Charaktergestaltung",
|
||||
BUY_HEART,Corazón,Heart,Herz,
|
||||
BUY_MILK,Leche,Milk,Milch,
|
||||
BTTN_LIFTOFF,Despegar,Liftoff,Abheben,
|
||||
BTTN_RESUME,Reanudar,Resume,Fortfahren,
|
||||
BTTN_RESET,Reiniciar,Reset,Zurücksetzen,
|
||||
BTTN_EXIT,Salir,Exit,Verlassen,
|
||||
BTTN_RESET_LEVEL,Reiniciar nivel,Reset level,Ebene zurücksetzen,
|
||||
BTTN_MAIN_MENU,Ir al menú principal,Go to main menu,Zum Hauptmenü,
|
||||
UFO_STORE,UFO Store,UFO Store,UFO Store,
|
||||
TUT_0,Este camino está bloqueado. Busca otra forma de desplazarte.,This way is blocked. Find another path.,Dieser weg ist versperrt. Finde einen anderen.,
|
||||
TUT_1,Utiliza las teclas de dirección para moverte,Use arrows buttons to move,Laufe mit den Pfeiltasten,
|
||||
TUT_2,Pulsa A o el botón del resorte para saltar por encima de estos bloques.,Press A or the space button to jump above these blocks,Drücke A oder die Leertaste um über diese Blöcke zu springen,
|
||||
TUT_3,Puedes subir a las ramas de los árboles saltando desde abajo,You can climb to the branches jumping from below,Kletter auf Zweige indem du von unten hochspringst,
|
||||
TUT_4,Salta!,Jump!,Spring!,
|
||||
TUT_5,Puedes volver a bajar pulsando abajo,You can go down by pressing down button,Drücke nach unten um dich fallen zu lassen,
|
||||
TUT_6,"Recoge cencerros para comprar mejoras.
|
||||
",Collect cowbells and buy upgrades,Sammel Kuhglocken um dir Verbesserungen zu kaufen,
|
||||
TUT_7,Bien hecho!,Well done!,Gut gemacht!,
|
||||
TUT_8,"Si recoges muchos cencerros en muy poco tiempo conseguirás bonificaciones!
|
||||
",If you collect a lot of cowbells quickly you'll gain a bonus,"Wenn du schnell viele Kuhglocken sammelst, erhältst du einen Bonus",
|
||||
TUT_9,"Puedes guardar los cencerros en la nave volviendo a ella para ser abducido en cualquier momento.
|
||||
",You can store the cowbells in the space ship by going back to it to be abducted anytime,Du kannst Kuhglocken im UFO bunkern wenn du zurückkehrst und dich erneut entführen lässt,
|
||||
TUT_10,"A veces es más seguro no continuar avanzando si nada indica que el camino continúa
|
||||
",Sometimes is safer to stop if you see the path finishing,"Manchmal ist es sicherer anzuhalten, wenn du merkst dass der Weg endet",
|
||||
TUT_11,"Esta vez era broma, pero no vuelvas a hacerlo!",It was joke ,"War nur ein Scherz, aber pass nächstes Mal mehr auf",
|
||||
TUT_12,"¡Cuidado! Eso que ves es un carnicero, para aniquilarlo salta sobre su cabeza","Caution! That is a butcher, jump on his head to defeat him.","Achtung! Dort ist ein Metzger, springe auf seinen Kopf um ihn zu besiegen",
|
||||
TUT_13,"Si has perdido vida puedes recuperarla recogiendo corazones
|
||||
",You can recover your life with hearts,Du kannst deine Leben mit Herzen widerherstellen,
|
||||
TUT_14,"Recoge manzanas para poder producir leche con la que atacar
|
||||
",Collect apples to produce milk and being able to attack,Sammel Äpfel um Milch zu produzieren and angreifen zu können,
|
||||
TUT_15,"Ataca con la tecla S o el botón de la ubre. Conmuta entre leche desnatada o semidesnatada con R o el botón en blanco.
|
||||
",Press S or the udder button to attack. Change between skimmed and semi-skimmed milk with R or the black button,Drücke S oder den Euter-Knopf um anzugreifen. Wechsel zwischen Magermilch und fettarmer Milch mit R oder dem schwarzen Knopf,
|
||||
TUT_16,"Menudo pasillo más largo, ¿eh?","Such a long corridor, uh?","Was ein langer Gang, ne?",
|
||||
TUT_17,Rompe la jaula acercándote a ella para liberar a los animales,Break the cage by touching it and free the animals,Breche den Käfig auf indem du ihn berührst und befreie die Tiere,
|
||||
TUT_18,Vuelve a la nave y pulsa la tecla arriba para ser abducido,Get back to the ship and press up to be abducted,Gehe zurück ins UFO indem du Hoch drückst und dich entführen lässt,
|
||||
TUT_19,En este juego NO respetamos las leyes de la física. Puedes saltar y en el aire modificar tu dirección.,In this game we DON'T obey the laws of physics. You can jump and change your direction in the air.,In diesem Spiel folgen wir den Gesetzen der Physik NICHT. Während du springst kannst du in der Luft die Richtung ändern,
|
||||
MAP3_TEXT0,A veces la maleza es tan densa que te impide ver. ¡Abre bien los ojos!,Sometimes the bushes is so dense don't allow you to see beyond. Keep your eyes open!,"Manche Büsche sind so dicht, dass man nicht durch sie hindurchsehen kann. Halte die Augen offen!",
|
||||
,,,,
|
||||
,,,,
|
||||
,,,,
|
||||
CHICKEN_ADVICE_0,Vamos señores wuuu!,C’mon! Yeehaw,Auf geht’s! Vollgas!,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_1,Los astronautas no existen,Nasa is a lie,Die Mondlandung war nachgedreht,MEME (flat eartch and nasa conspiracy)
|
||||
CHICKEN_ADVICE_2,e=mc²,e=mc²,e=mc²,KEEP
|
||||
CHICKEN_ADVICE_3,e_e,e_e,e_e,KEEP
|
||||
CHICKEN_ADVICE_4,Wiii,Wiii,Wiii,"LITERAL_TRANSLATION (its like a sound, not the console)"
|
||||
CHICKEN_ADVICE_5,cocococo,cluck cluck cluck cluck,gack gack gack gack,LITERAL_TRANSLATION (sound made by a hen)
|
||||
CHICKEN_ADVICE_6,Zzz...,Zzz…,-,LITERAL_TRANSLATION (sound for sleep)
|
||||
CHICKEN_ADVICE_7,¡Ya era hora!,It was about time!,Wurde aber auch Zeit!,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_8,:D,:D,:D,KEEP
|
||||
CHICKEN_ADVICE_9,#NotAllMen,#NotAllMen,#NotAllMen,KEEP
|
||||
CHICKEN_ADVICE_10,Aléjate primo aléjate,Get out of this place,Verpiss dich von meinem Körper!,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_11,Efectivamente,Indeed,Tatsächlich,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_12,Porque quiero que sepas que tú para mi eres un amigo pa siempre,I want you to know that for me you are a true friend forever,"Du musst wissen, wirst ",SIMILAR_TRANSLATION (what a drunk person would say to his best friend)
|
||||
CHICKEN_ADVICE_13,La gravedad no existe,The earth is flat,Die Erde ist eine Scheibe,MEME (flat eartch and nasa conspiracy)
|
||||
CHICKEN_ADVICE_14,La caida de la gran babilonia,Tim's your uncle,,MEME (random)
|
||||
CHICKEN_ADVICE_15,FUAAAA!!,Zzz…,,MEME (random)
|
||||
CHICKEN_ADVICE_16,Tú no me mandas,I don’t receive orders from you,Ich lass mir von dir nichts sagen,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_17,:C,:C,:C,KEEP
|
||||
CHICKEN_ADVICE_18,No te pongas nervioso,Don’t get nervous,Nicht nervös werden,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_19,¿Dónde está la contaminacion que yo la vea?,"Will, will Will will Will Will’s will?",,MEME (random)
|
||||
CHICKEN_ADVICE_20,seh seh seh seh,yep yep yep,,LITERAL_TRANSLATION (say yes a lot of times)
|
||||
CHICKEN_ADVICE_21,Tu crees que arcadio va a llevar el coche al para?,,,MEME (random)
|
||||
CHICKEN_ADVICE_22,La psicología es útil,The psychology is useful,Die Psychologie ist nützlich,MEME (random)
|
||||
CHICKEN_ADVICE_23,C++ > Java,C++ > Java,C++ > Java,KEEP
|
||||
CHICKEN_ADVICE_24,GNU‘s Not Unix,GNU‘s Not Unix,GNU‘s Not Unix,KEEP
|
||||
CHICKEN_ADVICE_25,Salchichas comodoro,Are you talkin‘ to me?,,MEME (random)
|
||||
CHICKEN_ADVICE_26,Ostia el workbook!,And I say HEEEEEEEYYYY Whats going on?,,MEME (random)
|
||||
CHICKEN_ADVICE_27,Macarrones con tomatico ,ring ring ring ring ring ring ring BANANA PHONE!,Ich esse gerne Sauerkraut und tanze gerne Polka,MEME (random)
|
||||
CHICKEN_ADVICE_28,Yo soy tu padre,I am your father,Ich bin dein Vater,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_29,No quiero hablar contigo,I don’t wanna talk to you,Ich will nicht mit dir reden,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_30,Déjame en paz,Let me alone,Lass mich in Frieden,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_31,...,…,…,KEEP
|
||||
CHICKEN_ADVICE_32,La oronja verde o amanita phalloides es el hongo más venenoso del mundo,Amanita phalloides or death cap is the most poisonous fungi in the world,Der Grüne Knollenblätterpilz oder Grüne Gift-Wulstling ist der giftigste Pilz der Welt,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_33,Poesía eres tú,You are poetry,,SIMILAR_TRANSLATION (the original is a sentence from a spanish poem)
|
||||
CHICKEN_ADVICE_34,Illuminati confirmed,Illuminati confirmed,,KEEP
|
||||
CHICKEN_ADVICE_35,Soy dueño de la canaca,I have to go to Walmart,,MEME (random)
|
||||
CHICKEN_ADVICE_36,Yo soy un pollo cobarde,But will it blend?,,MEME (random)
|
||||
CHICKEN_ADVICE_37,"¡Macrocéfalo, anfitrión, Rocambole, ectoplasma, filoxera, caníbal!",Billions of blue blistering boiled and barbecued barnacles!,,SIMILAR_TRANSLATION (some random insults of Captain Haddock from tintin series )
|
||||
CHICKEN_ADVICE_38,"Para pasar a binario solo debes dividir entre 2, el resultado son los restos ordenados al revés","To change a number to binary you only have to divide it by 2, the result are the remainings in inverse order",,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_39,Si no estás conmigo eres mi enemigo,If you are not with me then you are my enemy,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_40,Mírame a los ojos cuando te hablo,Look at my eyes when i'm talking to you,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_41,¡Duro con ellos!,Go and get hard on them!,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_42,"Rambo está en la trinchera, tiene una herida de bala en la pierna",I can’t feel my legs!,,SIMILAR_TRANSLATION (a sentence from the rambo saga)
|
||||
CHICKEN_ADVICE_43,Sosio aflójate un eurito ahí,Hey man give me a buck plz,,SIMILAR_TRANSLATION (the thing a yonki would say asking you money)
|
||||
CHICKEN_ADVICE_44,"Mira no más, esta cara, este cuerpo. Tú jamás tendrás este cuerpo","Oh dear look at my pretty face, isn't it fabulous?",,SIMILAR_TRANSLATION (the thing a very egotistical person would say about how beautifull face or body has)
|
||||
CHICKEN_ADVICE_45,¡Mi pueblo se muere por falta de conocimiento!,Checkmate atheist!,,MEME (random)
|
||||
CHICKEN_ADVICE_46,"Y volé de él, y él voló allá por la arbolada",I believe I can flyyy,,MEME (random)
|
||||
CHICKEN_ADVICE_47,Yo soy un pirata y tu mente es el mar y la psicología es mi barco,I’m a pirate and your mind is the sea and the psichology is my boat,,MEME (random)
|
||||
CHICKEN_ADVICE_48,"Si recomiendas a la gente usar homeopatía, te sugiero amablemente que te vayas a hacer puñetas",If water has memory then homeopathy is full of shit,,SIMILAR_TRANSLATION (homeopathy is a serious scam and health problem)
|
||||
CHICKEN_ADVICE_49,"Si estás en un bosque y gritas y nadie te oye, ¿Por qué sigo suspendiendo Álgebra?","If you are in a forest a shout and no one hears you, why I keep failing Algebra?",,LITERAL_TRANSLATION (the phylosophicall problem of forest and sound but with my own problems in it)
|
||||
CHICKEN_ADVICE_50,Deja de xorfirar anda,Stop xorfiring now,,MEME (random)
|
||||
CHICKEN_ADVICE_51,Para mí será un placer vencerte,For me it would be a pleasure to defeat you,,SIMILAR_TRANSLATION (the thing a classic bad guy from a comic would say to the hero)
|
||||
CHICKEN_ADVICE_52,No me toques que yo no te he tocao,Don’t touch me cause I didn't touched you!,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_53,"A que no adivinas quién fue primero, ¿Mi huevo o yo?","I bet you can answer this, which was first, my egg or me?",,LITERAL_TRANSLATION (another phylosophicall question but tweaked to be said by a hen)
|
||||
CHICKEN_ADVICE_54,"¡Ay vida mía, soy taaan desdichada!",I am soo unfortunate!,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_55,Ay quién tuviera la dicha que tiene el gallo,What does the fox say?,,MEME (veguely related with hens if possible)
|
||||
CHICKEN_ADVICE_56,"¡Tengo miedo, tengo miedo, tengo miego, tengo muchísimo miedo!",I’m so so so afraid!,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_57,"¿Y qué hago mi niño, me lo cargo al hombro?",Look at my horse my horse is amazing,,MEME (random)
|
||||
CHICKEN_ADVICE_58,Eres un mago Harry,You're a wizard harry,Du bist ein Zauberer Harry,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_59,Me hago pipí :/,I have to wee :/,Ich muss Pipi machen :/,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_60,Dime algo que no sepa ya,Tell me something I didn’t know,,LITERAL_TRANSLATION
|
||||
CHICKEN_ADVICE_61,No puedo ni confirmar ni desmentir que yo sea un pollo,I can neither confirm nor deny I’m a chicken,,LITERAL_TRANSLATION (joke with the CIA first tweet)
|
||||
CHICKEN_ADVICE_62,Pienso luego existo,I think therefore I exist,,LITERAL_TRANSLATION (Cogito ergo sum)
|
||||
CHICKEN_ADVICE_63,Pos coman pinocha,Yolooo,,MEME (random)
|
||||
|
BIN
Locales/locales.de.xl
Normal file
BIN
Locales/locales.de.xl
Normal file
Binary file not shown.
BIN
Locales/locales.en.xl
Normal file
BIN
Locales/locales.en.xl
Normal file
Binary file not shown.
BIN
Locales/locales.es.xl
Normal file
BIN
Locales/locales.es.xl
Normal file
Binary file not shown.
56
Makefile
Normal file
56
Makefile
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
prefix ?= usr/local
|
||||
DESTDIR :=
|
||||
ICONSIZES := 64 128
|
||||
BIT := $(shell getconf LONG_BIT)
|
||||
define \n
|
||||
|
||||
|
||||
endef
|
||||
|
||||
build/cowsrevenge: $(wildcard "Scenes/*/*") $(wildcard "Locales/*") $(wildcard "Sound/*") $(wildcard "Music/*") $(wildcard "Sprites/*") $(wildcard "Sprites/*/*") $(wildcard "Fonts/*") $(wildcard "Fonts/*/*") export.cfg engine.cfg d.tscn build/godot/bin/godot_server.server.opt.tools.$(BIT)
|
||||
# put into self contained mode
|
||||
touch build/godot/bin/._sc_
|
||||
cd build/godot; scons -j `nproc` platform=x11 target=release bits=$(BIT) use_llvm=yes tools=no
|
||||
mkdir -p build/godot/bin/editor_data/templates/
|
||||
cp build/godot/bin/godot.x11*.llvm build/godot/bin/editor_data/templates/linux_x11_$(BIT)_release
|
||||
build/godot/bin/godot_server.server.opt.tools.$(BIT) -export "Linux X11" build/cowsrevenge
|
||||
|
||||
#build engine
|
||||
build/godot/bin/godot_server.server.opt.tools.$(BIT):
|
||||
mkdir -p build
|
||||
cd build; git clone -b 2.1 --single-branch https://github.com/godotengine/godot || true
|
||||
cd build/godot; scons -j `nproc` platform=server target=release_debug bits=$(BIT) use_llvm=yes unix_global_settings_path=".."
|
||||
|
||||
.PHONY: install
|
||||
install: build/cowsrevenge $(wildcard "linux_build/*")
|
||||
install -d "$(DESTDIR)/$(prefix)/bin/"
|
||||
install -d "$(DESTDIR)/$(prefix)/share/applications/"
|
||||
install -d "$(DESTDIR)/$(prefix)/share/metainfo/"
|
||||
install build/cowsrevenge "$(DESTDIR)/$(prefix)/bin/"
|
||||
install -m644 linux_build/com.github.dariasteam.cowsrevenge.desktop "$(DESTDIR)/$(prefix)/share/applications/"
|
||||
install linux_build/com.github.dariasteam.cowsrevenge.appdata.xml "$(DESTDIR)/$(prefix)/share/metainfo/"
|
||||
#install icon files
|
||||
$(foreach size,$(ICONSIZES),install -d "$(DESTDIR)/$(prefix)/share/icons/hicolor/$(size)x$(size)/apps/";$(\n))
|
||||
$(foreach size,$(ICONSIZES),install -m644 "linux_build/cowsrevenge_icon_$(size).png" "$(DESTDIR)/$(prefix)/share/icons/hicolor/$(size)x$(size)/apps/com.github.dariasteam.cowsrevenge.png";$(\n))
|
||||
#update databases if installed to system
|
||||
ifeq ($(DESTDIR),)
|
||||
-xdg-icon-resource forceupdate --mode system;
|
||||
-xdg-desktop-menu forceupdate --mode system;
|
||||
endif
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall: "$(DESTDIR)/$(prefix)/bin/cowsrevenge"
|
||||
rm "$(DESTDIR)/$(prefix)/bin/cowsrevenge"
|
||||
rm "$(DESTDIR)/$(prefix)/share/applications/linux_build/com.github.dariasteam.cowsrevenge.desktop"
|
||||
rm "$(DESTDIR)/$(prefix)/share/metainfo/linux_build/com.github.dariasteam.cowsrevenge.appdata.xml"
|
||||
#remove icon files
|
||||
$(foreach size,$(ICONSIZES),rm "$(DESTDIR)/$(prefix)/share/icons/hicolor/$(size)x$(size)/apps/com.github.dariasteam.cowsrevenge.png";$(\n))
|
||||
#update databases if removed from system
|
||||
ifeq ($(DESTDIR),)
|
||||
-xdg-icon-resource forceupdate --mode system;
|
||||
-xdg-desktop-menu forceupdate --mode system;
|
||||
endif
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf build
|
||||
BIN
Misc/header_cows_revenge.png
Normal file
BIN
Misc/header_cows_revenge.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
Misc/itch.io_badge.png
Normal file
BIN
Misc/itch.io_badge.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
Music/Milk machine.ogg
Normal file
BIN
Music/Milk machine.ogg
Normal file
Binary file not shown.
BIN
Music/dangerous-hills-loop.ogg
Normal file
BIN
Music/dangerous-hills-loop.ogg
Normal file
Binary file not shown.
BIN
Music/milk-machine-loop.ogg
Normal file
BIN
Music/milk-machine-loop.ogg
Normal file
Binary file not shown.
39
README.md
39
README.md
|
|
@ -1,22 +1,43 @@
|
|||
# Cow's Revenge 
|
||||
# Cow's Revenge
|
||||
![]()[](https://pipoypipagames.itch.io/cows-revenge)
|
||||
<a href='https://flathub.org/apps/details/com.github.dariasteam.cowsrevenge'><img width='120' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a>
|
||||
<a href="https://f-droid.org/app/org.pipoypipagames.cowsrevenge">
|
||||
<img src="https://f-droid.org/badge/get-it-on.png"
|
||||
alt="Get it on F-Droid" height="60">
|
||||
</a>
|
||||
|
||||
Casual platform game project for learning purposes. Made with [godot engine](https://godotengine.org/).
|
||||
> You are a cow abducted and genetically improved by aliens which now have the opportunity to rebel against livestock industry by freeing the encaged hens and killing butchers. You used to be a regular cow raised as a dairy cow, but you ain't that anymore. You have become better. You are... THE COWEST.
|
||||
|
||||
|
||||
Casual platform game project for learning purposes. Made with [godot engine 2.1.5](https://godotengine.org/).
|
||||
|
||||
Code licensed as [GPL v3](LICENSE_CODE), assets as [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/).
|
||||
|
||||
## Authors
|
||||
- **Daniel Darias Sánchez** [mastodon](https://mastodon.social/@darias), dariasteam94@gmail.com
|
||||
Code, music, sprites
|
||||
- **Yanara** [instagram](https://www.instagram.com/needafreefall/), needafreefall-@hotmail.com
|
||||
Sprites
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Authors
|
||||
- **Daniel Darias Sánchez** [mastodon](https://mastodon.social/@darias), [email](dariasteam94@gmail.com)
|
||||
code, music, sprites, animations
|
||||
- **Yanara Aristiguieta** [instagram](https://www.instagram.com/yanaronna/), [twitter](twitter.com/yanaronna), [email](needafreefall-@hotmail.com)
|
||||
sprites, character design, animations
|
||||
|
||||
## Additional information
|
||||
All resources have been created using the following FLOSS:
|
||||
|
||||
- [krita](https://krita.org/en/)
|
||||
- [audacity](http://www.audacityteam.org/)
|
||||
- tuxguitar
|
||||
- [tuxguitar](http://tuxguitar.com.ar/)
|
||||
- [inkscape](https://inkscape.org/en/)
|
||||
- [sfxr](http://www.drpetter.se/project_sfxr.html)
|
||||
|
||||
# Contributors and third party stuff
|
||||
|
||||
Shaders: [Enrique Lalves](https://github.com/henriquelalves/SimpleGodotCRTShader)
|
||||
Font: [Press Start 2P by CodeMan38 (Open Font License)](https://fonts.google.com/specimen/Press+Start+2P?selection.family=Press+Start+2P)
|
||||
|
||||
- [Basxto](https://github.com/basxto)
|
||||
|
|
|
|||
36
Scenes/Effects/retro_shader.tres
Normal file
36
Scenes/Effects/retro_shader.tres
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[gd_resource type="CanvasItemMaterial" load_steps=2 format=1]
|
||||
|
||||
[sub_resource type="CanvasItemShader" id=1]
|
||||
|
||||
_code = {
|
||||
"fragment": "uniform float lines_distance = 4.0;
|
||||
uniform float pixel_size = 2.0;
|
||||
uniform float size_screen = 600;
|
||||
uniform float scanline_alpha = 0.9;
|
||||
uniform float lines_velocity = 30.0;
|
||||
|
||||
float line_row = floor((SCREEN_UV.y * size_screen/pixel_size) + mod(TIME*lines_velocity, lines_distance));
|
||||
|
||||
float n = 1.0 - ceil((mod(line_row,lines_distance)/lines_distance));
|
||||
|
||||
vec4 c = vec4(texscreen(SCREEN_UV),1);
|
||||
c = c - n*c*(1 - scanline_alpha);
|
||||
c.a = 1;
|
||||
COLOR = c;",
|
||||
"fragment_ofs": 0,
|
||||
"light": "",
|
||||
"light_ofs": 0,
|
||||
"vertex": "",
|
||||
"vertex_ofs": 0
|
||||
}
|
||||
|
||||
[resource]
|
||||
|
||||
shader/shader = SubResource( 1 )
|
||||
shader/shading_mode = 0
|
||||
shader_param/lines_distance = 4.0
|
||||
shader_param/pixel_size = 2.0
|
||||
shader_param/size_screen = 600.0
|
||||
shader_param/scanline_alpha = 0.9
|
||||
shader_param/lines_velocity = 30.0
|
||||
|
||||
61
Scenes/Effects/scan_lines.tscn
Normal file
61
Scenes/Effects/scan_lines.tscn
Normal file
File diff suppressed because one or more lines are too long
41
Scenes/Events/BottomLevelParticles.tscn
Normal file
41
Scenes/Events/BottomLevelParticles.tscn
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Effects/leche.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="ColorRamp" id=6]
|
||||
|
||||
offsets = FloatArray( 0, 0.995074 )
|
||||
colors = ColorArray( 0, 0, 0, 0.463843, 0, 0, 0, 0 )
|
||||
|
||||
[node name="BottomLevelParticles" type="Particles2D"]
|
||||
|
||||
visibility/opacity = 0.7
|
||||
transform/pos = Vector2( 623.831, 732.836 )
|
||||
config/amount = 100
|
||||
config/lifetime = 2.0
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 700, 0 )
|
||||
config/texture = ExtResource( 1 )
|
||||
params/direction = 180.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 150.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 5.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 10.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/direction = 10.0
|
||||
randomness/spread = 10.0
|
||||
randomness/linear_velocity = 0.1
|
||||
color/color = Color( 0, 0, 0, 1 )
|
||||
color/color_ramp = SubResource( 6 )
|
||||
|
||||
|
||||
515
Scenes/Events/UFO.tscn
Normal file
515
Scenes/Events/UFO.tscn
Normal file
|
|
@ -0,0 +1,515 @@
|
|||
[gd_scene load_steps=16 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Effects/UFO-ray_1.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Sprites/Effects/UFO-ray_2.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Effects/leche.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Sprites/Charasets/UFO.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Scenes/Events/player_spawner.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://Sprites/Charasets/cow.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sound/UFO_abduct.ogg" type="AudioStream" id=7]
|
||||
[ext_resource path="res://Fonts/pixelated_regular.fnt" type="BitmapFont" id=8]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
|
||||
resource/name = "floating"
|
||||
length = 3.0
|
||||
loop = true
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:transform/pos")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 1.5, 3 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0, 0 ), Vector2( 0, -7 ), Vector2( 0, 0 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 0, 23.8991, -81, 17.8991, -119, 6.89908, -139, -6.10092, -140, -16.1009, -134, -26.1009, -110, -38.1009, -76, -47.1009, -57, -50.1009 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 66, 19.8991, 0, 23.8991, -57, -50.1009, -46, -67.1009, -23, -81.1009, 0, -83.1009, 22, -81.1009, 46, -66.1009, 57, -50.1009 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 134, -3.10092, 106, 12.8991, 66, 19.8991, 57, -50.1009, 83, -46.1009, 107, -39.1009, 123, -32.1009, 137, -19.1009, 139, -10.1009 )
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
|
||||
resource/name = "appear"
|
||||
length = 1.0
|
||||
loop = false
|
||||
step = 0.05
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:visibility/opacity")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.05, 0.15, 0.2, 0.3, 0.45, 0.5, 0.6, 0.95, 1 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 0.4, 0.1, 1.0, 0.1, 0.5, 0.8, 0.4, 1.0, 0.0 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
|
||||
resource/name = "unvanish"
|
||||
length = 1.0
|
||||
loop = false
|
||||
step = 0.05
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:visibility/opacity")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.05, 0.1, 0.15, 0.25, 0.4, 0.5, 0.6, 0.85 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 1.0, 0.4, 0.8, 0.1, 0.5, 0.1, 1.0, 0.4, 0.0 ]
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=7]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 4.3399, 110.989 )
|
||||
|
||||
[node name="UFO" type="Node2D"]
|
||||
|
||||
[node name="Ray" type="Node2D" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 0, 131 )
|
||||
z/z = 2
|
||||
|
||||
[node name="ray_outter" type="Sprite" parent="Ray"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
visibility/blend_mode = 1
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="ray_inner" type="Sprite" parent="Ray"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
visibility/blend_mode = 1
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="Particles2D" type="Particles2D" parent="Ray"]
|
||||
|
||||
visibility/behind_parent = true
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( 38, 111 )
|
||||
config/amount = 3
|
||||
config/lifetime = 0.6
|
||||
config/time_scale = 0.6
|
||||
config/preprocess = 10.0
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 180.0
|
||||
params/spread = 0.0
|
||||
params/linear_velocity = 400.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 100.0
|
||||
params/tangential_accel = 150.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 0.5
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 5.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/gravity_direction = 1.0
|
||||
randomness/tangential_accel = 0.4
|
||||
randomness/initial_size = 0.5
|
||||
randomness/hue_variation = 0.15
|
||||
color/color = Color( 0.333827, 0.355469, 0.209671, 1 )
|
||||
|
||||
[node name="Particles2D1" type="Particles2D" parent="Ray"]
|
||||
|
||||
visibility/behind_parent = true
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( -34, 111 )
|
||||
config/amount = 3
|
||||
config/lifetime = 0.6
|
||||
config/time_scale = 0.6
|
||||
config/preprocess = 10.0
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 180.0
|
||||
params/spread = 0.0
|
||||
params/linear_velocity = 400.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 100.0
|
||||
params/tangential_accel = -128.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 0.5
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 5.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/gravity_direction = 1.0
|
||||
randomness/tangential_accel = 0.4
|
||||
randomness/initial_size = 0.5
|
||||
randomness/hue_variation = 0.15
|
||||
color/color = Color( 0.333827, 0.355469, 0.209671, 1 )
|
||||
|
||||
[node name="Particles2D2" type="Particles2D" parent="Ray"]
|
||||
|
||||
visibility/behind_parent = true
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( 2, 118 )
|
||||
config/amount = 3
|
||||
config/lifetime = 0.6
|
||||
config/time_scale = 0.6
|
||||
config/preprocess = 10.0
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 180.0
|
||||
params/spread = 0.0
|
||||
params/linear_velocity = 400.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 100.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 0.5
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 5.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 0.5
|
||||
randomness/gravity_direction = 1.0
|
||||
randomness/tangential_accel = 0.4
|
||||
randomness/initial_size = 0.5
|
||||
randomness/hue_variation = 0.15
|
||||
color/color = Color( 0.333827, 0.355469, 0.209671, 1 )
|
||||
|
||||
[node name="Sprite_UFO" type="Sprite" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 0, -4.66871 )
|
||||
z/z = 3
|
||||
texture = ExtResource( 4 )
|
||||
|
||||
[node name="Smoke" type="Node2D" parent="Sprite_UFO"]
|
||||
|
||||
editor/display_folded = true
|
||||
visibility/behind_parent = true
|
||||
|
||||
[node name="some_a" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( -94, -8.13146 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="smoke_b" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( -69, 10.046 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="smoke_c" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( -24, 21.6321 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="smoke_d" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 26, 20.4355 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="smoke_e" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 67, 13.6283 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="smoke_f" type="Particles2D" parent="Sprite_UFO/Smoke"]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 90, -12.5606 )
|
||||
config/amount = 32
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 0.0
|
||||
params/spread = 10.0
|
||||
params/linear_velocity = 80.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 9.8
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/spread = 0.2
|
||||
randomness/hue_variation = 0.1
|
||||
color/color = Color( 0.414062, 1, 0.533081, 1 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite_UFO"]
|
||||
|
||||
playback/process_mode = 0
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/floating = SubResource( 1 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "floating"
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="Sprite_UFO"]
|
||||
|
||||
editor/display_folded = true
|
||||
visibility/visible = false
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 3 )
|
||||
shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/1/trigger = false
|
||||
shapes/2/shape = SubResource( 4 )
|
||||
shapes/2/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/2/trigger = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Sprite_UFO/StaticBody2D"]
|
||||
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( -57, -50.1009, -46, -67.1009, -23, -81.1009, 0, -83.1009, 22, -81.1009, 46, -66.1009, 57, -50.1009, 83, -46.1009, 107, -39.1009, 123, -32.1009, 137, -19.1009, 139, -10.1009, 134, -3.10092, 106, 12.8991, 66, 19.8991, 0, 23.8991, -81, 17.8991, -119, 6.89908, -139, -6.10092, -140, -16.1009, -134, -26.1009, -110, -38.1009, -76, -47.1009 )
|
||||
shape_range = Vector2( 0, 2 )
|
||||
trigger = false
|
||||
|
||||
[node name="player_spawner" parent="." groups=[
|
||||
"player_spawner",
|
||||
] instance=ExtResource( 5 )]
|
||||
|
||||
transform/pos = Vector2( -1.5159, 199.14 )
|
||||
|
||||
[node name="Sprite_cow" type="Sprite" parent="player_spawner"]
|
||||
|
||||
visibility/opacity = 0.0
|
||||
visibility/behind_parent = true
|
||||
transform/pos = Vector2( 1.00537, -0.359009 )
|
||||
z/z = -2
|
||||
texture = ExtResource( 6 )
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 96, 96 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="player_spawner/Sprite_cow"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/appear = SubResource( 5 )
|
||||
anims/unvanish = SubResource( 6 )
|
||||
playback/active = true
|
||||
playback/speed = 5.0
|
||||
blend_times = [ ]
|
||||
autoplay = ""
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="player_spawner"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 1.00537, -57.1355 )
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 7 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, -0.263519, 0 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="player_spawner/Area2D"]
|
||||
|
||||
transform/pos = Vector2( -0.263519, 0 )
|
||||
shape = SubResource( 7 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Instancer" type="Node2D" parent="player_spawner"]
|
||||
|
||||
transform/scale = Vector2( 0.5882, 0.5882 )
|
||||
|
||||
[node name="Sound" type="StreamPlayer" parent="player_spawner"]
|
||||
|
||||
stream/stream = ExtResource( 7 )
|
||||
stream/play = true
|
||||
stream/loop = false
|
||||
stream/volume_db = 10.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[node name="UFO_texts" type="Label" parent="player_spawner"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = -202.0
|
||||
margin/top = -154.0
|
||||
margin/right = 204.0
|
||||
margin/bottom = -96.0
|
||||
custom_fonts/font = ExtResource( 8 )
|
||||
align = 1
|
||||
autowrap = true
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[connection signal="body_enter" from="player_spawner/Area2D" to="player_spawner" method="_on_Area2D_body_enter"]
|
||||
|
||||
[connection signal="body_exit" from="player_spawner/Area2D" to="player_spawner" method="_on_Area2D_body_exit"]
|
||||
|
||||
|
||||
|
|
@ -2,7 +2,18 @@ extends Area2D
|
|||
|
||||
export(int) var amount = 100
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
onready var sound = get_node("Sound")
|
||||
onready var sprite = get_node("Sprite")
|
||||
|
||||
func _ready():
|
||||
sound.connect("finished",self,"queue_free")
|
||||
|
||||
func _on_Apple_body_enter( body ):
|
||||
if(body.is_in_group("player")):
|
||||
body.add_milk(amount)
|
||||
queue_free()
|
||||
if global.sound:
|
||||
sound.play()
|
||||
sprite.set_opacity(0)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=4 format=1]
|
||||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/apple.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Charasets/manzana.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sound/apple_sound.ogg" type="AudioStream" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
|
|
@ -15,15 +16,14 @@ shapes/0/shape = SubResource( 1 )
|
|||
shapes/0/transform = Matrix32( 2.49193, 0, 0, 2.79981, -2.22558, 5.41232 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 0.0
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitorable = false
|
||||
collision/layers = 16
|
||||
script/script = ExtResource( 1 )
|
||||
amount = 100
|
||||
|
||||
[node name="Apple" type="Sprite" parent="."]
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 2 )
|
||||
|
|
@ -36,6 +36,17 @@ shape = SubResource( 1 )
|
|||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_Area2D_body_enter"]
|
||||
[node name="Sound" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 3 )
|
||||
stream/play = false
|
||||
stream/loop = false
|
||||
stream/volume_db = 5.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_Apple_body_enter"]
|
||||
|
||||
|
||||
|
|
|
|||
43
Scenes/Events/cage.tres.gd
Normal file
43
Scenes/Events/cage.tres.gd
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
extends StaticBody2D
|
||||
|
||||
export(String) var base_key_texts = "CHICKEN_ADVICE_"
|
||||
export(int) var keys_size = 56
|
||||
var texts = []
|
||||
|
||||
onready var foreground = get_node("Foreground")
|
||||
onready var background = get_node("Background")
|
||||
onready var particles_a = get_node("Bars")
|
||||
onready var particles_b = get_node("Dust")
|
||||
onready var sound = get_node("StreamPlayer")
|
||||
|
||||
onready var text_label = get_node("Node2D/Text")
|
||||
onready var text_anim = get_node("Node2D/Text/AnimationPlayer")
|
||||
|
||||
func _ready():
|
||||
for i in range(0, keys_size):
|
||||
texts.push_back(str(base_key_texts, i))
|
||||
|
||||
func open_cage():
|
||||
|
||||
get_tree().get_nodes_in_group("player_spawner")[0].update_text()
|
||||
|
||||
if global.sound:
|
||||
sound.play()
|
||||
|
||||
text_label.set_text( texts[rand_range(0, texts.size())])
|
||||
text_anim.play("Apear")
|
||||
|
||||
get_node("Area2D").queue_free()
|
||||
get_node("CollisionShape2D").queue_free()
|
||||
particles_a.set_emitting(true)
|
||||
particles_b.set_emitting(true)
|
||||
foreground.queue_free()
|
||||
background.queue_free()
|
||||
|
||||
remove_from_group("cages")
|
||||
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group("player")):
|
||||
body.open_cage(1)
|
||||
open_cage()
|
||||
146
Scenes/Events/chain.tscn
Normal file
146
Scenes/Events/chain.tscn
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "export (NodePath) var START
|
||||
export (NodePath) var END
|
||||
export(int) var divisor = 4
|
||||
|
||||
onready var start = get_node(START)
|
||||
onready var end = get_node(END)
|
||||
|
||||
onready var x1 = start.get_pos().x
|
||||
onready var x2 = end.get_pos().x
|
||||
onready var y1 = start.get_pos().y
|
||||
onready var y2 = end.get_pos().y
|
||||
|
||||
onready var A = abs(x2 - x1)
|
||||
onready var B = abs(y2 - y1)
|
||||
|
||||
onready var H = sqrt(pow(A, 2) + pow(B, 2))
|
||||
onready var angle = asin(A / H / sin(deg2rad(90)))
|
||||
onready var x_sign = ((start.get_pos().x - end.get_pos().x < 0) * -2) +1
|
||||
|
||||
const segment = preload(\"res://Scenes/Events/chain_segment.tscn\")
|
||||
|
||||
func next_segment_y(x):
|
||||
return Vector2(x , ((x - x1) * (y2 - y1) / (x2 - x1)) + y1)
|
||||
|
||||
func generate_segment (index):
|
||||
var aux_segment = segment.instance()
|
||||
var position_x = start.get_pos().x - (x_sign * (divisor * index)) * angle
|
||||
aux_segment.set_pos(next_segment_y(position_x))
|
||||
return aux_segment
|
||||
|
||||
func _ready():
|
||||
print (angle)
|
||||
|
||||
var distance = start.get_pos().distance_to(end.get_pos())
|
||||
var n_segments = distance / divisor
|
||||
var last_segment = start
|
||||
|
||||
for i in range(1, n_segments - 1):
|
||||
var aux_segment = generate_segment(i)
|
||||
add_child(aux_segment)
|
||||
last_segment.get_node(\"joint\").set_node_a(last_segment.get_path())
|
||||
last_segment.get_node(\"joint\").set_node_b(aux_segment.get_path())
|
||||
last_segment = aux_segment
|
||||
|
||||
last_segment.get_node(\"joint\").set_node_a(last_segment.get_path())
|
||||
last_segment.get_node(\"joint\").set_node_b(end.get_path())
|
||||
"
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 4.05118, 3.93616 )
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( 589.086, 309.696 )
|
||||
script/script = SubResource( 1 )
|
||||
START = NodePath("Start")
|
||||
END = NodePath("End")
|
||||
divisor = 1
|
||||
|
||||
[node name="Start" type="RigidBody2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 225.344, 1.77942 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 10.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Start"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="Start"]
|
||||
|
||||
transform/pos = Vector2( -6.01813, -0.0238342 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D18")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 0.0
|
||||
|
||||
[node name="End" type="RigidBody2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 125.865, 0.659424 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 10.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="End"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="End"]
|
||||
|
||||
transform/pos = Vector2( -6.01813, -0.0238342 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D18")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 0.0
|
||||
|
||||
|
||||
55
Scenes/Events/chain_segment.tscn
Normal file
55
Scenes/Events/chain_segment.tscn
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Boss/wire.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 4.05118, 3.93616 )
|
||||
|
||||
[node name="chain_segment" type="RigidBody2D"]
|
||||
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 0
|
||||
mass = 0.102041
|
||||
friction = 1.0
|
||||
bounce = 1.0
|
||||
gravity_scale = 2.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( -6.01068, -0.00541687 )
|
||||
texture = ExtResource( 1 )
|
||||
offset = Vector2( 6.01068, 0.00541687 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -6.01813, -0.0238342 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D18")
|
||||
bias/bias = 1.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 8.0
|
||||
|
||||
|
||||
12
Scenes/Events/cowbell.gd
Normal file
12
Scenes/Events/cowbell.gd
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
extends Area2D
|
||||
|
||||
export(int) var amount = 100
|
||||
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if(body.is_in_group("player")):
|
||||
body.add_cowbells(1)
|
||||
queue_free()
|
||||
|
||||
57
Scenes/Events/cowbell.tscn
Normal file
57
Scenes/Events/cowbell.tscn
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/cowbell.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Charasets/cowbell.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Scenes/Events/cowbell_animation_one_shot.tres" type="Animation" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 13, 13 )
|
||||
|
||||
[node name="Cowbell" type="Area2D"]
|
||||
|
||||
z/relative = false
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1.875, 0, 0, 1.875, 7.15256e-07, -9.53674e-07 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 0.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitorable = false
|
||||
collision/layers = 16
|
||||
script/script = ExtResource( 1 )
|
||||
amount = 100
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 3
|
||||
frame = 2
|
||||
region_rect = Rect2( 0, 0, 24, 24 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite"]
|
||||
|
||||
playback/process_mode = 0
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/Bling = ExtResource( 3 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "Bling"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 7.15256e-07, -9.53674e-07 )
|
||||
transform/scale = Vector2( 1.875, 1.875 )
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
19
Scenes/Events/cowbell_animation_one_shot.tres
Normal file
19
Scenes/Events/cowbell_animation_one_shot.tres
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[gd_resource type="Animation" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
resource/name = "Bling"
|
||||
length = 0.61
|
||||
loop = true
|
||||
step = 0.15
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.15, 0.3, 0.45, 0.6 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 0, 2, 0 ]
|
||||
}
|
||||
|
||||
19
Scenes/Events/cowbell_animations.tres
Normal file
19
Scenes/Events/cowbell_animations.tres
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[gd_resource type="Animation" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
resource/name = "Bling"
|
||||
length = 0.61
|
||||
loop = true
|
||||
step = 0.15
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.15, 0.3, 0.45, 0.6 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 0, 2, 0 ]
|
||||
}
|
||||
|
||||
69
Scenes/Events/cowbell_bonus.tscn
Normal file
69
Scenes/Events/cowbell_bonus.tscn
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
[gd_scene load_steps=4 format=1]
|
||||
|
||||
[ext_resource path="res://Fonts/pixelated_title.fnt" type="BitmapFont" id=1]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "extends RichTextLabel
|
||||
|
||||
func _on_AnimationPlayer_finished():
|
||||
queue_free()
|
||||
"
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
|
||||
length = 1.0
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:rect/pos")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.4, 0.6, 0.7, 0.8, 0.9, 0.9, 1 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0, 94 ), Vector2( 0, 50 ), Vector2( 0, 37 ), Vector2( 0, 32.6667 ), Vector2( 0, 28.3333 ), Vector2( 630, 24 ), Vector2( 0, 24 ), Vector2( 0, 22 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:visibility/opacity")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 1 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 1.0, 0.0 ]
|
||||
}
|
||||
|
||||
[node name="Bonus" type="RichTextLabel"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 0.0
|
||||
margin/top = 94.0
|
||||
margin/right = 202.0
|
||||
margin/bottom = 228.0
|
||||
custom_fonts/normal_font = ExtResource( 1 )
|
||||
bbcode/enabled = true
|
||||
bbcode/bbcode = ""
|
||||
visible_characters = -1
|
||||
percent_visible = 1.0
|
||||
script/script = SubResource( 1 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/bonus_up = SubResource( 2 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "bonus_up"
|
||||
|
||||
[connection signal="finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_finished"]
|
||||
|
||||
|
||||
10
Scenes/Events/cowbell_colelctor.gd
Normal file
10
Scenes/Events/cowbell_colelctor.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
extends Node2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
func _ready():
|
||||
# Called every time the node is added to the scene.
|
||||
# Initialization here
|
||||
pass
|
||||
57
Scenes/Events/cowbell_collector.gd
Normal file
57
Scenes/Events/cowbell_collector.gd
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
extends Node2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
onready var timer = get_node("next_cowbell_time")
|
||||
const SAMPLE_LIBRARY = preload("res://Scenes/Events/cowbell_sample_library.tres")
|
||||
|
||||
export(float) var pitch_increment = 0.05
|
||||
export(float) var base_pitch = 1.5
|
||||
|
||||
export(int) var bonus_threshold = 20
|
||||
export(int) var bonus_cowbells = 15
|
||||
|
||||
var pitch = base_pitch
|
||||
var acumulator = 0;
|
||||
var multiplier = 1
|
||||
|
||||
func timer_timeout():
|
||||
pitch = base_pitch
|
||||
acumulator = 0
|
||||
multiplier = 1
|
||||
|
||||
func play_sound():
|
||||
pitch += pitch_increment
|
||||
acumulator += pitch_increment
|
||||
|
||||
if (acumulator >= (pitch_increment * bonus_threshold)):
|
||||
get_tree().get_nodes_in_group("player")[0].add_bonus(bonus_cowbells * multiplier)
|
||||
acumulator = 0
|
||||
multiplier += 1
|
||||
|
||||
var sample_player = SamplePlayer.new()
|
||||
sample_player.set_sample_library(SAMPLE_LIBRARY)
|
||||
sample_player.set_default_pitch_scale(pitch)
|
||||
sample_player.set_default_volume(40)
|
||||
|
||||
var aux_timer = Timer.new()
|
||||
aux_timer.set_one_shot(true)
|
||||
aux_timer.set_wait_time(0.5)
|
||||
|
||||
aux_timer.connect("timeout",sample_player,"queue_free")
|
||||
|
||||
add_child(sample_player)
|
||||
sample_player.add_child(aux_timer)
|
||||
|
||||
if global.sound:
|
||||
sample_player.play("cowbell_sound")
|
||||
|
||||
aux_timer.start()
|
||||
|
||||
timer.start()
|
||||
return pitch - base_pitch
|
||||
|
||||
func _ready():
|
||||
timer.connect("timeout",self,"timer_timeout")
|
||||
13
Scenes/Events/cowbell_sample_library.tres
Normal file
13
Scenes/Events/cowbell_sample_library.tres
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[gd_resource type="SampleLibrary" load_steps=2 format=1]
|
||||
|
||||
[ext_resource path="res://Sound/cowbell_sound.wav" type="Sample" id=1]
|
||||
|
||||
[resource]
|
||||
|
||||
samples/cowbell_sound = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 1 )
|
||||
}
|
||||
|
||||
|
|
@ -1,8 +1,17 @@
|
|||
extends Area2D
|
||||
|
||||
onready var particles = get_tree().get_nodes_in_group("bottom_level_particles")[0]
|
||||
func _on_DeathLine_body_enter( body ):
|
||||
if(body.is_in_group("player")):
|
||||
body.on_receive_damage(1000)
|
||||
queue_free()
|
||||
elif(body.is_in_group("enemy")):
|
||||
body.queue_free()
|
||||
body.queue_free()
|
||||
|
||||
|
||||
func _on_death_line_area_enter( area ):
|
||||
if(area.is_in_group("bottom_level_detector") and global.bottom_particles):
|
||||
particles.set_emitting(true)
|
||||
|
||||
func _on_death_line_area_exit( area ):
|
||||
if(area.is_in_group("bottom_level_detector") and global.bottom_particles):
|
||||
particles.set_emitting(false)
|
||||
|
|
|
|||
|
|
@ -33,6 +33,10 @@ shape = SubResource( 1 )
|
|||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[connection signal="area_enter" from="." to="." method="_on_death_line_area_enter"]
|
||||
|
||||
[connection signal="area_exit" from="." to="." method="_on_death_line_area_exit"]
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_DeathLine_body_enter"]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ var vertical
|
|||
export var velocity = 350
|
||||
var v = Vector2(-velocity, 0)
|
||||
|
||||
onready var sprite = get_node("Sprite")
|
||||
onready var sprite = get_node("sprite")
|
||||
onready var area_head = get_node("area_head")
|
||||
|
||||
onready var hit_single = get_node("hit_ray_particle")
|
||||
onready var sound = get_node("sound")
|
||||
|
||||
export(bool) var dir_left = true;
|
||||
|
||||
|
|
@ -20,22 +20,23 @@ export(int) var damage = 1
|
|||
func reverse_direction():
|
||||
sprite.set_flip_h(v.x < 0)
|
||||
dir_left = !dir_left
|
||||
v = Vector2(-v.x,0)
|
||||
v = Vector2(-v.x,0)
|
||||
|
||||
func _ready():
|
||||
func _ready():
|
||||
if (!dir_left):
|
||||
reverse_direction()
|
||||
set_fixed_process(true)
|
||||
#set_process(true)
|
||||
#set_fixed_process(true)
|
||||
set_process(true)
|
||||
|
||||
func dissapear():
|
||||
func disappear():
|
||||
play_damage_sound()
|
||||
sprite.set_opacity(0)
|
||||
set_fixed_process(false)
|
||||
set_layer_mask_bit(2,false)
|
||||
|
||||
|
||||
hit_single.set_emitting(true)
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(hit_single.get_lifetime())
|
||||
t.set_wait_time(max(hit_single.get_lifetime(), 1))
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
|
|
@ -44,10 +45,10 @@ func dissapear():
|
|||
|
||||
func die_by_jump():
|
||||
life = 0
|
||||
dissapear()
|
||||
disappear()
|
||||
|
||||
func die():
|
||||
dissapear()
|
||||
disappear()
|
||||
|
||||
func on_opacity_low ():
|
||||
sprite.set_modulate(Color("fb12e7"))
|
||||
|
|
@ -55,7 +56,14 @@ func on_opacity_low ():
|
|||
func on_opacity_high ():
|
||||
sprite.set_modulate(Color("00ffff"))
|
||||
|
||||
func play_damage_sound():
|
||||
var sample_list = sound.get_sample_library().get_sample_list()
|
||||
var sample = sample_list[rand_range(0, sample_list.size())]
|
||||
if global.sound:
|
||||
sound.play(sample, 0)
|
||||
|
||||
func decrease_life (value):
|
||||
play_damage_sound()
|
||||
hit_single.set_emitting(false)
|
||||
hit_single.set_emitting(true)
|
||||
var t1 = Timer.new()
|
||||
|
|
@ -71,13 +79,13 @@ func decrease_life (value):
|
|||
t1.start()
|
||||
yield(t1, "timeout")
|
||||
t2.start()
|
||||
yield(t2, "timeout")
|
||||
yield(t2, "timeout")
|
||||
sprite.set_modulate(Color("ffffff"))
|
||||
if (life > 0):
|
||||
life -= value
|
||||
if (life <= 0):
|
||||
die()
|
||||
|
||||
|
||||
func restore_velocity():
|
||||
if(dir_left):
|
||||
v.x = -velocity
|
||||
|
|
@ -89,16 +97,16 @@ func change_velocity(amount, right):
|
|||
v.x = ((!dir_left * -1) + (dir_left * 1)) * amount
|
||||
else:
|
||||
v.x += ((dir_left * -1) + (!dir_left * 1)) * amount
|
||||
|
||||
|
||||
func _fixed_process(delta):
|
||||
|
||||
func _process(delta):
|
||||
var motion = v * delta
|
||||
motion = move(motion)
|
||||
v.y += delta * GRAVITY
|
||||
|
||||
|
||||
if (is_colliding()):
|
||||
var normal = get_collision_normal();
|
||||
|
||||
|
||||
if (normal.y < 0):
|
||||
if (normal.y > -1):
|
||||
v.y = -velocity
|
||||
|
|
@ -118,4 +126,4 @@ func _on_area_head_body_enter( body ):
|
|||
if (body.is_in_group("player")):
|
||||
if (body.foots.get_global_pos().y > area_head.get_global_pos().y and body.is_falling()):
|
||||
life = 0
|
||||
die_by_jump()
|
||||
die_by_jump()
|
||||
|
|
|
|||
|
|
@ -1,19 +1,9 @@
|
|||
[gd_scene load_steps=22 format=1]
|
||||
[gd_scene load_steps=14 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/enemy_1.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk1.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk10.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk2.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk3.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk4.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk5.png" type="Texture" id=7]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk6.png" type="Texture" id=8]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk7.png" type="Texture" id=9]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk8.png" type="Texture" id=10]
|
||||
[ext_resource path="res://Sprites/Charasets/Enemy_1/enemy_walk9.png" type="Texture" id=11]
|
||||
[ext_resource path="res://Sprites/Effects/sangre.png" type="Texture" id=12]
|
||||
|
||||
|
||||
[ext_resource path="res://Sprites/Charasets/enemy_1.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Effects/sangre.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Scenes/Events/enemy_die_sample_player.tres" type="SampleLibrary" id=4]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
|
|
@ -33,7 +23,7 @@ points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231
|
|||
[sub_resource type="RectangleShape2D" id=4]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 13.0125, 38.3532 )
|
||||
extents = Vector2( 7.54856, 38.3532 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
|
|
@ -50,14 +40,22 @@ points = Vector2Array( 2.63889, -0.899147, 8.90625, -8.09232, 26.7188, 8.39203,
|
|||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231, -7.91667, 2.09801, -8.24653, -3.59659 )
|
||||
|
||||
[sub_resource type="SpriteFrames" id=8]
|
||||
[sub_resource type="Animation" id=8]
|
||||
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ) ],
|
||||
"loop": true,
|
||||
"name": "walking",
|
||||
"speed": 24.0
|
||||
} ]
|
||||
resource/name = "walk"
|
||||
length = 0.4
|
||||
loop = true
|
||||
step = 0.04
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
}
|
||||
|
||||
[sub_resource type="ColorRamp" id=9]
|
||||
|
||||
|
|
@ -65,8 +63,8 @@ offsets = FloatArray( 0, 1 )
|
|||
colors = ColorArray( 0.773438, 0.773438, 0.773438, 1, 0.1875, 0.1875, 0.1875, 1 )
|
||||
|
||||
[node name="KinematicBody2D 2" type="KinematicBody2D" groups=[
|
||||
"enemy_1",
|
||||
"enemy",
|
||||
"enemy_1",
|
||||
]]
|
||||
|
||||
transform/pos = Vector2( 64.3, -80 )
|
||||
|
|
@ -154,13 +152,24 @@ polygon = Vector2Array( 8.57639, -19.4815, 8.90625, -8.09232, 2.63889, -0.899147
|
|||
shape_range = Vector2( 0, 2 )
|
||||
trigger = true
|
||||
|
||||
[node name="Sprite" type="AnimatedSprite" parent="."]
|
||||
[node name="sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 3.8147e-06, 0 )
|
||||
frames = SubResource( 8 )
|
||||
animation = "walking"
|
||||
frame = 8
|
||||
playing = true
|
||||
transform/pos = Vector2( 7.90835, 7.78536 )
|
||||
texture = ExtResource( 2 )
|
||||
vframes = 6
|
||||
hframes = 6
|
||||
frame = 4
|
||||
|
||||
[node name="animation" type="AnimationPlayer" parent="sprite"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/walk = SubResource( 8 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "walk"
|
||||
|
||||
[node name="hit_ray_particle" type="Particles2D" parent="."]
|
||||
|
||||
|
|
@ -173,8 +182,8 @@ config/emitting = false
|
|||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 40, 40 )
|
||||
config/local_space = false
|
||||
config/explosiveness = 0.5
|
||||
config/texture = ExtResource( 12 )
|
||||
config/explosiveness = 0.2
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 88.89
|
||||
params/spread = 180.0
|
||||
params/linear_velocity = 200.0
|
||||
|
|
@ -196,6 +205,17 @@ randomness/spread = 0.8
|
|||
randomness/linear_velocity = 0.45
|
||||
color/color_ramp = SubResource( 9 )
|
||||
|
||||
[node name="sound" type="SamplePlayer2D" parent="."]
|
||||
|
||||
params/volume_db = 5.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 1.0
|
||||
params/attenuation/max_distance = 2048.0
|
||||
params/attenuation/distance_exp = 2.92817
|
||||
config/polyphony = 3
|
||||
config/samples = ExtResource( 4 )
|
||||
config/pitch_random = 0.135
|
||||
|
||||
[connection signal="body_enter" from="area_head" to="." method="_on_area_head_body_enter"]
|
||||
|
||||
[connection signal="body_enter" from="area_body" to="." method="_on_area_body_body_enter"]
|
||||
|
|
|
|||
141
Scenes/Events/enemy_2.gd
Normal file
141
Scenes/Events/enemy_2.gd
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
extends KinematicBody2D
|
||||
|
||||
const GRAVITY = 3000.0
|
||||
|
||||
var vertical
|
||||
export var velocity = 350
|
||||
var v = Vector2(-velocity, 0)
|
||||
|
||||
const MACHETE = preload("res://Scenes/Events/machete.tscn")
|
||||
|
||||
onready var sprite = get_node("sprite")
|
||||
onready var area_head = get_node("area_head")
|
||||
onready var hit_single = get_node("hit_ray_particle")
|
||||
onready var sound = get_node("sound")
|
||||
onready var shooter = get_node("shooter")
|
||||
onready var shooter_pos = get_node("shooter").get_pos()
|
||||
|
||||
export(bool) var dir_left = true;
|
||||
|
||||
export(int) var life = 2
|
||||
|
||||
export(int) var damage = 1
|
||||
|
||||
func reverse_direction():
|
||||
sprite.set_flip_h(v.x < 0)
|
||||
dir_left = !dir_left
|
||||
v = Vector2(-v.x,0)
|
||||
shooter.set_pos(Vector2(-shooter_pos.x, shooter_pos.y))
|
||||
|
||||
func _ready():
|
||||
if (!dir_left):
|
||||
reverse_direction()
|
||||
#set_fixed_process(true)
|
||||
set_process(true)
|
||||
|
||||
func disappear():
|
||||
get_node("shooter/Timer").disconnect("timeout", self, "_on_Timer_timeout")
|
||||
play_damage_sound()
|
||||
sprite.set_opacity(0)
|
||||
set_fixed_process(false)
|
||||
set_layer_mask_bit(2,false)
|
||||
|
||||
hit_single.set_emitting(true)
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(max(hit_single.get_lifetime(), 1))
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
t.start()
|
||||
yield(t, "timeout")
|
||||
queue_free()
|
||||
|
||||
func die_by_jump():
|
||||
life = 0
|
||||
disappear()
|
||||
|
||||
func die():
|
||||
disappear()
|
||||
|
||||
func on_opacity_low ():
|
||||
sprite.set_modulate(Color("fb12e7"))
|
||||
|
||||
func on_opacity_high ():
|
||||
sprite.set_modulate(Color("00ffff"))
|
||||
|
||||
func play_damage_sound():
|
||||
var sample_list = sound.get_sample_library().get_sample_list()
|
||||
var sample = sample_list[rand_range(0, sample_list.size())]
|
||||
if global.sound:
|
||||
sound.play(sample, 0)
|
||||
|
||||
func decrease_life (value):
|
||||
play_damage_sound()
|
||||
hit_single.set_emitting(false)
|
||||
hit_single.set_emitting(true)
|
||||
var t1 = Timer.new()
|
||||
var t2 = Timer.new()
|
||||
t1.set_wait_time(0.07)
|
||||
t2.set_wait_time(0.07)
|
||||
t1.set_one_shot(true)
|
||||
t2.set_one_shot(true)
|
||||
t1.connect("timeout",self,"on_opacity_low")
|
||||
t2.connect("timeout",self,"on_opacity_high")
|
||||
add_child(t1)
|
||||
add_child(t2)
|
||||
t1.start()
|
||||
yield(t1, "timeout")
|
||||
t2.start()
|
||||
yield(t2, "timeout")
|
||||
sprite.set_modulate(Color("ffffff"))
|
||||
if (life > 0):
|
||||
life -= value
|
||||
if (life <= 0):
|
||||
die()
|
||||
|
||||
func restore_velocity():
|
||||
if(dir_left):
|
||||
v.x = -velocity
|
||||
else:
|
||||
v.x = velocity
|
||||
|
||||
func change_velocity(amount, right):
|
||||
if (right == dir_left):
|
||||
v.x = ((!dir_left * -1) + (dir_left * 1)) * amount
|
||||
else:
|
||||
v.x += ((dir_left * -1) + (!dir_left * 1)) * amount
|
||||
|
||||
|
||||
func _process(delta):
|
||||
var motion = v * delta
|
||||
motion = move(motion)
|
||||
v.y += delta * GRAVITY
|
||||
|
||||
if (is_colliding()):
|
||||
var normal = get_collision_normal();
|
||||
|
||||
if (normal.y < 0):
|
||||
if (normal.y > -1):
|
||||
v.y = -velocity
|
||||
var aux = v.x
|
||||
motion = normal.slide(motion)
|
||||
v = normal.slide(v)
|
||||
move(motion)
|
||||
v.x = aux
|
||||
if (normal.x < -0.9 or normal.x > 0.9):
|
||||
reverse_direction()
|
||||
|
||||
func _on_area_body_body_enter( body ):
|
||||
if (body.is_in_group("player") and life > 0):
|
||||
body.on_receive_damage(damage)
|
||||
|
||||
func _on_area_head_body_enter( body ):
|
||||
if (body.is_in_group("player")):
|
||||
if (body.foots.get_global_pos().y > area_head.get_global_pos().y and body.is_falling()):
|
||||
life = 0
|
||||
die_by_jump()
|
||||
|
||||
func _on_Timer_timeout():
|
||||
var machete = MACHETE.instance()
|
||||
machete.set_global_pos(shooter.get_global_pos())
|
||||
machete.set_right(!dir_left)
|
||||
get_parent().add_child(machete)
|
||||
237
Scenes/Events/enemy_2.tscn
Normal file
237
Scenes/Events/enemy_2.tscn
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
[gd_scene load_steps=14 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/enemy_2.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Charasets/enemy_2.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Effects/sangre.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Scenes/Events/enemy_die_sample_player.tres" type="SampleLibrary" id=4]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 8.90625, -8.09232, 8.57639, -19.4815, 23.6279, -19.5115, 26.7188, 8.39203 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 2.63889, -0.899147, 8.90625, -8.09232, 26.7188, 8.39203, 20.1215, 15.8849, 5.27778, 15.5852, 0.989584, 8.09231 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231, -7.91667, 2.09801, -8.24653, -3.59659 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=4]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 7.54856, 38.3532 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 8.90625, -8.09232, 8.57639, -19.4815, 23.744, -19.0929, 26.7188, 8.39203 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( 2.63889, -0.899147, 8.90625, -8.09232, 26.7188, 8.39203, 20.1215, 15.8849, 5.27778, 15.5852, 0.989584, 8.09231 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -3.29861, -5.99431, 2.63889, -0.899147, 0.989584, 8.09231, -7.91667, 2.09801, -8.24653, -3.59659 )
|
||||
|
||||
[sub_resource type="Animation" id=8]
|
||||
|
||||
resource/name = "walk"
|
||||
length = 0.4
|
||||
loop = true
|
||||
step = 0.04
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
|
||||
}
|
||||
|
||||
[sub_resource type="ColorRamp" id=9]
|
||||
|
||||
offsets = FloatArray( 0, 1 )
|
||||
colors = ColorArray( 0.773438, 0.773438, 0.773438, 1, 0.1875, 0.1875, 0.1875, 1 )
|
||||
|
||||
[node name="KinematicBody2D 2" type="KinematicBody2D" groups=[
|
||||
"enemy",
|
||||
"enemy_1",
|
||||
]]
|
||||
|
||||
transform/pos = Vector2( 64.3, -80 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/1/trigger = false
|
||||
shapes/2/shape = SubResource( 3 )
|
||||
shapes/2/transform = Matrix32( 1.68421, 0, 0, 1.85361, -19.4444, 6.66667 )
|
||||
shapes/2/trigger = false
|
||||
collision/layers = 5
|
||||
collision/mask = 4
|
||||
collision/margin = 0.08
|
||||
script/script = ExtResource( 1 )
|
||||
velocity = 350
|
||||
dir_left = true
|
||||
life = 2
|
||||
damage = 1
|
||||
|
||||
[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -19.4444, 6.66667 )
|
||||
transform/scale = Vector2( 1.68421, 1.85361 )
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( 8.57639, -19.4815, 8.90625, -8.09232, 2.63889, -0.899147, -3.29861, -5.99431, -8.24653, -3.59659, -7.91667, 2.09801, 0.989584, 8.09231, 5.27778, 15.5852, 20.1215, 15.8849, 26.7188, 8.39203, 23.6279, -19.5115 )
|
||||
shape_range = Vector2( 0, 2 )
|
||||
trigger = false
|
||||
|
||||
[node name="area_head" type="Area2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 7.35, -34.75 )
|
||||
transform/scale = Vector2( 0.5, 0.148438 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 4 )
|
||||
shapes/0/transform = Matrix32( 2.41445, 0, 0, 0.77017, 0.581818, 2.46155 )
|
||||
shapes/0/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 0.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitorable = false
|
||||
collision/layers = 4
|
||||
collision/mask = 34
|
||||
|
||||
[node name="CollisionShape2D1" type="CollisionShape2D" parent="area_head"]
|
||||
|
||||
transform/pos = Vector2( 0.581818, 2.46155 )
|
||||
transform/scale = Vector2( 2.41445, 0.77017 )
|
||||
shape = SubResource( 4 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="area_body" type="Area2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -4.07679, 1.11111 )
|
||||
transform/scale = Vector2( 0.9363, 1.08512 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/0/trigger = true
|
||||
shapes/1/shape = SubResource( 6 )
|
||||
shapes/1/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/1/trigger = true
|
||||
shapes/2/shape = SubResource( 7 )
|
||||
shapes/2/transform = Matrix32( 1.79879, 0, 0, 1.7082, -16.6219, 4.86533 )
|
||||
shapes/2/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 0.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitorable = false
|
||||
collision/layers = 0
|
||||
collision/mask = 34
|
||||
|
||||
[node name="CollisionPolygon2D3" type="CollisionPolygon2D" parent="area_body"]
|
||||
|
||||
transform/pos = Vector2( -16.6219, 4.86533 )
|
||||
transform/scale = Vector2( 1.79879, 1.7082 )
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( 8.57639, -19.4815, 8.90625, -8.09232, 2.63889, -0.899147, -3.29861, -5.99431, -8.24653, -3.59659, -7.91667, 2.09801, 0.989584, 8.09231, 5.27778, 15.5852, 20.1215, 15.8849, 26.7188, 8.39203, 23.744, -19.0929 )
|
||||
shape_range = Vector2( 0, 2 )
|
||||
trigger = true
|
||||
|
||||
[node name="sprite" type="Sprite" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 7.90835, 7.78536 )
|
||||
texture = ExtResource( 2 )
|
||||
vframes = 6
|
||||
hframes = 6
|
||||
frame = 4
|
||||
|
||||
[node name="animation" type="AnimationPlayer" parent="sprite"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/walk = SubResource( 8 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "walk"
|
||||
|
||||
[node name="hit_ray_particle" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 7.65098, 1.11111 )
|
||||
transform/scale = Vector2( 0.296685, 0.329861 )
|
||||
config/amount = 100
|
||||
config/lifetime = 1.0
|
||||
config/emit_timeout = 0.2
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 40, 40 )
|
||||
config/local_space = false
|
||||
config/explosiveness = 0.2
|
||||
config/texture = ExtResource( 3 )
|
||||
params/direction = 88.89
|
||||
params/spread = 180.0
|
||||
params/linear_velocity = 200.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 400.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 2.0
|
||||
params/final_size = 0.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/direction = 0.29
|
||||
randomness/spread = 0.8
|
||||
randomness/linear_velocity = 0.45
|
||||
color/color_ramp = SubResource( 9 )
|
||||
|
||||
[node name="sound" type="SamplePlayer2D" parent="."]
|
||||
|
||||
params/volume_db = 5.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 1.0
|
||||
params/attenuation/max_distance = 2048.0
|
||||
params/attenuation/distance_exp = 2.92817
|
||||
config/polyphony = 3
|
||||
config/samples = ExtResource( 4 )
|
||||
config/pitch_random = 0.135
|
||||
|
||||
[node name="shooter" type="Position2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -15, 5.53392 )
|
||||
|
||||
[node name="Timer" type="Timer" parent="shooter"]
|
||||
|
||||
process_mode = 0
|
||||
wait_time = 1.5
|
||||
one_shot = false
|
||||
autostart = true
|
||||
|
||||
[connection signal="body_enter" from="area_head" to="." method="_on_area_head_body_enter"]
|
||||
|
||||
[connection signal="body_enter" from="area_body" to="." method="_on_area_body_body_enter"]
|
||||
|
||||
[connection signal="timeout" from="shooter/Timer" to="." method="_on_Timer_timeout"]
|
||||
|
||||
|
||||
17
Scenes/Events/enemy_3.gd
Normal file
17
Scenes/Events/enemy_3.gd
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
extends Node2D
|
||||
|
||||
onready var hand_1 = get_node("Hand_Back/End")
|
||||
onready var hand_2 = get_node("Hand_Front/End")
|
||||
|
||||
func _ready():
|
||||
set_process(true)
|
||||
|
||||
func _process(delta):
|
||||
var player = get_tree().get_nodes_in_group("player")[0]
|
||||
|
||||
if (player.get_global_pos().distance_to(get_global_pos()) < 100):
|
||||
hand_1.set_global_pos(player.get_global_pos())
|
||||
|
||||
if (player.get_global_pos().distance_to(get_global_pos()) < 100):
|
||||
hand_2.set_global_pos(player.get_global_pos())
|
||||
|
||||
62
Scenes/Events/enemy_die_sample_player.tres
Normal file
62
Scenes/Events/enemy_die_sample_player.tres
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
[gd_resource type="SampleLibrary" load_steps=9 format=1]
|
||||
|
||||
[ext_resource path="res://Sound/enemy_die_sound_1.wav" type="Sample" id=1]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_2.wav" type="Sample" id=2]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_3.wav" type="Sample" id=3]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_4.wav" type="Sample" id=4]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_5.wav" type="Sample" id=5]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_6.wav" type="Sample" id=6]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_8.wav" type="Sample" id=7]
|
||||
[ext_resource path="res://Sound/enemy_die_sound_9.wav" type="Sample" id=8]
|
||||
|
||||
[resource]
|
||||
|
||||
samples/enemy_die_sound_1 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 1 )
|
||||
}
|
||||
samples/enemy_die_sound_2 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 2 )
|
||||
}
|
||||
samples/enemy_die_sound_3 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 3 )
|
||||
}
|
||||
samples/enemy_die_sound_4 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 4 )
|
||||
}
|
||||
samples/enemy_die_sound_5 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 5 )
|
||||
}
|
||||
samples/enemy_die_sound_6 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 6 )
|
||||
}
|
||||
samples/enemy_die_sound_8 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 7 )
|
||||
}
|
||||
samples/enemy_die_sound_9 = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 8 )
|
||||
}
|
||||
|
||||
143
Scenes/Events/flying_platform.tscn
Normal file
143
Scenes/Events/flying_platform.tscn
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Tilesets/tile full.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="Curve2D" id=1]
|
||||
|
||||
bake_interval = 5.0
|
||||
_data = {
|
||||
"points": Vector2Array( 0, 0, 1.67447, -1.07495, 1488.21, -138.305, 0, 0, 0, 0, -322.454, -132.864 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
|
||||
resource/name = "Nueva animación"
|
||||
length = 2.0
|
||||
loop = true
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:offset")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( ),
|
||||
"transitions": FloatArray( ),
|
||||
"update": 0,
|
||||
"values": [ ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:unit_offset")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 1, 2 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 0.99, 0.0 ]
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 78.6534, 9.26797 )
|
||||
|
||||
[node name="moving_platform" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( 640, 320 )
|
||||
|
||||
[node name="Path2D" type="Path2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 20, 9 )
|
||||
curve = SubResource( 1 )
|
||||
|
||||
[node name="PathFollow2D" type="PathFollow2D" parent="Path2D"]
|
||||
|
||||
transform/pos = Vector2( 864.909, -136.896 )
|
||||
transform/rot = -179.531
|
||||
offset = 620.742
|
||||
h_offset = 0.0
|
||||
v_offset = 0.0
|
||||
rotate = false
|
||||
cubic_interp = true
|
||||
loop = true
|
||||
lookahead = 4.0
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Path2D/PathFollow2D"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
"anims/Nueva animación" = SubResource( 2 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "Nueva animación"
|
||||
|
||||
[node name="platform" type="Node2D" parent="Path2D/PathFollow2D"]
|
||||
|
||||
transform/pos = Vector2( 19.9257, 9.16351 )
|
||||
transform/rot = 180.0
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Path2D/PathFollow2D/platform"]
|
||||
|
||||
texture = ExtResource( 1 )
|
||||
vframes = 13
|
||||
hframes = 5
|
||||
frame = 45
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="Path2D/PathFollow2D/platform"]
|
||||
|
||||
transform/pos = Vector2( -63.9978, -0.524231 )
|
||||
texture = ExtResource( 1 )
|
||||
vframes = 13
|
||||
hframes = 5
|
||||
frame = 45
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Path2D/PathFollow2D/platform"]
|
||||
|
||||
transform/pos = Vector2( 63.9979, 0.524231 )
|
||||
texture = ExtResource( 1 )
|
||||
vframes = 13
|
||||
hframes = 5
|
||||
frame = 43
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Path2D/PathFollow2D/platform"]
|
||||
|
||||
transform/pos = Vector2( -127.996, -1.04849 )
|
||||
transform/rot = 3.57518e-06
|
||||
texture = ExtResource( 1 )
|
||||
vframes = 13
|
||||
hframes = 5
|
||||
frame = 39
|
||||
|
||||
[node name="Sprite4" type="Sprite" parent="Path2D/PathFollow2D/platform"]
|
||||
|
||||
transform/rot = 3.57518e-06
|
||||
texture = ExtResource( 1 )
|
||||
vframes = 13
|
||||
hframes = 5
|
||||
frame = 50
|
||||
|
||||
[node name="RigidBody2D" type="KinematicBody2D" parent="Path2D/PathFollow2D"]
|
||||
|
||||
transform/pos = Vector2( 207.375, -72.253 )
|
||||
transform/rot = 179.531
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 3 )
|
||||
shapes/0/transform = Matrix32( 1.48754, -8.85949e-06, 5.95581e-06, 1, 133.769, -90.2688 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
collision/margin = 0.08
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Path2D/PathFollow2D/RigidBody2D"]
|
||||
|
||||
transform/pos = Vector2( 133.769, -90.2688 )
|
||||
transform/rot = 0.000341243
|
||||
transform/scale = Vector2( 1.48754, 1 )
|
||||
shape = SubResource( 3 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
|
||||
18
Scenes/Events/heart.gd
Normal file
18
Scenes/Events/heart.gd
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
extends Area2D
|
||||
|
||||
export(int) var lifes = 1
|
||||
|
||||
onready var sound = get_node("Sound")
|
||||
onready var sprite = get_node("Sprite")
|
||||
|
||||
func _ready():
|
||||
sound.connect("finished",self,"queue_free")
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if(body.is_in_group("player")):
|
||||
if (body.can_add_life()):
|
||||
sprite.set_opacity(0)
|
||||
disconnect("body_enter",self,"_on_Area2D_body_enter")
|
||||
body.add_life()
|
||||
if global.sound:
|
||||
sound.play()
|
||||
54
Scenes/Events/heart.tscn
Normal file
54
Scenes/Events/heart.tscn
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/heart.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/heart_full.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sound/heart_sound.ogg" type="AudioStream" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 11.274, 9.08089 )
|
||||
|
||||
[node name="Heart" type="Area2D"]
|
||||
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 2.49193, 0, 0, 2.79981, -2.03185, 7.34944 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 0.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitorable = false
|
||||
collision/layers = 16
|
||||
script/script = ExtResource( 1 )
|
||||
lifes = 1
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( -2.02597, 7.01037 )
|
||||
transform/scale = Vector2( 1.02304, 0.941319 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -2.03185, 7.34944 )
|
||||
transform/scale = Vector2( 2.49193, 2.79981 )
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Sound" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 3 )
|
||||
stream/play = false
|
||||
stream/loop = false
|
||||
stream/volume_db = 7.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
220
Scenes/Events/jail.tscn
Normal file
220
Scenes/Events/jail.tscn
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
[gd_scene load_steps=28 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/cage.tres.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Charasets/jail.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sound/apple_sound.ogg" type="AudioStream" id=3]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0000.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0001.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0002.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0003.png" type="Texture" id=7]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0004.png" type="Texture" id=8]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0005.png" type="Texture" id=9]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0006.png" type="Texture" id=10]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0007.png" type="Texture" id=11]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0008.png" type="Texture" id=12]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0009.png" type="Texture" id=13]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0010.png" type="Texture" id=14]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0011.png" type="Texture" id=15]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0012.png" type="Texture" id=16]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0013.png" type="Texture" id=17]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0014.png" type="Texture" id=18]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0015.png" type="Texture" id=19]
|
||||
[ext_resource path="res://Sprites/Charasets/chickens/chickens0016.png" type="Texture" id=20]
|
||||
[ext_resource path="res://Sprites/Effects/jail_particles.png" type="Texture" id=21]
|
||||
[ext_resource path="res://Sprites/Effects/leche.png" type="Texture" id=22]
|
||||
[ext_resource path="res://Sound/cage_explosion.ogg" type="AudioStream" id=23]
|
||||
[ext_resource path="res://Scenes/Events/text_dialog.tscn" type="PackedScene" id=24]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 16.0518, 11.0722 )
|
||||
|
||||
[sub_resource type="SpriteFrames" id=2]
|
||||
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ) ],
|
||||
"loop": true,
|
||||
"name": "Idle",
|
||||
"speed": 20.0
|
||||
} ]
|
||||
|
||||
[sub_resource type="ColorRamp" id=3]
|
||||
|
||||
offsets = FloatArray( 0, 0.00787402, 1 )
|
||||
colors = ColorArray( 0, 0, 0, 1, 0.71875, 0.71875, 0.71875, 1, 1, 1, 1, 0 )
|
||||
|
||||
[node name="Cage" type="StaticBody2D" groups=[
|
||||
"cages",
|
||||
]]
|
||||
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 2.38822, 0, 0, 2.59377, -0.499996, -1.5 )
|
||||
shapes/0/trigger = false
|
||||
collision/layers = 16
|
||||
collision/mask = 1
|
||||
constant_linear_velocity = Vector2( 0, 0 )
|
||||
constant_angular_velocity = 0.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
script/script = ExtResource( 1 )
|
||||
base_key_texts = "CHICKEN_ADVICE_"
|
||||
keys_size = 62
|
||||
|
||||
[node name="Foreground" type="Sprite" parent="."]
|
||||
|
||||
z/z = 1
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 2
|
||||
region_rect = Rect2( 0, 0, 78, 61 )
|
||||
|
||||
[node name="Background" type="Sprite" parent="."]
|
||||
|
||||
z/z = -1
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 2
|
||||
frame = 1
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.499996, -1.5 )
|
||||
transform/scale = Vector2( 2.38822, 2.59377 )
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Sound" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 3 )
|
||||
stream/play = false
|
||||
stream/loop = false
|
||||
stream/volume_db = 5.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[node name="Animals" type="AnimatedSprite" parent="."]
|
||||
|
||||
frames = SubResource( 2 )
|
||||
animation = "Idle"
|
||||
frame = 15
|
||||
playing = true
|
||||
|
||||
[node name="Bars" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0, 1 )
|
||||
config/amount = 80
|
||||
config/lifetime = 0.9
|
||||
config/emit_timeout = 0.1
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 20, 20 )
|
||||
config/local_space = false
|
||||
config/explosiveness = 0.4
|
||||
config/texture = ExtResource( 21 )
|
||||
params/direction = 180.0
|
||||
params/spread = 180.0
|
||||
params/linear_velocity = 200.0
|
||||
params/spin_velocity = 5.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 1.0
|
||||
params/gravity_strength = 200.0
|
||||
params/radial_accel = 1.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 100.0
|
||||
params/initial_angle = 5.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 1.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 0.2
|
||||
randomness/spin_velocity = 0.2
|
||||
randomness/initial_angle = 10.0
|
||||
color/color_ramp = SubResource( 3 )
|
||||
|
||||
[node name="Dust" type="Particles2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0, 1 )
|
||||
z/z = -1
|
||||
config/amount = 200
|
||||
config/lifetime = 0.8
|
||||
config/emit_timeout = 0.1
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 20, 20 )
|
||||
config/local_space = false
|
||||
config/explosiveness = 0.4
|
||||
config/texture = ExtResource( 22 )
|
||||
params/direction = 0.0
|
||||
params/spread = 180.0
|
||||
params/linear_velocity = 100.0
|
||||
params/spin_velocity = 5.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 1.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 100.0
|
||||
params/initial_angle = 5.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 2.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/linear_velocity = 0.2
|
||||
randomness/spin_velocity = 0.2
|
||||
randomness/initial_angle = 10.0
|
||||
color/color = Color( 0.5, 0.5, 0.5, 1 )
|
||||
color/color_ramp = SubResource( 3 )
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 9.53674e-07, -0.999999 )
|
||||
transform/scale = Vector2( 1.34375, 1.09375 )
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1.85446, 0, 0, 2.55983, -0.744187, -8.9407e-07 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
|
||||
[node name="CollisionShape2D1" type="CollisionShape2D" parent="Area2D"]
|
||||
|
||||
transform/pos = Vector2( -0.744187, -8.9407e-07 )
|
||||
transform/scale = Vector2( 1.85446, 2.55983 )
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="StreamPlayer" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 23 )
|
||||
stream/play = false
|
||||
stream/loop = false
|
||||
stream/volume_db = 7.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[node name="Node2D" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 1, -21 )
|
||||
transform/scale = Vector2( 0.58, 0.58 )
|
||||
|
||||
[node name="Text" parent="Node2D" instance=ExtResource( 24 )]
|
||||
|
||||
margin/left = -188.0
|
||||
margin/top = -47.0
|
||||
margin/right = 202.0
|
||||
margin/bottom = 40.0
|
||||
|
||||
[connection signal="body_enter" from="Area2D" to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
26
Scenes/Events/machete.gd
Normal file
26
Scenes/Events/machete.gd
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
extends Node2D
|
||||
|
||||
export (int) var damage = 1
|
||||
export (int) var velocity = 13
|
||||
export (int) var animation_speed = 3
|
||||
|
||||
var vel_vec = Vector2(-velocity,0);
|
||||
|
||||
func _ready():
|
||||
set_process(true)
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group("player")):
|
||||
body.on_receive_damage(damage)
|
||||
queue_free()
|
||||
|
||||
func set_right (right):
|
||||
if (right):
|
||||
get_node("Sprite/AnimationPlayer").set_speed(-animation_speed)
|
||||
vel_vec = Vector2(velocity,0);
|
||||
else:
|
||||
get_node("Sprite/AnimationPlayer").set_speed(animation_speed)
|
||||
vel_vec = Vector2(-velocity,0);
|
||||
|
||||
func _process(delta):
|
||||
set_pos(get_pos() + vel_vec)
|
||||
74
Scenes/Events/machete.tscn
Normal file
74
Scenes/Events/machete.tscn
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
[gd_scene load_steps=5 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/machete.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Effects/machete.png" type="Texture" id=2]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 12.0234
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
|
||||
resource/name = "spin"
|
||||
length = 1.0
|
||||
loop = true
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:transform/rot")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.5, 1 ),
|
||||
"transitions": FloatArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 180.1, 360.0 ]
|
||||
}
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
script/script = ExtResource( 1 )
|
||||
damage = 1
|
||||
velocity = 13
|
||||
animation_speed = 3
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
collision/layers = 123
|
||||
collision/mask = 0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
shape = SubResource( 2 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Sprite"]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/spin = SubResource( 1 )
|
||||
playback/active = true
|
||||
playback/speed = 3.0
|
||||
blend_times = [ ]
|
||||
autoplay = "spin"
|
||||
|
||||
[connection signal="body_enter" from="Area2D" to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
31
Scenes/Events/map_light.tscn
Normal file
31
Scenes/Events/map_light.tscn
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
[gd_scene load_steps=2 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Effects/light_mask.png" type="Texture" id=1]
|
||||
|
||||
[node name="Light2D" type="Light2D"]
|
||||
|
||||
visibility/light_mask = 2
|
||||
transform/scale = Vector2( 2.5, 2.5 )
|
||||
z/z = 10
|
||||
z/relative = false
|
||||
enabled = true
|
||||
editor_only = false
|
||||
texture = ExtResource( 1 )
|
||||
offset = Vector2( 0, 0 )
|
||||
scale = 1.0
|
||||
color = Color( 1, 1, 1, 1 )
|
||||
energy = 1.0
|
||||
mode = 3
|
||||
range/height = 0.0
|
||||
range/z_min = -1024
|
||||
range/z_max = 1024
|
||||
range/layer_min = 0
|
||||
range/layer_max = 0
|
||||
range/item_mask = 2
|
||||
shadow/enabled = false
|
||||
shadow/color = Color( 0, 0, 0, 0 )
|
||||
shadow/buffer_size = 2048
|
||||
shadow/esm_multiplier = 80.0
|
||||
shadow/item_mask = 1
|
||||
|
||||
|
||||
9
Scenes/Events/map_text_dialog.gd
Normal file
9
Scenes/Events/map_text_dialog.gd
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
extends Area2D
|
||||
|
||||
export(String, MULTILINE) var text
|
||||
|
||||
func _on_Area2D_body_enter( body):
|
||||
if (body.is_in_group("player")):
|
||||
get_node("Text").set_text(text)
|
||||
get_node("Text/AnimationPlayer").play("Apear")
|
||||
get_node("CollisionShape2D").queue_free()
|
||||
|
|
@ -4,6 +4,7 @@ export var LIFE_TIME = 3
|
|||
|
||||
onready var trail = get_node("Trail")
|
||||
onready var splash = get_node("Splash")
|
||||
onready var sound = get_node("Sound")
|
||||
|
||||
var t = Timer.new()
|
||||
var end = false
|
||||
|
|
@ -22,6 +23,8 @@ func destroy():
|
|||
queue_free()
|
||||
|
||||
func _ready():
|
||||
if global.sound:
|
||||
sound.play("bullet_sound",0)
|
||||
t.set_wait_time(LIFE_TIME)
|
||||
t.set_one_shot(true)
|
||||
self.add_child(t)
|
||||
|
|
@ -36,4 +39,6 @@ func _on_RigidBody2D_body_enter( body ):
|
|||
elif (end):
|
||||
destroy()
|
||||
|
||||
|
||||
func _on_RigidBody2D_body_enter_shape( body_id, body, body_shape, local_shape ):
|
||||
if global.sound:
|
||||
sound.play("bullet_sound", 0)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,24 @@
|
|||
[gd_scene load_steps=5 format=1]
|
||||
[gd_scene load_steps=7 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/milk_bullet.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Effects/leche.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Scenes/Events/milk_splash.tscn" type="PackedScene" id=3]
|
||||
|
||||
[ext_resource path="res://Sound/bullet_sound.wav" type="Sample" id=4]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
radius = 9.52631
|
||||
|
||||
[sub_resource type="SampleLibrary" id=2]
|
||||
|
||||
samples/bullet_sound = {
|
||||
"db": 0.0,
|
||||
"pitch": 1.0,
|
||||
"priority": 0,
|
||||
"sample": ExtResource( 4 )
|
||||
}
|
||||
|
||||
[node name="RigidBody2D" type="RigidBody2D" groups=[
|
||||
"bullet",
|
||||
]]
|
||||
|
|
@ -26,7 +35,7 @@ friction = 0.0
|
|||
bounce = 1.0
|
||||
gravity_scale = 20.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
continuous_cd = 2
|
||||
contacts_reported = 1
|
||||
contact_monitor = true
|
||||
sleeping = false
|
||||
|
|
@ -71,6 +80,19 @@ params/anim_initial_pos = 0.0
|
|||
|
||||
[node name="Splash" parent="." instance=ExtResource( 3 )]
|
||||
|
||||
[node name="Sound" type="SamplePlayer2D" parent="."]
|
||||
|
||||
params/volume_db = 6.0
|
||||
params/pitch_scale = 1.0
|
||||
params/attenuation/min_distance = 0.0
|
||||
params/attenuation/max_distance = 750.0
|
||||
params/attenuation/distance_exp = 2.37841
|
||||
config/polyphony = 3
|
||||
config/samples = SubResource( 2 )
|
||||
config/pitch_random = 0.135
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_RigidBody2D_body_enter"]
|
||||
|
||||
[connection signal="body_enter_shape" from="." to="." method="_on_RigidBody2D_body_enter_shape"]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,11 @@ onready var middle = get_node("middle")
|
|||
onready var end = get_node("end")
|
||||
onready var origin = get_node("origin")
|
||||
|
||||
onready var sound = get_node("sound")
|
||||
|
||||
var player
|
||||
|
||||
export var damage = 50
|
||||
export var damage = 120
|
||||
|
||||
var enabled = false
|
||||
const MAX_DISTANCE = 10000
|
||||
|
|
@ -35,6 +37,8 @@ func enable():
|
|||
end.get_node("Area2D").enable()
|
||||
origin.set_emitting(true)
|
||||
middle.set_opacity(1)
|
||||
if global.sound:
|
||||
sound.play()
|
||||
set_process(true)
|
||||
|
||||
func disable():
|
||||
|
|
@ -42,6 +46,8 @@ func disable():
|
|||
end.set_emitting(false)
|
||||
end.get_node("Area2D").disable()
|
||||
middle.set_opacity(0)
|
||||
if global.sound:
|
||||
sound.stop()
|
||||
set_process(false)
|
||||
|
||||
func _process(delta):
|
||||
|
|
@ -50,8 +56,10 @@ func _process(delta):
|
|||
|
||||
if (is_colliding()):
|
||||
end_point = Vector2 (get_global_pos().distance_to(get_collision_point()), 29)
|
||||
end.set_emitting(true)
|
||||
else:
|
||||
end_point = Vector2 (distance, 29)
|
||||
end.set_emitting(false)
|
||||
|
||||
middle.set_region_rect(Rect2(get_pos(),end_point))
|
||||
end.set_global_pos(get_collision_point())
|
||||
|
|
|
|||
5
Scenes/Events/music.gd
Normal file
5
Scenes/Events/music.gd
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
extends StreamPlayer
|
||||
|
||||
func _ready():
|
||||
if global.music:
|
||||
play(0)
|
||||
34
Scenes/Events/on_map_text_dialog.tscn
Normal file
34
Scenes/Events/on_map_text_dialog.tscn
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[gd_scene load_steps=4 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/map_text_dialog.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Scenes/Events/text_dialog.tscn" type="PackedScene" id=2]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 33, 32 )
|
||||
|
||||
[node name="Area2D" type="Area2D"]
|
||||
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
script/script = ExtResource( 1 )
|
||||
text = null
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
|
||||
shape = SubResource( 1 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Text" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
[connection signal="body_enter" from="." to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
|
||||
|
|
@ -7,67 +7,90 @@ signal set_max_milk
|
|||
signal update_life
|
||||
signal set_max_life
|
||||
|
||||
const GRAVITY = 3500.0
|
||||
const GRAVITY = 4000.0
|
||||
|
||||
const FLYING_MOVEMENT_SPEED = 1
|
||||
export var JUMP_SPEED = 400
|
||||
const SLIDE_LEVEL = 40
|
||||
export(int) var MAX_JUMP_TIME = 20
|
||||
|
||||
export var altitude = 0.5
|
||||
|
||||
export(int) var MAX_WALK_SPEED = 450
|
||||
const SLIDE_LEVEL = 80
|
||||
const WALK_SPEED_INCREMENT = 20
|
||||
|
||||
var walk_speed = 0
|
||||
var floor_velocity = Vector2()
|
||||
|
||||
onready var shooter = get_node("shooter")
|
||||
onready var sprite = get_node("sprite")
|
||||
onready var animation = get_node("sprite/animations")
|
||||
onready var foots = get_node("foots")
|
||||
onready var camera = get_node("sprite/Camera2D")
|
||||
onready var sound = get_node("sound")
|
||||
|
||||
onready var hud_milk = get_tree().get_nodes_in_group("milk_hud")[0]
|
||||
onready var hud_life = get_tree().get_nodes_in_group("life_hud")[0]
|
||||
onready var hud_cowbell = get_tree().get_nodes_in_group("cowbell_hud")[0]
|
||||
|
||||
onready var cowbell_collector = get_node("cowbell_collector")
|
||||
|
||||
var can_jump = true
|
||||
var on_ground = true
|
||||
var jumping = false
|
||||
var velocity = Vector2()
|
||||
var final_velocity = Vector2()
|
||||
var jump_time = 0
|
||||
var jump_key_pressed = false
|
||||
var jump_key_released = true
|
||||
var colliding_in_jump = false
|
||||
|
||||
var right = false
|
||||
var left = false
|
||||
|
||||
var receive_damage = true
|
||||
|
||||
export(int) var max_milk = 500
|
||||
export(int) var milk_level = 0
|
||||
|
||||
export(int) var life = 3
|
||||
|
||||
export(int) var MAX_JUMP_TIME = 20
|
||||
export(int) var MAX_WALK_SPEED = 450
|
||||
export(int) var invulneravility_time = 16
|
||||
|
||||
export var JUMP_SPEED = 400
|
||||
export var altitude = 0.5
|
||||
export(int) var cages_open = 0
|
||||
|
||||
func _integrate_forces(s):
|
||||
print ("a")
|
||||
var lv = s.get_linear_velocity()
|
||||
var step = s.get_step()
|
||||
|
||||
func open_cage(var number):
|
||||
cages_open += number
|
||||
|
||||
func add_cowbells(var number):
|
||||
global.cowbells += number
|
||||
hud_cowbell.set_counter (global.cowbells, cowbell_collector.play_sound())
|
||||
|
||||
func add_bonus (var quantity):
|
||||
global.cowbells += quantity
|
||||
hud_cowbell.bonus(quantity)
|
||||
|
||||
func is_falling ():
|
||||
return velocity.y > 0
|
||||
|
||||
func get_max_milk():
|
||||
return max_milk
|
||||
|
||||
func add_milk(amount):
|
||||
if (milk_level + amount > max_milk):
|
||||
milk_level = max_milk
|
||||
if (global.milk_level + amount > global.max_milk):
|
||||
global.milk_level = global.max_milk
|
||||
else:
|
||||
milk_level += amount
|
||||
emit_signal("update_milk", get_milk_level());
|
||||
global.milk_level += amount
|
||||
emit_signal("update_milk", global.milk_level);
|
||||
|
||||
func get_milk_level():
|
||||
return milk_level
|
||||
func can_add_life():
|
||||
if (global.life < global.max_life):
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
func add_life():
|
||||
global.life += 1
|
||||
emit_signal ("update_life", global.life)
|
||||
|
||||
func decrease_milk(amount):
|
||||
milk_level = milk_level - amount
|
||||
emit_signal("update_milk", get_milk_level());
|
||||
global.milk_level = global.milk_level - amount
|
||||
emit_signal("update_milk", global.milk_level );
|
||||
|
||||
func on_opacity_low ():
|
||||
sprite.set_modulate(Color("fb12e7"))
|
||||
|
|
@ -77,8 +100,8 @@ func on_opacity_high ():
|
|||
|
||||
func on_receive_damage (amount):
|
||||
if (can_receive_damage()):
|
||||
life = life - amount
|
||||
emit_signal ("update_life", life)
|
||||
global.life = global.life - amount
|
||||
emit_signal ("update_life", global.life)
|
||||
show_damage()
|
||||
|
||||
func can_receive_damage ():
|
||||
|
|
@ -112,33 +135,37 @@ func show_damage ():
|
|||
func can_jump_more ():
|
||||
return jump_time > 0
|
||||
|
||||
func play_sound():
|
||||
if global.sound:
|
||||
sound.play()
|
||||
|
||||
func _fixed_process(delta):
|
||||
if (jumping):
|
||||
jump_time -= altitude
|
||||
|
||||
velocity.y += delta * GRAVITY
|
||||
|
||||
|
||||
# Salto
|
||||
if (can_jump and jump_key_pressed):
|
||||
if (can_jump and jump_key_pressed):
|
||||
play_sound()
|
||||
velocity.y = - JUMP_SPEED
|
||||
velocity += floor_velocity
|
||||
jumping = true
|
||||
jump_time = MAX_JUMP_TIME
|
||||
can_jump = false
|
||||
if (jumping and can_jump_more() and jump_key_pressed):
|
||||
|
||||
if (jumping and can_jump_more() and jump_key_pressed):
|
||||
velocity.y = - JUMP_SPEED + (MAX_JUMP_TIME - jump_time) * 20
|
||||
jumping = true
|
||||
|
||||
# Movimiento horizontal
|
||||
|
||||
# Movimiento horizontal
|
||||
if (!right and !left):
|
||||
sprite.set_animation("Idle")
|
||||
if (velocity.x > SLIDE_LEVEL):
|
||||
if (velocity.x > SLIDE_LEVEL):
|
||||
velocity.x -= SLIDE_LEVEL
|
||||
elif (velocity.x < -SLIDE_LEVEL):
|
||||
velocity.x += SLIDE_LEVEL
|
||||
else:
|
||||
else:
|
||||
velocity.x = 0
|
||||
walk_speed = 0
|
||||
|
||||
|
||||
var motion = velocity * delta
|
||||
|
||||
if (jumping and test_move(motion)):
|
||||
|
|
@ -147,85 +174,136 @@ func _fixed_process(delta):
|
|||
else:
|
||||
motion.x = -0.15
|
||||
|
||||
motion = move(motion)
|
||||
|
||||
# Control de colisiones
|
||||
if (!colliding_in_jump):
|
||||
motion = move(motion)
|
||||
else:
|
||||
motion = move(Vector2(0, motion.y))
|
||||
colliding_in_jump = false
|
||||
|
||||
# Control de colisiones
|
||||
if (is_colliding()):
|
||||
var normal = get_collision_normal()
|
||||
|
||||
if (normal.y < -0.35):
|
||||
|
||||
floor_velocity = get_collider_velocity()
|
||||
if (floor_velocity != Vector2()):
|
||||
move(Vector2(floor_velocity.x / 60, floor_velocity.y / 60))
|
||||
motion.y = 0
|
||||
velocity.y = 0
|
||||
|
||||
# Está en el suelo
|
||||
if (!jumping and jump_key_released):
|
||||
on_ground = true
|
||||
can_jump = true
|
||||
jumping = false
|
||||
can_jump = true
|
||||
motion.y = 0
|
||||
if (normal.y > -0.9):
|
||||
motion.x += motion.x * (-normal.y)
|
||||
motion = normal.slide(motion)
|
||||
velocity.y = 0
|
||||
else:
|
||||
# Está chocándose contra techo o apred
|
||||
|
||||
else:
|
||||
# Está chocándose contra techo o pared
|
||||
can_jump = false
|
||||
colliding_in_jump = true
|
||||
motion = normal.slide(motion)
|
||||
jump_time = 0
|
||||
# Si está chocando contra el techo hacerlo caer
|
||||
if (normal.y > 0.2):
|
||||
velocity.y = 0
|
||||
|
||||
|
||||
move(motion)
|
||||
else:
|
||||
else:
|
||||
can_jump = false
|
||||
|
||||
func _ready():
|
||||
connect("set_max_milk",hud_milk,"on_set_max_milk")
|
||||
connect("update_milk",hud_milk,"on_update_milk_bar")
|
||||
|
||||
connect("update_life",hud_life,"on_update_life")
|
||||
connect("set_max_life",hud_life,"on_set_max_life")
|
||||
|
||||
emit_signal("set_max_milk", get_max_milk())
|
||||
emit_signal("update_milk", get_milk_level())
|
||||
|
||||
emit_signal("set_max_life", life)
|
||||
emit_signal("update_life", life)
|
||||
|
||||
|
||||
func enable_player():
|
||||
set_process_input(true)
|
||||
set_fixed_process(true)
|
||||
|
||||
sprite.set_opacity(1)
|
||||
reset_inputs()
|
||||
|
||||
func disable_player():
|
||||
set_process_input(false)
|
||||
set_fixed_process(false)
|
||||
sprite.set_opacity(0)
|
||||
|
||||
func _ready():
|
||||
#global.reset_player()
|
||||
sprite.set_opacity(0)
|
||||
connect("set_max_milk",hud_milk,"on_set_max_milk")
|
||||
connect("update_milk",hud_milk,"on_update_milk_bar")
|
||||
|
||||
connect("update_life",hud_life,"on_update_life")
|
||||
connect("set_max_life",hud_life,"on_set_max_life")
|
||||
|
||||
#emit_signal("update_milk", global.milk_level)
|
||||
|
||||
emit_signal("update_life", global.life)
|
||||
|
||||
func set_movement_left ():
|
||||
animation.play("walk")
|
||||
emit_signal("looking_left")
|
||||
velocity.x = -MAX_WALK_SPEED
|
||||
sprite.set_flip_h(true)
|
||||
|
||||
func set_movement_right():
|
||||
animation.play("walk")
|
||||
velocity.x = MAX_WALK_SPEED
|
||||
emit_signal("looking_right")
|
||||
sprite.set_flip_h(false)
|
||||
|
||||
func reset_inputs():
|
||||
left = false
|
||||
right = false
|
||||
jump_key_pressed = false
|
||||
jump_key_released = true
|
||||
|
||||
func _input(ev):
|
||||
|
||||
# Movimiento horizontal
|
||||
if (ev.is_action_pressed("ui_left")):
|
||||
left = true
|
||||
sprite.set_animation("walk")
|
||||
emit_signal("looking_left")
|
||||
velocity.x = -MAX_WALK_SPEED
|
||||
sprite.set_flip_h(true)
|
||||
if (!right):
|
||||
set_movement_left()
|
||||
elif (ev.is_action_released("ui_left")):
|
||||
left = false
|
||||
|
||||
if (right):
|
||||
set_movement_right()
|
||||
|
||||
if (ev.is_action_pressed("ui_right")):
|
||||
right = true
|
||||
sprite.set_animation("walk")
|
||||
velocity.x = MAX_WALK_SPEED
|
||||
emit_signal("looking_right")
|
||||
sprite.set_flip_h(false)
|
||||
if (!left):
|
||||
set_movement_right()
|
||||
elif (ev.is_action_released("ui_right")):
|
||||
right = false
|
||||
|
||||
if (left):
|
||||
set_movement_left()
|
||||
|
||||
if (!right and !left):
|
||||
animation.play("idle")
|
||||
# Arriba
|
||||
if (ev.is_action_pressed("ui_up")):
|
||||
print("ui_up on")
|
||||
pass
|
||||
elif (ev.is_action_released("ui_up")):
|
||||
print("ui_up off")
|
||||
|
||||
pass
|
||||
|
||||
# Agacharse
|
||||
if (ev.is_action_pressed("ui_down")):
|
||||
get_node("Collision_Normal").set_trigger(true)
|
||||
get_node("Collision_Agachado").set_trigger(false)
|
||||
get_node("Collision_Normal").set_trigger(true)
|
||||
set_collision_mask_bit(11, 0)
|
||||
elif (ev.is_action_released("ui_down")):
|
||||
get_node("Collision_Normal").set_trigger(false)
|
||||
get_node("Collision_Agachado").set_trigger(true)
|
||||
|
||||
set_collision_mask_bit(11, 1)
|
||||
|
||||
# Saltar
|
||||
if (ev.is_action_pressed("ui_jump")):
|
||||
if (ev.is_action_pressed("ui_jump") and jump_key_released):
|
||||
jump_key_pressed = true
|
||||
|
||||
|
||||
elif (ev.is_action_released("ui_jump")):
|
||||
jump_key_released = true
|
||||
jump_time = 0
|
||||
jump_key_pressed = false
|
||||
jump_key_pressed = false
|
||||
|
|
|
|||
|
|
@ -1,84 +1,67 @@
|
|||
[gd_scene load_steps=27 format=1]
|
||||
[gd_scene load_steps=13 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/player.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Scenes/Events/shooter.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Scenes/Events/ray_milk.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk1.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk2.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk3.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk4.png" type="Texture" id=7]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk5.png" type="Texture" id=8]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk6.png" type="Texture" id=9]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk7.png" type="Texture" id=10]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk8.png" type="Texture" id=11]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk9.png" type="Texture" id=12]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk10.png" type="Texture" id=13]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk11.png" type="Texture" id=14]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk12.png" type="Texture" id=15]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk13.png" type="Texture" id=16]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk14.png" type="Texture" id=17]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk15.png" type="Texture" id=18]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/walk/player_walk16.png" type="Texture" id=19]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/idle/player_idle1.png" type="Texture" id=20]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/idle/player_idle2.png" type="Texture" id=21]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/idle/player_idle3.png" type="Texture" id=22]
|
||||
[ext_resource path="res://Sprites/Charasets/Player/idle/player_idle4.png" type="Texture" id=23]
|
||||
[ext_resource path="res://Sprites/Charasets/cow.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Scenes/Events/player_animations.tres" type="Animation" id=5]
|
||||
[ext_resource path="res://Scenes/Events/cowbell_collector.gd" type="Script" id=6]
|
||||
[ext_resource path="res://Sound/player_jump.ogg" type="AudioStream" id=7]
|
||||
[ext_resource path="res://Scenes/Events/map_light.tscn" type="PackedScene" id=8]
|
||||
|
||||
|
||||
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
points = Vector2Array( -13.2061, 7.63341, -13.1494, -10.328, 11.2943, -10.3627, 11.4077, 7.42536, 1.19923, 13.0773, -3.50803, 13.0773 )
|
||||
points = Vector2Array( -13.26, -5.39603, -9.45393, -8.08105, 6.94148, -8.08105, 11.3331, -5.21703, 11.3331, 4.27004, 9.28368, 8.56607, 1.37875, 13.0411, -3.59843, 13.0411, -11.7961, 8.38707, -13.26, 4.44904 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 12.363, 15.2052 )
|
||||
points = Vector2Array( -13.26, -5.39603, -9.45393, -8.08105, 6.94148, -8.08105, 11.3331, -5.21703, 11.3331, 4.27004, 9.28368, 8.56607, 1.37875, 13.0411, -3.59843, 13.0411, -11.7961, 8.38707, -13.26, 4.44904 )
|
||||
|
||||
[sub_resource type="SpriteFrames" id=3]
|
||||
[sub_resource type="Animation" id=4]
|
||||
|
||||
animations = [ {
|
||||
"frames": [ ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ) ],
|
||||
"loop": true,
|
||||
"name": "walk",
|
||||
"speed": 27.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 17 ) ],
|
||||
"loop": true,
|
||||
"name": "jump",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [ ExtResource( 20 ), ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 22 ), ExtResource( 21 ) ],
|
||||
"loop": true,
|
||||
"name": "Idle",
|
||||
"speed": 10.0
|
||||
} ]
|
||||
length = 0.6
|
||||
loop = true
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 2, 1 ]
|
||||
}
|
||||
|
||||
[node name="Player" type="KinematicBody2D"]
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
z/relative = false
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 1 )
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 10, 34.3036 )
|
||||
|
||||
[node name="Player" type="KinematicBody2D" groups=[
|
||||
"player",
|
||||
]]
|
||||
|
||||
transform/scale = Vector2( 1.8, 1.8 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 5 )
|
||||
shapes/0/transform = Matrix32( 1.89755, 0, 0, 3.10364, 2.93931, -4.91934 )
|
||||
shapes/0/trigger = false
|
||||
shapes/1/shape = SubResource( 2 )
|
||||
shapes/1/transform = Matrix32( 2.31574, 0, 0, 1.23398, -0.18514, 15.1934 )
|
||||
shapes/1/shape = SubResource( 6 )
|
||||
shapes/1/transform = Matrix32( 1.89755, 0, 0, 3.10364, 2.93931, -4.91934 )
|
||||
shapes/1/trigger = true
|
||||
collision/layers = 1057
|
||||
collision/mask = 18
|
||||
collision/mask = 2066
|
||||
collision/margin = 0.08
|
||||
script/script = ExtResource( 1 )
|
||||
JUMP_SPEED = 500
|
||||
MAX_JUMP_TIME = 60
|
||||
MAX_JUMP_TIME = 20
|
||||
MAX_WALK_SPEED = 500
|
||||
invulneravility_time = 8
|
||||
JUMP_SPEED = 620
|
||||
altitude = 0.5
|
||||
MAX_WALK_SPEED = 550
|
||||
max_milk = 500
|
||||
milk_level = 0
|
||||
life = 3
|
||||
invulneravility_time = 1
|
||||
cages_open = 0
|
||||
|
||||
[node name="shooter" type="Node2D" parent="."]
|
||||
|
||||
|
|
@ -86,10 +69,13 @@ transform/pos = Vector2( 25.3282, 2.0993 )
|
|||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
script/script = ExtResource( 2 )
|
||||
SHOOT_CADENCE = 0.1
|
||||
bullet_cost = 2
|
||||
|
||||
[node name="ray" parent="shooter" instance=ExtResource( 3 )]
|
||||
|
||||
transform/pos = Vector2( -4.25251, 3.87422 )
|
||||
enabled = false
|
||||
cast_to = Vector2( 0, 0 )
|
||||
layer_mask = 30
|
||||
|
||||
[node name="Collision_Normal" type="CollisionPolygon2D" parent="."]
|
||||
|
|
@ -97,34 +83,54 @@ layer_mask = 30
|
|||
transform/pos = Vector2( 2.93931, -4.91934 )
|
||||
transform/scale = Vector2( 1.89755, 3.10364 )
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( -3.50803, 13.0773, 1.19923, 13.0773, 11.4077, 7.42536, 11.2943, -10.3627, -13.1494, -10.328, -13.2061, 7.63341 )
|
||||
polygon = Vector2Array( -13.26, -5.39603, -9.45393, -8.08105, 6.94148, -8.08105, 11.3331, -5.21703, 11.3331, 4.27004, 9.28368, 8.56607, 1.37875, 13.0411, -3.59843, 13.0411, -11.7961, 8.38707, -13.26, 4.44904 )
|
||||
shape_range = Vector2( 0, 0 )
|
||||
trigger = false
|
||||
|
||||
[node name="Collision_Agachado" type="CollisionShape2D" parent="."]
|
||||
[node name="Collision_Agachado" type="CollisionPolygon2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.18514, 15.1934 )
|
||||
transform/scale = Vector2( 2.31574, 1.23398 )
|
||||
shape = SubResource( 2 )
|
||||
transform/pos = Vector2( 2.93931, -4.91934 )
|
||||
transform/scale = Vector2( 1.89755, 3.10364 )
|
||||
build_mode = 0
|
||||
polygon = Vector2Array( -13.26, -5.39603, -9.45393, -8.08105, 6.94148, -8.08105, 11.3331, -5.21703, 11.3331, 4.27004, 9.28368, 8.56607, 1.37875, 13.0411, -3.59843, 13.0411, -11.7961, 8.38707, -13.26, 4.44904 )
|
||||
shape_range = Vector2( 1, 1 )
|
||||
trigger = true
|
||||
_update_shape_index = 1
|
||||
|
||||
[node name="sprite" type="AnimatedSprite" parent="."]
|
||||
[node name="foots" type="Node2D" parent="."]
|
||||
|
||||
frames = SubResource( 3 )
|
||||
animation = "jump"
|
||||
playing = true
|
||||
transform/pos = Vector2( -0.0271127, 37.1198 )
|
||||
transform/scale = Vector2( 0.885237, 0.0763853 )
|
||||
|
||||
[node name="sprite" type="Sprite" parent="."]
|
||||
|
||||
texture = ExtResource( 4 )
|
||||
vframes = 6
|
||||
hframes = 6
|
||||
frame = 6
|
||||
region_rect = Rect2( 0, 0, 96, 96 )
|
||||
|
||||
[node name="animations" type="AnimationPlayer" parent="sprite"]
|
||||
|
||||
playback/process_mode = 0
|
||||
playback/default_blend_time = 0.2
|
||||
root/root = NodePath("..")
|
||||
anims/idle = SubResource( 4 )
|
||||
anims/walk = ExtResource( 5 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = "idle"
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="sprite"]
|
||||
|
||||
transform/pos = Vector2( -16.1907, 15.3196 )
|
||||
transform/pos = Vector2( -16, 16 )
|
||||
transform/scale = Vector2( 23.4375, 45.3125 )
|
||||
z/relative = false
|
||||
offset = Vector2( 0, -80 )
|
||||
anchor_mode = 1
|
||||
rotating = false
|
||||
current = true
|
||||
zoom = Vector2( 1, 1 )
|
||||
zoom = Vector2( 1.1, 1.1 )
|
||||
limit/left = -10000000
|
||||
limit/top = -10000000
|
||||
limit/right = 10000000
|
||||
|
|
@ -138,10 +144,58 @@ drag_margin/top = 0.2
|
|||
drag_margin/right = 0.05
|
||||
drag_margin/bottom = 0.2
|
||||
|
||||
[node name="foots" type="Node2D" parent="."]
|
||||
[node name="cowbell_collector" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -0.0271127, 37.1198 )
|
||||
transform/scale = Vector2( 0.885237, 0.0763853 )
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
script/script = ExtResource( 6 )
|
||||
pitch_increment = 0.02
|
||||
base_pitch = 1.5
|
||||
bonus_threshold = 20
|
||||
bonus_cowbells = 15
|
||||
|
||||
[node name="next_cowbell_time" type="Timer" parent="cowbell_collector"]
|
||||
|
||||
process_mode = 1
|
||||
wait_time = 0.5
|
||||
one_shot = false
|
||||
autostart = false
|
||||
|
||||
[node name="sound" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 7 )
|
||||
stream/play = true
|
||||
stream/loop = false
|
||||
stream/volume_db = 7.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[node name="Light2D" parent="." instance=ExtResource( 8 )]
|
||||
|
||||
[node name="BottomLevelDetector" type="Area2D" parent="." groups=[
|
||||
"bottom_level_detector",
|
||||
]]
|
||||
|
||||
transform/pos = Vector2( -0.905016, 94.1209 )
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 3 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 3.16754, -0.452507 )
|
||||
shapes/0/trigger = true
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitoring = false
|
||||
collision/layers = 2
|
||||
collision/mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape2D" parent="BottomLevelDetector"]
|
||||
|
||||
transform/pos = Vector2( 3.16754, -0.452507 )
|
||||
shape = SubResource( 3 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[connection signal="looking_left" from="." to="shooter" method="_on_KinematicBody2D_looking_left"]
|
||||
|
||||
|
|
|
|||
19
Scenes/Events/player_animations.tres
Normal file
19
Scenes/Events/player_animations.tres
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[gd_resource type="Animation" format=1]
|
||||
|
||||
[resource]
|
||||
|
||||
resource/name = "walk"
|
||||
length = 0.52
|
||||
loop = true
|
||||
step = 0.12
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.12, 0.24, 0.36, 0.48 ),
|
||||
"transitions": FloatArray( 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ 6, 7, 8, 9, 10 ]
|
||||
}
|
||||
|
||||
62
Scenes/Events/player_spawner.gd
Normal file
62
Scenes/Events/player_spawner.gd
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
extends Node2D
|
||||
|
||||
const PLAYER = preload("res://Scenes/Events/player.tscn")
|
||||
onready var anim = get_node("Sprite_cow/AnimationPlayer")
|
||||
onready var sound = get_node("Sound")
|
||||
onready var instancer = get_node("Instancer")
|
||||
onready var texts = get_node("UFO_texts")
|
||||
onready var total_cages = get_tree().get_nodes_in_group("cages").size()
|
||||
onready var cow_is_abducted = false
|
||||
|
||||
var init_text = tr("UFO_JAIL_COUNTER")
|
||||
|
||||
var player
|
||||
var mission_acomplished = false
|
||||
var rest = total_cages
|
||||
|
||||
func _ready():
|
||||
texts.set_text(str(init_text, total_cages, "."))
|
||||
if global.sound:
|
||||
sound.play()
|
||||
anim.play("appear")
|
||||
player = PLAYER.instance()
|
||||
instancer.call_deferred("add_child", player)
|
||||
yield(anim, "finished")
|
||||
player.enable_player()
|
||||
|
||||
func abduct():
|
||||
if global.sound:
|
||||
sound.play()
|
||||
player.disable_player()
|
||||
anim.play("unvanish")
|
||||
global.save_cowbells()
|
||||
get_tree().get_nodes_in_group("ufo_store")[0].show()
|
||||
|
||||
func liftoff():
|
||||
get_tree().get_nodes_in_group("level_selector")[0].next_level()
|
||||
|
||||
func deploy():
|
||||
if global.sound:
|
||||
sound.play()
|
||||
anim.play("appear")
|
||||
yield(anim, "finished")
|
||||
player.enable_player()
|
||||
|
||||
func can_liftoff():
|
||||
return rest == 0
|
||||
|
||||
func update_text():
|
||||
rest = total_cages - player.cages_open
|
||||
texts.set_text(str(init_text, rest, "."))
|
||||
|
||||
func _input(ev):
|
||||
if (ev.is_action_pressed("ui_up")):
|
||||
abduct()
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group("player")):
|
||||
set_process_input(true)
|
||||
|
||||
func _on_Area2D_body_exit(body):
|
||||
if (body.is_in_group("player")):
|
||||
set_process_input(false)
|
||||
10
Scenes/Events/player_spawner.tscn
Normal file
10
Scenes/Events/player_spawner.tscn
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[gd_scene load_steps=2 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/player_spawner.gd" type="Script" id=1]
|
||||
|
||||
[node name="player_spawner" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( -1250, -3000 )
|
||||
script/script = ExtResource( 1 )
|
||||
|
||||
|
||||
30
Scenes/Events/poison_smoke.gd
Normal file
30
Scenes/Events/poison_smoke.gd
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
extends Node2D
|
||||
|
||||
onready var p1 = get_node("P1")
|
||||
onready var p2 = get_node("P2")
|
||||
onready var area = get_node("Area2D")
|
||||
|
||||
export(float) var time
|
||||
|
||||
var emitting = true
|
||||
|
||||
func _ready():
|
||||
get_node("Timer").set_wait_time(time)
|
||||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group("player")):
|
||||
body.on_receive_damage(1)
|
||||
|
||||
func toggle():
|
||||
if (emitting):
|
||||
p1.set_emitting(false)
|
||||
p2.set_emitting(false)
|
||||
area.disconnect("body_enter", self, "_on_Area2D_body_enter")
|
||||
else:
|
||||
p1.set_emitting(true)
|
||||
p2.set_emitting(true)
|
||||
area.connect("body_enter", self, "_on_Area2D_body_enter")
|
||||
emitting = !emitting
|
||||
|
||||
func _on_Timer_timeout():
|
||||
toggle()
|
||||
120
Scenes/Events/poison_smoke.tscn
Normal file
120
Scenes/Events/poison_smoke.tscn
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
[gd_scene load_steps=6 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/poison_smoke.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Sprites/Effects/leche.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Charasets/gas_deployer.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="ColorRamp" id=1]
|
||||
|
||||
offsets = FloatArray( 0, 1 )
|
||||
colors = ColorArray( 0.67174, 0.828125, 0.11322, 1, 0.03125, 1, 0, 0 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 15.8522, 78.592 )
|
||||
|
||||
[node name="smoke" type="Node2D"]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
script/script = ExtResource( 1 )
|
||||
time = null
|
||||
|
||||
[node name="P1" type="Particles2D" parent="."]
|
||||
|
||||
visibility/opacity = 0.5
|
||||
transform/pos = Vector2( -1.86014, 42.8179 )
|
||||
config/amount = 20
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 10, 0 )
|
||||
config/texture = ExtResource( 2 )
|
||||
params/direction = 180.0
|
||||
params/spread = 5.0
|
||||
params/linear_velocity = 350.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 3.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/hue_variation = 0.07
|
||||
color/color = Color( 0.769531, 0.739847, 0.294586, 1 )
|
||||
color/color_ramp = SubResource( 1 )
|
||||
|
||||
[node name="P2" type="Particles2D" parent="."]
|
||||
|
||||
visibility/opacity = 0.2
|
||||
visibility/blend_mode = 1
|
||||
transform/pos = Vector2( -1.86014, 42.8179 )
|
||||
config/amount = 20
|
||||
config/lifetime = 0.5
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 10, 0 )
|
||||
config/texture = ExtResource( 2 )
|
||||
params/direction = 180.0
|
||||
params/spread = 5.0
|
||||
params/linear_velocity = 350.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 1.0
|
||||
params/final_size = 3.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 1.0
|
||||
params/anim_initial_pos = 0.0
|
||||
randomness/hue_variation = 0.07
|
||||
color/color = Color( 0.699219, 0.294983, 0.294983, 1 )
|
||||
color/color_ramp = SubResource( 1 )
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
|
||||
input/pickable = true
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0.88028, -21.13 )
|
||||
shapes/0/trigger = false
|
||||
gravity_vec = Vector2( 0, 1 )
|
||||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
collision/layers = 0
|
||||
collision/mask = 34
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
|
||||
visibility/visible = false
|
||||
transform/pos = Vector2( 0.88028, -21.13 )
|
||||
shape = SubResource( 2 )
|
||||
trigger = false
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
process_mode = 1
|
||||
wait_time = 1.0
|
||||
one_shot = false
|
||||
autostart = true
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 0, 52.8254 )
|
||||
z/z = -1
|
||||
texture = ExtResource( 3 )
|
||||
|
||||
[connection signal="body_enter" from="Area2D" to="." method="_on_Area2D_body_enter"]
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
||||
|
||||
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
[gd_scene load_steps=6 format=1]
|
||||
[gd_scene load_steps=7 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Events/milk_ray.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Scenes/Events/milk_splash.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://Scenes/Events/ray_milk_end.tres.gd" type="Script" id=3]
|
||||
[ext_resource path="res://Sprites/Effects/milk_ray.png" type="Texture" id=4]
|
||||
|
||||
[ext_resource path="res://Sound/milk_ray_sound.ogg" type="AudioStream" id=5]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
|
||||
|
|
@ -15,10 +15,10 @@ extents = Vector2( 32, 32 )
|
|||
|
||||
enabled = true
|
||||
cast_to = Vector2( 10000, 0 )
|
||||
layer_mask = 6
|
||||
type_mask = 10
|
||||
layer_mask = 63
|
||||
type_mask = 11
|
||||
script/script = ExtResource( 1 )
|
||||
damage = 50
|
||||
damage = 120
|
||||
|
||||
[node name="end" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ gravity_vec = Vector2( 0, 1 )
|
|||
gravity = 98.0
|
||||
linear_damp = 0.1
|
||||
angular_damp = 1.0
|
||||
monitoring = false
|
||||
priority = 100.0
|
||||
monitorable = false
|
||||
script/script = ExtResource( 3 )
|
||||
|
||||
|
|
@ -75,6 +75,17 @@ offset = Vector2( 0, -14.5 )
|
|||
region = true
|
||||
region_rect = Rect2( -1, 0, 0, 29 )
|
||||
|
||||
[node name="sound" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 5 )
|
||||
stream/play = false
|
||||
stream/loop = true
|
||||
stream/volume_db = 10.0
|
||||
stream/autoplay = false
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[connection signal="body_enter" from="end/Area2D" to="end/Area2D" method="_on_Area2D_body_enter"]
|
||||
|
||||
[connection signal="body_exit" from="end/Area2D" to="end/Area2D" method="_on_Area2D_body_exit"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ extends Area2D
|
|||
var body_hitted = null
|
||||
|
||||
func _fixed_process(delta):
|
||||
body_hitted.decrease_life(0.10)
|
||||
body_hitted.decrease_life(0.40)
|
||||
var t = Timer.new()
|
||||
t.set_wait_time(0.01)
|
||||
t.set_one_shot(true)
|
||||
|
|
@ -13,7 +13,7 @@ func _fixed_process(delta):
|
|||
|
||||
func _on_Area2D_body_enter( body ):
|
||||
if (body.is_in_group("enemy")):
|
||||
body.decrease_life(0.10)
|
||||
body.decrease_life(0.40)
|
||||
body.change_velocity(100, get_parent().get_parent().get_parent().shoot_dir.x > 0)
|
||||
body_hitted = body
|
||||
set_fixed_process(true)
|
||||
|
|
|
|||
96
Scenes/Events/rope.tscn
Normal file
96
Scenes/Events/rope.tscn
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
[gd_scene load_steps=2 format=1]
|
||||
|
||||
[ext_resource path="res://icon.png" type="Texture" id=1]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( 295.815, 142.795 )
|
||||
|
||||
[node name="RigidBody2D" type="RigidBody2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -102.509, -2.37168 )
|
||||
input/pickable = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 0
|
||||
mass = 1.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="RigidBody2D"]
|
||||
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="RigidBody2D1" type="RigidBody2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 32.8056, 1.01471 )
|
||||
input/pickable = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 0
|
||||
mass = 0.00102041
|
||||
friction = 0.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="RigidBody2D1"]
|
||||
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="RigidBody2D2" type="RigidBody2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 162.855, 0.527039 )
|
||||
input/pickable = false
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 0
|
||||
mass = 0.00102041
|
||||
friction = 0.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="RigidBody2D2"]
|
||||
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="PinJoint2D" type="PinJoint2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 184.829, -23.896 )
|
||||
node_a = NodePath("../RigidBody2D2")
|
||||
node_b = NodePath("")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 10.0
|
||||
|
||||
|
||||
|
|
@ -3,6 +3,8 @@ extends Node2D
|
|||
const BULLET = preload("res://Scenes/Events/milk_bullet.tscn")
|
||||
export var SHOOT_CADENCE = 0.001
|
||||
|
||||
var shooting = false
|
||||
|
||||
signal change_milk_bottle
|
||||
|
||||
enum WEAPONS {
|
||||
|
|
@ -14,6 +16,8 @@ var weapon = WEAPONS.regular
|
|||
var shoot = false
|
||||
var recharge = false
|
||||
|
||||
export(int) var bullet_cost = 1
|
||||
|
||||
onready var player = get_parent()
|
||||
onready var instanced_ray = get_node("ray")
|
||||
|
||||
|
|
@ -30,6 +34,7 @@ func _input(ev):
|
|||
set_process(true)
|
||||
elif (ev.is_action_released("ui_shoot")):
|
||||
instanced_ray.disable()
|
||||
shooting = false
|
||||
set_process(false)
|
||||
|
||||
# CHANGE WEAPON
|
||||
|
|
@ -44,7 +49,7 @@ func _input(ev):
|
|||
|
||||
|
||||
func check_can_shoot():
|
||||
return player.get_milk_level() > 0
|
||||
return global.milk_level > 0
|
||||
|
||||
func shoot_regular():
|
||||
|
||||
|
|
@ -60,19 +65,22 @@ func shoot_regular():
|
|||
t.start()
|
||||
yield(t, "timeout")
|
||||
recharge = false
|
||||
player.decrease_milk(1)
|
||||
player.decrease_milk(bullet_cost)
|
||||
|
||||
func shoot_laser():
|
||||
player.decrease_milk(0.05)
|
||||
player.decrease_milk(0.3)
|
||||
|
||||
func _process(delta):
|
||||
if (check_can_shoot()):
|
||||
if (weapon == WEAPONS.regular and !recharge):
|
||||
shoot_regular()
|
||||
elif (weapon == WEAPONS.laser):
|
||||
instanced_ray.enable()
|
||||
shoot_laser()
|
||||
else:
|
||||
if (!shooting):
|
||||
shooting = true
|
||||
instanced_ray.enable()
|
||||
else:
|
||||
shooting = false
|
||||
instanced_ray.disable()
|
||||
set_process(false)
|
||||
|
||||
|
|
|
|||
1
Scenes/Events/sound.gd
Normal file
1
Scenes/Events/sound.gd
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
60
Scenes/Events/text_dialog.tscn
Normal file
60
Scenes/Events/text_dialog.tscn
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[ext_resource path="res://Fonts/pixelated_regular.fnt" type="BitmapFont" id=1]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
|
||||
resource/name = "Apear"
|
||||
length = 0.7
|
||||
loop = false
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:visibility/opacity")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/imported = false
|
||||
tracks/0/keys = {
|
||||
"times": FloatArray( 0, 0.7 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 1.0 ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:rect/pos")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/imported = false
|
||||
tracks/1/keys = {
|
||||
"times": FloatArray( 0, 0.5 ),
|
||||
"transitions": FloatArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( -195, -44 ), Vector2( -195, -58 ) ]
|
||||
}
|
||||
|
||||
[node name="Text" type="Label"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = -195.0
|
||||
margin/top = -58.0
|
||||
margin/right = 195.0
|
||||
margin/bottom = 29.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
align = 1
|
||||
autowrap = true
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
|
||||
playback/process_mode = 1
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/Apear = SubResource( 1 )
|
||||
playback/active = true
|
||||
playback/speed = 1.0
|
||||
blend_times = [ ]
|
||||
autoplay = ""
|
||||
|
||||
|
||||
466
Scenes/Events/try.tscn
Normal file
466
Scenes/Events/try.tscn
Normal file
|
|
@ -0,0 +1,466 @@
|
|||
[gd_scene load_steps=13 format=1]
|
||||
|
||||
[ext_resource path="res://Sprites/Boss/body.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Sprites/Boss/leg_back_up.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Boss/leg_back_down.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Sprites/Boss/foot_back.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Boss/leg_front_up.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Sprites/Boss/leg_front_down.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sprites/Boss/foot_front.png" type="Texture" id=7]
|
||||
[ext_resource path="res://Sprites/Boss/head.png" type="Texture" id=8]
|
||||
[ext_resource path="res://Sprites/Boss/wire.png" type="Texture" id=9]
|
||||
[ext_resource path="res://Sprites/Boss/finger.png" type="Texture" id=10]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "export (NodePath) var START
|
||||
export (NodePath) var END
|
||||
|
||||
onready var start = get_node(START)
|
||||
onready var end = get_node(END)
|
||||
|
||||
onready var x1 = start.get_pos().x
|
||||
onready var x2 = end.get_pos().x
|
||||
onready var y1 = start.get_pos().y
|
||||
onready var y2 = end.get_pos().y
|
||||
|
||||
const segment = preload(\"res://Scenes/Events/chain_segment.tscn\")
|
||||
|
||||
func next_segment(x):
|
||||
return Vector2(x , ((x - x1) * (y2 - y1) / (x2 - x1)) + y1)
|
||||
|
||||
func _ready():
|
||||
var distance = start.get_pos().distance_to(end.get_pos())
|
||||
#var angle = start.get_pos().angle_to(end.get_pos())
|
||||
#print (angle)
|
||||
var n_segments = distance / 2
|
||||
var position = start.get_pos()
|
||||
var last_segment = start
|
||||
|
||||
for i in range(0, n_segments - 1):
|
||||
var aux_segment = segment.instance()
|
||||
position -= Vector2(2, 0)
|
||||
aux_segment.set_pos(next_segment(position.x))
|
||||
#aux_segment.set_rotd(angle)
|
||||
add_child(aux_segment)
|
||||
last_segment.get_node(\"joint\").set_node_a(last_segment.get_path())
|
||||
last_segment.get_node(\"joint\").set_node_b(aux_segment.get_path())
|
||||
last_segment = aux_segment
|
||||
|
||||
end.get_node(\"joint\").set_node_a(end.get_path())
|
||||
end.get_node(\"joint\").set_node_b(last_segment.get_path())"
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
|
||||
custom_solver_bias = 0.0
|
||||
extents = Vector2( 7.87903, 3.93616 )
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
transform/pos = Vector2( 636.567, 381.293 )
|
||||
|
||||
[node name="Body" type="Sprite" parent="."]
|
||||
|
||||
transform/pos = Vector2( 40.0902, 8.82797 )
|
||||
transform/rot = -7.09402
|
||||
texture = ExtResource( 1 )
|
||||
offset = Vector2( -35.4693, -3.91888 )
|
||||
__meta__ = {
|
||||
"_edit_ik_": true
|
||||
}
|
||||
|
||||
[node name="Leg_Back_Up" type="Sprite" parent="Body"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 4.04352, 5.63336 )
|
||||
transform/rot = -5.66237
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
z/z = -1
|
||||
texture = ExtResource( 2 )
|
||||
offset = Vector2( -40.4423, -11.1284 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Leg_Back_Down" type="Sprite" parent="Body/Leg_Back_Up"]
|
||||
|
||||
transform/pos = Vector2( -24.7578, 20.5191 )
|
||||
transform/rot = 2.29481
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
z/z = -1
|
||||
texture = ExtResource( 3 )
|
||||
offset = Vector2( -16.3306, -34.5348 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Foot_Back" type="Sprite" parent="Body/Leg_Back_Up/Leg_Back_Down"]
|
||||
|
||||
transform/pos = Vector2( 12.0957, 36.1506 )
|
||||
transform/rot = 3.37345
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
texture = ExtResource( 4 )
|
||||
offset = Vector2( -28.4257, -72.6998 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Body/Leg_Back_Up/Leg_Back_Down/Foot_Back"]
|
||||
|
||||
transform/pos = Vector2( -23.415, 2.88678 )
|
||||
transform/rot = 9.20492
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Body/Leg_Back_Up/Leg_Back_Down/Foot_Back/Position2D"]
|
||||
|
||||
transform/pos = Vector2( -11.8035, 1.51938 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Leg_Front_Up" type="Sprite" parent="Body"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 4.23431, 5.69522 )
|
||||
transform/rot = 41.402
|
||||
texture = ExtResource( 5 )
|
||||
offset = Vector2( -40.3387, -11.0942 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Leg_Front_Down" type="Sprite" parent="Body/Leg_Front_Up"]
|
||||
|
||||
transform/pos = Vector2( -23.4612, 22.1521 )
|
||||
transform/rot = -7.82368
|
||||
z/z = -1
|
||||
texture = ExtResource( 6 )
|
||||
offset = Vector2( -17.9009, -35.8193 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Foot_Front" type="Sprite" parent="Body/Leg_Front_Up/Leg_Front_Down"]
|
||||
|
||||
transform/pos = Vector2( 10.2595, 33.1961 )
|
||||
transform/rot = -31.5029
|
||||
texture = ExtResource( 7 )
|
||||
offset = Vector2( -27.9519, -70.4521 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Body/Leg_Front_Up/Leg_Front_Down/Foot_Front"]
|
||||
|
||||
transform/pos = Vector2( -24.865, 2.81232 )
|
||||
transform/rot = -3.13296
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D1" type="Position2D" parent="Body/Leg_Front_Up/Leg_Front_Down/Foot_Front/Position2D"]
|
||||
|
||||
transform/pos = Vector2( -12.7146, -0.980713 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Head" type="Sprite" parent="Body"]
|
||||
|
||||
transform/pos = Vector2( -35.4153, -51.9812 )
|
||||
transform/rot = 9.44869
|
||||
texture = ExtResource( 8 )
|
||||
offset = Vector2( 1.37228, 49.4121 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Body/Head"]
|
||||
|
||||
transform/pos = Vector2( -3.45715, -6.41968 )
|
||||
transform/rot = -61.5417
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D1" type="Position2D" parent="Body/Head/Position2D"]
|
||||
|
||||
transform/pos = Vector2( -25.1898, 0.367554 )
|
||||
transform/rot = -8.35903
|
||||
transform/scale = Vector2( 1.09817, 1.15621 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Position2D2" type="Position2D" parent="Body/Head/Position2D/Position2D1"]
|
||||
|
||||
transform/pos = Vector2( -17.3925, 3.50458 )
|
||||
__meta__ = {
|
||||
"_edit_bone_": true
|
||||
}
|
||||
|
||||
[node name="Hand_Back" type="Position2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -37.5853, -14.0595 )
|
||||
transform/rot = 75.6957
|
||||
transform/scale = Vector2( 0.999999, 0.999999 )
|
||||
z/z = -1
|
||||
|
||||
[node name="Wire_Back" type="Node2D" parent="Hand_Back"]
|
||||
|
||||
transform/pos = Vector2( -3.67201, -2.14014 )
|
||||
transform/rot = -75.6957
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
z/z = -5
|
||||
script/script = SubResource( 1 )
|
||||
START = NodePath("Start")
|
||||
END = NodePath("End")
|
||||
|
||||
[node name="End" type="RigidBody2D" parent="Hand_Back/Wire_Back"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 15.6561, -16.9876 )
|
||||
transform/rot = 172.627
|
||||
z/z = -3
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 1.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Back/Wire_Back/End"]
|
||||
|
||||
texture = ExtResource( 9 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hand_Back/Wire_Back/End"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="Hand_Back/Wire_Back/End"]
|
||||
|
||||
transform/pos = Vector2( -0.638733, 0.000701904 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 1.0
|
||||
|
||||
[node name="Start" type="RigidBody2D" parent="Hand_Back/Wire_Back"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 128.498, -49.2625 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 1.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Back/Wire_Back/Start"]
|
||||
|
||||
visibility/visible = false
|
||||
texture = ExtResource( 9 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hand_Back/Wire_Back/Start"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="Hand_Back/Wire_Back/Start"]
|
||||
|
||||
transform/pos = Vector2( -7.43176, 0.104675 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D2")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 1.0
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Hand_Back"]
|
||||
|
||||
transform/pos = Vector2( 8.87546, 49.2749 )
|
||||
transform/rot = -80.9607
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Back"]
|
||||
|
||||
transform/pos = Vector2( 16.9435, 51.6866 )
|
||||
transform/rot = -80.9607
|
||||
z/z = 1
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Hand_Back"]
|
||||
|
||||
transform/pos = Vector2( 10.0309, 59.491 )
|
||||
transform/rot = -80.9607
|
||||
z/z = 1
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
[node name="Hand_Front" type="Position2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -27.3054, -3.51297 )
|
||||
transform/rot = 79.1726
|
||||
transform/scale = Vector2( 0.999999, 0.999999 )
|
||||
|
||||
[node name="Wire_Front" type="Node2D" parent="Hand_Front"]
|
||||
|
||||
transform/pos = Vector2( 3.30298, 2.57446 )
|
||||
transform/rot = -79.1726
|
||||
transform/scale = Vector2( 0.5, 0.5 )
|
||||
script/script = SubResource( 1 )
|
||||
START = NodePath("Start")
|
||||
END = NodePath("End")
|
||||
|
||||
[node name="End" type="RigidBody2D" parent="Hand_Front/Wire_Front"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -5.75891, -9.81091 )
|
||||
transform/rot = -178.701
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
z/z = -3
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 1.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Front/Wire_Front/End"]
|
||||
|
||||
texture = ExtResource( 9 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hand_Front/Wire_Front/End"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="Hand_Front/Wire_Front/End"]
|
||||
|
||||
transform/pos = Vector2( -0.638733, 0.000701904 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 1.0
|
||||
|
||||
[node name="Start" type="RigidBody2D" parent="Hand_Front/Wire_Front"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 103.764, -59.2512 )
|
||||
input/pickable = false
|
||||
shapes/0/shape = SubResource( 2 )
|
||||
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
shapes/0/trigger = true
|
||||
collision/layers = 1
|
||||
collision/mask = 1
|
||||
mode = 1
|
||||
mass = 1.0
|
||||
friction = 1.0
|
||||
bounce = 0.0
|
||||
gravity_scale = 1.0
|
||||
custom_integrator = false
|
||||
continuous_cd = 0
|
||||
contacts_reported = 0
|
||||
contact_monitor = false
|
||||
sleeping = false
|
||||
can_sleep = true
|
||||
velocity/linear = Vector2( 0, 0 )
|
||||
velocity/angular = 0.0
|
||||
damp_override/linear = -1.0
|
||||
damp_override/angular = -1.0
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Front/Wire_Front/Start"]
|
||||
|
||||
visibility/visible = false
|
||||
texture = ExtResource( 9 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hand_Front/Wire_Front/Start"]
|
||||
|
||||
shape = SubResource( 2 )
|
||||
trigger = true
|
||||
_update_shape_index = 0
|
||||
|
||||
[node name="joint" type="PinJoint2D" parent="Hand_Front/Wire_Front/Start"]
|
||||
|
||||
transform/pos = Vector2( -7.43176, 0.104675 )
|
||||
node_a = NodePath("..")
|
||||
node_b = NodePath("../../RigidBody2D2")
|
||||
bias/bias = 0.0
|
||||
collision/exclude_nodes = true
|
||||
softness = 1.0
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Hand_Front"]
|
||||
|
||||
transform/pos = Vector2( 8.87546, 49.2749 )
|
||||
transform/rot = -80.9607
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hand_Front"]
|
||||
|
||||
transform/pos = Vector2( 16.9435, 51.6866 )
|
||||
transform/rot = -80.9607
|
||||
z/z = 1
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Hand_Front"]
|
||||
|
||||
transform/pos = Vector2( 10.0309, 59.491 )
|
||||
transform/rot = -80.9607
|
||||
z/z = 1
|
||||
texture = ExtResource( 10 )
|
||||
|
||||
|
||||
588
Scenes/Maps/default_map.tscn
Normal file
588
Scenes/Maps/default_map.tscn
Normal file
|
|
@ -0,0 +1,588 @@
|
|||
[gd_scene load_steps=17 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Maps/tileset.xml" type="TileSet" id=1]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_d.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_c.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_b.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_a.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Scenes/Events/enemy_1.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Scenes/Events/apple.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://Scenes/Events/heart.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://Scenes/Events/cowbell.tscn" type="PackedScene" id=9]
|
||||
[ext_resource path="res://Scenes/Events/death_line.tscn" type="PackedScene" id=10]
|
||||
[ext_resource path="res://Scenes/Events/UFO.tscn" type="PackedScene" id=11]
|
||||
[ext_resource path="res://Music/dangerous-hills-loop.ogg" type="AudioStream" id=12]
|
||||
[ext_resource path="res://Scenes/Events/jail.tscn" type="PackedScene" id=13]
|
||||
[ext_resource path="res://Scenes/Events/on_map_text_dialog.tscn" type="PackedScene" id=14]
|
||||
[ext_resource path="res://Scenes/Events/flying_platform.tscn" type="PackedScene" id=15]
|
||||
[ext_resource path="res://Scenes/Events/poison_smoke.tscn" type="PackedScene" id=16]
|
||||
|
||||
[node name="Level" type="Node2D" groups=[
|
||||
"level",
|
||||
]]
|
||||
|
||||
[node name="leaves_foreground" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 0
|
||||
collision/mask = 0
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="leaves_background" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -2
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 0
|
||||
collision/mask = 0
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="one_way_platforms1" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -1
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2048
|
||||
collision/mask = 14
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( -851955, 35 )
|
||||
|
||||
[node name="trees" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -1
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="base" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -2
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( -1572880, 0, -1572879, 1, -1572878, 1, -1572877, 2, -1507344, 6, -1507343, 7, -1507342, 7, -1507341, 8, -1376271, 0, -1376270, 1, -1376269, 1, -1376268, 2, -1310735, 6, -1310734, 7, -1310733, 7, -1310732, 8 )
|
||||
|
||||
[node name="back" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -3
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( -1507344, 67, -1507343, 67, -1507342, 67, -1507341, 67, -1507340, 67, -1507339, 67, -1441808, 67, -1441807, 67, -1441806, 67, -1441805, 67, -1441804, 67, -1441803, 67, -1376272, 67, -1376271, 67, -1376270, 67, -1376269, 67, -1376268, 67, -1376267, 67, -1310736, 67, -1310735, 67, -1310734, 67, -1310733, 67, -1310732, 67, -1310731, 67 )
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
layer = -1
|
||||
offset = Vector2( 0, 0 )
|
||||
rotation = 0.0
|
||||
scale = Vector2( 1, 1 )
|
||||
scroll/offset = Vector2( 0, 0 )
|
||||
scroll/base_offset = Vector2( 0, 0 )
|
||||
scroll/base_scale = Vector2( 1, 1 )
|
||||
scroll/limit_begin = Vector2( 1, 0 )
|
||||
scroll/limit_end = Vector2( 1, 0 )
|
||||
scroll/ignore_camera_zoom = true
|
||||
|
||||
[node name="ParallaxLayerd" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 0, -352 )
|
||||
z/z = -4
|
||||
motion/scale = Vector2( 0.15, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerd"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 2 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 1024, 128 )
|
||||
|
||||
[node name="ParallaxLayerc" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -500, -352 )
|
||||
z/z = -3
|
||||
motion/scale = Vector2( 0.3, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerc"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 1200, 128 )
|
||||
|
||||
[node name="ParallaxLayerb" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -736, -352 )
|
||||
z/z = -2
|
||||
motion/scale = Vector2( 0.5, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerb"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 2048, 128 )
|
||||
|
||||
[node name="ParallaxLayera" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -736, -352 )
|
||||
z/z = -1
|
||||
motion/scale = Vector2( 0.8, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayera"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( -1000, 0, 2048, 128 )
|
||||
|
||||
[node name="enemies" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 2140, -960 )
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
|
||||
[node name="Enemy" parent="enemies" instance=ExtResource( 6 )]
|
||||
|
||||
transform/pos = Vector2( -35.2942, -176.471 )
|
||||
transform/scale = Vector2( 1, 1 )
|
||||
|
||||
[node name="apples" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -3140, -3460 )
|
||||
|
||||
[node name="Apple" parent="apples" instance=ExtResource( 7 )]
|
||||
|
||||
transform/pos = Vector2( 5140, 1240 )
|
||||
amount = 20
|
||||
|
||||
[node name="hearts" type="Node2D" parent="."]
|
||||
|
||||
[node name="Heart" parent="hearts" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 1480, -1230 )
|
||||
|
||||
[node name="cowbells" type="Node2D" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 500, 560 )
|
||||
|
||||
[node name="Cowbell" parent="cowbells" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 1510, -3640 )
|
||||
|
||||
[node name="Block" type="Node2D" parent="cowbells"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 2350, -3400 )
|
||||
|
||||
[node name="Col" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col1" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 50, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col1" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col1" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col1" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col1" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col1" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col2" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 100, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col2" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col2" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col2" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col2" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col2" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col3" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 150, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col3" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col3" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col3" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col3" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col3" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col4" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 200, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col4" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col4" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col4" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col4" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col4" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col5" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 250, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col5" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col5" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col5" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col5" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col5" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col6" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 300, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col6" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col6" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col6" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col6" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col6" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col7" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 350, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col7" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col7" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col7" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col7" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col7" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col8" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 400, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col8" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col8" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col8" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col8" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col8" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col9" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 450, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col9" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col9" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col9" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col9" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col9" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col10" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 500, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col10" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col10" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col10" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col10" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col10" instance=ExtResource( 9 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="death_line" parent="." instance=ExtResource( 10 )]
|
||||
|
||||
editor/display_folded = false
|
||||
transform/pos = Vector2( 24550, -940 )
|
||||
transform/scale = Vector2( 6889, 1 )
|
||||
|
||||
[node name="UFO" parent="." instance=ExtResource( 11 )]
|
||||
|
||||
transform/pos = Vector2( -1250, -3330 )
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
|
||||
[node name="StreamPlayer" type="StreamPlayer" parent="."]
|
||||
|
||||
stream/stream = ExtResource( 12 )
|
||||
stream/play = false
|
||||
stream/loop = true
|
||||
stream/volume_db = 1.0
|
||||
stream/autoplay = true
|
||||
stream/paused = false
|
||||
stream/loop_restart_time = 0.0
|
||||
stream/buffering_ms = 500
|
||||
|
||||
[node name="cages" type="Node2D" parent="."]
|
||||
|
||||
[node name="jail" parent="cages" instance=ExtResource( 13 )]
|
||||
|
||||
transform/pos = Vector2( -1860, -2650 )
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
|
||||
[node name="tips" type="Node2D" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -1890, -3020 )
|
||||
|
||||
[node name="Area2D" parent="tips" instance=ExtResource( 14 )]
|
||||
|
||||
text = "Este camino está bloqueado. Busca otra forma de desplazarte."
|
||||
|
||||
[node name="moving_paltforms" type="Node2D" parent="."]
|
||||
|
||||
[node name="Node2D" parent="moving_paltforms" instance=ExtResource( 15 )]
|
||||
|
||||
[node name="smoke" type="Node2D" parent="."]
|
||||
|
||||
[node name="smoke" parent="smoke" instance=ExtResource( 16 )]
|
||||
|
||||
|
||||
289
Scenes/Maps/empty_map.tscn
Normal file
289
Scenes/Maps/empty_map.tscn
Normal file
|
|
@ -0,0 +1,289 @@
|
|||
[gd_scene load_steps=14 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Maps/tileset.xml" type="TileSet" id=1]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_d.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_c.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_b.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Sprites/Background/night_outside_a.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Scenes/Events/apple.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Scenes/Events/heart.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://Scenes/Events/cowbell.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://Scenes/Events/death_line.tscn" type="PackedScene" id=9]
|
||||
[ext_resource path="res://Scenes/Events/UFO.tscn" type="PackedScene" id=10]
|
||||
[ext_resource path="res://Music/dangerous-hills-loop.ogg" type="AudioStream" id=11]
|
||||
[ext_resource path="res://Scenes/Events/jail.tscn" type="PackedScene" id=12]
|
||||
[ext_resource path="res://Scenes/Events/on_map_text_dialog.tscn" type="PackedScene" id=13]
|
||||
|
||||
[node name="Level" type="Node2D" groups=[
|
||||
"level",
|
||||
]]
|
||||
|
||||
[node name="leaves_foreground" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 0
|
||||
collision/mask = 0
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="leaves_background" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -2
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 0
|
||||
collision/mask = 0
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="one_way_platforms1" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -1
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2048
|
||||
collision/mask = 14
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( -851955, 35 )
|
||||
|
||||
[node name="trees" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -1
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="base" type="TileMap" parent="."]
|
||||
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
z/z = -2
|
||||
mode = 0
|
||||
tile_set = ExtResource( 1 )
|
||||
cell/size = Vector2( 64, 64 )
|
||||
cell/quadrant_size = 16
|
||||
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
|
||||
cell/half_offset = 2
|
||||
cell/tile_origin = 0
|
||||
cell/y_sort = false
|
||||
collision/use_kinematic = false
|
||||
collision/friction = 1.0
|
||||
collision/bounce = 0.0
|
||||
collision/layers = 2
|
||||
collision/mask = 15
|
||||
occluder/light_mask = 1
|
||||
tile_data = IntArray( )
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
layer = -1
|
||||
offset = Vector2( 0, 0 )
|
||||
rotation = 0.0
|
||||
scale = Vector2( 1, 1 )
|
||||
scroll/offset = Vector2( 0, 0 )
|
||||
scroll/base_offset = Vector2( 0, 0 )
|
||||
scroll/base_scale = Vector2( 1, 1 )
|
||||
scroll/limit_begin = Vector2( 1, 0 )
|
||||
scroll/limit_end = Vector2( 1, 0 )
|
||||
scroll/ignore_camera_zoom = true
|
||||
|
||||
[node name="ParallaxLayerd" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 0, -352 )
|
||||
z/z = -4
|
||||
motion/scale = Vector2( 0.15, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerd"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 2 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 1024, 128 )
|
||||
|
||||
[node name="ParallaxLayerc" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -500, -352 )
|
||||
z/z = -3
|
||||
motion/scale = Vector2( 0.3, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerc"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 1200, 128 )
|
||||
|
||||
[node name="ParallaxLayerb" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -736, -352 )
|
||||
z/z = -2
|
||||
motion/scale = Vector2( 0.5, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayerb"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( 0, 0, 2048, 128 )
|
||||
|
||||
[node name="ParallaxLayera" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( -736, -352 )
|
||||
z/z = -1
|
||||
motion/scale = Vector2( 0.8, 0 )
|
||||
motion/offset = Vector2( 1, 2000 )
|
||||
motion/mirroring = Vector2( 0, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayera"]
|
||||
|
||||
transform/pos = Vector2( -3712, -2048 )
|
||||
transform/scale = Vector2( 6, 6 )
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
region = true
|
||||
region_rect = Rect2( -1000, 0, 2048, 128 )
|
||||
|
||||
[node name="enemies" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( 2140, -960 )
|
||||
transform/scale = Vector2( 1.7, 1.7 )
|
||||
|
||||
[node name="apples" type="Node2D" parent="."]
|
||||
|
||||
transform/pos = Vector2( -3140, -3460 )
|
||||
|
||||
[node name="Apple" parent="apples" instance=ExtResource( 6 )]
|
||||
|
||||
transform/pos = Vector2( 5140, 1240 )
|
||||
amount = 20
|
||||
|
||||
[node name="hearts" type="Node2D" parent="."]
|
||||
|
||||
[node name="Heart" parent="hearts" instance=ExtResource( 7 )]
|
||||
|
||||
transform/pos = Vector2( 1480, -1230 )
|
||||
|
||||
[node name="cowbells" type="Node2D" parent="."]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 500, 560 )
|
||||
|
||||
[node name="Cowbell" parent="cowbells" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 1510, -3640 )
|
||||
|
||||
[node name="Block" type="Node2D" parent="cowbells"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 2350, -3400 )
|
||||
|
||||
[node name="Col" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col1" type="Node2D" parent="cowbells/Block"]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 50, 0 )
|
||||
|
||||
[node name="Cowbell18173" parent="cowbells/Block/Col1" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 20 )
|
||||
|
||||
[node name="Cowbell18174" parent="cowbells/Block/Col1" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 70 )
|
||||
|
||||
[node name="Cowbell18175" parent="cowbells/Block/Col1" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 120 )
|
||||
|
||||
[node name="Cowbell18176" parent="cowbells/Block/Col1" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 170 )
|
||||
|
||||
[node name="Cowbell18177" parent="cowbells/Block/Col1" instance=ExtResource( 8 )]
|
||||
|
||||
transform/pos = Vector2( 0, 220 )
|
||||
|
||||
[node name="Col2
|
||||
1274
Scenes/Maps/map_0.tscn
Normal file
1274
Scenes/Maps/map_0.tscn
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
2111
Scenes/Maps/map_2.tscn
Normal file
2111
Scenes/Maps/map_2.tscn
Normal file
File diff suppressed because one or more lines are too long
1417
Scenes/Maps/map_3.tscn
Normal file
1417
Scenes/Maps/map_3.tscn
Normal file
File diff suppressed because it is too large
Load diff
1822
Scenes/Maps/map_4.tscn
Normal file
1822
Scenes/Maps/map_4.tscn
Normal file
File diff suppressed because it is too large
Load diff
2858
Scenes/Maps/map_5.tscn
Normal file
2858
Scenes/Maps/map_5.tscn
Normal file
File diff suppressed because one or more lines are too long
2237
Scenes/Maps/map_6.tscn
Normal file
2237
Scenes/Maps/map_6.tscn
Normal file
File diff suppressed because it is too large
Load diff
2753
Scenes/Maps/map_7.tscn
Normal file
2753
Scenes/Maps/map_7.tscn
Normal file
File diff suppressed because one or more lines are too long
3412
Scenes/Maps/map_8.tscn
Normal file
3412
Scenes/Maps/map_8.tscn
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
8
Scenes/Menu/HUD.tres.gd
Normal file
8
Scenes/Menu/HUD.tres.gd
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
extends Viewport
|
||||
|
||||
export
|
||||
|
||||
func _ready():
|
||||
# Called every time the node is added to the scene.
|
||||
# Initialization here
|
||||
pass
|
||||
|
|
@ -1,22 +1,43 @@
|
|||
[gd_scene load_steps=16 format=1]
|
||||
[gd_scene load_steps=38 format=1]
|
||||
|
||||
[ext_resource path="res://Scenes/Maps/map_1.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Scenes/Menu/life_hud.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/heart_full.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Scenes/Menu/buttons_hud.gd" type="Script" id=4]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn_arrow.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn_jump.png" type="Texture" id=6]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn.png" type="Texture" id=7]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/btn_shoot.png" type="Texture" id=8]
|
||||
[ext_resource path="res://Scenes/Menu/milk_botte_hud.gd" type="Script" id=9]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milbar_outter_2.png" type="Texture" id=10]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milkbar_outter_3.png" type="Texture" id=11]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milkbar_outter_1.png" type="Texture" id=12]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milkbar_inner.png" type="Texture" id=13]
|
||||
[ext_resource path="res://Scenes/Menu/level_selector.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Scenes/Maps/map_0.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://Scenes/Maps/map_3.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://Scenes/Maps/map_1.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Scenes/Maps/map_2.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://Scenes/Maps/map_4.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Scenes/Maps/map_5.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://Scenes/Maps/map_6.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://Scenes/Maps/map_7.tscn" type="PackedScene" id=9]
|
||||
[ext_resource path="res://Scenes/Maps/map_8.tscn" type="PackedScene" id=10]
|
||||
[ext_resource path="res://Sprites/Effects/bottom_level_particles.png" type="Texture" id=11]
|
||||
[ext_resource path="res://Scenes/Menu/life_hud.gd" type="Script" id=12]
|
||||
[ext_resource path="res://Scenes/Menu/buttons_hud.gd" type="Script" id=13]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn_arrow.png" type="Texture" id=14]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn_jump.png" type="Texture" id=15]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn.png" type="Texture" id=16]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/btn_shoot.png" type="Texture" id=17]
|
||||
[ext_resource path="res://Scenes/Menu/milk_botte_hud.gd" type="Script" id=18]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milbar_outter_2.png" type="Texture" id=19]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milkbar_outter_3.png" type="Texture" id=20]
|
||||
[ext_resource path="res://Sprites/GUI/HUD/milkbar_outter_1.png" type="Texture" id=21]
|
||||
[ext_resource path="res://Scenes/Menu/cowbells_hud.gd" type="Script" id=22]
|
||||
[ext_resource path="res://Fonts/pixelated_title.fnt" type="BitmapFont" id=23]
|
||||
[ext_resource path="res://Sprites/Charasets/cowbell.png" type="Texture" id=24]
|
||||
[ext_resource path="res://Scenes/Events/cowbell_animation_one_shot.tres" type="Animation" id=25]
|
||||
[ext_resource path="res://Scenes/Events/cowbell_animations.tres" type="Animation" id=26]
|
||||
[ext_resource path="res://Scenes/Menu/button_back.tscn" type="PackedScene" id=27]
|
||||
[ext_resource path="res://Scenes/Menu/in_game_menu.tscn" type="PackedScene" id=28]
|
||||
[ext_resource path="res://Scenes/Menu/ufo_store.tscn" type="PackedScene" id=29]
|
||||
[ext_resource path="res://Scenes/Effects/retro_shader.tres" type="CanvasItemMaterial" id=30]
|
||||
[ext_resource path="res://Sprites/Effects/white.png" type="Texture" id=31]
|
||||
|
||||
[sub_resource type="ColorRamp" id=1]
|
||||
|
||||
offsets = FloatArray( 0, 1 )
|
||||
colors = ColorArray( 1, 1, 1, 1, 1, 1, 1, 0 )
|
||||
|
||||
[sub_resource type="Environment" id=1]
|
||||
[sub_resource type="Environment" id=2]
|
||||
|
||||
ambient_light/enabled = false
|
||||
ambient_light/color = Color( 0, 0, 0, 1 )
|
||||
|
|
@ -60,15 +81,42 @@ bcs/contrast = 1.0
|
|||
bcs/saturation = 1.0
|
||||
srgb/enabled = false
|
||||
|
||||
[sub_resource type="World" id=2]
|
||||
[sub_resource type="World" id=3]
|
||||
|
||||
environment = SubResource( 1 )
|
||||
environment = SubResource( 2 )
|
||||
|
||||
[node name="Node2D" type="Node2D" groups=[
|
||||
[sub_resource type="CanvasItemMaterial" id=4]
|
||||
|
||||
shader/shading_mode = 0
|
||||
|
||||
[sub_resource type="GDScript" id=5]
|
||||
|
||||
script/source = "extends Button
|
||||
|
||||
func _on_Back_pressed():
|
||||
get_tree().set_pause(true)
|
||||
get_node(\"in_game_menu\").show()
|
||||
"
|
||||
|
||||
[sub_resource type="GDScript" id=6]
|
||||
|
||||
script/source = "extends TextureFrame
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = \"textvar\"
|
||||
|
||||
func _ready():
|
||||
set_hidden(global.retro_effect)
|
||||
"
|
||||
|
||||
[node name="Global" type="Node2D" groups=[
|
||||
"control",
|
||||
]]
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
[node name="Control" type="Control" parent="." groups=[
|
||||
"level_selector",
|
||||
]]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
|
|
@ -78,63 +126,82 @@ margin/left = 0.0
|
|||
margin/top = 0.0
|
||||
margin/right = 1280.0
|
||||
margin/bottom = 768.0
|
||||
script/script = ExtResource( 1 )
|
||||
levels = [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ) ]
|
||||
|
||||
[node name="BotomLevelParticles" type="Particles2D" parent="Control" groups=[
|
||||
"bottom_level_particles",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.6
|
||||
transform/pos = Vector2( 635, 708.804 )
|
||||
transform/scale = Vector2( 25, 0.3 )
|
||||
config/amount = 2
|
||||
config/lifetime = 0.5
|
||||
config/emitting = false
|
||||
config/process_mode = 1
|
||||
config/half_extents = Vector2( 1, 0 )
|
||||
config/texture = ExtResource( 11 )
|
||||
params/direction = 180.0
|
||||
params/spread = 0.0
|
||||
params/linear_velocity = 500.0
|
||||
params/spin_velocity = 0.0
|
||||
params/orbit_velocity = 0.0
|
||||
params/gravity_direction = 0.0
|
||||
params/gravity_strength = 0.0
|
||||
params/radial_accel = 0.0
|
||||
params/tangential_accel = 0.0
|
||||
params/damping = 0.0
|
||||
params/initial_angle = 0.0
|
||||
params/initial_size = 6.0
|
||||
params/final_size = 6.0
|
||||
params/hue_variation = 0.0
|
||||
params/anim_speed_scale = 0.0
|
||||
params/anim_initial_pos = 0.0
|
||||
color/color_ramp = SubResource( 1 )
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="Control"]
|
||||
|
||||
rect = Rect2( 0, 0, 1280, 768 )
|
||||
own_world = false
|
||||
world = SubResource( 2 )
|
||||
world = SubResource( 3 )
|
||||
transparent_bg = false
|
||||
render_target/enabled = false
|
||||
render_target/v_flip = false
|
||||
render_target/clear_on_new_frame = true
|
||||
render_target/clear_on_new_frame = false
|
||||
render_target/filter = false
|
||||
render_target/gen_mipmaps = false
|
||||
render_target/update_mode = 0
|
||||
render_target/update_mode = 3
|
||||
audio_listener/enable_2d = true
|
||||
audio_listener/enable_3d = false
|
||||
physics/object_picking = false
|
||||
gui/disable_input = false
|
||||
|
||||
[node name="Level" parent="Control/Viewport" instance=ExtResource( 1 )]
|
||||
|
||||
[node name="Life" type="Node2D" parent="Control" groups=[
|
||||
"life_hud",
|
||||
]]
|
||||
|
||||
transform/pos = Vector2( 64, 64 )
|
||||
script/script = ExtResource( 2 )
|
||||
|
||||
[node name="life1" type="Sprite" parent="Control/Life"]
|
||||
|
||||
transform/pos = Vector2( 32, 0 )
|
||||
texture = ExtResource( 3 )
|
||||
region_rect = Rect2( 180, 140, 145, 150 )
|
||||
|
||||
[node name="life2" type="Sprite" parent="Control/Life"]
|
||||
|
||||
transform/pos = Vector2( 96, 0 )
|
||||
texture = ExtResource( 3 )
|
||||
region_rect = Rect2( 180, 140, 145, 150 )
|
||||
|
||||
[node name="life3" type="Sprite" parent="Control/Life"]
|
||||
|
||||
transform/pos = Vector2( 160, 0 )
|
||||
texture = ExtResource( 3 )
|
||||
region_rect = Rect2( 180, 140, 145, 150 )
|
||||
transform/pos = Vector2( 120, 58 )
|
||||
script/script = ExtResource( 12 )
|
||||
heart_inter_distance = 64
|
||||
initial_heart_pos = Vector2( 32, 0 )
|
||||
|
||||
[node name="Buttons" type="Node2D" parent="Control" groups=[
|
||||
"onscreen_controls",
|
||||
"buttons_hud",
|
||||
]]
|
||||
|
||||
script/script = ExtResource( 4 )
|
||||
editor/display_folded = true
|
||||
script/script = ExtResource( 13 )
|
||||
|
||||
[node name="Bttn_U" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_U" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.9
|
||||
transform/pos = Vector2( 160, 320 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
normal = ExtResource( 14 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -144,12 +211,14 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_A" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_A" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.8
|
||||
transform/pos = Vector2( 1088, 576 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 6 )
|
||||
normal = ExtResource( 15 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -159,12 +228,14 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_AS" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_AS" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.8
|
||||
transform/pos = Vector2( 1088, 384 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 7 )
|
||||
normal = ExtResource( 16 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -174,12 +245,14 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_S" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_S" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.9
|
||||
transform/pos = Vector2( 896, 576 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 8 )
|
||||
normal = ExtResource( 17 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -189,13 +262,15 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_D" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_D" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.9
|
||||
transform/pos = Vector2( 288, 704 )
|
||||
transform/rot = 180.0
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
normal = ExtResource( 14 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -205,43 +280,15 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_DR" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
visibility/opacity = 0.0
|
||||
transform/pos = Vector2( 288, 576 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_DL" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
|
||||
visibility/opacity = 0.0
|
||||
transform/pos = Vector2( 32, 576 )
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
shape_centered = true
|
||||
shape_visible = true
|
||||
passby_press = true
|
||||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_R" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_R" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.9
|
||||
transform/pos = Vector2( 416, 448 )
|
||||
transform/rot = -90.0
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
normal = ExtResource( 14 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -251,13 +298,15 @@ passby_press = true
|
|||
action = ""
|
||||
visibility_mode = 0
|
||||
|
||||
[node name="Bttn_L" type="TouchScreenButton" parent="Control/Buttons"]
|
||||
[node name="Bttn_L" type="TouchScreenButton" parent="Control/Buttons" groups=[
|
||||
"onscreen_controls",
|
||||
]]
|
||||
|
||||
visibility/opacity = 0.9
|
||||
transform/pos = Vector2( 32, 576 )
|
||||
transform/rot = 90.0
|
||||
transform/scale = Vector2( 0.474074, 0.481203 )
|
||||
normal = ExtResource( 5 )
|
||||
normal = ExtResource( 14 )
|
||||
pressed = null
|
||||
bitmask = null
|
||||
shape = null
|
||||
|
|
@ -271,205 +320,115 @@ visibility_mode = 0
|
|||
"milk_hud",
|
||||
]]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 1205, 73 )
|
||||
transform/scale = Vector2( 2, 2 )
|
||||
script/script = ExtResource( 9 )
|
||||
sprite1 = ExtResource( 10 )
|
||||
sprite2 = ExtResource( 11 )
|
||||
sprite3 = ExtResource( 12 )
|
||||
script/script = ExtResource( 18 )
|
||||
each_bottle_value = 33.0
|
||||
bottle_inter_distance = 32
|
||||
initial_bottle_pos = Vector2( -10, -20 )
|
||||
sprite1 = ExtResource( 19 )
|
||||
sprite2 = ExtResource( 20 )
|
||||
sprite3 = ExtResource( 21 )
|
||||
|
||||
[node name="Milk_bottle0" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
[node name="Cowbells" type="Node2D" parent="Control" groups=[
|
||||
"cowbell_hud",
|
||||
]]
|
||||
|
||||
editor/display_folded = true
|
||||
transform/pos = Vector2( 3, 21 )
|
||||
script/script = ExtResource( 22 )
|
||||
|
||||
[node name="Counter" type="RichTextLabel" parent="Control/Cowbells"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 630.0
|
||||
margin/top = 30.0
|
||||
margin/right = 876.0
|
||||
margin/bottom = 81.0
|
||||
custom_fonts/normal_font = ExtResource( 23 )
|
||||
bbcode/enabled = true
|
||||
bbcode/bbcode = "0"
|
||||
visible_characters = -1
|
||||
percent_visible = 1.0
|
||||
|
||||
[node name="bonus_instancer" type="Node2D" parent="Control/Cowbells"]
|
||||
|
||||
transform/pos = Vector2( 642, 43 )
|
||||
|
||||
[node name="next_cowbell_timer" type="Timer" parent="Control/Cowbells"]
|
||||
|
||||
process_mode = 1
|
||||
wait_time = 0.6
|
||||
one_shot = true
|
||||
autostart = false
|
||||
|
||||
[node name="cold_down_timer" type="Timer" parent="Control/Cowbells"]
|
||||
|
||||
process_mode = 1
|
||||
wait_time = 0.005
|
||||
one_shot = false
|
||||
autostart = false
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Control/Cowbells"]
|
||||
|
||||
material/material = SubResource( 4 )
|
||||
transform/pos = Vector2( 586, 45 )
|
||||
transform/scale = Vector2( 3, 3 )
|
||||
texture = ExtResource( 24 )
|
||||
hframes = 3
|
||||
|
||||
[node name="Animation" type="AnimationPlayer" parent="Control/Cowbells/Sprite"]
|
||||
|
||||
playback/process_mode = 0
|
||||
playback/default_blend_time = 0.0
|
||||
root/root = NodePath("..")
|
||||
anims/cowbell_animation_one_shot = ExtResource( 25 )
|
||||
anims/cowbell_animations = ExtResource( 26 )
|
||||
playback/active = false
|
||||
playback/speed = 2.0
|
||||
blend_times = [ ]
|
||||
autoplay = ""
|
||||
|
||||
[node name="Back" parent="Control" instance=ExtResource( 27 )]
|
||||
|
||||
margin/left = 36.0
|
||||
margin/top = 34.0
|
||||
margin/right = 97.0
|
||||
margin/bottom = 89.0
|
||||
text = "<"
|
||||
script/script = SubResource( 5 )
|
||||
|
||||
[node name="in_game_menu" parent="Control/Back" instance=ExtResource( 28 )]
|
||||
|
||||
visibility/visible = false
|
||||
margin/left = -36.0
|
||||
margin/top = -34.0
|
||||
margin/right = 1244.0
|
||||
margin/bottom = 686.0
|
||||
|
||||
[node name="Control" parent="Control" instance=ExtResource( 29 )]
|
||||
|
||||
[node name="ScanLine" type="TextureFrame" parent="."]
|
||||
|
||||
visibility/opacity = 0.0
|
||||
visibility/self_opacity = 0.0
|
||||
material/material = ExtResource( 30 )
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -10.0
|
||||
margin/top = -20.0
|
||||
margin/right = 30.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle1" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -42.0
|
||||
margin/top = -20.0
|
||||
margin/right = -2.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle2" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -74.0
|
||||
margin/top = -20.0
|
||||
margin/right = -34.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle3" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -106.0
|
||||
margin/top = -20.0
|
||||
margin/right = -66.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle4" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -138.0
|
||||
margin/top = -20.0
|
||||
margin/right = -98.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle5" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -170.0
|
||||
margin/top = -20.0
|
||||
margin/right = -130.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle6" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -202.0
|
||||
margin/top = -20.0
|
||||
margin/right = -162.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
|
||||
[node name="Milk_bottle7" type="TextureProgress" parent="Control/Milk_Bar"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = false
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = -234.0
|
||||
margin/top = -20.0
|
||||
margin/right = -194.0
|
||||
margin/bottom = 22.0
|
||||
range/min = 0.0
|
||||
range/max = 100.0
|
||||
range/step = 1.0
|
||||
range/page = 0.0
|
||||
range/value = 0.0
|
||||
range/exp_edit = false
|
||||
range/rounded = false
|
||||
texture/under = null
|
||||
texture/over = ExtResource( 10 )
|
||||
texture/progress = ExtResource( 13 )
|
||||
mode = 3
|
||||
radial_fill/fill_degrees = 360.0
|
||||
radial_fill/center_offset = Vector2( 0, 0 )
|
||||
margin/left = 0.0
|
||||
margin/top = 0.0
|
||||
margin/right = 1280.0
|
||||
margin/bottom = 718.0
|
||||
texture = ExtResource( 31 )
|
||||
modulate = Color( 1, 1, 1, 0 )
|
||||
expand = true
|
||||
stretch_mode = 0
|
||||
script/script = SubResource( 6 )
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_U" to="Control/Buttons" method="_on_Bttn_U_pressed"]
|
||||
|
||||
|
|
@ -491,14 +450,6 @@ radial_fill/center_offset = Vector2( 0, 0 )
|
|||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_D" to="Control/Buttons" method="_on_Bttn_D_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_DR" to="Control/Buttons" method="_on_Bttn_DR_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_DR" to="Control/Buttons" method="_on_Bttn_DR_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_DL" to="Control/Buttons" method="_on_Bttn_DL_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_DL" to="Control/Buttons" method="_on_Bttn_DL_released"]
|
||||
|
||||
[connection signal="pressed" from="Control/Buttons/Bttn_R" to="Control/Buttons" method="_on_Bttn_R_pressed"]
|
||||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_R" to="Control/Buttons" method="_on_Bttn_R_released"]
|
||||
|
|
@ -507,4 +458,10 @@ radial_fill/center_offset = Vector2( 0, 0 )
|
|||
|
||||
[connection signal="released" from="Control/Buttons/Bttn_L" to="Control/Buttons" method="_on_Bttn_L_released"]
|
||||
|
||||
[connection signal="timeout" from="Control/Cowbells/next_cowbell_timer" to="Control/Cowbells" method="_on_next_cowbell_timer_timeout"]
|
||||
|
||||
[connection signal="timeout" from="Control/Cowbells/cold_down_timer" to="Control/Cowbells" method="_on_cold_down_timer_timeout"]
|
||||
|
||||
[connection signal="pressed" from="Control/Back" to="Control/Back" method="_on_Back_pressed"]
|
||||
|
||||
|
||||
|
|
|
|||
162
Scenes/Menu/about.tscn
Normal file
162
Scenes/Menu/about.tscn
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
[gd_scene load_steps=6 format=1]
|
||||
|
||||
[ext_resource path="res://Fonts/pixelated_regular.fnt" type="BitmapFont" id=1]
|
||||
[ext_resource path="res://Sprites/GUI/Buttons/bttn.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Scenes/Menu/button_back.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://Scenes/Menu/main_menu.tscn" type="PackedScene" id=4]
|
||||
|
||||
[sub_resource type="GDScript" id=1]
|
||||
|
||||
script/source = "extends Control
|
||||
|
||||
func _ready():
|
||||
get_node(\"Button\").grab_focus()
|
||||
"
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 0.0
|
||||
margin/top = 0.0
|
||||
margin/right = 40.0
|
||||
margin/bottom = 40.0
|
||||
script/script = SubResource( 1 )
|
||||
|
||||
[node name="Yanara Panel" type="Panel" parent="."]
|
||||
|
||||
anchor/bottom = 1
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 702.0
|
||||
margin/top = 96.0
|
||||
margin/right = 1214.0
|
||||
margin/bottom = -387.0
|
||||
|
||||
[node name="RichTextLabel1" type="Label" parent="Yanara Panel"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 37.0
|
||||
margin/top = 160.0
|
||||
margin/right = 480.0
|
||||
margin/bottom = 307.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "YANARA_INFO"
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="Label1" type="Label" parent="Yanara Panel"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = 66.0
|
||||
margin/top = 128.0
|
||||
margin/right = 450.0
|
||||
margin/bottom = 160.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "Yanara Aristiguieta"
|
||||
align = 1
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Yanara Panel"]
|
||||
|
||||
transform/pos = Vector2( 258, 2.5 )
|
||||
transform/scale = Vector2( 0.737037, 0.740601 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="Daniel Panel" type="Panel" parent="."]
|
||||
|
||||
anchor/bottom = 1
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 74.0
|
||||
margin/top = 96.0
|
||||
margin/right = 586.0
|
||||
margin/bottom = -387.0
|
||||
|
||||
[node name="RichTextLabel1" type="Label" parent="Daniel Panel"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 33.0
|
||||
margin/top = 160.0
|
||||
margin/right = 481.0
|
||||
margin/bottom = 307.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "DANIEL_INFO"
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="Label1" type="Label" parent="Daniel Panel"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = 66.0
|
||||
margin/top = 128.0
|
||||
margin/right = 450.0
|
||||
margin/bottom = 160.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "Daniel Darias"
|
||||
align = 1
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Daniel Panel"]
|
||||
|
||||
transform/pos = Vector2( 258, 2.5 )
|
||||
transform/scale = Vector2( 0.737037, 0.740601 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="Button" parent="." instance=ExtResource( 3 )]
|
||||
|
||||
scene = ExtResource( 4 )
|
||||
|
||||
[node name="Panel 2" type="Panel" parent="."]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 74.0
|
||||
margin/top = 438.0
|
||||
margin/right = 1215.0
|
||||
margin/bottom = 643.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel 2"]
|
||||
|
||||
focus/ignore_mouse = true
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 0
|
||||
margin/left = 10.0
|
||||
margin/top = 11.0
|
||||
margin/right = 1128.0
|
||||
margin/bottom = 192.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "TEXT_LICENSE"
|
||||
autowrap = true
|
||||
percent_visible = 1.0
|
||||
lines_skipped = 0
|
||||
max_lines_visible = -1
|
||||
|
||||
|
||||
4
Scenes/Menu/about_button.gd
Normal file
4
Scenes/Menu/about_button.gd
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
extends Button
|
||||
|
||||
func _on_info_button_pressed():
|
||||
get_tree().change_scene("res://Scenes/Menu/about.tscn")
|
||||
7
Scenes/Menu/back_about_page.gd
Normal file
7
Scenes/Menu/back_about_page.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
extends Button
|
||||
|
||||
export(PackedScene) var scene
|
||||
|
||||
func _on_Button_pressed():
|
||||
#get_tree().change_scene_to(scene)
|
||||
get_parent().get_node("in_game_menu").set_visible(true)
|
||||
15
Scenes/Menu/back_button.gd
Normal file
15
Scenes/Menu/back_button.gd
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
extends Button
|
||||
|
||||
export(PackedScene) var scene
|
||||
|
||||
func _ready():
|
||||
set_process_input(true)
|
||||
|
||||
func _on_Button_pressed():
|
||||
global.save_game()
|
||||
get_tree().set_pause(false)
|
||||
get_tree().change_scene_to(scene)
|
||||
|
||||
func _input(ev):
|
||||
if (ev.is_action_pressed("ui_cancel")):
|
||||
_on_Button_pressed()
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
extends Button
|
||||
|
||||
func _on_Button_pressed():
|
||||
global.level = "res://Scenes/Menu/HUD.tscn"
|
||||
get_tree().change_scene("res://Scenes/Menu/HUD.tscn")
|
||||
func _ready():
|
||||
grab_focus()
|
||||
|
||||
func _on_Button_pressed():
|
||||
get_tree().change_scene("res://Scenes/Menu/level_selector.tscn")
|
||||
|
|
|
|||
27
Scenes/Menu/button_back.tscn
Normal file
27
Scenes/Menu/button_back.tscn
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
[gd_scene load_steps=3 format=1]
|
||||
|
||||
[ext_resource path="res://Fonts/pixelated_title.fnt" type="BitmapFont" id=1]
|
||||
[ext_resource path="res://Scenes/Menu/back_button.gd" type="Script" id=2]
|
||||
|
||||
[node name="Button" type="Button"]
|
||||
|
||||
focus/ignore_mouse = false
|
||||
focus/stop_mouse = true
|
||||
size_flags/horizontal = 2
|
||||
size_flags/vertical = 2
|
||||
margin/left = 524.0
|
||||
margin/top = 648.0
|
||||
margin/right = 742.0
|
||||
margin/bottom = 696.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
toggle_mode = false
|
||||
enabled_focus_mode = 2
|
||||
shortcut = null
|
||||
text = "BTTN_BACK"
|
||||
flat = false
|
||||
script/script = ExtResource( 2 )
|
||||
scene = null
|
||||
|
||||
[connection signal="pressed" from="." to="." method="_on_Button_pressed"]
|
||||
|
||||
|
||||
20
Scenes/Menu/buy_heart.gd
Normal file
20
Scenes/Menu/buy_heart.gd
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
extends Button
|
||||
|
||||
var price = 0
|
||||
|
||||
func _ready():
|
||||
update_price()
|
||||
|
||||
func update_price():
|
||||
price = global.base_price_heart * max(global.increment_price_heart * global.hearts_buyed, 1)
|
||||
get_node("Heart_Label").set_text(str(price))
|
||||
if (price < global.saved_cowbells):
|
||||
set_disabled(false)
|
||||
else:
|
||||
set_disabled(true)
|
||||
|
||||
func _on_Heart_button_pressed():
|
||||
global.buy_heart(price)
|
||||
update_price()
|
||||
get_parent().get_node("Milk_button").update_price()
|
||||
|
||||
19
Scenes/Menu/buy_milk.gd
Normal file
19
Scenes/Menu/buy_milk.gd
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
extends Button
|
||||
|
||||
var price = 0
|
||||
|
||||
func _ready():
|
||||
update_price()
|
||||
|
||||
func update_price():
|
||||
price = global.base_price_milk * max(global.increment_price_milk * global.milk_buyed, 1)
|
||||
get_node("Milk_Label").set_text(str(price))
|
||||
if (price < global.saved_cowbells):
|
||||
set_disabled(false)
|
||||
else:
|
||||
set_disabled(true)
|
||||
|
||||
func _on_Milk_button_pressed():
|
||||
global.buy_milk(price)
|
||||
update_price()
|
||||
get_parent().get_node("Heart_button").update_price()
|
||||
47
Scenes/Menu/cowbells_hud.gd
Normal file
47
Scenes/Menu/cowbells_hud.gd
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
extends Node2D
|
||||
|
||||
const BONUS = preload("res://Scenes/Events/cowbell_bonus.tscn")
|
||||
|
||||
onready var label = get_node("Counter")
|
||||
onready var animation = get_node("Sprite/Animation")
|
||||
onready var next_cowbell_timer = get_node("next_cowbell_timer")
|
||||
onready var cold_down_timer = get_node("cold_down_timer")
|
||||
onready var sprite = get_node("Sprite")
|
||||
onready var base_modulation = Color(1,1,1)
|
||||
onready var instancer = get_node("bonus_instancer")
|
||||
|
||||
var frame_number
|
||||
|
||||
func reset_values():
|
||||
set_counter(global.saved_cowbells, 0)
|
||||
|
||||
func bonus(quantity):
|
||||
var bonus = BONUS.instance()
|
||||
bonus.set_text(str("+",quantity))
|
||||
instancer.add_child(bonus)
|
||||
|
||||
func _ready():
|
||||
animation.play("cowbell_animations")
|
||||
var anim = animation.get_animation("cowbell_animations")
|
||||
next_cowbell_timer.set_wait_time(anim.get_length() / animation.get_speed() )
|
||||
set_counter(global.cowbells, 0)
|
||||
animation.set_active(false)
|
||||
|
||||
func set_counter (var quantity, var acumulated):
|
||||
sprite.set_modulate(Color (1,1 - acumulated * 2,1 - acumulated * 2))
|
||||
label.set_bbcode(" " + String(quantity))
|
||||
animation.set_active(true)
|
||||
next_cowbell_timer.start()
|
||||
cold_down_timer.start()
|
||||
|
||||
func _on_next_cowbell_timer_timeout():
|
||||
sprite.set_frame(0)
|
||||
animation.set_active(false)
|
||||
|
||||
func _on_cold_down_timer_timeout():
|
||||
var current_modulation = sprite.get_modulate()
|
||||
if (current_modulation.g >= base_modulation.g && current_modulation.b >= base_modulation.b):
|
||||
sprite.set_modulate(base_modulation)
|
||||
cold_down_timer.stop()
|
||||
else:
|
||||
sprite.set_modulate(Color (1,current_modulation.g + 0.02 ,current_modulation.b + 0.02))
|
||||
|
|
@ -1,18 +1,14 @@
|
|||
extends Node2D
|
||||
|
||||
# class member variables go here, for example:
|
||||
# var a = 2
|
||||
# var b = "textvar"
|
||||
|
||||
func _ready():
|
||||
# Called every time the node is added to the scene.
|
||||
# Initialization here
|
||||
get_node("VButtonArray/reset").grab_focus()
|
||||
pass
|
||||
|
||||
func _on_reset_pressed():
|
||||
global.release_all()
|
||||
get_tree().change_scene(global.level)
|
||||
|
||||
get_tree().change_scene("res://Scenes/Menu/HUD.tscn")
|
||||
queue_free()
|
||||
|
||||
func _on_main_menu_pressed():
|
||||
get_tree().change_scene("res://menu.tscn")
|
||||
get_tree().change_scene("res://Scenes/Menu/main_menu.tscn")
|
||||
queue_free()
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue