region names and types

This commit is contained in:
Altaezio
2026-07-11 19:01:29 +02:00
parent cb5a2421ae
commit 378b0fbcf0
10 changed files with 221 additions and 20 deletions
@@ -22,7 +22,7 @@ func is_needed_to_be_announced() -> bool:
func get_scene_title() -> String:
if region_data:
return region_data.region_name
return region_data.get_region_name()
return ""
func _on_generated(generated_scene : Node):
+1 -1
View File
@@ -264,7 +264,7 @@ zoom_out={
[internationalization]
locale/translation_remaps={}
locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.en.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.fr.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_4_cave_translation.en.translation", "res://translation/dialogs/dialogic_4_cave_translation.fr.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.fr.translation", "res://translation/dialogs/dialogic_9_borea_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.en.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_2_aqua_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_astra_top_translation.en.translation", "res://translation/dialogs/dialogic_2_estia_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_subterra_arrival_translation.en.translation", "res://translation/dialogs/dialogic_3_astra_end_translation.en.translation", "res://translation/dialogs/dialogic_91_borea_comms_up_translation.en.translation", "res://translation/dialogs/dialogic_92_borea_later_translation.en.translation", "res://translation/dialogs/dialogic_9_borea_arrival_translation.en.translation")
locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.en.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.fr.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_4_cave_translation.en.translation", "res://translation/dialogs/dialogic_4_cave_translation.fr.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.fr.translation", "res://translation/dialogs/dialogic_9_borea_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.en.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_2_aqua_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_astra_top_translation.en.translation", "res://translation/dialogs/dialogic_2_estia_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_subterra_arrival_translation.en.translation", "res://translation/dialogs/dialogic_3_astra_end_translation.en.translation", "res://translation/dialogs/dialogic_91_borea_comms_up_translation.en.translation", "res://translation/dialogs/dialogic_92_borea_later_translation.en.translation", "res://translation/dialogs/dialogic_9_borea_arrival_translation.en.translation", "res://translation/names/location_types.en.translation", "res://translation/names/location_types.fr.translation")
locale/test="fr"
[rendering]
@@ -45,7 +45,7 @@ func update_noise() -> void:
var noise := FastNoiseLite.new()
noise.noise_type = FastNoiseLite.TYPE_CELLULAR
noise.seed = region.data.region_name.hash() + region.data.charges
noise.seed = region.data.get_region_name().hash() + region.data.charges
texture.noise = noise
@@ -18,10 +18,10 @@ extends Node
@export var region : Region
func _ready():
meteo = Meteo.new(region.data.region_name.hash() + region.data.charges)
meteo = Meteo.new(region.data.get_region_name().hash() + region.data.charges)
region.data.pass_day_proceeded.connect(
func(data : RegionData):
meteo = Meteo.new(data.region_name.hash() + data.charges)
meteo = Meteo.new(data.get_region_name().hash() + data.charges)
wind_particles.restart()
)
+13 -3
View File
@@ -16,7 +16,8 @@ const START_ROCK_HOLE_RADIUS = 0
const PLAYER_ROCK_HOLE_RADIUS = 5
@export var region_seed : int
@export var region_name : String
@export var region_first_name : String
@export var region_name_key : String
@export var rock_threshold : float
@export var decontamination_threshold : float
@@ -67,7 +68,8 @@ func _init(
if parameter:
charges = parameter.get_charge()
objective = parameter.get_objective()
region_name = parameter.get_region_name()
region_first_name = parameter.region_first_name;
region_name_key = parameter.region_name_key;
region_seed = parameter.get_region_seed()
rock_threshold = parameter.get_rock_threshold()
decontamination_threshold = parameter.get_decontamination_threshold()
@@ -101,7 +103,15 @@ func update():
failed.emit()
updated.emit(self)
#endregion
func get_region_name() -> String:
var n := region_first_name
if region_name_key != "":
n = tr(region_name_key).format({"name": region_first_name})
for m in modifiers:
n = m.modify_region_name(n)
return n
#region ------------------ Score ------------------
@@ -10,23 +10,55 @@ const DEFAULT_ENERGY_CELL_CHANCE : Array[int] = [1,2,2,2,3]
const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3
const DEFAULT_SEED_RARITY_POOL: Array[int] = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
@export var region_name : String
const JUST_NAME_PROBABILITY := 0.3
const REGION_TYPES_CSV := "res://translation/names/location_types.csv"
const REGION_NAMES_FILE := "res://translation/names/location_names.csv"
@export var region_first_name: String
@export var region_name_key: String
@export var objective: int
@export var charge: int
@export var region_seed: int
@export var modifiers: Array[RegionModifier]
func _init(
_name = Random.generate_random_word(),
_name = "",
_modifiers: Array[RegionModifier] = [],
_region_seed = randi(),
):
region_name = _name
set_random_region_name()
modifiers = _modifiers
region_seed = _region_seed
func get_random_region_first_name() -> String:
var name_file := FileAccess.open(REGION_NAMES_FILE, FileAccess.READ)
var n_names := name_file.get_line().to_int()
var name_ind := randi_range(0, n_names)
var first_name := name_file.get_line()
for i in range(name_ind):
first_name = name_file.get_line()
return first_name
func get_random_region_name_key() -> String:
var place_file := FileAccess.open(REGION_TYPES_CSV, FileAccess.READ)
var n_places := place_file.get_line().split(",")[0].to_int()
var place_ind := randi_range(0, n_places)
var place_key := place_file.get_line().split(",")[0]
for i in range(place_ind):
place_key = place_file.get_line().split(",")[0]
return place_key
func set_random_region_name():
region_first_name = get_random_region_first_name()
if randf() > JUST_NAME_PROBABILITY:
region_name_key = get_random_region_name_key()
else:
region_name_key = ""
func get_region_name() -> String:
var n := region_name
var n := region_first_name
if region_name_key != "":
n = tr(region_name_key).format({"name": region_first_name})
for m in modifiers:
n = m.modify_region_name(n)
+100
View File
@@ -0,0 +1,100 @@
49
Isitt
Pomoa
Ezeron
Ebis
Ecloya
Vlamedun
Iuqeresh
Faishostruc
Iupoqune
Slazor
Plulune
Fledu
Jiclot
Greyun
Uasland
Brisiobu
Eazeyo
Ebimeron
Fosmule
Yaglaisal
Ushium
Nesnar
Broysau
Shiesal
Eblie
Ostraria
Scev bren
Nochuedan
Woshania
Eblor
Ochil
Speles
Oscesh
Estor
Lagronus
Relmania
Bobbeon
Zigrore
Peclite
Eivis
Drugantu
Latunides
Qisos
Bosos
Sreriq
Yesta
Nodeuria
Thosone
Zinuna
Viurus
Natis
Laduphus
Cebbaphus
Gulnyke
Pungea
Vebos
Nebos
Dremili
Seganides
Icania
Aboulara
Guzadus
Dulmea
Kueli
Deothe
Gonides
Monvelib
Baccutum
Cimemia
Ricia
Nechov
Huphus
Choacurry
Maliat
Deaphus
Melutania
Cumao
Ponvuna
Thunzo
Thonides
Iulia
Choabantu
Crugacarro
Oratal
Chromia
Onglea
Dophosie
Xepra
Bonus
Neirus
Brazacury
Xilmertum
Vibraios
Gohosie
Chistrade
Zapra
Boruta
Mathor
Dirunides
1 49
2 Isitt
3 Pomoa
4 Ezeron
5 Ebis
6 Ecloya
7 Vlamedun
8 Iuqeresh
9 Faishostruc
10 Iupoqune
11 Slazor
12 Plulune
13 Fledu
14 Jiclot
15 Greyun
16 Uasland
17 Brisiobu
18 Eazeyo
19 Ebimeron
20 Fosmule
21 Yaglaisal
22 Ushium
23 Nesnar
24 Broysau
25 Shiesal
26 Eblie
27 Ostraria
28 Scev bren
29 Nochuedan
30 Woshania
31 Eblor
32 Ochil
33 Speles
34 Oscesh
35 Estor
36 Lagronus
37 Relmania
38 Bobbeon
39 Zigrore
40 Peclite
41 Eivis
42 Drugantu
43 Latunides
44 Qisos
45 Bosos
46 Sreriq
47 Yesta
48 Nodeuria
49 Thosone
50 Zinuna
51 Viurus
52 Natis
53 Laduphus
54 Cebbaphus
55 Gulnyke
56 Pungea
57 Vebos
58 Nebos
59 Dremili
60 Seganides
61 Icania
62 Aboulara
63 Guzadus
64 Dulmea
65 Kueli
66 Deothe
67 Gonides
68 Monvelib
69 Baccutum
70 Cimemia
71 Ricia
72 Nechov
73 Huphus
74 Choacurry
75 Maliat
76 Deaphus
77 Melutania
78 Cumao
79 Ponvuna
80 Thunzo
81 Thonides
82 Iulia
83 Choabantu
84 Crugacarro
85 Oratal
86 Chromia
87 Onglea
88 Dophosie
89 Xepra
90 Bonus
91 Neirus
92 Brazacury
93 Xilmertum
94 Vibraios
95 Gohosie
96 Chistrade
97 Zapra
98 Boruta
99 Mathor
100 Dirunides
@@ -0,0 +1,16 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://soi6t0mktsjj"
[deps]
source_file="res://translation/names/location_names.csv"
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
+24
View File
@@ -0,0 +1,24 @@
23,en,fr
VALLEY,Valley of {name},Vallée {name}
HIGHLANDS,{name} Highlands,Hautes terres de {name}
HEIGHTS,{name} Heights,Hauteurs de {name}
MOUNTAIN,Mountain of {name},Montagne {name}
PEAKS,{name} Peaks,Piques de {name}
HILLS,{name} Hills,Collines {name}
PASS,Pass of {name},Passe {name}
PLAIN,Plain of {name},Plaine {name}
CANAL,Canal of {name},Canal de {name}
FLATLANDS,Flatlands of {name},Terres plates de {name}
LABYRINTH,{name} Labyrinth,Labyrinthe {name}
REGION,Region of {name},Région de {name}
BARRIER,Barrier of {name},Barrière de {name}
CROWN,{name} Crown,Couronne {name}
SUMMIT,Summit of {name},Sommet de {name}
PANORAMA,{name} Panorama,Panorama de {name}
EXPANSE,{name} Expanse,Étendues {name}
GROUNDS,{name} Grounds,Terres de {name}
PLATEAU,Plateau of {name},Plateau de {name}
FOOTHILLS,{name} Foothills,Contreforts de {name}
CANYON,Canyon of {name},Canyon {name}
RIDGE,{name} Ridge,Crête de {name}
LANDSCAPE,{name} Landscape,Paysage de {name}
1 23 en fr
2 VALLEY Valley of {name} Vallée {name}
3 HIGHLANDS {name} Highlands Hautes terres de {name}
4 HEIGHTS {name} Heights Hauteurs de {name}
5 MOUNTAIN Mountain of {name} Montagne {name}
6 PEAKS {name} Peaks Piques de {name}
7 HILLS {name} Hills Collines {name}
8 PASS Pass of {name} Passe {name}
9 PLAIN Plain of {name} Plaine {name}
10 CANAL Canal of {name} Canal de {name}
11 FLATLANDS Flatlands of {name} Terres plates de {name}
12 LABYRINTH {name} Labyrinth Labyrinthe {name}
13 REGION Region of {name} Région de {name}
14 BARRIER Barrier of {name} Barrière de {name}
15 CROWN {name} Crown Couronne {name}
16 SUMMIT Summit of {name} Sommet de {name}
17 PANORAMA {name} Panorama Panorama de {name}
18 EXPANSE {name} Expanse Étendues {name}
19 GROUNDS {name} Grounds Terres de {name}
20 PLATEAU Plateau of {name} Plateau de {name}
21 FOOTHILLS {name} Foothills Contreforts de {name}
22 CANYON Canyon of {name} Canyon {name}
23 RIDGE {name} Ridge Crête de {name}
24 LANDSCAPE {name} Landscape Paysage de {name}
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://po0o4bpp34vl"
[deps]
files=["res://translation/names/location_types.en.translation", "res://translation/names/location_types.fr.translation"]
source_file="res://translation/names/location_types.csv"
dest_files=["res://translation/names/location_types.en.translation", "res://translation/names/location_types.fr.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true