forked from team-sg/hero-mark-2
more cutscene work
This commit is contained in:
parent
f7c60470a2
commit
fbac189239
13 changed files with 199 additions and 32 deletions
BIN
audio/music/rumble_revolution_intro.ogg
Normal file
BIN
audio/music/rumble_revolution_intro.ogg
Normal file
Binary file not shown.
15
audio/music/rumble_revolution_intro.ogg.import
Normal file
15
audio/music/rumble_revolution_intro.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/rumble_revolution_intro.ogg-cb37ff1dd71c64fd16566b212babca20.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/music/rumble_revolution_intro.ogg"
|
||||
dest_files=[ "res://.import/rumble_revolution_intro.ogg-cb37ff1dd71c64fd16566b212babca20.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
BIN
audio/sounds/gun_cock.ogg
Normal file
BIN
audio/sounds/gun_cock.ogg
Normal file
Binary file not shown.
15
audio/sounds/gun_cock.ogg.import
Normal file
15
audio/sounds/gun_cock.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/gun_cock.ogg-e3270054d952c50d489fc1e0bd7a71d1.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sounds/gun_cock.ogg"
|
||||
dest_files=[ "res://.import/gun_cock.ogg-e3270054d952c50d489fc1e0bd7a71d1.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
BIN
audio/sounds/resolve.ogg
Normal file
BIN
audio/sounds/resolve.ogg
Normal file
Binary file not shown.
15
audio/sounds/resolve.ogg.import
Normal file
15
audio/sounds/resolve.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/resolve.ogg-36be71144d2911079a46c9c668920ec6.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sounds/resolve.ogg"
|
||||
dest_files=[ "res://.import/resolve.ogg-36be71144d2911079a46c9c668920ec6.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
Binary file not shown.
|
@ -62,6 +62,7 @@ const a_copsquash2 = preload("res://audio/sounds/cop_splat.ogg")
|
|||
const a_fami_transform = preload("res://audio/sounds/fami_transform.ogg")
|
||||
const a_ominous = preload("res://audio/sounds/ominous.ogg")
|
||||
const a_bullet_casing = preload("res://audio/sounds/shell.ogg")
|
||||
const a_gun_cock = preload("res://audio/sounds/gun_cock.ogg")
|
||||
|
||||
var loop_section = null
|
||||
var has_looped = false
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
[gd_scene load_steps=16 format=2]
|
||||
[gd_scene load_steps=15 format=2]
|
||||
|
||||
[ext_resource path="res://ui/theme.tres" type="Theme" id=1]
|
||||
[ext_resource path="res://tilesets/t_grass.tres" type="TileSet" id=2]
|
||||
[ext_resource path="res://shaders/ska_plane.gdshader" type="Shader" id=3]
|
||||
[ext_resource path="res://audio/sounds/intro_voiceover.ogg" type="AudioStream" id=4]
|
||||
[ext_resource path="res://graphics/backgrounds/hills.png" type="Texture" id=5]
|
||||
[ext_resource path="res://graphics/npc/msx_future.png" type="Texture" id=6]
|
||||
[ext_resource path="res://graphics/npc/speccy_future.png" type="Texture" id=7]
|
||||
|
@ -67,25 +66,29 @@ material = ExtResource( 11 )
|
|||
margin_left = 8.0
|
||||
margin_top = 192.0
|
||||
margin_right = 248.0
|
||||
margin_bottom = 1086.0
|
||||
margin_bottom = 1281.0
|
||||
theme = ExtResource( 1 )
|
||||
text = "And so with Fami and all the other corruptive forces of the world taken out, a new future is born.
|
||||
|
||||
The Shards had
|
||||
turned Fami into Famira, one of the most powerful beings in the entire universe, a monster only bested by SG's
|
||||
turned Fami into Super Famira, one of the most powerful beings in the entire universe, a monster only bested by SG's
|
||||
heroic courage.
|
||||
|
||||
SG and the other freedom fighters realized that kind of power should not be able to rest in the hands of anyone,
|
||||
and so a year later, the heroes collected the shards again and sent them to planet x, never to be found again.
|
||||
|
||||
a few years after that, SG and their friends created a utopia where everyone shares resources and works together to support each other,
|
||||
a future without coercive hierarchies or money.
|
||||
9 years later, on the tenth anniversary of fami's death, SG and the other freedom fighters meet up for a picnic in
|
||||
celebration of his defeat.
|
||||
|
||||
It took the work of many people to establish this utopia, and it
|
||||
Many things have changed since 2083. Fami's oppressive goverment has crumbled, what was once a totalitarian virginia has now
|
||||
become a peaceful group of villages living on the landmass known as \"Genesis Island\".
|
||||
|
||||
Much of the world's problems are a thing of the past. The world no longer revolves around money and power.
|
||||
Instead everyone works together to the best of their ability to support each other and share resources.
|
||||
|
||||
It took the work of many people to create this future, and it
|
||||
takes everyone's contributions to keep it alive.
|
||||
|
||||
It's thanks to everyone that the world is saved, not only SG, but their friends as well, and you, the player!
|
||||
|
||||
|
||||
|
||||
10 years after Fami died, SG and the other freedom fighters meet up for a picnic in celebration of his defeat.
|
||||
|
@ -97,7 +100,9 @@ Lastly, SG adopted a kid named SMS, who is
|
|||
taken care of by SG as well as other friends they've made from their village. SMS looks up to SG and wishes to be a hero one day.
|
||||
|
||||
Of course, keeping the utopia alive is still important and there are still smaller problems to fix, but hopefully everyone will continue
|
||||
to live in a world without the need for heroes to defeat great evils."
|
||||
to live in a world without the need for heroes to defeat great evils.
|
||||
|
||||
It's thanks to everyone that the world is saved, not only SG, but their friends as well, and you, the player!"
|
||||
align = 1
|
||||
autowrap = true
|
||||
|
||||
|
@ -107,7 +112,6 @@ anims/RESET = SubResource( 2 )
|
|||
anims/scroll = SubResource( 3 )
|
||||
|
||||
[node name="VoiceOver" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 4 )
|
||||
|
||||
[node name="TimeskipScene" type="Node2D" parent="."]
|
||||
z_index = -1
|
||||
|
|
|
@ -23,6 +23,8 @@ func _physics_process(delta: float) -> void:
|
|||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("jump") and animation_player.current_animation_position < (cutscene_skip - Options.transition_speed_secs * 2.0):
|
||||
skip_cutscene()
|
||||
if event.is_action_pressed("debug_2"):
|
||||
animation_player.seek(60)
|
||||
|
||||
func skip_cutscene() -> void:
|
||||
Fade.fade_out(Options.transition_speed_secs)
|
||||
|
@ -39,6 +41,12 @@ func kill_cop() -> void:
|
|||
add_child(splatter)
|
||||
$Cop.queue_free()
|
||||
|
||||
func stop_music():
|
||||
Audio.ac_music.playing = false
|
||||
|
||||
func play_rumble_intro():
|
||||
Audio.play_music(load("res://audio/music/rumble_revolution_intro.ogg"))
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
match what:
|
||||
NOTIFICATION_WM_FOCUS_OUT:
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[gd_scene load_steps=45 format=2]
|
||||
[gd_scene load_steps=46 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]
|
||||
[ext_resource path="res://ui/theme.tres" type="Theme" id=3]
|
||||
[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=4]
|
||||
[ext_resource path="res://scripts/sg_palette.gd" type="Script" id=5]
|
||||
[ext_resource path="res://graphics/player/sg_idle.png" type="Texture" id=6]
|
||||
[ext_resource path="res://graphics/player/sg.png" type="Texture" id=6]
|
||||
[ext_resource path="res://tilesets/t_station.tres" type="TileSet" id=7]
|
||||
[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]
|
||||
|
@ -22,12 +22,7 @@
|
|||
[ext_resource path="res://audio/sounds/absorb_shard.ogg" type="AudioStream" id=20]
|
||||
[ext_resource path="res://audio/sounds/shard_expel.ogg" type="AudioStream" id=21]
|
||||
[ext_resource path="res://audio/sounds/shard_float.ogg" type="AudioStream" id=22]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=1]
|
||||
shader = ExtResource( 1 )
|
||||
shader_param/border_color = Color( 0, 0, 0, 1 )
|
||||
shader_param/border_corners = true
|
||||
shader_param/palette = ExtResource( 2 )
|
||||
[ext_resource path="res://audio/sounds/gun_cock.ogg" type="AudioStream" id=23]
|
||||
|
||||
[sub_resource type="AtlasTexture" id=17]
|
||||
atlas = ExtResource( 18 )
|
||||
|
@ -97,6 +92,12 @@ animations = [ {
|
|||
"speed": 5.0
|
||||
} ]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=1]
|
||||
shader = ExtResource( 1 )
|
||||
shader_param/border_color = Color( 0, 0, 0, 1 )
|
||||
shader_param/border_corners = true
|
||||
shader_param/palette = ExtResource( 2 )
|
||||
|
||||
[sub_resource type="Animation" id=16]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
|
@ -183,11 +184,58 @@ tracks/6/keys = {
|
|||
"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=2]
|
||||
resource_name = "cutscene"
|
||||
length = 93.0
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Label:text")
|
||||
tracks/0/interp = 1
|
||||
|
@ -268,7 +316,7 @@ tracks/6/loop_wrap = true
|
|||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/keys = {
|
||||
"times": PoolRealArray( 0.5, 64.75, 69.75 ),
|
||||
"times": PoolRealArray( 0.5, 65.5, 70.75 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true, false ]
|
||||
|
@ -342,7 +390,7 @@ tracks/12/loop_wrap = true
|
|||
tracks/12/imported = false
|
||||
tracks/12/enabled = true
|
||||
tracks/12/keys = {
|
||||
"times": PoolRealArray( 0, 64.75 ),
|
||||
"times": PoolRealArray( 0, 65.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
|
@ -359,6 +407,59 @@ tracks/13/keys = {
|
|||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
tracks/14/type = "value"
|
||||
tracks/14/path = NodePath("SgIdle:frame_coords")
|
||||
tracks/14/interp = 1
|
||||
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 ),
|
||||
"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 ) ]
|
||||
}
|
||||
tracks/15/type = "value"
|
||||
tracks/15/path = NodePath("SgIdle:flip_h")
|
||||
tracks/15/interp = 1
|
||||
tracks/15/loop_wrap = true
|
||||
tracks/15/imported = false
|
||||
tracks/15/enabled = true
|
||||
tracks/15/keys = {
|
||||
"times": PoolRealArray( 0, 61.5, 61.6, 73 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, false, true, false ]
|
||||
}
|
||||
tracks/16/type = "method"
|
||||
tracks/16/path = NodePath(".")
|
||||
tracks/16/interp = 1
|
||||
tracks/16/loop_wrap = true
|
||||
tracks/16/imported = false
|
||||
tracks/16/enabled = true
|
||||
tracks/16/keys = {
|
||||
"times": PoolRealArray( 64.25, 65.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"method": "stop_music"
|
||||
}, {
|
||||
"args": [ ],
|
||||
"method": "play_rumble_intro"
|
||||
} ]
|
||||
}
|
||||
tracks/17/type = "value"
|
||||
tracks/17/path = NodePath("GunCock:playing")
|
||||
tracks/17/interp = 1
|
||||
tracks/17/loop_wrap = true
|
||||
tracks/17/imported = false
|
||||
tracks/17/enabled = true
|
||||
tracks/17/keys = {
|
||||
"times": PoolRealArray( -0.1, 60.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
}
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=8]
|
||||
shader = ExtResource( 12 )
|
||||
|
@ -431,20 +532,23 @@ align = 1
|
|||
valign = 1
|
||||
autowrap = true
|
||||
|
||||
[node name="SgIdle" type="Sprite" parent="."]
|
||||
material = SubResource( 1 )
|
||||
position = Vector2( 96, 169 )
|
||||
texture = ExtResource( 6 )
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="FamiHuman" type="AnimatedSprite" parent="."]
|
||||
material = ExtResource( 19 )
|
||||
position = Vector2( 160, 167 )
|
||||
scale = Vector2( -1, 1 )
|
||||
rotation = 3.14159
|
||||
scale = Vector2( 1, -1 )
|
||||
frames = SubResource( 7 )
|
||||
animation = "idle"
|
||||
playing = true
|
||||
|
||||
[node name="SgIdle" type="Sprite" parent="."]
|
||||
material = SubResource( 1 )
|
||||
position = Vector2( 97, 163 )
|
||||
texture = ExtResource( 6 )
|
||||
hframes = 8
|
||||
vframes = 20
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="FamiVoice" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 11 )
|
||||
|
||||
|
@ -458,7 +562,8 @@ anims/cutscene = SubResource( 2 )
|
|||
material = SubResource( 8 )
|
||||
position = Vector2( -8, 169 )
|
||||
frames = SubResource( 13 )
|
||||
animation = "gun"
|
||||
animation = "walk"
|
||||
frame = 3
|
||||
playing = true
|
||||
|
||||
[node name="ShardParticles" type="CPUParticles2D" parent="."]
|
||||
|
@ -496,3 +601,7 @@ volume_db = -10.0
|
|||
[node name="ShardExpel" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 21 )
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="GunCock" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 23 )
|
||||
volume_db = -10.0
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 6.1 KiB |
|
@ -683,7 +683,7 @@ position = Vector2( 0, -10 )
|
|||
texture = ExtResource( 14 )
|
||||
offset = Vector2( 0, -6 )
|
||||
hframes = 8
|
||||
vframes = 16
|
||||
vframes = 20
|
||||
|
||||
[node name="DissolveParticles" type="CPUParticles2D" parent="Graphics"]
|
||||
unique_name_in_owner = true
|
||||
|
@ -1302,8 +1302,8 @@ align = 1
|
|||
[connection signal="state_entered" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Inactive_state_entered"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Teleporting_state_entered"]
|
||||
[connection signal="state_exited" from="StateChart/Root/Movement/Teleporting" to="." method="_on_Inactive_state_exited"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Movement/Appearing" to="." method="_on_Appearing_state_entered"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Movement/Appearing" to="." method="_on_Inactive_state_entered"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Movement/Appearing" to="." method="_on_Appearing_state_entered"]
|
||||
[connection signal="state_exited" from="StateChart/Root/Movement/Appearing" to="." method="_on_Inactive_state_exited"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Health/Respawn" to="." method="_on_Respawn_state_entered"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Health/Dead" to="." method="_on_Dead_state_entered"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue