Ajout des mutations Sauveteuse, Adaptative et résistante, ajout des crédits du jeu et d'un splash screen (+ un peu de debug)
This commit is contained in:
@@ -45,7 +45,10 @@ func get_all_mutations() -> Array[PlantMutation]:
|
||||
ErmitMutation.new(),
|
||||
TropicalMutation.new(),
|
||||
RhizomeMutation.new(),
|
||||
SpontaneousMutation.new()
|
||||
SpontaneousMutation.new(),
|
||||
SaviorMutation.new(),
|
||||
AdaptiveMutation.new(),
|
||||
ResistantMutation.new(),
|
||||
]
|
||||
|
||||
func get_all_artifacts() -> Array[Artefact]:
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class="icon icon-tabler icons-tabler-filled icon-tabler-brand-tiktok"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<path
|
||||
stroke="none"
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path1" />
|
||||
<path
|
||||
d="M16.083 2h-4.083a1 1 0 0 0 -1 1v11.5a1.5 1.5 0 1 1 -2.519 -1.1l.12 -.1a1 1 0 0 0 .399 -.8v-4.326a1 1 0 0 0 -1.23 -.974a7.5 7.5 0 0 0 1.73 14.8l.243 -.005a7.5 7.5 0 0 0 7.257 -7.495v-2.7l.311 .153c1.122 .53 2.333 .868 3.59 .993a1 1 0 0 0 1.099 -.996v-4.033a1 1 0 0 0 -.834 -.986a5.005 5.005 0 0 1 -4.097 -4.096a1 1 0 0 0 -.986 -.835z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 849 B |
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dcpi3j7568ssj"
|
||||
path="res://.godot/imported/brand-tiktok.svg-90d59fe4c9acbda3dd44d01df8d28aaf.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/brand-tiktok.svg"
|
||||
dest_files=["res://.godot/imported/brand-tiktok.svg-90d59fe4c9acbda3dd44d01df8d28aaf.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class="icon icon-tabler icons-tabler-filled icon-tabler-brand-youtube"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<path
|
||||
stroke="none"
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path1" />
|
||||
<path
|
||||
d="M18 3a5 5 0 0 1 5 5v8a5 5 0 0 1 -5 5h-12a5 5 0 0 1 -5 -5v-8a5 5 0 0 1 5 -5zm-9 6v6a1 1 0 0 0 1.514 .857l5 -3a1 1 0 0 0 0 -1.714l-5 -3a1 1 0 0 0 -1.514 .857z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 674 B |
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://r5xl8pwfnxwj"
|
||||
path="res://.godot/imported/brand-youtube.svg-31f5c2fee0d5c1adf44bc13b41fe4ea0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/brand-youtube.svg"
|
||||
dest_files=["res://.godot/imported/brand-youtube.svg-31f5c2fee0d5c1adf44bc13b41fe4ea0.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
class="icon icon-tabler icons-tabler-outline icon-tabler-lifebuoy"
|
||||
version="1.1"
|
||||
id="svg7"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs7" />
|
||||
<path
|
||||
stroke="none"
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path1" />
|
||||
<path
|
||||
d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"
|
||||
id="path2"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"
|
||||
id="path3"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
d="M15 15l3.35 3.35"
|
||||
id="path4"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
d="M9 15l-3.35 3.35"
|
||||
id="path5"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
d="M5.65 5.65l3.35 3.35"
|
||||
id="path6"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
d="M18.35 5.65l-3.35 3.35"
|
||||
id="path7"
|
||||
style="stroke:#ffffff;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bu7t6am6rptlw"
|
||||
path="res://.godot/imported/lifebuoy.svg-cc678597b00928806b7d9adfb55d35f6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/lifebuoy.svg"
|
||||
dest_files=["res://.godot/imported/lifebuoy.svg-cc678597b00928806b7d9adfb55d35f6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1,11 @@
|
||||
extends Scene
|
||||
class_name CreditsScene
|
||||
|
||||
func get_scene_id() -> String:
|
||||
return "CREDITS"
|
||||
|
||||
func get_scene_path() -> String:
|
||||
return "res://gui/credits/credits.tscn"
|
||||
|
||||
func is_needed_to_be_saved() -> bool:
|
||||
return false
|
||||
@@ -0,0 +1 @@
|
||||
uid://c1a1t8k7b4nny
|
||||
@@ -19,7 +19,7 @@ const ACH_STW_HIT_30_INFINITE="STW_HIT_30_INFINITE"
|
||||
func unlock_achievement(achivement_name : String):
|
||||
if Steam.isSteamRunning():
|
||||
var status = Steam.getAchievement(achivement_name)
|
||||
print("Steam Achievement %s" %achivement_name)
|
||||
print_verbose("Steam Achievement %s" %achivement_name)
|
||||
if status.has("ret") and status.ret and not status.achieved:
|
||||
Steam.setAchievement(achivement_name)
|
||||
Steam.storeStats()
|
||||
@@ -11,7 +11,9 @@ func update():
|
||||
else Color.RED )
|
||||
%EnergyText.text = str(region.data.charges)
|
||||
if not region.data.pass_day_ended.is_connected(update):
|
||||
region.data.pass_day_ended.connect(update)
|
||||
region.data.pass_day_ended.connect(
|
||||
func (_data): update()
|
||||
)
|
||||
|
||||
func can_interact(_p : Player) -> bool:
|
||||
return (
|
||||
|
||||
@@ -131,11 +131,9 @@ func harvest():
|
||||
if do_produce_seeds:
|
||||
for i in range(data.get_seed_number()):
|
||||
await produce_seed()
|
||||
|
||||
if data.get_state() == PlantData.State.MATURE:
|
||||
for m in data.mutations:
|
||||
m._start_harvested_effect(self)
|
||||
|
||||
harvested = true
|
||||
|
||||
plant_sprite.start_harvest_animation()
|
||||
|
||||
@@ -17,6 +17,7 @@ enum State {PLANTED, GROWING, MATURE, DEAD}
|
||||
|
||||
var decontamination_area_factor = 0.
|
||||
var nearby_plants : Array[PlantData]
|
||||
var region_data : RegionData
|
||||
|
||||
func _init(
|
||||
_position: Vector2 = Vector2.ZERO,
|
||||
@@ -149,7 +150,14 @@ func get_score_buff() -> int:
|
||||
buff = m.mutate_score_buff(self, buff)
|
||||
|
||||
return buff
|
||||
|
||||
func get_mutation_probability_boost() -> float:
|
||||
var boost = 0
|
||||
|
||||
for m in mutations:
|
||||
boost = m.mutate_mutation_probability_boost(self, boost)
|
||||
|
||||
return boost
|
||||
|
||||
func disappear():
|
||||
disappeared.emit(self )
|
||||
|
||||
@@ -18,6 +18,9 @@ func get_icon() -> Texture:
|
||||
func get_base_rarity() -> int:
|
||||
return 0
|
||||
|
||||
func get_max_rarity() -> int:
|
||||
return MAX_RARITY
|
||||
|
||||
@abstract func get_mutation_id() -> String
|
||||
|
||||
func get_mutation_name() -> String:
|
||||
@@ -31,6 +34,9 @@ func mutate_plant_data(_plant_data: PlantData):
|
||||
func nullify_score(_plant_data: PlantData) -> bool:
|
||||
return false
|
||||
|
||||
func allow_planting_on_decontamined_terrain(_seed : Seed) -> bool:
|
||||
return false
|
||||
|
||||
func mutate_score(_plant_data: PlantData, score: int) -> int:
|
||||
return score
|
||||
|
||||
@@ -61,6 +67,9 @@ func mutate_seed_buff(_plant_data: PlantData, seed_buff : int) -> int:
|
||||
func mutate_score_buff(_plant_data: PlantData, score_buff : int) -> int:
|
||||
return score_buff
|
||||
|
||||
func mutate_mutation_probability_boost(_plant_data: PlantData, mutation_probability_boost : int) -> float:
|
||||
return mutation_probability_boost
|
||||
|
||||
func _start_planted_effect(_plant: Plant):
|
||||
pass
|
||||
|
||||
@@ -83,7 +92,7 @@ func get_rarity() -> int:
|
||||
return get_base_rarity() + level - 1
|
||||
|
||||
func is_max_level() -> bool:
|
||||
return get_base_rarity() + level < MAX_RARITY
|
||||
return get_base_rarity() + level < get_max_rarity()
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
var info = CardInfo.new(
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
extends PlantMutation
|
||||
class_name AdaptiveMutation
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/dna.svg")
|
||||
|
||||
func get_mutation_id() -> String:
|
||||
return "ADAPTIVE"
|
||||
|
||||
func get_base_rarity() -> int:
|
||||
return 0
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("ADAPTIVE_EFFECT_TEXT").format({
|
||||
"mutation_probability_boost": get_mutation_probability_boost(),
|
||||
})
|
||||
|
||||
func get_mutation_probability_boost()->float:
|
||||
return level * 0.05
|
||||
@@ -0,0 +1 @@
|
||||
uid://blwkliqwgqs32
|
||||
@@ -21,5 +21,5 @@ func mutate_score_multiplier(plant_data: PlantData, multiplier: float) -> float:
|
||||
return multiplier + get_score_multiplier()
|
||||
return multiplier
|
||||
|
||||
func get_score_multiplier()->int:
|
||||
return level
|
||||
func get_score_multiplier()->float:
|
||||
return 0.5 * level
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
extends PlantMutation
|
||||
class_name ResistantMutation
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/radioactive.svg")
|
||||
|
||||
func get_mutation_id() -> String:
|
||||
return "RESISTANT"
|
||||
|
||||
func get_base_rarity() -> int:
|
||||
return 0
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("RESISTANT_EFFECT_TEXT")
|
||||
|
||||
func is_max_level() -> bool:
|
||||
return true
|
||||
|
||||
func allow_planting_on_decontamined_terrain(_seed : Seed) -> bool:
|
||||
return true
|
||||
@@ -0,0 +1 @@
|
||||
uid://dfuknjnoo1fp8
|
||||
@@ -0,0 +1,25 @@
|
||||
extends PlantMutation
|
||||
class_name SaviorMutation
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/lifebuoy.svg")
|
||||
|
||||
func get_mutation_id() -> String:
|
||||
return "SAVIOR"
|
||||
|
||||
func get_base_rarity() -> int:
|
||||
return 0
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("SAVIOR_EFFECT_TEXT").format({
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
|
||||
"score_multiplier": get_score_multiplier() + 1,
|
||||
})
|
||||
|
||||
func mutate_score_multiplier(plant_data: PlantData, multiplier: float) -> float:
|
||||
if plant_data.region_data and plant_data.region_data.charges == 0:
|
||||
return multiplier + get_score_multiplier()
|
||||
return multiplier
|
||||
|
||||
func get_score_multiplier()->float:
|
||||
return 0.5 * level
|
||||
@@ -0,0 +1 @@
|
||||
uid://dn1qruq8wu8y7
|
||||
@@ -5,7 +5,7 @@ func get_icon() -> Texture:
|
||||
return preload("res://common/icons/sparkles.svg")
|
||||
|
||||
func get_base_rarity() -> int:
|
||||
return 0
|
||||
return 1
|
||||
|
||||
func is_max_level() -> bool:
|
||||
return true
|
||||
|
||||
@@ -19,7 +19,10 @@ func _init(
|
||||
|
||||
static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[PlantData] = []) -> Seed:
|
||||
var mutations : Array[PlantMutation] = plant_data.mutations
|
||||
var mutation_probability = GameInfo.game_data.current_run.plant_info.get_mutation_probability()
|
||||
var mutation_probability = (
|
||||
GameInfo.game_data.current_run.plant_info.get_mutation_probability()
|
||||
+ plant_data.get_mutation_probability_boost()
|
||||
)
|
||||
|
||||
var nearby_mutations : Array[PlantMutation] = []
|
||||
for pd in nearby_plants:
|
||||
@@ -107,9 +110,15 @@ func can_use(player : Player, zone : Player.ActionZone) -> bool:
|
||||
zone.get_global_position(),
|
||||
)] as Array[Vector2i]
|
||||
|
||||
var is_decontaminated = player.region.is_coords_decontaminated(plant_tiles)
|
||||
|
||||
for m in plant_mutations:
|
||||
if m.allow_planting_on_decontamined_terrain(self):
|
||||
is_decontaminated = true
|
||||
|
||||
return (
|
||||
not is_there_a_plant_here
|
||||
and player.region.is_coords_decontaminated(plant_tiles)
|
||||
and is_decontaminated
|
||||
and not player.region.is_coords_rocky(plant_tiles)
|
||||
)
|
||||
|
||||
@@ -178,11 +187,12 @@ static func generate_first_mutations(rarity := 0) -> Array[PlantMutation]:
|
||||
if rarity < 0:
|
||||
return []
|
||||
|
||||
var possible_mutation : PlantMutation = GameInfo.game_data.progression_data.get_available_mutations().filter(
|
||||
var possible_mutations : Array[PlantMutation] = GameInfo.game_data.progression_data.get_available_mutations().filter(
|
||||
func (m : PlantMutation): return m.get_base_rarity() <= rarity
|
||||
).pick_random()
|
||||
)
|
||||
|
||||
if possible_mutation:
|
||||
if len(possible_mutations):
|
||||
var possible_mutation = possible_mutations.pick_random()
|
||||
possible_mutation = possible_mutation.duplicate_deep()
|
||||
|
||||
var level_to_add = rarity - possible_mutation.get_base_rarity()
|
||||
@@ -197,9 +207,11 @@ static func mutate_mutations(mutations : Array[PlantMutation], nearby_mutations
|
||||
var mutation_possibility : Array[MutationPossibility] = []
|
||||
|
||||
var evolvable_mutations : Array[PlantMutation] = mutations.filter(
|
||||
func (m : PlantMutation): return not m.is_max_level()
|
||||
func (m : PlantMutation):
|
||||
return not m.is_max_level()
|
||||
)
|
||||
|
||||
|
||||
if (
|
||||
len(mutations) < GameInfo.game_data.current_run.plant_info.get_mutation_max_number()
|
||||
):
|
||||
@@ -208,9 +220,12 @@ static func mutate_mutations(mutations : Array[PlantMutation], nearby_mutations
|
||||
if len(evolvable_mutations) > 0:
|
||||
mutation_possibility.append(UpgradeMutation.new())
|
||||
|
||||
var chosen_mutation_possibility = mutation_possibility.pick_random()
|
||||
|
||||
return chosen_mutation_possibility.mutate(mutations,nearby_mutations)
|
||||
if len(mutation_possibility) > 0:
|
||||
var chosen_mutation_possibility = mutation_possibility.pick_random()
|
||||
return chosen_mutation_possibility.mutate(mutations,nearby_mutations)
|
||||
else:
|
||||
print_debug("No mutation possility available")
|
||||
return mutations
|
||||
|
||||
class MutationPossibility:
|
||||
func mutate(_mutations : Array[PlantMutation], _nearby_mutations : Array[PlantMutation])-> Array[PlantMutation]:
|
||||
@@ -229,13 +244,16 @@ class AddMutation extends MutationPossibility:
|
||||
return mutations.find_custom(func(m2: PlantMutation): return m2.id == m.id) == -1
|
||||
)
|
||||
|
||||
var nearby_impacted_possible_new_mutations : Array[PlantMutation] = []
|
||||
|
||||
for m1 in possible_new_mutations:
|
||||
nearby_impacted_possible_new_mutations.append(m1)
|
||||
for m2 in nearby_mutations:
|
||||
if m1.id == m2.id:
|
||||
possible_new_mutations.append(m1) # Double les chances d'avoir la mutation si elle est présente dans les voisins
|
||||
nearby_impacted_possible_new_mutations.append(m1) # Double les chances d'avoir la mutation si elle est présente dans les voisins
|
||||
|
||||
if len(possible_new_mutations):
|
||||
new_mutations.append(possible_new_mutations.pick_random())
|
||||
if len(nearby_impacted_possible_new_mutations):
|
||||
new_mutations.append(nearby_impacted_possible_new_mutations.pick_random())
|
||||
|
||||
return new_mutations
|
||||
|
||||
@@ -250,7 +268,7 @@ class UpgradeMutation extends MutationPossibility:
|
||||
|
||||
for i in range(len(mutations)):
|
||||
var m = mutations[i]
|
||||
if m.get_rarity() < PlantMutation.MAX_RARITY:
|
||||
if not m.is_max_level():
|
||||
evolvable_mutations_id.append(i)
|
||||
|
||||
if len(evolvable_mutations_id):
|
||||
|
||||
@@ -115,9 +115,6 @@ func _process(delta):
|
||||
elif velocity != Vector2.ZERO and %MovementAudioStreamPlayer.playing == false:
|
||||
%MovementAudioStreamPlayer.play()
|
||||
|
||||
# print("-----")
|
||||
# print(elapsed_time)
|
||||
# print(last_just_dropped_item_objects_updated)
|
||||
if elapsed_time > last_just_dropped_item_objects_updated + JUST_DROPPED_ITEM_UPDATE_INTERVAL:
|
||||
update_just_dropped_item_objects()
|
||||
|
||||
|
||||
+147
-68
@@ -4,15 +4,12 @@
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="2_luv2b"]
|
||||
[ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_urbel"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_5k6jv"]
|
||||
[ext_resource type="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="5_luv2b"]
|
||||
[ext_resource type="Texture2D" uid="uid://baaujfw8piywi" path="res://common/icons/dna.svg" id="6_kip8e"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_urbel"]
|
||||
[ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="6_luv2b"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_urbel"]
|
||||
[ext_resource type="Texture2D" uid="uid://b75k12a4wc5t4" path="res://common/icons/book-2.svg" id="8_a8ny4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dbv5hm7lyi1f6" path="res://common/icons/infinity.svg" id="9_xl2r5"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_m5waa"]
|
||||
font = ExtResource("7_urbel")
|
||||
font_size = 20
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_urbel"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_5k6jv"]
|
||||
font = ExtResource("7_urbel")
|
||||
@@ -68,9 +65,34 @@ tracks/3/keys = {
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("SubViewport/Camera3D:rotation:x")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("SubViewport/Planet3d:fertility_factor")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_kip8e"]
|
||||
resource_name = "appear"
|
||||
length = 10.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
@@ -78,7 +100,7 @@ tracks/0/path = NodePath("MarginContainer/GridContainer:theme_override_constants
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"times": PackedFloat32Array(9, 10),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [2000, 0]
|
||||
@@ -90,7 +112,7 @@ tracks/1/path = NodePath("ColorRect:modulate")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.033333335, 0.5),
|
||||
"times": PackedFloat32Array(9.033333, 9.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
@@ -102,7 +124,7 @@ tracks/2/path = NodePath("MarginContainer:modulate")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.43333334, 1),
|
||||
"times": PackedFloat32Array(9.433333, 10),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
@@ -114,11 +136,35 @@ tracks/3/path = NodePath(".:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.033333335),
|
||||
"times": PackedFloat32Array(9.033333),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("SubViewport/Camera3D:rotation:x")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 9.033333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.51, 0.0]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("SubViewport/Planet3d:fertility_factor")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.46666667, 9.066667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a8ny4"]
|
||||
_data = {
|
||||
@@ -126,6 +172,9 @@ _data = {
|
||||
&"appear": SubResource("Animation_kip8e")
|
||||
}
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_5k6jv"]
|
||||
frequency = 1.0
|
||||
|
||||
[node name="Credits" type="CanvasLayer" unique_id=180964898]
|
||||
layer = 99
|
||||
script = ExtResource("1_kip8e")
|
||||
@@ -138,6 +187,17 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.03529412, 0.019607844, 0.1254902, 0.8)
|
||||
|
||||
[node name="Background1" type="TextureRect" parent="." unique_id=799945411]
|
||||
z_index = -1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("ViewportTexture_urbel")
|
||||
expand_mode = 2
|
||||
stretch_mode = 6
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1349934988]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -149,7 +209,7 @@ theme = ExtResource("2_luv2b")
|
||||
[node name="GridContainer" type="GridContainer" parent="MarginContainer" unique_id=1426452837]
|
||||
layout_mode = 2
|
||||
theme_override_constants/h_separation = 544
|
||||
theme_override_constants/v_separation = 448
|
||||
theme_override_constants/v_separation = 0
|
||||
columns = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=1825004235]
|
||||
@@ -169,63 +229,12 @@ stretch_mode = 5
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=215880453]
|
||||
layout_mode = 2
|
||||
text = "THANKS_FOR_PLAYING_DEMO"
|
||||
text = "THANKS_FOR_PLAYING"
|
||||
label_settings = ExtResource("4_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SteamButton" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1181450581 instance=ExtResource("5_luv2b")]
|
||||
[node name="Button" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=927302743 instance=ExtResource("5_urbel")]
|
||||
layout_mode = 2
|
||||
link = "https://store.steampowered.com/app/4444510/Seeding_The_Wasteland/"
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=465861616]
|
||||
modulate = Color(1, 0.6509804, 0.09019608, 1)
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="Label2" type="Label" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2" unique_id=1013363580]
|
||||
layout_mode = 2
|
||||
text = "IN_THE_COMPLETE_GAME"
|
||||
label_settings = ExtResource("4_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="VBoxContainer" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2" unique_id=115205131]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer" unique_id=148775652]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("6_kip8e")
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer" unique_id=1109596403]
|
||||
layout_mode = 2
|
||||
text = "TWICE_MORE_MUTATIONS"
|
||||
label_settings = SubResource("LabelSettings_m5waa")
|
||||
|
||||
[node name="VBoxContainer2" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2" unique_id=921966638]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer2" unique_id=32161915]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("8_a8ny4")
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer2" unique_id=578114248]
|
||||
layout_mode = 2
|
||||
text = "A_3_4_HOURS_STORY"
|
||||
label_settings = SubResource("LabelSettings_m5waa")
|
||||
|
||||
[node name="VBoxContainer3" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2" unique_id=1755435556]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer3" unique_id=1636037226]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("9_xl2r5")
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer/VBoxContainer2/VBoxContainer3" unique_id=222316161]
|
||||
layout_mode = 2
|
||||
text = "AN_INFINITE_MODE"
|
||||
label_settings = SubResource("LabelSettings_m5waa")
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250]
|
||||
layout_mode = 2
|
||||
@@ -276,7 +285,7 @@ alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine4" unique_id=1820679506]
|
||||
layout_mode = 2
|
||||
text = "Eva"
|
||||
text = "Eva Martel"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
@@ -291,7 +300,7 @@ alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine3" unique_id=1412859434]
|
||||
layout_mode = 2
|
||||
text = "Victor RJ"
|
||||
text = "Victor Robert Jaunet"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
@@ -330,6 +339,21 @@ layout_mode = 2
|
||||
text = "COMMUNICATION"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CreditsLine11" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=544572887]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine11" unique_id=1419201058]
|
||||
layout_mode = 2
|
||||
text = "Madison"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine11" unique_id=550646115]
|
||||
layout_mode = 2
|
||||
text = "PR_AND_MARKETING"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CreditsLine6" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=192767961]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
@@ -375,13 +399,28 @@ layout_mode = 2
|
||||
text = "TRAILER"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CreditsLine13" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1407984580]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine13" unique_id=651448224]
|
||||
layout_mode = 2
|
||||
text = "Baptiste Pocard"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine13" unique_id=1434120919]
|
||||
layout_mode = 2
|
||||
text = "CONCEPT_ARTS"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CreditsLine10" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1089087276]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine10" unique_id=399643362]
|
||||
layout_mode = 2
|
||||
text = "Ny Andy"
|
||||
text = "Ny Andy Ratinarivelo"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
@@ -390,6 +429,46 @@ layout_mode = 2
|
||||
text = "SPLASH_ART"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CreditsLine12" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1932899531]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine12" unique_id=2037812278]
|
||||
layout_mode = 2
|
||||
text = "Cesire"
|
||||
label_settings = SubResource("LabelSettings_5k6jv")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Role" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine12" unique_id=590486308]
|
||||
layout_mode = 2
|
||||
text = "DEMETER_VOICE"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1455518318]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_a8ny4")
|
||||
autoplay = &"appear"
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="." unique_id=245713755]
|
||||
size = Vector2i(1980, 1080)
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="SubViewport" unique_id=186360917]
|
||||
|
||||
[node name="Planet3d" parent="SubViewport" unique_id=866166298 instance=ExtResource("6_luv2b")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
noise = SubResource("FastNoiseLite_5k6jv")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="SubViewport" unique_id=232867368]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 64.323)
|
||||
current = true
|
||||
fov = 34.0
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="SubViewport" unique_id=1781058708]
|
||||
transform = Transform3D(0.044800885, 0.76661056, -0.6405476, -0.8325595, 0.38302267, 0.4001729, 0.55212104, 0.51536596, 0.65540874, -23.18848, 19.508549, 0)
|
||||
light_volumetric_fog_energy = 0.0
|
||||
light_specular = 0.0
|
||||
shadow_enabled = true
|
||||
shadow_normal_bias = 0.0
|
||||
shadow_opacity = 0.92
|
||||
shadow_blur = 4.667
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
[ext_resource type="Script" uid="uid://2qomrdxbvxqa" path="res://gui/game/pass_day/scripts/pass_day.gd" id="1_0pm4g"]
|
||||
[ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="2_feyaf"]
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="4_0pm4g"]
|
||||
[ext_resource type="Script" uid="uid://0dhj8sdpil7q" path="res://gui/tools/control_animation_player.gd" id="5_dqmg8"]
|
||||
[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="6_h2bel"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_h2bel"]
|
||||
[ext_resource type="Texture2D" uid="uid://cihiibon53147" path="res://gui/game/pass_day/assets/day_night_sprite.svg" id="7_m84xg"]
|
||||
@@ -51,9 +50,121 @@ _data = {
|
||||
&"pass": SubResource("Animation_5ap0m")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_0pm4g"]
|
||||
resource_name = "Appear"
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Background:modulate:a")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("NightAnimation:modulate:a")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("PassDayInfo:modulate:a")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.23333333, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("MarginContainer/EnergyPassDayInfo:modulate:a")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dqmg8"]
|
||||
resource_name = "Disappear"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_m84xg"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Background:modulate:a")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("NightAnimation:modulate:a")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("PassDayInfo:modulate:a")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("MarginContainer/EnergyPassDayInfo:modulate:a")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_h2bel"]
|
||||
_data = {
|
||||
&"Appear": SubResource("Animation_0pm4g"),
|
||||
&"Disappear": SubResource("Animation_dqmg8"),
|
||||
&"RESET": SubResource("Animation_m84xg")
|
||||
}
|
||||
|
||||
[node name="PassDay" type="CanvasLayer" unique_id=335255544]
|
||||
layer = 3
|
||||
visible = false
|
||||
script = ExtResource("1_0pm4g")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="." unique_id=527935985]
|
||||
@@ -68,7 +179,7 @@ color = Color(0.0627451, 0.05882353, 0.16862746, 1)
|
||||
|
||||
[node name="PassDayInfo" type="VBoxContainer" parent="." unique_id=833110506]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@@ -77,11 +188,6 @@ grow_vertical = 2
|
||||
theme = ExtResource("4_0pm4g")
|
||||
alignment = 1
|
||||
|
||||
[node name="PassDayInfoAnimationPlayer" type="Node" parent="PassDayInfo" unique_id=857480517]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("5_dqmg8")
|
||||
metadata/_custom_type_script = "uid://0dhj8sdpil7q"
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PassDayInfo" unique_id=1350962162]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
@@ -99,6 +205,7 @@ vertical_alignment = 1
|
||||
|
||||
[node name="NightAnimation" type="TextureRect" parent="." unique_id=126988628]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
custom_minimum_size = Vector2(500, 0)
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
@@ -140,8 +247,13 @@ theme_override_constants/margin_bottom = 15
|
||||
|
||||
[node name="EnergyPassDayInfo" parent="MarginContainer" unique_id=2044341204 instance=ExtResource("2_feyaf")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 15
|
||||
theme_override_constants/margin_top = 15
|
||||
theme_override_constants/margin_right = 15
|
||||
theme_override_constants/margin_bottom = 15
|
||||
|
||||
[node name="PassDayAnimationPlayer" type="AnimationPlayer" parent="." unique_id=2130854776]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_h2bel")
|
||||
|
||||
@@ -24,8 +24,6 @@ var is_animation_disappeared := false
|
||||
func _ready():
|
||||
hide()
|
||||
setup_energy_values()
|
||||
%PassDayInfo.hide()
|
||||
%Background.modulate.a = 0.
|
||||
|
||||
func _process(delta):
|
||||
if recharging:
|
||||
@@ -71,36 +69,14 @@ func pass_day_animation():
|
||||
|
||||
func appear():
|
||||
show()
|
||||
add_tween(
|
||||
"modulate:a",
|
||||
%Background,
|
||||
1.,
|
||||
0.5
|
||||
)
|
||||
await add_tween(
|
||||
"modulate:a",
|
||||
%NightAnimation,
|
||||
1.,
|
||||
0.5
|
||||
).finished
|
||||
%PassDayAnimationPlayer.play("Appear")
|
||||
|
||||
await %PassDayInfoAnimationPlayer.appear()
|
||||
await %PassDayAnimationPlayer.animation_finished
|
||||
|
||||
func disappear():
|
||||
await %PassDayInfoAnimationPlayer.disappear()
|
||||
add_tween(
|
||||
"modulate:a",
|
||||
%Background,
|
||||
0.0,
|
||||
0.5
|
||||
)
|
||||
await add_tween(
|
||||
"modulate:a",
|
||||
%NightAnimation,
|
||||
0.,
|
||||
0.5
|
||||
).finished
|
||||
%PassDayAnimationPlayer.play_backwards("Appear")
|
||||
|
||||
await %PassDayAnimationPlayer.animation_finished
|
||||
hide()
|
||||
|
||||
func add_tween(
|
||||
|
||||
@@ -19,6 +19,7 @@ config/description="Seeding planets is a survival, managment and cosy game in wh
|
||||
config/version="0.1"
|
||||
run/main_scene="uid://c5bruelvqbm1k"
|
||||
config/features=PackedStringArray("4.7", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0.0627451, 0.05882353, 0.16862746, 1)
|
||||
config/icon="uid://df0y0s666ui4h"
|
||||
|
||||
[audio]
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
extends Node
|
||||
|
||||
var game_loaded := false
|
||||
|
||||
func _ready():
|
||||
SceneManager.change_to_scene(TitleScene.new(), false)
|
||||
%SplashScreenAnimationPlayer.play("SplashScreen")
|
||||
|
||||
await %SplashScreenAnimationPlayer.animation_finished
|
||||
|
||||
load_game()
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventKey or event is InputEventJoypadButton or event is InputEventMouseButton:
|
||||
load_game()
|
||||
|
||||
func load_game():
|
||||
if not game_loaded:
|
||||
game_loaded = true
|
||||
SceneManager.change_to_scene(TitleScene.new(), false)
|
||||
|
||||
@@ -1,6 +1,68 @@
|
||||
[gd_scene format=3 uid="uid://c5bruelvqbm1k"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bely2if04v736" path="res://root.gd" id="1_pq8q7"]
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="2_vvh5c"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_jnlp7"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("OrchindiePresentLabel:modulate:a")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_l8v81"]
|
||||
resource_name = "SplashScreen"
|
||||
length = 2.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("OrchindiePresentLabel:modulate:a")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2, 1.8, 2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0, 1.0, 0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vyht1"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_jnlp7"),
|
||||
&"SplashScreen": SubResource("Animation_l8v81")
|
||||
}
|
||||
|
||||
[node name="Root" type="Node" unique_id=72535230]
|
||||
script = ExtResource("1_pq8q7")
|
||||
|
||||
[node name="SplashScreenAnimationPlayer" type="AnimationPlayer" parent="." unique_id=2094545804]
|
||||
unique_name_in_owner = true
|
||||
root_node = NodePath("../CanvasLayer")
|
||||
libraries/ = SubResource("AnimationLibrary_vyht1")
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=1024220320]
|
||||
|
||||
[node name="OrchindiePresentLabel" type="RichTextLabel" parent="CanvasLayer" unique_id=1828726261]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("2_vvh5c")
|
||||
theme_override_font_sizes/normal_font_size = 30
|
||||
theme_override_font_sizes/bold_font_size = 30
|
||||
theme_override_font_sizes/bold_italics_font_size = 30
|
||||
theme_override_font_sizes/italics_font_size = 30
|
||||
theme_override_font_sizes/mono_font_size = 30
|
||||
bbcode_enabled = true
|
||||
text = "ORCHINDIE_PRESENTS"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
@@ -41,9 +41,6 @@ shading_mode = 0
|
||||
albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1)
|
||||
albedo_texture = ExtResource("2_mr0dk")
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_dlfx2"]
|
||||
viewport_path = NodePath("Screen/SubViewport")
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
|
||||
size = Vector2(3, 3)
|
||||
|
||||
@@ -189,21 +186,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.9, -0.34409285)
|
||||
screen_text = "CONNECT_TO_POSEIDON"
|
||||
broken = true
|
||||
|
||||
[node name="Model" parent="AiReceptacle" index="0" unique_id=154868613]
|
||||
visible = false
|
||||
|
||||
[node name="ModelBroken" parent="AiReceptacle" index="1" unique_id=1633938801]
|
||||
visible = true
|
||||
|
||||
[node name="Support" parent="AiReceptacle/ModelBroken" index="5" unique_id=1098621972]
|
||||
surface_material_override/0 = ExtResource("4_nydtf")
|
||||
|
||||
[node name="Screen" parent="AiReceptacle" index="3" unique_id=1396407912]
|
||||
texture = SubResource("ViewportTexture_dlfx2")
|
||||
|
||||
[node name="ScreenTitle" parent="AiReceptacle/Screen/SubViewport/ScreenContent/VBoxContainer" parent_id_path=PackedInt32Array(1082354698, 1893636910) index="1" unique_id=443526476]
|
||||
text = "CONNECT_TO_POSEIDON"
|
||||
|
||||
[node name="SpotLight3D" type="SpotLight3D" parent="AiReceptacle" unique_id=1906884086]
|
||||
transform = Transform3D(1, 0, 0, 0, -0.67415154, -0.73859304, 0, 0.73859304, -0.67415154, 0, 0.66735864, 3.2564082)
|
||||
light_color = Color(0.972549, 0.007843138, 0.3764706, 1)
|
||||
@@ -281,6 +263,4 @@ autoplay = &"blink"
|
||||
[connection signal="clicked" from="AiReceptacle" to="." method="_on_ai_receptacle_clicked"]
|
||||
|
||||
[editable path="hub"]
|
||||
[editable path="AiReceptacle"]
|
||||
[editable path="AiReceptacle/ModelBroken"]
|
||||
[editable path="Player3D"]
|
||||
|
||||
-1
@@ -33,7 +33,6 @@ var ship_icon : Sprite2D
|
||||
func update(with_animation := true, recreate_map = false):
|
||||
|
||||
if is_node_ready() and story_step:
|
||||
print(current_position)
|
||||
if recreate_map or not ship_icon:
|
||||
|
||||
if story_step and get_step_number() < story_step.get_region_sequence_length():
|
||||
|
||||
@@ -141,6 +141,7 @@ func add_plant_data(plant_data : PlantData, with_update = true):
|
||||
func (pd : PlantData): return pd.random_seed == plant_data.random_seed
|
||||
) == -1:
|
||||
plants.append(plant_data)
|
||||
plant_data.region_data = self
|
||||
plant_data.disappeared.connect(_on_plant_disappeared)
|
||||
plant_data.updated.connect(func (_p : PlantData) : update())
|
||||
if with_update:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
keys,en,fr
|
||||
ORCHINDIE_PRESENTS,Orchindie presents,Orchindie présente
|
||||
TUTORIAL,Tutorial,Tutoriel
|
||||
ICONS_MEANINGS,Icons Meanings,Signification des Icônes
|
||||
PLANT_POINTS,Plant points,Points de plante
|
||||
@@ -62,7 +63,7 @@ MATURE_ON_DAY_%d,Mature on day [b]%d[/b],Mature au jour [b]%d[/b]
|
||||
ABSURD,[rainbow]Absurd[/rainbow],[rainbow]Absurde[/rainbow]
|
||||
GROW_IN_%d,Grow in [b]%d[/b] days,Mature dans [b]%d[/b] jours
|
||||
DIE_ON_DAY_%d,Die on day %d,Meurs au jour %d
|
||||
ANCIENT,Ancient,Ancien
|
||||
ANCIENT,Ancient,Ancienne
|
||||
ANCIENT_EFFECT_TEXT,"When mature, add [b]{score_increase}[/b]{score_icon} each [b]{day_factor}[/b]{duration_icon}","Une fois mature, ajoute [b]{score_increase}[/b]{score_icon} tous les [b]{day_factor}[/b]{duration_icon}"
|
||||
PRECOCIOUS,Precocious,Précoce
|
||||
PRECOCIOUS_EFFECT_TEXT,[b]{score}[/b]{score_icon} while the plant is growing,[b]{score}[/b]{score_icon} pendant que la plante grandit
|
||||
@@ -76,9 +77,9 @@ TOUGH,Tough,Solide
|
||||
TOUGH_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] and add [b]{growing_time}[/b]{growing_icon},"Multiplie {score_icon} par [b]{score_multiplier}[/b] et ajoute [b]{growing_time}[/b]{growing_icon}"
|
||||
FERTILE,Fertile,Fertile
|
||||
FERTILE_EFFECT_TEXT,"When mature, add [b]{seed_buff}[/b]{seed_icon} to all nearby plant but [b]{score_change}[/b]{score_icon} to itself","Si mature, ajoute [b]{seed_buff}[/b]{seed_icon} à toutes les plantes autour mais [b]{score_change}[/b]{score_icon} pour elle même"
|
||||
PURIFICATION,Purification,Purification
|
||||
PURIFICATION,Purification,Purificatrice
|
||||
PURIFICATION_EFFECT_TEXT,"When mature, create fertile zone in a radius of [b]{purification_radius}[/b]","Une fois mature, créée une zone fertile dans un rayon de [b]{purification_radius}[/b]"
|
||||
HURRIED,Hurried,Pressé
|
||||
HURRIED,Hurried,Pressée
|
||||
HURRIED_EFFECT_TEXT,"[b]{growing_time_change}[/b]{growing_time_icon}","[b]{growing_time_change}[/b]{growing_time_icon}"
|
||||
VIVACIOUS,Vivacious,Vivace
|
||||
VIVACIOUS_EFFECT_TEXT,[b]{score_change}[/b]{score_icon} the first day of maturation,[b]{score_change}[/b]{score_icon} le premier jour de maturation
|
||||
@@ -88,20 +89,26 @@ PROLIFIC,Prolific,Prolifique
|
||||
PROLIFIC_EFFECT_TEXT,[b]+{seeds_change}[/b]{seeds_icon} if mature,[b]+{seeds_change}[/b]{seeds_icon} si mature
|
||||
PURE,Pure,Pure
|
||||
PURE_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] if the all the area around is fertile,Multiplie {score_icon} par [b]{score_multiplier}[/b] si toute la zone autour est fertile
|
||||
GENEROUS,Generous,Généreux
|
||||
GENEROUS,Generous,Généreuse
|
||||
GENEROUS_EFFECT_TEXT,"When mature, add [b]{score_buff}[/b]{score_icon} to all nearby plants, but no longer make point","Si mature, ajoute [b]{score_buff}[/b]{score_icon} à toutes les plantes à proximité, mais ne génère plus de points"
|
||||
PROTECTIVE,Protective,Protecteur
|
||||
PROTECTIVE,Protective,Protectrice
|
||||
PROTECTIVE_EFFECT_TEXT,"Add [b]{lifetime_buff}[/b]{lifetime_icon} to all nearby plants","Ajoute [b]{lifetime_buff}[/b]{lifetime_icon} à toutes les plantes à proximité"
|
||||
CLEANING,Cleaning,Nettoyage
|
||||
CLEANING,Cleaner,Nettoyante
|
||||
CLEANING_EFFECT_TEXT,"At the end of its lifetime, create fertile zone in a radius of [b]{purification_radius}[/b]","À la fin de sa durée de vie, créée une zone fertile dans un rayon de [b]{purification_radius}[/b]"
|
||||
HERMIT,Hermit,Ermite
|
||||
HERMIT_EFFECT_TEXT,"Multiplies {score_icon} by [b]{score_multiplier}[/b] but make no points near other plants","Multiplie {score_icon} par [b]{score_multiplier}[/b] mais ne fait aucun point si à proximité d'autres plantes"
|
||||
TROPICAL,Tropical,Tropical
|
||||
TROPICAL,Tropical,Tropicale
|
||||
TROPICAL_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] if the day is rainy (1/4 chance),"Multiplie {score_icon} par [b]{score_multiplier}[/b] s'il pleut (1 chance sur 4)"
|
||||
RHIZOME,Rhizome,Rhizome
|
||||
RHIZOME_EFFECT_TEXT,"On maturation, dig on a radius of {digging_radius} around","À la maturation, creuse sur un rayon de {digging_radius} autour"
|
||||
SPONTANEOUS,Spontaneous,Spontanée
|
||||
SPONTANEOUS_EFFECT_TEXT,Now produces seeds only on maturation,Produit maintenant des graines uniquement à la maturation
|
||||
SAVIOR,Savior,Sauveuse
|
||||
SAVIOR_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] when out of recharge,"Multiplie {score_icon} par [b]{score_multiplier}[/b] si aucune recharge restante"
|
||||
ADAPTIVE,Adaptive,Adaptative
|
||||
ADAPTIVE_EFFECT_TEXT,Increase mutation chance by [b]{mutation_probability_boost}[/b],Augmente les chances de mutations de [b]{mutation_probability_boost}[/b]
|
||||
RESISTANT,Resistant,Résistante
|
||||
RESISTANT_EFFECT_TEXT,Can be planted on non fertile terrain,Peut être plantée sur un terrain non fertile
|
||||
COST_%d_ENERGY,Cost %d energy,Coûte %d d'énergie
|
||||
ONE_TIME_USE,Single use,Usage unique
|
||||
BUILD_%s,Build %s,Construit %s
|
||||
@@ -292,6 +299,9 @@ WRITING_DEV_AND_GAME_DESIGN,"Writing, Development and Game Design","Écriture,
|
||||
MUSIC_SOUND_DESIGN_AND_WRITING,"Music, Sound design and Wrinting","Musique, Sons et Écriture"
|
||||
COMMUNICATION,"Communication","Communication"
|
||||
SPLASH_ART,Splash Art,Splash Art
|
||||
PR_AND_MARKETING,"PR & Marketing","PR & Marketing"
|
||||
DEMETER_VOICE,"Demeter's Voice","Voix de Demeter"
|
||||
CONCEPT_ARTS,"Concept Arts","Concept Arts"
|
||||
TRAILER,"Trailer","Trailer"
|
||||
CREDITS,Credits,Crédits
|
||||
ASTRA_FACTORY,Astra Factory,Usine Astra
|
||||
|
||||
|
Reference in New Issue
Block a user