generated from krampus/template-godot4
Added title crawl animatic
This commit is contained in:
parent
384992e935
commit
af73475c26
|
@ -45,6 +45,14 @@ Asset credits
|
|||
|
||||
*** License: OFL 1.1
|
||||
|
||||
** Orbitron
|
||||
|
||||
*** Retrieved from https://fonts.google.com/specimen/Orbitron
|
||||
|
||||
*** Author: Matt McInerney
|
||||
|
||||
*** License: OFL 1.1
|
||||
|
||||
* Sound
|
||||
|
||||
** drive1.wav
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://ehkfcv7lram0"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://s4c1kf0rk2mb" path="res://assets/fonts/Geo/Geo-Regular.ttf" id="1_6hjgi"]
|
||||
|
||||
[resource]
|
||||
base_font = ExtResource("1_6hjgi")
|
||||
variation_embolden = 0.5
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://c2olk85hfh4ln"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://b6gxwgomstkgu" path="res://assets/fonts/Geo/Geo-Italic.ttf" id="1_l0o26"]
|
||||
|
||||
[resource]
|
||||
base_font = ExtResource("1_l0o26")
|
||||
variation_embolden = 0.5
|
|
@ -0,0 +1,93 @@
|
|||
Copyright 2018 The Orbitron Project Authors (https://github.com/theleagueof/orbitron), with Reserved Font Name: "Orbitron"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://cbaqlaqdobnux"
|
||||
path="res://.godot/imported/Orbitron-VariableFont_wght.ttf-19ead88ef6e90de37fa6547cf6fb513b.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/Orbitron-VariableFont_wght.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-VariableFont_wght.ttf-19ead88ef6e90de37fa6547cf6fb513b.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://y3lcfr4ys8d3"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://dyx4wcq8wlpbh" path="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf" id="1_sdwod"]
|
||||
|
||||
[resource]
|
||||
base_font = ExtResource("1_sdwod")
|
||||
variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://cjisjunqauv68"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://bmv0pofrw1wh0" path="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf" id="1_1cs6e"]
|
||||
|
||||
[resource]
|
||||
base_font = ExtResource("1_1cs6e")
|
||||
variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)
|
|
@ -0,0 +1,68 @@
|
|||
Orbitron Variable Font
|
||||
======================
|
||||
|
||||
This download contains Orbitron as both a variable font and static fonts.
|
||||
|
||||
Orbitron is a variable font with this axis:
|
||||
wght
|
||||
|
||||
This means all the styles are contained in a single file:
|
||||
Orbitron-VariableFont_wght.ttf
|
||||
|
||||
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||
in those cases you can use the static font files for Orbitron:
|
||||
static/Orbitron-Regular.ttf
|
||||
static/Orbitron-Medium.ttf
|
||||
static/Orbitron-SemiBold.ttf
|
||||
static/Orbitron-Bold.ttf
|
||||
static/Orbitron-ExtraBold.ttf
|
||||
static/Orbitron-Black.ttf
|
||||
|
||||
Get started
|
||||
-----------
|
||||
|
||||
1. Install the font files you want to use
|
||||
|
||||
2. Use your app's font picker to view the font family and all the
|
||||
available styles
|
||||
|
||||
Learn more about variable fonts
|
||||
-------------------------------
|
||||
|
||||
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||
https://variablefonts.typenetwork.com
|
||||
https://medium.com/variable-fonts
|
||||
|
||||
In desktop apps
|
||||
|
||||
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||
|
||||
Online
|
||||
|
||||
https://developers.google.com/fonts/docs/getting_started
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||
|
||||
Installing fonts
|
||||
|
||||
MacOS: https://support.apple.com/en-us/HT201749
|
||||
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||
|
||||
Android Apps
|
||||
|
||||
https://developers.google.com/fonts/docs/android
|
||||
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||
|
||||
License
|
||||
-------
|
||||
Please read the full license text (OFL.txt) to understand the permissions,
|
||||
restrictions and requirements for usage, redistribution, and modification.
|
||||
|
||||
You can use them in your products & projects – print or digital,
|
||||
commercial or otherwise.
|
||||
|
||||
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||
license for all details.
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dyx4wcq8wlpbh"
|
||||
path="res://.godot/imported/Orbitron-Black.ttf-4f56be6116e641811a86edeabcd2d703.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-Black.ttf-4f56be6116e641811a86edeabcd2d703.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://djk8vf63wdnsx"
|
||||
path="res://.godot/imported/Orbitron-Bold.ttf-8b89fbe3c12c453b18cf8303d33da7bc.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-Bold.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-Bold.ttf-8b89fbe3c12c453b18cf8303d33da7bc.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dbeni2o18lk3a"
|
||||
path="res://.godot/imported/Orbitron-ExtraBold.ttf-89bec0e872cbcfe16e37e73e9e75d81b.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-ExtraBold.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-ExtraBold.ttf-89bec0e872cbcfe16e37e73e9e75d81b.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://b4f2gbckqpae4"
|
||||
path="res://.godot/imported/Orbitron-Medium.ttf-d8d4495b34cc31a0e3d103c2a99dad64.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-Medium.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-Medium.ttf-d8d4495b34cc31a0e3d103c2a99dad64.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://bmv0pofrw1wh0"
|
||||
path="res://.godot/imported/Orbitron-Regular.ttf-2f53598a38b7cf8511acdd2231e8bfe4.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-Regular.ttf-2f53598a38b7cf8511acdd2231e8bfe4.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dxegxmpnkyna4"
|
||||
path="res://.godot/imported/Orbitron-SemiBold.ttf-48a2c690838e0199310d9d72e5469267.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/fonts/Orbitron/static/Orbitron-SemiBold.ttf"
|
||||
dest_files=["res://.godot/imported/Orbitron-SemiBold.ttf-48a2c690838e0199310d9d72e5469267.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
|
@ -137,3 +137,10 @@ BALL_POWER,Powerball
|
|||
MAP_DEBUG,"Debug Island"
|
||||
,
|
||||
CHARACTER_DEBUG,"Debug Girl"
|
||||
,
|
||||
,
|
||||
MSG_ABOUT_SINGLE_PLAYER,"Go GFOLF yourself!"
|
||||
MSG_ABOUT_MULTI_PLAYER,"Go GFOLF your friends, too!"
|
||||
MSG_ABOUT_SETTINGS,"View and change gameplay, accessibility, graphics, sound, and input options."
|
||||
MSG_ABOUT_CREDITS,"Meet the people who made the game!"
|
||||
MSG_ABOUT_QUIT,"Exit the game. See you next mission!"
|
||||
|
|
|
|
@ -9,6 +9,8 @@ extends RichTextEffect
|
|||
|
||||
signal typing
|
||||
|
||||
const EDITOR_DEFAULT_SPEED = 20.0
|
||||
|
||||
@export var scale_curve: Curve
|
||||
@export var translation_curve: CurveXYZTexture
|
||||
|
||||
|
@ -24,25 +26,34 @@ var bbcode: String = "type"
|
|||
var _force_visible := false
|
||||
|
||||
|
||||
func _init(force_visible_signal: Signal) -> void:
|
||||
if force_visible_signal:
|
||||
force_visible_signal.connect(_set_force_visible)
|
||||
func _init(force_visible_signal: Variant = null) -> void:
|
||||
if force_visible_signal is Signal:
|
||||
(force_visible_signal as Signal).connect(_set_force_visible)
|
||||
|
||||
|
||||
func _get_default_speed() -> float:
|
||||
if Engine.is_editor_hint():
|
||||
return EDITOR_DEFAULT_SPEED
|
||||
return Game.settings.default_text_speed
|
||||
|
||||
|
||||
func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
||||
if not _force_visible:
|
||||
var speed: float = char_fx.env.get("speed", Game.settings.default_text_speed)
|
||||
var speed: float = char_fx.env.get("speed", _get_default_speed())
|
||||
var delay: float = char_fx.env.get("delay", 0.0)
|
||||
var factor: float = char_fx.env.get("factor", 1.0)
|
||||
|
||||
var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
||||
|
||||
char_fx.visible = rel_time > 0
|
||||
|
||||
if scale_curve or translation_curve:
|
||||
var server := TextServerManager.get_primary_interface()
|
||||
var glyph_size := server.font_get_glyph_size(
|
||||
char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index
|
||||
)
|
||||
var pivot := glyph_size * Vector2(-1, 1)
|
||||
|
||||
var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
||||
|
||||
var scale := Vector2.ONE
|
||||
if scale_curve:
|
||||
scale *= scale_curve.sample_baked(rel_time)
|
||||
|
@ -63,8 +74,6 @@ func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
|||
. translated_local(translation)
|
||||
)
|
||||
|
||||
char_fx.visible = rel_time > 0
|
||||
|
||||
if rel_time < 1:
|
||||
typing.emit()
|
||||
|
||||
|
|
|
@ -35,6 +35,8 @@ func _ready() -> void:
|
|||
if text:
|
||||
_finished = false
|
||||
|
||||
visibility_changed.connect(restart)
|
||||
|
||||
|
||||
## Is the typewriter effect finished?
|
||||
func is_finished() -> bool:
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
[gd_resource type="Theme" load_steps=11 format=3 uid="uid://diodjft5u2cck"]
|
||||
[gd_resource type="Theme" load_steps=15 format=3 uid="uid://diodjft5u2cck"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="1_3rv2b"]
|
||||
[ext_resource type="FontFile" uid="uid://comihs66wounx" path="res://assets/fonts/Dokdo/Dokdo-Regular.ttf" id="1_eha6a"]
|
||||
[ext_resource type="FontFile" uid="uid://b6gxwgomstkgu" path="res://assets/fonts/Geo/Geo-Italic.ttf" id="2_5ty6u"]
|
||||
[ext_resource type="FontFile" uid="uid://dyog4ex5nqfat" path="res://assets/fonts/promptfont/promptfont.otf" id="2_8kux8"]
|
||||
[ext_resource type="FontFile" uid="uid://s4c1kf0rk2mb" path="res://assets/fonts/Geo/Geo-Regular.ttf" id="3_cee6l"]
|
||||
[ext_resource type="FontFile" uid="uid://dyx4wcq8wlpbh" path="res://assets/fonts/Orbitron/static/Orbitron-Black.ttf" id="5_7lyjk"]
|
||||
[ext_resource type="FontVariation" uid="uid://y3lcfr4ys8d3" path="res://assets/fonts/Orbitron/Orbitron_Bold_Italics.tres" id="6_r7l37"]
|
||||
[ext_resource type="FontVariation" uid="uid://cjisjunqauv68" path="res://assets/fonts/Orbitron/Orbitron_Italics.tres" id="7_0c31n"]
|
||||
[ext_resource type="FontFile" uid="uid://bmv0pofrw1wh0" path="res://assets/fonts/Orbitron/static/Orbitron-Regular.ttf" id="8_njdo1"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5pkn5"]
|
||||
content_margin_left = 16.0
|
||||
|
@ -179,6 +183,16 @@ ShotFeedback/constants/shadow_offset_x = 6
|
|||
ShotFeedback/constants/shadow_offset_y = 4
|
||||
ShotFeedback/font_sizes/normal_font_size = 272
|
||||
ShotFeedback/fonts/normal_font = ExtResource("1_eha6a")
|
||||
TitleCrawlText/base_type = &"RichTextLabel"
|
||||
TitleCrawlText/font_sizes/bold_font_size = 32
|
||||
TitleCrawlText/font_sizes/bold_italics_font_size = 32
|
||||
TitleCrawlText/font_sizes/italics_font_size = 32
|
||||
TitleCrawlText/font_sizes/mono_font_size = 32
|
||||
TitleCrawlText/font_sizes/normal_font_size = 32
|
||||
TitleCrawlText/fonts/bold_font = ExtResource("5_7lyjk")
|
||||
TitleCrawlText/fonts/bold_italics_font = ExtResource("6_r7l37")
|
||||
TitleCrawlText/fonts/italics_font = ExtResource("7_0c31n")
|
||||
TitleCrawlText/fonts/normal_font = ExtResource("8_njdo1")
|
||||
TitleScreenMenuLabel/base_type = &"Label"
|
||||
TitleScreenMenuLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
TitleScreenMenuLabel/constants/outline_size = 6
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
extends Control
|
||||
|
||||
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if (
|
||||
event is InputEventKey
|
||||
or event is InputEventMouseButton
|
||||
or event is InputEventJoypadButton
|
||||
or event is InputEventScreenTouch
|
||||
):
|
||||
get_viewport().set_input_as_handled()
|
||||
fade_out()
|
||||
|
||||
|
||||
func fade_out() -> void:
|
||||
animation_player.play("fade_out")
|
|
@ -0,0 +1,416 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://cqu315hviu72n"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/ui/decorations/text_effects/typewriter/typewriter_label.gd" id="1_i0kuc"]
|
||||
[ext_resource type="Script" path="res://src/ui/menus/title_screen/title_crawl.gd" id="1_wsvjl"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dmc3y"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("TitleQuote:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("TitleQuote:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("VBoxContainer/TitleCrawl1:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("VBoxContainer/TitleCrawl2:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("VBoxContainer/TitleCrawl3:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("VBoxContainer/TitleCrawl4:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("VBoxContainer/TitleCrawl5:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("Blackout:color")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 0)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("VBoxContainer:offset_top")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_hrox7"]
|
||||
resource_name = "play"
|
||||
length = 55.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("TitleQuote:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("TitleQuote:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 11, 13),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("VBoxContainer/TitleCrawl1:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 14, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, false]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("VBoxContainer/TitleCrawl2:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 16.4, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("VBoxContainer/TitleCrawl3:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 31, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, false]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("VBoxContainer/TitleCrawl4:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 39, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, false]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("VBoxContainer/TitleCrawl5:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 45, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, false]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("Blackout:color")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0, 52, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("VBoxContainer:offset_top")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0, 16, 55),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, -700]
|
||||
}
|
||||
tracks/10/type = "method"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath(".")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(55),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"fade_out"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_hkogt"]
|
||||
resource_name = "fade_out"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"queue_free"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1o035"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_dmc3y"),
|
||||
"fade_out": SubResource("Animation_hkogt"),
|
||||
"play": SubResource("Animation_hrox7")
|
||||
}
|
||||
|
||||
[node name="TitleCrawl" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_wsvjl")
|
||||
|
||||
[node name="BackgroundColor" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="TitleQuote" type="RichTextLabel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -555.5
|
||||
offset_top = -45.0
|
||||
offset_right = 555.5
|
||||
offset_bottom = 45.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][i][type speed=20]\"If [b]GFOLF[/b] did not exist,[/type] [type speed=20 delay=2]it would be necessary to create it.\"[/type][/i][/center]
|
||||
[right][type speed=40 delay=6]— Voltaire[/type][/right]"
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
custom_minimum_size = Vector2(1111, 0)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -400.0
|
||||
offset_right = 400.0
|
||||
offset_bottom = 70.0
|
||||
grow_horizontal = 2
|
||||
theme_override_constants/separation = 32
|
||||
|
||||
[node name="TitleCrawl1" type="RichTextLabel" parent="VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][type speed=16]The year is 1999[/type][type speed=20 delay=1.3]024 CE.[/type][/center]"
|
||||
fit_content = true
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="TitleCrawl2" type="RichTextLabel" parent="VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][type speed=20]The avarice of [b]MAN[/b] in an age long past caused the seas to consume the earth.[/type] [type speed=20 delay=4.3]Now, the [b]INFORMATION SOCIETY[/b] controls the full wealth of the entire world, ruling from their secret compound on [b]GFOLFZONE EVEREST-ONE[/b], the only habitable land left on the planet's surface.[/type][/center]"
|
||||
fit_content = true
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="TitleCrawl3" type="RichTextLabel" parent="VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][type speed=20]In the future,[/type] [type speed=20 delay=1.1] there is no [b]LAW[/b] but the [b]LAW of the BALL[/b], and the warrior-poets known as [b]GFOLFers[/b] enforce their [b]LAW[/b] with a [b]FIVE-IRON FIST.[/b][/type][/center]"
|
||||
fit_content = true
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="TitleCrawl4" type="RichTextLabel" parent="VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][type speed=20]It is a future you feared,[/type] [type speed=20, delay=1.7]but a future you've chosen.[/type][/center]"
|
||||
fit_content = true
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="Spacer" type="Control" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TitleCrawl5" type="RichTextLabel" parent="VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 10
|
||||
theme_type_variation = &"TitleCrawlText"
|
||||
bbcode_enabled = true
|
||||
text = "[center][i][type speed=16]IN THE FUTURE[/type][type speed=16 delay=1.0].[/type][type speed=16 delay=1.2].[/type][type speed=16 delay=1.4].[/type] [type speed=16 delay=2.4]THERE IS ONLY[/type] [b][type speed=16 delay=3.6]GFOLF.[/type][/b][/i][/center]"
|
||||
fit_content = true
|
||||
script = ExtResource("1_i0kuc")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_1o035")
|
||||
}
|
||||
autoplay = "play"
|
||||
|
||||
[node name="Blackout" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0)
|
|
@ -2,23 +2,33 @@ class_name TitleScreen extends Control
|
|||
|
||||
const SCENE := "res://src/ui/menus/title_screen/title_screen.tscn"
|
||||
|
||||
@export var title_crawl_scene: PackedScene
|
||||
@export var settings_scene: PackedScene
|
||||
@export var local_deathmatch_setup_scene: PackedScene
|
||||
|
||||
@onready var menu: Control = %Menu
|
||||
@onready var settings_container: MarginContainer = %SettingsContainer
|
||||
@onready var deathmatch_setup_container: MarginContainer = %DeathmatchSetupContainer
|
||||
@onready var title_crawl_container: MarginContainer = %TitleCrawlContainer
|
||||
|
||||
@onready var state_machine: AnimationTree = $Menu/MenuStateMachine
|
||||
@onready var menu_state: AnimationNodeStateMachinePlayback = state_machine["parameters/playback"]
|
||||
|
||||
@onready var confirm_sfx: AudioStreamPlayer = %ConfirmSFX
|
||||
|
||||
@onready var idle_timer: Timer = %IdleTimer
|
||||
|
||||
|
||||
func play_chime() -> void:
|
||||
confirm_sfx.play()
|
||||
|
||||
|
||||
func start_title_crawl() -> void:
|
||||
var instance: Node = title_crawl_scene.instantiate()
|
||||
instance.tree_exiting.connect(idle_timer.start)
|
||||
title_crawl_container.add_child(instance)
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventKey or event is InputEventJoypadButton or event is InputEventMouseButton:
|
||||
if menu_state.get_current_node() in ["press_start_fade_in", "press_start_idle"]:
|
||||
|
@ -34,6 +44,7 @@ func _hide() -> void:
|
|||
|
||||
|
||||
func _to_main_menu() -> void:
|
||||
idle_timer.stop()
|
||||
menu_state.travel("main_idle")
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=64 format=3 uid="uid://7fsgocmdas7i"]
|
||||
[gd_scene load_steps=65 format=3 uid="uid://7fsgocmdas7i"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/ui/menus/title_screen/title_screen.gd" id="1_2qtlb"]
|
||||
[ext_resource type="Texture2D" uid="uid://880x5n8j3b5l" path="res://assets/logo/title.png" id="1_pm82i"]
|
||||
|
@ -6,6 +6,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://clesl8lljs6of" path="res://assets/logo/subtitle.png" id="2_y0ulk"]
|
||||
[ext_resource type="PackedScene" uid="uid://ccx2u5oli6men" path="res://src/ui/menus/title_screen/deathmatch_setup/deathmatch_setup.tscn" id="3_bo4ty"]
|
||||
[ext_resource type="AudioStream" uid="uid://8uynlpios7u1" path="res://assets/sound/sfx/ui/ecofuture2.wav" id="5_fg1a4"]
|
||||
[ext_resource type="PackedScene" uid="uid://cqu315hviu72n" path="res://src/ui/menus/title_screen/title_crawl.tscn" id="7_r26eu"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fths4"]
|
||||
length = 0.001
|
||||
|
@ -1176,6 +1177,7 @@ anchor_bottom = 1.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_2qtlb")
|
||||
title_crawl_scene = ExtResource("7_r26eu")
|
||||
settings_scene = ExtResource("2_g5q2v")
|
||||
local_deathmatch_setup_scene = ExtResource("3_bo4ty")
|
||||
|
||||
|
@ -1235,7 +1237,7 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
|
||||
[node name="PressStart" type="Label" parent="Menu"]
|
||||
modulate = Color(1, 1, 1, 0.997297)
|
||||
modulate = Color(1, 1, 1, 0.999998)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
|
@ -1265,27 +1267,32 @@ metadata/_edit_use_anchors_ = true
|
|||
|
||||
[node name="SinglePlayer" type="Button" parent="Menu/MainMenu"]
|
||||
layout_mode = 2
|
||||
tooltip_text = "MSG_ABOUT_SINGLE_PLAYER"
|
||||
theme_type_variation = &"PauseMenuButton"
|
||||
text = "TITLE_SINGLE_PLAYER"
|
||||
|
||||
[node name="MultiPlayer" type="Button" parent="Menu/MainMenu"]
|
||||
layout_mode = 2
|
||||
tooltip_text = "MSG_ABOUT_MULTI_PLAYER"
|
||||
theme_type_variation = &"PauseMenuButton"
|
||||
text = "TITLE_MULTI_PLAYER"
|
||||
|
||||
[node name="Settings" type="Button" parent="Menu/MainMenu"]
|
||||
layout_mode = 2
|
||||
tooltip_text = "MSG_ABOUT_SETTINGS"
|
||||
theme_type_variation = &"PauseMenuButton"
|
||||
text = "PAUSE_SETTINGS"
|
||||
|
||||
[node name="Credits" type="Button" parent="Menu/MainMenu"]
|
||||
layout_mode = 2
|
||||
tooltip_text = "MSG_ABOUT_CREDITS"
|
||||
theme_type_variation = &"PauseMenuButton"
|
||||
disabled = true
|
||||
text = "TITLE_CREDITS"
|
||||
|
||||
[node name="Quit" type="Button" parent="Menu/MainMenu"]
|
||||
layout_mode = 2
|
||||
tooltip_text = "MSG_ABOUT_QUIT"
|
||||
theme_type_variation = &"PauseMenuButton"
|
||||
theme_override_colors/font_color = Color(0.819608, 0.196078, 0.196078, 1)
|
||||
text = "PAUSE_QUIT"
|
||||
|
@ -1478,6 +1485,22 @@ theme_override_constants/margin_top = 64
|
|||
theme_override_constants/margin_right = 64
|
||||
theme_override_constants/margin_bottom = 64
|
||||
|
||||
[node name="TitleCrawlContainer" type="MarginContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="IdleTimer" type="Timer" parent="TitleCrawlContainer"]
|
||||
unique_name_in_owner = true
|
||||
wait_time = 20.0
|
||||
one_shot = true
|
||||
autostart = true
|
||||
|
||||
[connection signal="pressed" from="Menu/MainMenu/SinglePlayer" to="." method="_to_single_player"]
|
||||
[connection signal="pressed" from="Menu/MainMenu/MultiPlayer" to="." method="_to_multi_player"]
|
||||
[connection signal="pressed" from="Menu/MainMenu/Settings" to="." method="_open_settings"]
|
||||
|
@ -1489,3 +1512,4 @@ theme_override_constants/margin_bottom = 64
|
|||
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Deathmatch" to="." method="_open_local_deathmatch_setup"]
|
||||
[connection signal="pressed" from="Menu/LocalMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
||||
[connection signal="pressed" from="Menu/NetMultiplayerMenu/Back" to="." method="_to_multi_player"]
|
||||
[connection signal="timeout" from="TitleCrawlContainer/IdleTimer" to="." method="start_title_crawl"]
|
||||
|
|
Loading…
Reference in New Issue