Compare commits

...

4 commits

Author SHA1 Message Date
c5851bd288 Mrs. Sex takeover 2025-07-17 10:12:06 -06:00
9748c64035 Set up exports 2025-03-25 13:33:43 -04:00
da17fbc52e this dragged out too long.. 2025-03-25 01:50:08 -04:00
6344896134 i hate revolution 2083 2025-03-24 23:49:56 -04:00
9 changed files with 411 additions and 279 deletions

View file

@ -29,6 +29,7 @@ func skip_cutscene() -> void:
Fade.fade_out(Options.transition_speed_secs)
yield(Fade, "fade_finished")
animation_player.seek(cutscene_skip)
$Label.rect_position.y = -99999 # stupid 1.1 stuff
Fade.fade_in(Options.transition_speed_secs)
func kill_cop() -> void:

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=46 format=2]
[gd_scene load_steps=47 format=2]
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=1]
[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=2]
@ -10,7 +10,6 @@
[ext_resource path="res://tilesets/t_laboratory.tres" type="TileSet" id=8]
[ext_resource path="res://graphics/npc/fami_human.png" type="Texture" id=9]
[ext_resource path="res://cutscenes/fami_cutscene.gd" type="Script" id=10]
[ext_resource path="res://audio/sounds/fami_voice.ogg" type="AudioStream" id=11]
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=12]
[ext_resource path="res://graphics/collectibles/shard.png" type="Texture" id=13]
[ext_resource path="res://graphics/enemy/cop/scope_walk.png" type="Texture" id=14]
@ -235,19 +234,20 @@ tracks/10/keys = {
[sub_resource type="Animation" id=2]
resource_name = "cutscene"
length = 93.0
length = 100.0
step = 0.05
tracks/0/type = "value"
tracks/0/path = NodePath("Label:text")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/enabled = false
tracks/0/keys = {
"times": PoolRealArray( 0.25, 5.3, 13.2, 19.25, 28.75, 37.3, 46.8, 51.8, 58.3, 59.25, 78.75 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"times": PoolRealArray( 0, 4.5, 9.5, 13.5, 18.5, 22.5, 26.5, 30.5, 34.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 2,
"values": [ "Aha! so you've made it this far, however your efforts are all in vain.", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society would never work!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "", "" ]
"values": [ "So you've made it this far... too bad your efforts are all in vain.", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "You plan to hijack my wonderful future, eh? Whaddya kids call it? A revolution?", "Ha! I already started my own revolution in 2068.", "You know what they say, the freer the market, the freer the people! Ever since then, I never felt so free!", "You're such a fool. The perfect tool for the reconstruction of the Zircon Ultima.", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!!!" ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("FamiVoice:playing")
@ -256,7 +256,7 @@ tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0.25, 78.75 ),
"times": PoolRealArray( 0.25, 96 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ true, false ]
@ -268,7 +268,7 @@ tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0.25, 59.25, 60.75 ),
"times": PoolRealArray( 0.25, 76.5, 78 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Vector2( -8, 169 ), Vector2( -8, 169 ), Vector2( 72, 169 ) ]
@ -280,7 +280,7 @@ tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0, 59.25, 60.75 ),
"times": PoolRealArray( 0, 76.5, 78 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ "gun", "walk", "gun" ]
@ -292,7 +292,7 @@ tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.25, 61.75, 63.75, 64.25, 69.75, 71.75, 75.75, 76.25 ),
"times": PoolRealArray( 0.25, 79, 81, 81.5, 87, 89, 93, 93.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ "idle", "walk", "idle", "punch", "walk", "idle", "shrink", "orb" ]
@ -304,7 +304,7 @@ tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0.25, 61.75, 63.75, 69.75, 71.75, 75.75, 77.75, 78.75 ),
"times": PoolRealArray( 0.25, 79, 81, 87, 89, 93, 95, 96 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 105, 167 ), Vector2( 105, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 83 ) ]
@ -316,7 +316,7 @@ tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0.5, 65.5, 70.75 ),
"times": PoolRealArray( 0.5, 82.8, 88 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ false, true, false ]
@ -328,7 +328,7 @@ tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0.25, 72.75, 75.75 ),
"times": PoolRealArray( 0.25, 90, 93 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ false, true, false ]
@ -340,7 +340,7 @@ tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0.25, 74.75, 75.75 ),
"times": PoolRealArray( 0.25, 92, 93 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 1 ) ]
@ -352,7 +352,7 @@ tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0.25, 74.75, 75.75 ),
"times": PoolRealArray( 0.25, 92, 93 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 1 ) ]
@ -364,7 +364,7 @@ tracks/10/loop_wrap = true
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/keys = {
"times": PoolRealArray( 78.75 ),
"times": PoolRealArray( 96 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "cutscene_finished" ],
@ -378,7 +378,7 @@ tracks/11/loop_wrap = true
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/keys = {
"times": PoolRealArray( 0, 72.75 ),
"times": PoolRealArray( 0, 90 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ false, true ]
@ -390,7 +390,7 @@ tracks/12/loop_wrap = true
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/keys = {
"times": PoolRealArray( 0, 65.5 ),
"times": PoolRealArray( 0, 82.8 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ false, true ]
@ -402,7 +402,7 @@ tracks/13/loop_wrap = true
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/keys = {
"times": PoolRealArray( 0, 76.5 ),
"times": PoolRealArray( 0, 93.8 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ false, true ]
@ -414,10 +414,10 @@ tracks/14/loop_wrap = true
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/keys = {
"times": PoolRealArray( 0, 2.6, 2.7, 2.8, 8, 8.1, 8.2, 12.4, 12.5, 13, 17.1092, 17.2092, 18.3092, 25.8, 25.9, 27.9, 36.6, 36.7, 38.7, 41.4, 41.8, 42.2, 42.6, 44.3, 45, 45.5, 46, 46.5, 47.2, 47.7, 48.2, 48.8, 49.5, 50, 50.5, 51, 51.7, 52.2, 52.7, 53.3, 54, 54.5, 55, 55.5, 56.2, 56.7, 57.2, 57.8, 58.5, 59, 59.5, 60.2, 60.8, 61, 61.5, 61.6, 64.25, 71.75, 71.85, 71.975, 72.125, 73, 73.1 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03526, 1, 1, 1.03526, 1, 1.03526, 1, 1.03526, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"times": PoolRealArray( 0, 2.6, 2.7, 2.8, 8, 8.1, 8.2, 12.4, 12.5, 13, 17.1092, 17.2092, 18.3092, 22.25, 24.25, 30.25, 30.5, 32.5, 40.25, 40.75, 41.25, 41.5, 48, 48.75, 49.25, 49.75, 50.25, 51, 51.5, 52, 52.5, 53.25, 53.75, 54.25, 54.75, 55.5, 56, 56.5, 57, 57.75, 58.25, 58.75, 60.75, 61.5, 62, 62.5, 63, 63.75, 64.25, 64.75, 65.25, 66, 66.5, 67, 67.5, 68.25, 68.75, 69.25, 69.75, 70.5, 71, 71.5, 72.25, 73, 73.5, 74, 74.5, 78, 78.15, 78.3, 78.45, 89.8, 90, 90.2, 90.3, 90.4 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03526, 1, 1, 1.03526, 1, 1.03526, 1, 1.03526, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 0, 17 ), Vector2( 0, 0 ), Vector2( 0, 16 ), Vector2( 0, 0 ), Vector2( 0, 17 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 16 ), Vector2( 0, 0 ) ]
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 0 ), Vector2( 0, 19 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 1, 12 ), Vector2( 0, 19 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 1, 18 ), Vector2( 2, 18 ), Vector2( 3, 18 ), Vector2( 0, 18 ), Vector2( 0, 17 ), Vector2( 0, 0 ), Vector2( 0, 16 ), Vector2( 0, 17 ), Vector2( 1, 12 ), Vector2( 0, 12 ), Vector2( 0, 12 ), Vector2( 0, 16 ), Vector2( 0, 0 ) ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("SgIdle:flip_h")
@ -426,7 +426,7 @@ tracks/15/loop_wrap = true
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/keys = {
"times": PoolRealArray( 0, 61.5, 61.6, 73 ),
"times": PoolRealArray( 0, 50.75, 78.45, 90.4 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ false, false, true, false ]
@ -438,7 +438,7 @@ tracks/16/loop_wrap = true
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/keys = {
"times": PoolRealArray( 64.25, 65.5 ),
"times": PoolRealArray( 81.5, 82.8 ),
"transitions": PoolRealArray( 1, 1 ),
"values": [ {
"args": [ ],
@ -455,11 +455,212 @@ tracks/17/loop_wrap = true
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/keys = {
"times": PoolRealArray( -0.1, 60.5 ),
"times": PoolRealArray( -0.1, 78 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ false, true ]
}
tracks/18/type = "value"
tracks/18/path = NodePath("Label:percent_visible")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/imported = false
tracks/18/enabled = false
tracks/18/keys = {
"times": PoolRealArray( 0, 3, 4, 4.5, 8, 9, 9.5, 12, 13, 13.5, 17, 18, 18.5, 21, 22, 22.5, 25, 26, 26.5, 29, 30, 30.5, 33, 34, 34.5, 37 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0 ]
}
tracks/19/type = "value"
tracks/19/path = NodePath("Label:visible")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/imported = false
tracks/19/enabled = false
tracks/19/keys = {
"times": PoolRealArray( 0, 4, 4.5, 9, 9.5, 13, 13.5, 18, 18.5, 22, 22.5, 26, 26.5, 30, 30.5, 34, 34.5, 39 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false ]
}
[sub_resource type="Animation" id=27]
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("ShardRain:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ false ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("ShardParticles:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("FamiVoice:playing")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("FamiHuman:material:shader_param/background_color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 0.396078, 1, 1, 0 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("FamiHuman:material:shader_param/arc_color")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Color( 0.345098, 0.74902, 0.878431, 0 ) ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("Label:text")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ "" ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("FamiHuman:position")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 160, 167 ) ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("SgIdle:frame_coords")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("SgIdle:flip_h")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ false ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("FamiHuman:animation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ "idle" ]
}
tracks/10/type = "value"
tracks/10/path = NodePath("Cop:position")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( -8, 169 ) ]
}
[sub_resource type="Animation" id=28]
resource_name = "cutscene"
length = 93.0
step = 0.25
tracks/0/type = "value"
tracks/0/path = NodePath("Label:text")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 4.5, 9.5, 13.5, 18.5, 22.5, 26.5, 30.5, 34.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 2,
"values": [ "So you've made it this far... too bad your efforts are all in vain.", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "You plan to hijack my wonderful future, eh? Whaddya kids call it? A revolution?", "Ha! I already started my own revolution in 2068.", "You know what they say, the freer the market, the freer the people! Ever since then, I never felt so free!", "You're such a fool. The perfect tool for the reconstruction of the Zircon Ultima.", "While you've been on your gay little adventure collecting shards, I've been waiting for this very moment to take them all from you!", "Have at you!!!" ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Label:percent_visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 3, 4, 4.5, 8, 9, 9.5, 12, 13, 13.5, 17, 18, 18.5, 21, 22, 22.5, 25, 26, 26.5, 29, 30, 30.5, 33, 34, 34.5, 35.25 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Label:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 4, 4.5, 9, 9.5, 13, 13.5, 18, 18.5, 22, 22.5, 26, 26.5, 30, 30.5, 34, 34.5, 37 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false ]
}
[sub_resource type="ShaderMaterial" id=8]
shader = ExtResource( 12 )
@ -529,6 +730,7 @@ theme = ExtResource( 3 )
align = 1
valign = 1
autowrap = true
percent_visible = 0.0
[node name="FamiHuman" type="AnimatedSprite" parent="."]
material = ExtResource( 19 )
@ -548,7 +750,6 @@ vframes = 20
script = ExtResource( 5 )
[node name="FamiVoice" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 11 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "cutscene"
@ -556,6 +757,13 @@ playback_process_mode = 0
anims/RESET = SubResource( 16 )
anims/cutscene = SubResource( 2 )
[node name="labelanim" type="AnimationPlayer" parent="."]
autoplay = "cutscene"
playback_process_mode = 0
playback_speed = 0.5
anims/RESET = SubResource( 27 )
anims/cutscene = SubResource( 28 )
[node name="Cop" type="AnimatedSprite" parent="."]
material = SubResource( 8 )
position = Vector2( -8, 169 )

View file

@ -7,7 +7,7 @@ custom_features=""
export_filter="all_resources"
include_filter="scoreboard_host.txt"
exclude_filter=""
export_path="build/Revolution 2083.exe"
export_path="build/windows/Revolution 2083.exe"
script_export_mode=1
script_encryption_key=""
@ -33,13 +33,13 @@ codesign/description=""
codesign/custom_options=PoolStringArray( )
application/modify_resources=true
application/icon="res://icon.ico"
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/icon_interpolation=0
application/file_version="1.1.0.0"
application/product_version="1.1.0.0"
application/company_name="Team SG"
application/product_name="Revolution 2083"
application/file_description=""
application/copyright=""
application/file_description="Change the future!"
application/copyright="Team SG"
application/trademarks=""
[preset.1]
@ -60,7 +60,7 @@ script_encryption_key=""
custom_template/debug=""
custom_template/release=""
binary_format/architecture="x86_64"
binary_format/embed_pck=true
binary_format/embed_pck=false
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
@ -104,207 +104,87 @@ progressive_web_app/background_color=Color( 0, 0, 0, 1 )
[preset.3]
name="android"
platform="Android"
name="Mac OSX"
platform="Mac OSX"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter="scoreboard_host.txt"
include_filter=""
exclude_filter=""
export_path="build/android/hero-mark-2.apk"
export_path="build/macos/Revolution 2083.zip"
script_export_mode=1
script_encryption_key=""
[preset.3.options]
export/distribution_type=1
custom_template/debug=""
custom_template/release=""
custom_build/use_custom_build=false
custom_build/export_format=0
custom_build/min_sdk=""
custom_build/target_sdk=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
keystore/debug=""
keystore/debug_user=""
keystore/debug_password=""
keystore/release=""
keystore/release_user=""
keystore/release_password=""
one_click_deploy/clear_previous_install=true
version/code=1
version/name="1.0"
package/unique_name="org.godotengine.$genname"
package/name=""
package/signed=true
package/classify_as_game=true
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
user_data_backup/allow=false
command_line/extra_args=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
permissions/custom_permissions=PoolStringArray( )
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
permissions/access_location_extra_commands=false
permissions/access_mock_location=false
permissions/access_network_state=false
permissions/access_surface_flinger=false
permissions/access_wifi_state=false
permissions/account_manager=false
permissions/add_voicemail=false
permissions/authenticate_accounts=false
permissions/battery_stats=false
permissions/bind_accessibility_service=false
permissions/bind_appwidget=false
permissions/bind_device_admin=false
permissions/bind_input_method=false
permissions/bind_nfc_service=false
permissions/bind_notification_listener_service=false
permissions/bind_print_service=false
permissions/bind_remoteviews=false
permissions/bind_text_service=false
permissions/bind_vpn_service=false
permissions/bind_wallpaper=false
permissions/bluetooth=false
permissions/bluetooth_admin=false
permissions/bluetooth_privileged=false
permissions/brick=false
permissions/broadcast_package_removed=false
permissions/broadcast_sms=false
permissions/broadcast_sticky=false
permissions/broadcast_wap_push=false
permissions/call_phone=false
permissions/call_privileged=false
permissions/camera=false
permissions/capture_audio_output=false
permissions/capture_secure_video_output=false
permissions/capture_video_output=false
permissions/change_component_enabled_state=false
permissions/change_configuration=false
permissions/change_network_state=false
permissions/change_wifi_multicast_state=false
permissions/change_wifi_state=false
permissions/clear_app_cache=false
permissions/clear_app_user_data=false
permissions/control_location_updates=false
permissions/delete_cache_files=false
permissions/delete_packages=false
permissions/device_power=false
permissions/diagnostic=false
permissions/disable_keyguard=false
permissions/dump=false
permissions/expand_status_bar=false
permissions/factory_test=false
permissions/flashlight=false
permissions/force_back=false
permissions/get_accounts=false
permissions/get_package_size=false
permissions/get_tasks=false
permissions/get_top_activity_info=false
permissions/global_search=false
permissions/hardware_test=false
permissions/inject_events=false
permissions/install_location_provider=false
permissions/install_packages=false
permissions/install_shortcut=false
permissions/internal_system_window=false
permissions/internet=false
permissions/kill_background_processes=false
permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
permissions/modify_phone_state=false
permissions/mount_format_filesystems=false
permissions/mount_unmount_filesystems=false
permissions/nfc=false
permissions/persistent_activity=false
permissions/post_notifications=false
permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_phone_state=false
permissions/read_profile=false
permissions/read_sms=false
permissions/read_social_stream=false
permissions/read_sync_settings=false
permissions/read_sync_stats=false
permissions/read_user_dictionary=false
permissions/reboot=false
permissions/receive_boot_completed=false
permissions/receive_mms=false
permissions/receive_sms=false
permissions/receive_wap_push=false
permissions/record_audio=false
permissions/reorder_tasks=false
permissions/restart_packages=false
permissions/send_respond_via_message=false
permissions/send_sms=false
permissions/set_activity_watcher=false
permissions/set_alarm=false
permissions/set_always_finish=false
permissions/set_animation_scale=false
permissions/set_debug_app=false
permissions/set_orientation=false
permissions/set_pointer_speed=false
permissions/set_preferred_applications=false
permissions/set_process_limit=false
permissions/set_time=false
permissions/set_time_zone=false
permissions/set_wallpaper=false
permissions/set_wallpaper_hints=false
permissions/signal_persistent_processes=false
permissions/status_bar=false
permissions/subscribed_feeds_read=false
permissions/subscribed_feeds_write=false
permissions/system_alert_window=false
permissions/transmit_ir=false
permissions/uninstall_shortcut=false
permissions/update_device_stats=false
permissions/use_credentials=false
permissions/use_sip=false
permissions/vibrate=false
permissions/wake_lock=false
permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
permissions/write_secure_settings=false
permissions/write_settings=false
permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
application/name="Revolution 2083"
application/icon="res://icon.png"
application/icon_interpolation=4
application/identifier="club.teamsg.hero-mark-2"
application/signature=""
application/app_category="Arcade-games"
application/short_version="1.0"
application/version="1.0"
application/copyright=""
application/min_macos_version="10.12"
display/high_res=false
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
xcode/sdk_build="22C55"
xcode/sdk_name="macosx13.1"
xcode/xcode_version="1420"
xcode/xcode_build="14C18"
codesign/codesign=1
codesign/installer_identity=""
codesign/apple_team_id=""
codesign/identity=""
codesign/certificate_file=""
codesign/certificate_password=""
codesign/provisioning_profile=""
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/custom_options=PoolStringArray( )
notarization/notarization=0
notarization/apple_id_name=""
notarization/apple_id_password=""
notarization/api_uuid=""
notarization/api_key=""
notarization/api_key_id=""
privacy/microphone_usage_description=""
privacy/camera_usage_description=""
privacy/location_usage_description=""
privacy/address_book_usage_description=""
privacy/calendar_usage_description=""
privacy/photos_library_usage_description=""
privacy/desktop_folder_usage_description=""
privacy/documents_folder_usage_description=""
privacy/downloads_folder_usage_description=""
privacy/network_volumes_usage_description=""
privacy/removable_volumes_usage_description=""
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

@ -627,10 +627,10 @@ tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 2, 3, 5, 6, 10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51, 55, 56, 60, 61, 65, 66, 70, 71, 75, 76, 80, 81, 85, 86, 90, 91, 95 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"times": PoolRealArray( 0, 2, 3, 5, 6, 10, 11, 15, 16, 20, 21, 25, 26, 30, 31, 35, 36, 40, 41, 45, 46, 50, 51, 55, 56, 60, 61, 65, 66, 70, 71, 75, 76, 80, 81, 85, 86, 90 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( -256, 0 ), Vector2( -256, 0 ), Vector2( -512, 0 ), Vector2( -512, 0 ), Vector2( -768, 0 ), Vector2( -768, 0 ), Vector2( -1024, 0 ), Vector2( -1024, 0 ), Vector2( -1280, 0 ), Vector2( -1280, 0 ), Vector2( -1536, 0 ), Vector2( -1536, 0 ), Vector2( -1792, 0 ), Vector2( -1792, 0 ), Vector2( -2048, 0 ), Vector2( -2048, 0 ), Vector2( -2304, 0 ), Vector2( -2304, 0 ), Vector2( -2560, 0 ), Vector2( -2560, 0 ), Vector2( -2816, 0 ), Vector2( -2816, 0 ), Vector2( -3072, 0 ), Vector2( -3072, 0 ), Vector2( -3328, 0 ), Vector2( -3328, 0 ), Vector2( -3584, 0 ), Vector2( -3584, 0 ), Vector2( -3840, 0 ), Vector2( -3840, 0 ), Vector2( -4096, 0 ), Vector2( -4096, 0 ), Vector2( -4352, 0 ), Vector2( -4352, 0 ), Vector2( -4608, 0 ), Vector2( -4608, 0 ), Vector2( -4864, 0 ), Vector2( -4864, 0 ) ]
"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( -256, 0 ), Vector2( -256, 0 ), Vector2( -512, 0 ), Vector2( -512, 0 ), Vector2( -768, 0 ), Vector2( -768, 0 ), Vector2( -1024, 0 ), Vector2( -1024, 0 ), Vector2( -1280, 0 ), Vector2( -1280, 0 ), Vector2( -1536, 0 ), Vector2( -1536, 0 ), Vector2( -1792, 0 ), Vector2( -1792, 0 ), Vector2( -2048, 0 ), Vector2( -2048, 0 ), Vector2( -2304, 0 ), Vector2( -2304, 0 ), Vector2( -2560, 0 ), Vector2( -2560, 0 ), Vector2( -2816, 0 ), Vector2( -2816, 0 ), Vector2( -3072, 0 ), Vector2( -3072, 0 ), Vector2( -3328, 0 ), Vector2( -3328, 0 ), Vector2( -3584, 0 ), Vector2( -3584, 0 ), Vector2( -3840, 0 ), Vector2( -3840, 0 ), Vector2( -4096, 0 ), Vector2( -4096, 0 ), Vector2( -4352, 0 ), Vector2( -4352, 0 ), Vector2( -4608, 0 ), Vector2( -4608, 0 ) ]
}
[node name="Credits" type="Node" groups=["map"]]
@ -685,17 +685,17 @@ text = "Game Staff"
[node name="RollCall" type="Label" parent="Control/TeamSG"]
modulate = Color( 0.426872, 0.218491, 0.433594, 1 )
margin_left = 2735.0
margin_left = 2479.0
margin_top = -15.0
margin_right = 2927.0
margin_right = 2671.0
margin_bottom = 1.0
theme = SubResource( 93 )
text = "Roll Call!!!"
[node name="RollCall2" type="Label" parent="Control/TeamSG"]
margin_left = 2735.0
margin_left = 2479.0
margin_top = -17.0
margin_right = 2927.0
margin_right = 2671.0
margin_bottom = -1.0
theme = SubResource( 93 )
text = "Roll Call!!!"
@ -804,23 +804,12 @@ Character design help"
align = 1
valign = 1
[node name="GasStationCoffee" type="Label" parent="Control"]
[node name="Wolfboy" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 1792.0
margin_right = 2048.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-Amber \"fami\" coffee-
voice of \"fami\""
align = 1
valign = 1
[node name="Wolfboy" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 2048.0
margin_right = 2304.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-WolfBoy \"SG-2083\"-
\"infiltration\" border"
align = 1
@ -828,8 +817,8 @@ valign = 1
[node name="Bodhi" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 2304.0
margin_right = 2560.0
margin_left = 2048.0
margin_right = 2304.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-Bodhi \"eviscerator\" darner-
@ -839,8 +828,8 @@ valign = 1
[node name="Playtesters" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 2560.0
margin_right = 2816.0
margin_left = 2304.0
margin_right = 2560.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-Our playtesters-
@ -857,8 +846,8 @@ valign = 1
[node name="WonderingNow" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 2816.0
margin_right = 3072.0
margin_left = 2560.0
margin_right = 2816.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-You're wondering now-
@ -875,8 +864,8 @@ valign = 1
[node name="SpecialThanks" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 3072.0
margin_right = 3328.0
margin_left = 2816.0
margin_right = 3072.0
margin_bottom = 192.0
theme = ExtResource( 6 )
text = "-Special thanks-
@ -890,9 +879,9 @@ valign = 1
[node name="Playername" type="Label" parent="Control"]
material = ExtResource( 4 )
margin_left = 3072.0
margin_left = 2816.0
margin_top = 123.0
margin_right = 3328.0
margin_right = 3072.0
margin_bottom = 133.0
theme = ExtResource( 6 )
text = "Ty Tiramisu"
@ -900,7 +889,7 @@ align = 1
autowrap = true
[node name="RollCall1" type="Node2D" parent="Control"]
position = Vector2( 3584, 0 )
position = Vector2( 3328, 0 )
[node name="SG" type="AnimatedSprite" parent="Control/RollCall1"]
material = SubResource( 7 )
@ -1001,7 +990,7 @@ text = "Vile Villians"
align = 1
[node name="RollCall2" type="Node2D" parent="Control"]
position = Vector2( 1024, 0 )
position = Vector2( 768, 0 )
[node name="Eviscerator" type="AnimatedSprite" parent="Control/RollCall2"]
material = SubResource( 13 )
@ -1141,7 +1130,7 @@ Poachers"
align = 1
[node name="RollCall3" type="Node2D" parent="Control"]
position = Vector2( 4096, 0 )
position = Vector2( 3840, 0 )
[node name="Shedge" type="AnimatedSprite" parent="Control/RollCall3"]
position = Vector2( 60, 25 )
@ -1350,10 +1339,11 @@ experiments"
align = 1
[node name="RollCall4" type="Node2D" parent="Control"]
position = Vector2( 1024, 0 )
position = Vector2( 768, 0 )
[node name="2600" parent="Control/RollCall4" instance=ExtResource( 37 )]
position = Vector2( 3464, -8 )
make_explosions = true
[node name="ShootTimer" parent="Control/RollCall4/2600" index="2"]
autostart = false
@ -1449,7 +1439,6 @@ text = "Tin"
align = 1
[node name="RollCall6" type="Node2D" parent="Control"]
position = Vector2( 256, 0 )
[node name="Famira" parent="Control/RollCall6" instance=ExtResource( 47 )]
position = Vector2( 4502, 184 )
@ -1478,7 +1467,7 @@ text = "Super Famira"
align = 1
[node name="RollCall5" type="Node2D" parent="Control"]
position = Vector2( 4864, 0 )
position = Vector2( 4608, 0 )
[node name="Haze" type="Sprite" parent="Control/RollCall5"]
position = Vector2( 80, 136 )

View file

@ -35,6 +35,10 @@ export var double_jump_force: float = 122.0
export var underwater = false
## old player controls
export var beta_gameplay = false
## upward effect of air dash
export var dash_ascension: float = 50.0
## side momentum of dash
export var dash_speed: float = 80.0
# velocity
var velocity: Vector2 = Vector2.ZERO
@ -70,6 +74,7 @@ onready var edge_detector = $Graphics/EdgeDetector
onready var body_shape: CollisionShape2D = $"%BodyShape"
onready var cfox: Sprite = $"%CFox"
onready var hitbox: Area2D = $"%Hitbox"
onready var shoot_hitbox: Area2D = $"%ShootHitbox"
# OVERRIDES #
func _ready() -> void:
@ -602,3 +607,29 @@ func _on_ShieldCooldown_timeout():
func _on_BetaFalling_state_entered() -> void:
velocity.x = 0.0
func _on_ShootHitbox_area_entered(area: Area2D) -> void:
if area.is_in_group("enemy_hitbox"):
area.get_parent().die()
state_chart.send_event("bounce")
func _on_AfterDashFall_state_entered() -> void:
animation_player.play("double_jump")
func _on_AirDash_state_entered() -> void:
velocity.x = dash_speed * sign(graphics.scale.x)
velocity.y = -dash_ascension
shoot_hitbox.monitoring = true
animation_player.play("shoot_airborne")
func _on_AirDash_state_exited() -> void:
shoot_hitbox.monitoring = false
func _process_airdash(delta) -> void:
if abs(velocity.x) < 4.0:
state_chart.send_event("grounded")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=52 format=2]
[gd_scene load_steps=53 format=2]
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
[ext_resource path="res://graphics/player/sg_zap.png" type="Texture" id=2]
@ -81,6 +81,9 @@ shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = true
shader_param/palette = ExtResource( 12 )
[sub_resource type="RectangleShape2D" id=35]
extents = Vector2( 8.5, 6.5 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 2.5, 5 )
@ -649,7 +652,7 @@ tracks/5/keys = {
[sub_resource type="Animation" id=11]
resource_name = "shoot_airborne"
length = 0.001
length = 0.2
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:frame")
tracks/0/interp = 1
@ -657,10 +660,10 @@ tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"times": PoolRealArray( 0, 0.1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 48 ]
"values": [ 48, 49 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:rotation_degrees")
@ -882,6 +885,8 @@ walk_acceleration_frames = 4.0
gravity = 700.0
jump_force = 140.0
double_jump_force = 124.0
dash_ascension = 124.0
dash_speed = 124.0
[node name="Graphics" type="Node2D" parent="."]
@ -998,6 +1003,15 @@ material = SubResource( 24 )
position = Vector2( 0, -10 )
texture = ExtResource( 4 )
[node name="ShootHitbox" type="Area2D" parent="Graphics" groups=["arrow"]]
unique_name_in_owner = true
position = Vector2( 9, -6 )
collision_mask = 5
[node name="CollisionShape2D" type="CollisionShape2D" parent="Graphics/ShootHitbox"]
position = Vector2( -8.5, 0.5 )
shape = SubResource( 35 )
[node name="BodyShape" type="CollisionShape2D" parent="."]
unique_name_in_owner = true
position = Vector2( 0.5, -5 )
@ -1132,9 +1146,8 @@ initial_state = NodePath("Still")
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 10 )
to = NodePath("../../Shooting")
to = NodePath("../../../Airborne/AirDash")
event = "shoot"
guard_expression = "can_shoot"
[node name="On PushStart" type="Node" parent="StateChart/Root/Movement/Grounded/CanWalk"]
script = ExtResource( 10 )
@ -1212,9 +1225,8 @@ event = "duck_released"
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
to = NodePath("../../Shooting")
to = NodePath("../../../Airborne/AirDash")
event = "shoot"
guard_expression = "can_shoot"
[node name="On Jump" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
@ -1265,9 +1277,8 @@ event = "grounded"
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
to = NodePath("../AirShooting")
to = NodePath("../AirDash")
event = "shoot"
guard_expression = "can_shoot"
[node name="On LadderTouched" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 10 )
@ -1345,9 +1356,17 @@ script = ExtResource( 11 )
[node name="DoubleJump" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 11 )
[node name="AirShooting" type="Node" parent="StateChart/Root/Movement/Airborne"]
[node name="AfterDashFall" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 11 )
[node name="AirDash" type="Node" parent="StateChart/Root/Movement/Airborne"]
script = ExtResource( 11 )
[node name="On Bounce" type="Node" parent="StateChart/Root/Movement/Airborne/AirDash"]
script = ExtResource( 10 )
to = NodePath("../../Jump/NormalJump")
event = "bounce"
[node name="Climbing" type="Node" parent="StateChart/Root/Movement"]
script = ExtResource( 11 )
__meta__ = {
@ -1539,6 +1558,7 @@ wait_time = 2.0
one_shot = true
[connection signal="tree_exited" from="." to="." method="_on_Player_tree_exited"]
[connection signal="area_entered" from="Graphics/ShootHitbox" to="." method="_on_ShootHitbox_area_entered"]
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement" to="." method="_process_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded" to="." method="_on_Grounded_state_entered"]
@ -1555,8 +1575,8 @@ one_shot = true
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Shooting" to="." method="_on_Shooting_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_on_Pushing_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_process_pushing"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne" to="." method="reset_fall_speed"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne" to="." method="_on_Airborne_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne" to="." method="reset_fall_speed"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne" to="." method="_process_gravity"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Jump" to="." method="_process_horizontal_movement"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Jump" to="." method="_process_jump"]
@ -1570,11 +1590,14 @@ one_shot = true
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/BetaFalling" to="." method="_on_NormalFalling_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/BetaFalling" to="." method="_on_BetaFalling_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/ScaredFalling" to="." method="_on_ScaredFalling_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_on_DoubleJump_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="reset_fall_speed"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_on_DoubleJump_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_on_AirShooting_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/AfterDashFall" to="." method="_on_AfterDashFall_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/AfterDashFall" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/AirDash" to="." method="_on_AirDash_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Airborne/AirDash" to="." method="_on_AirDash_state_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/AirDash" to="." method="_process_airdash"]
[connection signal="state_entered" from="StateChart/Root/Movement/Climbing" to="." method="_on_Climbing_state_entered"]
[connection signal="state_exited" from="StateChart/Root/Movement/Climbing" to="." method="_on_Climbing_state_exited"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Climbing" to="." method="_process_climbing"]