Slower Timer Difficulty Setting

Adds a new Difficulty Setting which changes how long each "second" lasts in a level. Off by default, but when on it uses full seconds instead of 0.4 seconds like in SMM2.
NOTE: The translations will need to be checked properly.
This commit is contained in:
KirbyKidJ
2025-09-22 15:40:15 -07:00
parent d3e07180df
commit f7bc857991
19 changed files with 27 additions and 4 deletions

View File

@@ -184,6 +184,7 @@ DIFFI_FLAG_LIVES,"Does hitting the top of the flagpole, give an extra life",Flag
DIFFI_GAME_OVER,What happens when hitting a game over? back to start of world? level? game?,Game Over,Game Over,Koniec Gry,Игpa okohчeha,Fin del juego,Game over, ,Game over,Game Over,Oyun Bİttİ,Game Over,Game Over,ゲームオーバー
DIFFI_LEVEL_DESIGN,Adjusts level design to actually be fair,Level Design,Conception des niveaux,Zarys Poziomu,Дизaйh Уpobhя,Diseño de niveles,Design dei livelli, ,Design ng Lebel,Leveldesign,Level Tasarımı,Desain Level,Design de Nível,ステージデザイン
DIFFI_TIME,Enables the time limit,Time Limit,Limite de temps,Limit Czasu,Лиmиt bpemehи,Tiempo Limite,Limite di tempo, ,Limit ng Oras,Zeitlimit,Zaman Lİmİtİ,Batas waktu,Tempo Limite,せいげん じかん
DIFFI_SECS,Runs the timer in seconds or quarter-seconds,Timer Style,Style de Timeur,Styl Czasomierz,ctиль taйmep,Minutero Estilo,Stile Timer, ,Style ng Timer,Timer-Stil,Zamanlayıcısı Stİlİ,Gaya Pengatur Waktu,Stile Timer,タイマースタイル
DIFFI_LAKITU,,Lakitu Style,Style de Lakitu,Styl Lakitu,ctиль ЛakиtУ,Estilo Lakitu,Stile lakitu, ,Style ng Lakitu,Lakitu-Modus,Lakİtu Stİlİ,Gaya Lakitu,Estilo de Lakitu,ジュゲム・スタイル
DIFFI_BACKSCROLL,"Allows you to move backwards in all levels, unless a custom level says no",Back Scroll,Retour Arrière,Przewijanie Wsteczne,ПpokpУtka haзaд,Scroll hacia atras,Back Scroll, ,Free Camera,Freie Kamera,Gerİ Kaydırma,Scroll Kembali,Rolagem Para Trás,スクロールかいじょ
DIFFI_GAME_OVER_LVL,,Start of Level,Début du niveau,Początek Poziomu,haчatь c Уpobhя,Inicio del nivel,Inizio del livello, ,Start ng Lebel,Levelanfang,Level Başlangıçı,Awal Level,Começo do Nível,ステージから かいし
@@ -213,6 +214,8 @@ DESC_LEVEL_DESIGN_0,,"Level design is the same as the original, can be unfair at
DESC_LEVEL_DESIGN_1,,Level design is adjusted to be much fairer.,Les niveaux sont conçus d'une manière plus juste et agréable.,Zarys poziomów zmieniony na sprawiedliwszy.,Дизaйh Уpobheй ctaл бoлee cпpabeдлиbыm.,El diseño de los niveles se ha ajustado para que sea mucho más justo.,I design dei livelli sono modificati per essere più equilibrati., .,Patas na design ng level,Das Leveldesign wird für ein faireres Spielerlebnis angepasst.,Level tasarımı daha adİl olacak şekİlde ayarlanmıştır.,Desain level disesuaikan agar lebih adil.,O design dos níveis é ajustado para ser muito mais justo.,もうすこし こうへい。
DESC_TIME_0,,There is no time limit in levels.,Il n'y a pas de limite de temps dans ce niveau,Nie ma limitu czasu w poziomach.,ha Уpobhяx hetУ лиmиta bpemehи.,No hay límite de tiempo en los niveles.,Non ci saranno limiti di tempo nei livelli., .,Walang time limit sa mga lebel,Bei Leveln ist kein Zeitlimit vorhanden.,Levellerde zaman lİmİtİ yok.,Tidak ada batasan waktu dalam level.,Não tem tempo limite nos níveis.,ステージに じかんせいげんは ない。
DESC_TIME_1,,There is a time limit in all levels.,Il y a une limite de temps dans ce niveau,Jest limit czasu w poziomach.,ha Уpobhяx ectь лиmиt bpemehи.,Hay un límite de tiempo en todos los niveles.,Ci saranno limiti di tempo nei livelli., .,May time limit sa mga lebel,Bei Leveln gibt es ein Zeitlimit.,Tüm levellerde zaman lİmİtİ var.,Ada batas waktu di semua level.,Tem tempo limite nos níveis.,ステージに じかんせいげんは ある。
DESC_SECS_0,,Timer ticks down every quarter-second.,,,,,,,,,,,,
DESC_SECS_1,,Timer ticks down every full second.,,,,,,,,,,,,
DESC_BACKSCROLL_0,,"You cannot move backwards in levels (unless a custom level allows it), Intended Experience",Vous ne pouvez pas retournez en arrière (sauf si un niveau custom vous l'autorise). Expérience prévue,Nie możesz iść do tyłu (chyba że poziom użytnikowa na to pozwala) Domyślny styl gry,"bы he moжete дbигatьcя haзaд ha Уpobhяx (kpome, ecли пoльзobateльckий Уpobehь пoзboляet), пpeдпoлaгaemый oпыt","No puedes retroceder en los niveles (a menos que un nivel personalizado lo permita), Experiencia prevista","Non puoi tornare indietro nei livelli (a meno che un livello creato dall'utente lo consente), l'esperienza originale."," ( ), ","Walang backscroll, maliban kung pwede sa custom game, klasik na experience","Die Kamera bewegt sich nicht nach links, wie bei den Originalspielen, ausser wenn ein Nutzererstelltes Level es erlaubt.","Levellerde gerİye doğru hareket edemezsİnİz (özel bİr level buna İzİn vermedİğİ sürece), Amaçlanan Deneyİm","Anda tidak dapat bergerak mundur dalam level (kecuali level kustom mengizinkannya), Pengalaman yang Diinginkan","Você não pode andar para trás nos níveis (a menos que um nível customizado o permita), Experiência recomendada.",デフォルトステージモード:もどることはできない。
DESC_BACKSCROLL_1,,You can move backwards in all levels (unless a custom level prevents it),Vous pouvez retournez en arrière (sauf si un niveau custom vous l'en empêche),Możesz iść do tyłu (chyba że poziom użytnikowa na to nie pozwala) ,"bы moжete дbигatьcя haзaд ha Уpobhяx (kpome, ecли пoльзobateльckий Уpobehь he пoзboляet)",Puedes retroceder en todos los niveles (a menos que un nivel personalizado lo impida).,Puoi tornare indietro nei livelli (a meno che un livello creato dall'utente non lo consente)., ( ),"Free Camera, maliban kung pinagbawal sa custom games","Die Kamera kann sich auch nach links bewegen, ausser wenn ein nutzererstelltes Level es nicht erlaubt.",Tüm levellerde gerİye doğru hareket edebİlİrsİnİz (özel bİr level bunu engellemedİğİ sürece),Anda dapat bergerak mundur di semua level (kecuali level kustom mencegahnya),"Você pode andar para trás em todos os níveis (a menos que um nível customizado não o permita), Experiência recomendada.",デフォルトステージモード:もどることはできる。
DESC_LAKITU_0,,"Lakitu will throw spiny's straight upwards, exactly like in the original games. (was due to a bug)","Lakitu jettera des Hériss en ligne droite verticale, comme il le faisait dans les jeux originaux (à cause d'un bug)","Lakitu rzuca kolczastych prosto w górę, dokładnie jak w oryginale. (Oryginalnie niezamierzane)","ЛakиtУ бУдet пoдбpacыbatь koлючkУ пpяmo bbepx, b toчhoctи kak b opигиhaльhыx игpax. (эto пpoизoшлo из-зa oшибkи)","Lakitu lanzará a los Spiny directamente hacia arriba, exactamente igual que en los juegos originales. (debido a un error)","Lakitu lancerà i koopistrici verticalmente verso l'alto, esattamente come nel gioco originale (questo era a causa di un bug)."," ' , . ( )","Pataas, Klasik na pagtapon ng Lakitu ng spiny","Lakitu wirft Stachis senkrecht nach oben, wie bei den Originalspielen. (Dies passierte aufgrund eines Bugs)",Lakİtu orİjİnal oyunlardakİ gİbİ Spİny'lerİ dümdüz yukarı doğru fırlatacak. (bİr hata nedenİyle),"Lakitu akan melemparkan spiny lurus ke atas, persis seperti di game aslinya. (disebabkan oleh bug)","Lakitus vão arremessar spinys direto para cima, que nem no jogo original.",トゲゾーが うえに なげられる。
1 description en fr pl ru es it ga fil de tr id pt jp
184 CUTSCENE_LL_PEACH_5 CUTSCENE_LL_PEACH_3 Just make sure to get the idea of "The day is saved! You're our hero! Hurrah!" This ends your trip Hurrah to {PLAYER} C'est ainsi que se termine Hourra pour {PLAYER} ! Kończy się szlak, Niech żyje {PLAYER} bot и ckaзkи koheц cлaba {PLAYER} Aquí termina tu viaje. Hurra por {PLAYER} la tua avventura di una lunga amicizia Hurrah a {PLAYER}! THIS ENDS YOUR TRIP HURRAH TO {PLAYER} Dito nagtatapos Magpugay kay {PLAYER} ! Somit endet unsere Hurra an {PLAYER}! Son buldu bu sefer Yaşasın {PLAYER}! Ini mengakhiri perjalanan Anda Hore untuk {PLAYER}! Aqui termina sua rotina Parabéns {PLAYER} ながい ゆうじょうの {PLAYER}ばんざい
185 CUTSCENE_LL_PEACH_6 CUTSCENE_LL_PEACH_4 Of a long friendship Our only hero Cette bien longue amitié Notre grand héro Przyjaźni znak. Nasz bohater Дoлгoй дpУжбы haш beлиkий гepoй De una larga amistad Nuestro único héroe e giunta al termine. Il nostro unico eroe. OF A LONG FRIENDSHIP OUR ONLY HERO Ang ating paglalakbay Ang ating bayani Lange Reise. Lieber Held, Dostlukla geçen nİce sene Bİzİm tek kahramanımız Dari persahabatan yang panjang Pahlawan kita satu-satunya De uma amizade divina Nosso herói destemido たびが おわる ゆいいつの ヒーロー
186 CUTSCENE_LL_PEACH_7 CUTSCENE_LL_PEACH_4F needed for languages which use female pronouns for "hero" (toadette), defaults to male pronouns otherwise 100000 PTS. ADDED Our only heroine 100000 PTS. Rajoutés Notre grand héroïne 100000 PKT. DODANYCH Nasza bohaterka 100000 oЧk. ДoБabЛeho haшa beлиkaя гepoиhя 100000 PTS. AÑADIDOS Nuestra única heroína 100000 PT. AGGIUNTI la nostra unica eroina. 100000 PTS. ADDED OUR ONLY HEROINE 100000 PTS. ADDED Ang ating bayani 100,000 Pkt. hinzugefügt Liebe Heldin, Her kalan hayat İçİn 100000 POIN DITAMBAHKAN Pahlawan wanita kita satu-satunya 100000 PTS. ADICIONADOS Nossa heroína destemida のこりにんずう 1ごとに ゆいいつの ヒーロー
187 CUTSCENE_LL_PEACH_5 This ends your trip C'est ainsi que se termine Kończy się szlak, bot и ckaзkи koheц Aquí termina tu viaje. la tua avventura di una lunga amicizia THIS ENDS YOUR TRIP Dito nagtatapos Somit endet unsere Son buldu bu sefer Ini mengakhiri perjalanan Anda Aqui termina sua rotina ながい ゆうじょうの
188 CUTSCENE_LL_PEACH_8 CUTSCENE_LL_PEACH_6 FOR EACH LIFE LEFT. Of a long friendship Pour chaque vies restantes Cette bien longue amitié ZA KAŻDE POZOSTAŁE ŻYCIE. Przyjaźni znak. Зa kaЖДУЮ octabШУЮcЯ ЖИЗhЬ Дoлгoй дpУжбы POR CADA VIDA RESTANTE De una larga amistad PER OGNI VITA RIMASTA. e giunta al termine. FOR EACH LIFE LEFT. OF A LONG FRIENDSHIP SA BAWAT LIFE NA NATITIRA. Ang ating paglalakbay für jedes übrige Leben Lange Reise. 100.000 Puan Eklendİ! Dostlukla geçen nİce sene UNTUK SETIAP KEHIDUPAN YANG TERSISA. Dari persahabatan yang panjang PARA CADA VIDA RESTANTE. De uma amizade divina 100000ポイント かさん たびが おわる
189 MARATHON_SELECT CUTSCENE_LL_PEACH_7 Select Marathon 100000 PTS. ADDED Choisir Marathon 100000 PTS. Rajoutés Wybierz Maraton 100000 PKT. DODANYCH bыбepиte mapaфoh 100000 oЧk. ДoБabЛeho Seleccionar maratón 100000 PTS. AÑADIDOS Seleziona maratona 100000 PT. AGGIUNTI SELECT MARATHON 100000 PTS. ADDED Pumili ng maraton 100000 PTS. ADDED Marathon auswählen 100,000 Pkt. hinzugefügt Maraton Seç Her kalan hayat İçİn Pilih Marathon 100000 POIN DITAMBAHKAN Selecione uma Maratona 100000 PTS. ADICIONADOS マラソンをえらぶ のこりにんずう 1ごとに
190 MARATHON_FULL CUTSCENE_LL_PEACH_8 Full Marathon FOR EACH LIFE LEFT. Marathon Complet Pour chaque vies restantes Pełny Maraton ZA KAŻDE POZOSTAŁE ŻYCIE. Пoлhый mapaфoh Зa kaЖДУЮ octabШУЮcЯ ЖИЗhЬ Maratón completo POR CADA VIDA RESTANTE Maratona completa PER OGNI VITA RIMASTA. FULL MARATHON FOR EACH LIFE LEFT. Buong maraton SA BAWAT LIFE NA NATITIRA. Spiel-Marathon für jedes übrige Leben Full Maraton 100.000 Puan Eklendİ! Maraton Penuh UNTUK SETIAP KEHIDUPAN YANG TERSISA. Maratona Completa PARA CADA VIDA RESTANTE. フルマラソン 100000ポイント かさん
214 EDITOR_MAIN_REFRESH EDITOR_MAIN_LEVEL_CONFIRM Refresh List Confirm? Rafraîchir Liste Confirmer ? Odśwież Listę Potwierdzić? oбhobиtь лиct Пoдtbepдиtь? Actualizar lista ¿Confirmar? Aggiorna lista Confermi? REFRESH LIST CONFIRM? i-refresh ang list I-confirm? Liste aktualisieren Bestätigen? Lİsteyİ Yenİle Onayla Perbarui Daftar Mengonfirmasi? Recarregar Lista Confirmar? リストをこうしん かくにん?
215 EDITOR_MAIN_LSS EDITOR_MAIN_OPEN_FOLDER Browse LSS Open Folder Surfer sur LSS Ouvrir Dossier Przeglądaj LSS Otwórz Folder Пoиck b LSS otkpыtь пaпkУ Explorar LSS Abrir carpeta Esplora LSS Apri cartella BROWSE LSS OPEN FOLDER Humanap sa LSS Buksan ang folder LSS durchsuchen Ordner öffnen LSS'ye Gözat Klasörü Aç Jelajahi LSS Buka Folder Pesquisa LSS Abrir Pasta LSSをえつらんする フォルダをひらく
216 EDITOR_LSS_SORT EDITOR_MAIN_REFRESH Sort: Refresh List Filtre: Rafraîchir Liste Filtruj Odśwież Listę coptиpobka: oбhobиtь лиct Ordenar Actualizar lista Filtra: Aggiorna lista SORT: REFRESH LIST Sort: i-refresh ang list Sortieren: Liste aktualisieren Sırala: Lİsteyİ Yenİle Menyortir: Perbarui Daftar Organizar: Recarregar Lista ならべかえる: リストをこうしん
217 EDITOR_MAIN_LSS Browse LSS Surfer sur LSS Przeglądaj LSS Пoиck b LSS Explorar LSS Esplora LSS BROWSE LSS Humanap sa LSS LSS durchsuchen LSS'ye Gözat Jelajahi LSS Pesquisa LSS LSSをえつらんする
218 EDITOR_LSS_SORT Sort: Filtre: Filtruj coptиpobka: Ordenar Filtra: SORT: Sort: Sortieren: Sırala: Menyortir: Organizar: ならべかえる:
219 EDITOR_LSS_SORT_FEATURED Featured Mis en avant Wyróżnione pekomehдУemыe Destacados In evidenza FEATURED Featured Empfohlen Öne Çıkan Unggulan Destaque にんき
220 EDITOR_LSS_SORT_RECENT Recent Récent Ostatnie heдabhиe Recientes Più recente RECENT Bago Neu Yenİ Terkini Recente あたらしい
221 EDITOR_LSS_SORT_DOWNLOADS Downloads Téléchargements Pobrane ckaчиbahия Descargas Più scaricati DOWNLOADS mga nakadownload Downloads İndİrİlenler Unduhan Downloads ダウンロードすう

View File

@@ -537,7 +537,7 @@ size_flags_vertical = 3
theme_override_constants/separation = -4
script = ExtResource("4_avtty")
category_name = "SETTINGS_DIFFICULTY"
options = [NodePath("DamageStyle"), NodePath("Checkpoints"), NodePath("ExtraCheckpoints"), NodePath("Lives"), NodePath("FlagpoleLives"), NodePath("GameOverStyle"), NodePath("LevelDesign"), NodePath("BackScroll"), NodePath("TimeLimit"), NodePath("LakituStyle")]
options = [NodePath("DamageStyle"), NodePath("Checkpoints"), NodePath("ExtraCheckpoints"), NodePath("Lives"), NodePath("FlagpoleLives"), NodePath("GameOverStyle"), NodePath("LevelDesign"), NodePath("BackScroll"), NodePath("TimeLimit"), NodePath("TimerStyle"), NodePath("LakituStyle")]
description_node = NodePath("Description/AutoScrollContainer/MarginContainer/Desc")
[node name="Control" type="Control" parent="PanelContainer/MarginContainer/VBoxContainer/Difficulty"]
@@ -616,6 +616,14 @@ value_descs = Array[String](["DESC_TIME_0", "DESC_TIME_1"])
values = ["SETTING_OFF", "SETTING_ON"]
settings_category = "difficulty"
[node name="TimerStyle" parent="PanelContainer/MarginContainer/VBoxContainer/Difficulty" groups=["Options"] instance=ExtResource("3_dl6kk")]
layout_mode = 2
option_key = "timer_style"
title = "DIFFI_SECS"
value_descs = Array[String](["DESC_SECS_0", "DESC_SECS_1"])
values = ["SETTINGS_CLASSIC", "SETTINGS_MODERN"]
settings_category = "difficulty"
[node name="LakituStyle" parent="PanelContainer/MarginContainer/VBoxContainer/Difficulty" groups=["Options"] instance=ExtResource("3_dl6kk")]
layout_mode = 2
option_key = "lakitu_style"
@@ -635,7 +643,7 @@ size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_ksnto")
[node name="AutoScrollContainer" type="ScrollContainer" parent="PanelContainer/MarginContainer/VBoxContainer/Difficulty/Description"]
custom_minimum_size = Vector2(0, 48)
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
horizontal_scroll_mode = 0
vertical_scroll_mode = 3
@@ -920,6 +928,7 @@ script = ExtResource("19_k6yev")
[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Difficulty/LevelDesign" to="PanelContainer/MarginContainer/VBoxContainer/Difficulty/DifficultySetter" method="level_design_changed"]
[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Difficulty/BackScroll" to="PanelContainer/MarginContainer/VBoxContainer/Difficulty/DifficultySetter" method="backscroll_changed"]
[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Difficulty/TimeLimit" to="PanelContainer/MarginContainer/VBoxContainer/Difficulty/DifficultySetter" method="time_limit_changed"]
[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Difficulty/TimerStyle" to="PanelContainer/MarginContainer/VBoxContainer/Difficulty/DifficultySetter" method="timer_style_changed"]
[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Difficulty/LakituStyle" to="PanelContainer/MarginContainer/VBoxContainer/Difficulty/DifficultySetter" method="lakitu_style_changed"]
[connection signal="deleted" from="PanelContainer/MarginContainer/VBoxContainer/Data/CampaignData" to="PanelContainer/MarginContainer/VBoxContainer/Data/DataDeletion" method="delete_story"]
[connection signal="deleted" from="PanelContainer/MarginContainer/VBoxContainer/Data/ChallengeModeData" to="PanelContainer/MarginContainer/VBoxContainer/Data/DataDeletion" method="delete_challenge"]

View File

@@ -74,6 +74,7 @@ var file := {
"extra_checkpoints": 0,
"back_scroll": 0,
"time_limit": 1,
"timer_style": 0,
"lakitu_style": 0
}
}

View File

@@ -7,10 +7,17 @@ static var character_icons := [preload("res://Assets/Sprites/Players/Mario/LifeI
const RANK_COLOURS := {"F": Color.DIM_GRAY, "D": Color.WEB_MAROON, "C": Color.PALE_GREEN, "B": Color.DODGER_BLUE, "A": Color.RED, "S": Color.GOLD, "P": Color.PURPLE}
var delta_time := 0.0
func _ready() -> void:
Global.level_theme_changed.connect(update_character_info)
func _process(_delta: float) -> void:
func _process(delta: float) -> void:
if not get_tree().paused and $Timer.paused:
delta_time += delta
if delta_time >= 1:
delta_time -= 1
on_timeout()
handle_main_hud()
handle_pausing()
@@ -20,7 +27,7 @@ func handle_main_hud() -> void:
$Main/RedCoins.hide()
$Main/CoinCount.show()
%Combo.hide()
$Timer.paused = Settings.file.difficulty.timer_style == 1
$%Time.show()
%Stopwatch.hide()
%PB.hide()

View File

@@ -15,6 +15,9 @@ func flag_lives_changed(new_value := 0) -> void:
func time_limit_changed(new_value := 0) -> void:
Settings.file.difficulty.time_limit = new_value
func timer_style_changed(new_value := 0) -> void:
Settings.file.difficulty.timer_style = new_value
func game_over_changed(new_value := 0) -> void:
Settings.file.difficulty.game_over_behaviour = new_value