mirror of
https://git.kittycat.homes/zoe/pegchamp.git
synced 2024-08-15 03:15:39 +00:00
first commit
This commit is contained in:
commit
fafcbd1530
223 changed files with 107395 additions and 0 deletions
8
Pegs/DefaultPegCollisionShape.tscn
Normal file
8
Pegs/DefaultPegCollisionShape.tscn
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=1]
|
||||
radius = 4.52453
|
||||
|
||||
[node name="DefaultPegCollisionShape" type="CollisionShape2D"]
|
||||
visible = false
|
||||
shape = SubResource( 1 )
|
||||
62
Pegs/Formations/U.tscn
Normal file
62
Pegs/Formations/U.tscn
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Pegs/Purple/PurplePeg.tscn" type="PackedScene" id=2]
|
||||
|
||||
[node name="U" type="Node2D"]
|
||||
|
||||
[node name="PurplePeg17" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 224, 176 )
|
||||
|
||||
[node name="PurplePeg" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 48 )
|
||||
|
||||
[node name="PurplePeg2" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 48 )
|
||||
|
||||
[node name="PurplePeg3" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 64 )
|
||||
|
||||
[node name="PurplePeg4" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 64 )
|
||||
|
||||
[node name="PurplePeg5" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 80 )
|
||||
|
||||
[node name="PurplePeg6" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 80 )
|
||||
|
||||
[node name="PurplePeg7" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 96 )
|
||||
|
||||
[node name="PurplePeg8" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 96 )
|
||||
|
||||
[node name="PurplePeg9" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 112 )
|
||||
|
||||
[node name="PurplePeg10" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 112 )
|
||||
|
||||
[node name="PurplePeg11" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 128 )
|
||||
|
||||
[node name="PurplePeg12" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 128 )
|
||||
|
||||
[node name="PurplePeg13" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 144 )
|
||||
|
||||
[node name="PurplePeg14" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 144 )
|
||||
|
||||
[node name="PurplePeg15" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 200, 160 )
|
||||
|
||||
[node name="PurplePeg18" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 208, 172 )
|
||||
|
||||
[node name="PurplePeg19" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 240, 172 )
|
||||
|
||||
[node name="PurplePeg16" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 248, 160 )
|
||||
31
Pegs/Green/GreenPeg.gd
Normal file
31
Pegs/Green/GreenPeg.gd
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
extends StaticBody2D
|
||||
|
||||
var can_be_exploded = false
|
||||
var particle_emitting_direction = Vector2.ZERO
|
||||
|
||||
# turns the pegs green
|
||||
func make_green():
|
||||
explode()
|
||||
|
||||
func explode():
|
||||
if(can_be_exploded):
|
||||
spawn_hit_particles(particle_emitting_direction)
|
||||
queue_free()
|
||||
|
||||
func _on_GraceTimer_timeout():
|
||||
can_be_exploded = true
|
||||
|
||||
func set_particle_direction(vector):
|
||||
particle_emitting_direction = vector
|
||||
|
||||
# spawns particles
|
||||
func spawn_hit_particles(vector):
|
||||
set_particle_direction(vector)
|
||||
var Hit_effect = load("res://Pegs/Green/HitParticles.tscn")
|
||||
var hit_effect = Hit_effect.instance()
|
||||
var main = get_tree().current_scene
|
||||
|
||||
hit_effect.position = position
|
||||
hit_effect.emitting_direction = particle_emitting_direction
|
||||
|
||||
main.add_child(hit_effect)
|
||||
45
Pegs/Green/GreenPeg.tscn
Normal file
45
Pegs/Green/GreenPeg.tscn
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://Pegs/Green/green.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Pegs/Green/GreenPeg.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Pegs/DefaultPegCollisionShape.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Pegs/Green/GreenPegAnimationPlayer.gd" type="Script" id=5]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id=1]
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
length = 0.5
|
||||
step = 0.05
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.01, 0.1, 0.2, 0.3, 0.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 1, 1 ), Vector2( 1.75, 1.75 ), Vector2( 0.5, 0.5 ), Vector2( 1.5, 1.5 ), Vector2( 0.75, 0.75 ), Vector2( 1, 1 ) ]
|
||||
}
|
||||
|
||||
[node name="GreenPeg" type="StaticBody2D"]
|
||||
collision_mask = 0
|
||||
physics_material_override = SubResource( 1 )
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
[node name="DefaultPegCollisionShape" parent="." instance=ExtResource( 4 )]
|
||||
|
||||
[node name="GreenPegAnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/GetBigger = SubResource( 2 )
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="GraceTimer" type="Timer" parent="."]
|
||||
wait_time = 0.25
|
||||
one_shot = true
|
||||
autostart = true
|
||||
|
||||
[connection signal="timeout" from="GraceTimer" to="." method="_on_GraceTimer_timeout"]
|
||||
11
Pegs/Green/GreenPegAnimationPlayer.gd
Normal file
11
Pegs/Green/GreenPegAnimationPlayer.gd
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
extends AnimationPlayer
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
play("GetBigger")
|
||||
32
Pegs/Green/HitParticles.tscn
Normal file
32
Pegs/Green/HitParticles.tscn
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://Pegs/HitParticles.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Effects/greenParticle.png" type="Texture" id=2]
|
||||
|
||||
[sub_resource type="ParticlesMaterial" id=1]
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 2.0
|
||||
flag_disable_z = true
|
||||
direction = Vector3( 0, 0, 0 )
|
||||
spread = 24.0
|
||||
gravity = Vector3( 0, 100, 0 )
|
||||
initial_velocity = 100.0
|
||||
initial_velocity_random = 0.5
|
||||
orbit_velocity = 0.0
|
||||
orbit_velocity_random = 0.0
|
||||
radial_accel_random = 1.0
|
||||
damping = 50.0
|
||||
damping_random = 0.5
|
||||
|
||||
[node name="HitParticles" type="Particles2D"]
|
||||
scale = Vector2( 1.6, 1.6 )
|
||||
z_index = -10
|
||||
emitting = false
|
||||
amount = 16
|
||||
lifetime = 5.0
|
||||
one_shot = true
|
||||
explosiveness = 0.95
|
||||
local_coords = false
|
||||
process_material = SubResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
script = ExtResource( 1 )
|
||||
BIN
Pegs/Green/green.png
Normal file
BIN
Pegs/Green/green.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 148 B |
34
Pegs/Green/green.png.import
Normal file
34
Pegs/Green/green.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/green.png-7bc01a95ef40770eb0d9b5e6c38ddf7f.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Pegs/Green/green.png"
|
||||
dest_files=[ "res://.import/green.png-7bc01a95ef40770eb0d9b5e6c38ddf7f.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
||||
9
Pegs/HitParticles.gd
Normal file
9
Pegs/HitParticles.gd
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
extends Particles2D
|
||||
var emitting_direction = Vector2();
|
||||
|
||||
func _ready():
|
||||
emitting = true
|
||||
#set particle direction
|
||||
var x = emitting_direction.x
|
||||
var y = emitting_direction.y
|
||||
process_material.set_direction(Vector3(x,y,0))
|
||||
BIN
Pegs/Pink/Pink.png
Normal file
BIN
Pegs/Pink/Pink.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 B |
34
Pegs/Pink/Pink.png.import
Normal file
34
Pegs/Pink/Pink.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/Pink.png-aeb2336a145dc2e1b4431d537218029c.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Pegs/Pink/Pink.png"
|
||||
dest_files=[ "res://.import/Pink.png-aeb2336a145dc2e1b4431d537218029c.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
||||
46
Pegs/Pink/PinkPeg.gd
Normal file
46
Pegs/Pink/PinkPeg.gd
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
extends StaticBody2D
|
||||
|
||||
func _ready():
|
||||
GameStats.pinks_left += 1
|
||||
|
||||
# turns the pegs green
|
||||
func make_green():
|
||||
# preload a green peg
|
||||
var Green_peg = load("res://Pegs/Green/GreenPeg.tscn")
|
||||
# instance it
|
||||
var green_peg = Green_peg.instance()
|
||||
# global position in case the parent node gets transformed
|
||||
green_peg.global_position = global_position
|
||||
|
||||
# get the main scene of current peg and add new peg to it
|
||||
var main = get_tree().current_scene
|
||||
main.add_child(green_peg)
|
||||
|
||||
#finally delete the old peg
|
||||
GameStats.pinks_left -= 1
|
||||
win_level()
|
||||
Engine.time_scale = 1
|
||||
queue_free()
|
||||
|
||||
func win_level():
|
||||
if GameStats.pinks_left <= 0:
|
||||
GameStats.level_won = true
|
||||
|
||||
func bouncy():
|
||||
pass
|
||||
|
||||
# below is the slowmo stuff
|
||||
func _on_Area2D_body_entered(_body):
|
||||
Engine.time_scale = clamp(Engine.time_scale * 0.25, 0.1, 1)
|
||||
$SlowmoTimer.start()
|
||||
|
||||
func _on_Area2D_body_exited(_body):
|
||||
Engine.time_scale = 1
|
||||
|
||||
func _on_LastPegCollision_body_entered(_body):
|
||||
if GameStats.pinks_left <= 1:
|
||||
Engine.time_scale = clamp(Engine.time_scale * 0.15, 0.1, 1)
|
||||
$SlowmoTimer.start()
|
||||
|
||||
func _on_Timer_timeout():
|
||||
Engine.time_scale = 1
|
||||
43
Pegs/Pink/PinkPeg.tscn
Normal file
43
Pegs/Pink/PinkPeg.tscn
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://Pegs/Pink/PinkPeg.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Pegs/DefaultPegCollisionShape.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://Pegs/Pink/Pink.png" type="Texture" id=3]
|
||||
|
||||
[sub_resource type="CircleShape2D" id=2]
|
||||
radius = 10.2018
|
||||
|
||||
[sub_resource type="CircleShape2D" id=1]
|
||||
radius = 33.0151
|
||||
|
||||
[node name="PinkPeg" type="StaticBody2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="RegularCollision" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="RegularCollision"]
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="SlowmoTimer" type="Timer" parent="."]
|
||||
wait_time = 0.075
|
||||
one_shot = true
|
||||
|
||||
[node name="DefaultPegCollisionShape" parent="." instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Pink" type="Sprite" parent="."]
|
||||
texture = ExtResource( 3 )
|
||||
|
||||
[node name="LastPegCollision" type="Area2D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="LastPegCollision"]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[connection signal="body_entered" from="RegularCollision" to="." method="_on_Area2D_body_entered"]
|
||||
[connection signal="body_exited" from="RegularCollision" to="." method="_on_Area2D_body_exited"]
|
||||
[connection signal="timeout" from="SlowmoTimer" to="." method="_on_Timer_timeout"]
|
||||
[connection signal="body_entered" from="LastPegCollision" to="." method="_on_LastPegCollision_body_entered"]
|
||||
[connection signal="body_exited" from="LastPegCollision" to="." method="_on_Area2D_body_exited"]
|
||||
21
Pegs/Purple/PurplePeg.gd
Normal file
21
Pegs/Purple/PurplePeg.gd
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
extends StaticBody2D
|
||||
|
||||
# turns the pegs green
|
||||
func make_green():
|
||||
# preload a green peg
|
||||
var Green_peg = load("res://Pegs/Green/GreenPeg.tscn")
|
||||
# instance it
|
||||
var green_peg = Green_peg.instance()
|
||||
# take care of positioning
|
||||
# green_peg.rotation = rotation + 5
|
||||
green_peg.global_position = global_position
|
||||
|
||||
# get the main scene of current peg and add new peg to it
|
||||
var main = get_tree().current_scene
|
||||
main.add_child(green_peg)
|
||||
|
||||
#finally delete the old peg
|
||||
queue_free()
|
||||
|
||||
func bouncy():
|
||||
pass
|
||||
15
Pegs/Purple/PurplePeg.tscn
Normal file
15
Pegs/Purple/PurplePeg.tscn
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://Pegs/Purple/PurplePeg.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Pegs/Purple/purple.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Pegs/DefaultPegCollisionShape.tscn" type="PackedScene" id=3]
|
||||
|
||||
[node name="PurplePeg" type="StaticBody2D"]
|
||||
collision_mask = 0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="DefaultPegCollisionShape" parent="." instance=ExtResource( 3 )]
|
||||
visible = false
|
||||
BIN
Pegs/Purple/purple.png
Normal file
BIN
Pegs/Purple/purple.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 145 B |
34
Pegs/Purple/purple.png.import
Normal file
34
Pegs/Purple/purple.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/purple.png-88dbc1a6ab27250871e0c679caeb21f9.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Pegs/Purple/purple.png"
|
||||
dest_files=[ "res://.import/purple.png-88dbc1a6ab27250871e0c679caeb21f9.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue