region names and types
This commit is contained in:
@@ -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()
|
||||
)
|
||||
|
||||
|
||||
@@ -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 ------------------
|
||||
|
||||
|
||||
@@ -5,28 +5,60 @@ const DEFAULT_ROCK_THRESHOLD = 0.3
|
||||
const DEFAULT_DECONTAMINATION_THRESHOLD = 0.3
|
||||
const DEFAULT_CRISTAL_THRESHOLD = 0.1
|
||||
const DEFAULT_CHARGE = 10
|
||||
const DEFAULT_TALION_CELL_CHANCE : Array[int] = [0,0,0,1,1]
|
||||
const DEFAULT_ENERGY_CELL_CHANCE : Array[int] = [1,2,2,2,3]
|
||||
const DEFAULT_TALION_CELL_CHANCE: Array[int] = [0, 0, 0, 1, 1]
|
||||
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]
|
||||
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
|
||||
@export var objective : int
|
||||
@export var charge : int
|
||||
@export var region_seed : int
|
||||
@export var modifiers : Array[RegionModifier]
|
||||
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(),
|
||||
_modifiers : Array[RegionModifier] = [],
|
||||
_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)
|
||||
|
||||
Reference in New Issue
Block a user