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(),
|
ErmitMutation.new(),
|
||||||
TropicalMutation.new(),
|
TropicalMutation.new(),
|
||||||
RhizomeMutation.new(),
|
RhizomeMutation.new(),
|
||||||
SpontaneousMutation.new()
|
SpontaneousMutation.new(),
|
||||||
|
SaviorMutation.new(),
|
||||||
|
AdaptiveMutation.new(),
|
||||||
|
ResistantMutation.new(),
|
||||||
]
|
]
|
||||||
|
|
||||||
func get_all_artifacts() -> Array[Artefact]:
|
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):
|
func unlock_achievement(achivement_name : String):
|
||||||
if Steam.isSteamRunning():
|
if Steam.isSteamRunning():
|
||||||
var status = Steam.getAchievement(achivement_name)
|
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:
|
if status.has("ret") and status.ret and not status.achieved:
|
||||||
Steam.setAchievement(achivement_name)
|
Steam.setAchievement(achivement_name)
|
||||||
Steam.storeStats()
|
Steam.storeStats()
|
||||||
@@ -11,7 +11,9 @@ func update():
|
|||||||
else Color.RED )
|
else Color.RED )
|
||||||
%EnergyText.text = str(region.data.charges)
|
%EnergyText.text = str(region.data.charges)
|
||||||
if not region.data.pass_day_ended.is_connected(update):
|
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:
|
func can_interact(_p : Player) -> bool:
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -131,11 +131,9 @@ func harvest():
|
|||||||
if do_produce_seeds:
|
if do_produce_seeds:
|
||||||
for i in range(data.get_seed_number()):
|
for i in range(data.get_seed_number()):
|
||||||
await produce_seed()
|
await produce_seed()
|
||||||
|
|
||||||
if data.get_state() == PlantData.State.MATURE:
|
if data.get_state() == PlantData.State.MATURE:
|
||||||
for m in data.mutations:
|
for m in data.mutations:
|
||||||
m._start_harvested_effect(self)
|
m._start_harvested_effect(self)
|
||||||
|
|
||||||
harvested = true
|
harvested = true
|
||||||
|
|
||||||
plant_sprite.start_harvest_animation()
|
plant_sprite.start_harvest_animation()
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ enum State {PLANTED, GROWING, MATURE, DEAD}
|
|||||||
|
|
||||||
var decontamination_area_factor = 0.
|
var decontamination_area_factor = 0.
|
||||||
var nearby_plants : Array[PlantData]
|
var nearby_plants : Array[PlantData]
|
||||||
|
var region_data : RegionData
|
||||||
|
|
||||||
func _init(
|
func _init(
|
||||||
_position: Vector2 = Vector2.ZERO,
|
_position: Vector2 = Vector2.ZERO,
|
||||||
@@ -150,6 +151,13 @@ func get_score_buff() -> int:
|
|||||||
|
|
||||||
return 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():
|
func disappear():
|
||||||
disappeared.emit(self )
|
disappeared.emit(self )
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ func get_icon() -> Texture:
|
|||||||
func get_base_rarity() -> int:
|
func get_base_rarity() -> int:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
func get_max_rarity() -> int:
|
||||||
|
return MAX_RARITY
|
||||||
|
|
||||||
@abstract func get_mutation_id() -> String
|
@abstract func get_mutation_id() -> String
|
||||||
|
|
||||||
func get_mutation_name() -> String:
|
func get_mutation_name() -> String:
|
||||||
@@ -31,6 +34,9 @@ func mutate_plant_data(_plant_data: PlantData):
|
|||||||
func nullify_score(_plant_data: PlantData) -> bool:
|
func nullify_score(_plant_data: PlantData) -> bool:
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
func allow_planting_on_decontamined_terrain(_seed : Seed) -> bool:
|
||||||
|
return false
|
||||||
|
|
||||||
func mutate_score(_plant_data: PlantData, score: int) -> int:
|
func mutate_score(_plant_data: PlantData, score: int) -> int:
|
||||||
return score
|
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:
|
func mutate_score_buff(_plant_data: PlantData, score_buff : int) -> int:
|
||||||
return score_buff
|
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):
|
func _start_planted_effect(_plant: Plant):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -83,7 +92,7 @@ func get_rarity() -> int:
|
|||||||
return get_base_rarity() + level - 1
|
return get_base_rarity() + level - 1
|
||||||
|
|
||||||
func is_max_level() -> bool:
|
func is_max_level() -> bool:
|
||||||
return get_base_rarity() + level < MAX_RARITY
|
return get_base_rarity() + level < get_max_rarity()
|
||||||
|
|
||||||
func card_info() -> CardInfo:
|
func card_info() -> CardInfo:
|
||||||
var info = CardInfo.new(
|
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 + get_score_multiplier()
|
||||||
return multiplier
|
return multiplier
|
||||||
|
|
||||||
func get_score_multiplier()->int:
|
func get_score_multiplier()->float:
|
||||||
return level
|
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")
|
return preload("res://common/icons/sparkles.svg")
|
||||||
|
|
||||||
func get_base_rarity() -> int:
|
func get_base_rarity() -> int:
|
||||||
return 0
|
return 1
|
||||||
|
|
||||||
func is_max_level() -> bool:
|
func is_max_level() -> bool:
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -19,7 +19,10 @@ func _init(
|
|||||||
|
|
||||||
static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[PlantData] = []) -> Seed:
|
static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[PlantData] = []) -> Seed:
|
||||||
var mutations : Array[PlantMutation] = plant_data.mutations
|
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] = []
|
var nearby_mutations : Array[PlantMutation] = []
|
||||||
for pd in nearby_plants:
|
for pd in nearby_plants:
|
||||||
@@ -107,9 +110,15 @@ func can_use(player : Player, zone : Player.ActionZone) -> bool:
|
|||||||
zone.get_global_position(),
|
zone.get_global_position(),
|
||||||
)] as Array[Vector2i]
|
)] 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 (
|
return (
|
||||||
not is_there_a_plant_here
|
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)
|
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:
|
if rarity < 0:
|
||||||
return []
|
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
|
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()
|
possible_mutation = possible_mutation.duplicate_deep()
|
||||||
|
|
||||||
var level_to_add = rarity - possible_mutation.get_base_rarity()
|
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 mutation_possibility : Array[MutationPossibility] = []
|
||||||
|
|
||||||
var evolvable_mutations : Array[PlantMutation] = mutations.filter(
|
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 (
|
if (
|
||||||
len(mutations) < GameInfo.game_data.current_run.plant_info.get_mutation_max_number()
|
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:
|
if len(evolvable_mutations) > 0:
|
||||||
mutation_possibility.append(UpgradeMutation.new())
|
mutation_possibility.append(UpgradeMutation.new())
|
||||||
|
|
||||||
var chosen_mutation_possibility = mutation_possibility.pick_random()
|
if len(mutation_possibility) > 0:
|
||||||
|
var chosen_mutation_possibility = mutation_possibility.pick_random()
|
||||||
return chosen_mutation_possibility.mutate(mutations,nearby_mutations)
|
return chosen_mutation_possibility.mutate(mutations,nearby_mutations)
|
||||||
|
else:
|
||||||
|
print_debug("No mutation possility available")
|
||||||
|
return mutations
|
||||||
|
|
||||||
class MutationPossibility:
|
class MutationPossibility:
|
||||||
func mutate(_mutations : Array[PlantMutation], _nearby_mutations : Array[PlantMutation])-> Array[PlantMutation]:
|
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
|
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:
|
for m1 in possible_new_mutations:
|
||||||
|
nearby_impacted_possible_new_mutations.append(m1)
|
||||||
for m2 in nearby_mutations:
|
for m2 in nearby_mutations:
|
||||||
if m1.id == m2.id:
|
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):
|
if len(nearby_impacted_possible_new_mutations):
|
||||||
new_mutations.append(possible_new_mutations.pick_random())
|
new_mutations.append(nearby_impacted_possible_new_mutations.pick_random())
|
||||||
|
|
||||||
return new_mutations
|
return new_mutations
|
||||||
|
|
||||||
@@ -250,7 +268,7 @@ class UpgradeMutation extends MutationPossibility:
|
|||||||
|
|
||||||
for i in range(len(mutations)):
|
for i in range(len(mutations)):
|
||||||
var m = mutations[i]
|
var m = mutations[i]
|
||||||
if m.get_rarity() < PlantMutation.MAX_RARITY:
|
if not m.is_max_level():
|
||||||
evolvable_mutations_id.append(i)
|
evolvable_mutations_id.append(i)
|
||||||
|
|
||||||
if len(evolvable_mutations_id):
|
if len(evolvable_mutations_id):
|
||||||
|
|||||||
@@ -115,9 +115,6 @@ func _process(delta):
|
|||||||
elif velocity != Vector2.ZERO and %MovementAudioStreamPlayer.playing == false:
|
elif velocity != Vector2.ZERO and %MovementAudioStreamPlayer.playing == false:
|
||||||
%MovementAudioStreamPlayer.play()
|
%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:
|
if elapsed_time > last_just_dropped_item_objects_updated + JUST_DROPPED_ITEM_UPDATE_INTERVAL:
|
||||||
update_just_dropped_item_objects()
|
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="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="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="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="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_urbel"]
|
||||||
[ext_resource type="Texture2D" uid="uid://baaujfw8piywi" path="res://common/icons/dna.svg" id="6_kip8e"]
|
[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="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"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_urbel"]
|
||||||
font = ExtResource("7_urbel")
|
viewport_path = NodePath("SubViewport")
|
||||||
font_size = 20
|
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_5k6jv"]
|
[sub_resource type="LabelSettings" id="LabelSettings_5k6jv"]
|
||||||
font = ExtResource("7_urbel")
|
font = ExtResource("7_urbel")
|
||||||
@@ -68,9 +65,34 @@ tracks/3/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"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"]
|
[sub_resource type="Animation" id="Animation_kip8e"]
|
||||||
resource_name = "appear"
|
resource_name = "appear"
|
||||||
|
length = 10.0
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@@ -78,7 +100,7 @@ tracks/0/path = NodePath("MarginContainer/GridContainer:theme_override_constants
|
|||||||
tracks/0/interp = 2
|
tracks/0/interp = 2
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 1),
|
"times": PackedFloat32Array(9, 10),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [2000, 0]
|
"values": [2000, 0]
|
||||||
@@ -90,7 +112,7 @@ tracks/1/path = NodePath("ColorRect:modulate")
|
|||||||
tracks/1/interp = 2
|
tracks/1/interp = 2
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array(0.033333335, 0.5),
|
"times": PackedFloat32Array(9.033333, 9.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
"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/interp = 2
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"times": PackedFloat32Array(0.43333334, 1),
|
"times": PackedFloat32Array(9.433333, 10),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
"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/interp = 1
|
||||||
tracks/3/loop_wrap = true
|
tracks/3/loop_wrap = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
"times": PackedFloat32Array(0.033333335),
|
"times": PackedFloat32Array(9.033333),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"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"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a8ny4"]
|
||||||
_data = {
|
_data = {
|
||||||
@@ -126,6 +172,9 @@ _data = {
|
|||||||
&"appear": SubResource("Animation_kip8e")
|
&"appear": SubResource("Animation_kip8e")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_5k6jv"]
|
||||||
|
frequency = 1.0
|
||||||
|
|
||||||
[node name="Credits" type="CanvasLayer" unique_id=180964898]
|
[node name="Credits" type="CanvasLayer" unique_id=180964898]
|
||||||
layer = 99
|
layer = 99
|
||||||
script = ExtResource("1_kip8e")
|
script = ExtResource("1_kip8e")
|
||||||
@@ -138,6 +187,17 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
color = Color(0.03529412, 0.019607844, 0.1254902, 0.8)
|
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]
|
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1349934988]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@@ -149,7 +209,7 @@ theme = ExtResource("2_luv2b")
|
|||||||
[node name="GridContainer" type="GridContainer" parent="MarginContainer" unique_id=1426452837]
|
[node name="GridContainer" type="GridContainer" parent="MarginContainer" unique_id=1426452837]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/h_separation = 544
|
theme_override_constants/h_separation = 544
|
||||||
theme_override_constants/v_separation = 448
|
theme_override_constants/v_separation = 0
|
||||||
columns = 2
|
columns = 2
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=1825004235]
|
[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]
|
[node name="Label" type="Label" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=215880453]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "THANKS_FOR_PLAYING_DEMO"
|
text = "THANKS_FOR_PLAYING"
|
||||||
label_settings = ExtResource("4_5k6jv")
|
label_settings = ExtResource("4_5k6jv")
|
||||||
horizontal_alignment = 1
|
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
|
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]
|
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -276,7 +285,7 @@ alignment = 1
|
|||||||
|
|
||||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine4" unique_id=1820679506]
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine4" unique_id=1820679506]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Eva"
|
text = "Eva Martel"
|
||||||
label_settings = SubResource("LabelSettings_5k6jv")
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
@@ -291,7 +300,7 @@ alignment = 1
|
|||||||
|
|
||||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine3" unique_id=1412859434]
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine3" unique_id=1412859434]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Victor RJ"
|
text = "Victor Robert Jaunet"
|
||||||
label_settings = SubResource("LabelSettings_5k6jv")
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
@@ -330,6 +339,21 @@ layout_mode = 2
|
|||||||
text = "COMMUNICATION"
|
text = "COMMUNICATION"
|
||||||
horizontal_alignment = 1
|
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]
|
[node name="CreditsLine6" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=192767961]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 1
|
alignment = 1
|
||||||
@@ -375,13 +399,28 @@ layout_mode = 2
|
|||||||
text = "TRAILER"
|
text = "TRAILER"
|
||||||
horizontal_alignment = 1
|
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]
|
[node name="CreditsLine10" type="HBoxContainer" parent="MarginContainer/GridContainer/VBoxContainer2" unique_id=1089087276]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine10" unique_id=399643362]
|
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine10" unique_id=399643362]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Ny Andy"
|
text = "Ny Andy Ratinarivelo"
|
||||||
label_settings = SubResource("LabelSettings_5k6jv")
|
label_settings = SubResource("LabelSettings_5k6jv")
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
@@ -390,6 +429,46 @@ layout_mode = 2
|
|||||||
text = "SPLASH_ART"
|
text = "SPLASH_ART"
|
||||||
horizontal_alignment = 1
|
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]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1455518318]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
libraries/ = SubResource("AnimationLibrary_a8ny4")
|
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="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="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="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="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="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"]
|
[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")
|
&"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]
|
[node name="PassDay" type="CanvasLayer" unique_id=335255544]
|
||||||
layer = 3
|
layer = 3
|
||||||
visible = false
|
|
||||||
script = ExtResource("1_0pm4g")
|
script = ExtResource("1_0pm4g")
|
||||||
|
|
||||||
[node name="Background" type="ColorRect" parent="." unique_id=527935985]
|
[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]
|
[node name="PassDayInfo" type="VBoxContainer" parent="." unique_id=833110506]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
modulate = Color(1, 1, 1, 0)
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
@@ -77,11 +188,6 @@ grow_vertical = 2
|
|||||||
theme = ExtResource("4_0pm4g")
|
theme = ExtResource("4_0pm4g")
|
||||||
alignment = 1
|
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]
|
[node name="TextureRect" type="TextureRect" parent="PassDayInfo" unique_id=1350962162]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
@@ -99,6 +205,7 @@ vertical_alignment = 1
|
|||||||
|
|
||||||
[node name="NightAnimation" type="TextureRect" parent="." unique_id=126988628]
|
[node name="NightAnimation" type="TextureRect" parent="." unique_id=126988628]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
custom_minimum_size = Vector2(500, 0)
|
custom_minimum_size = Vector2(500, 0)
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
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")]
|
[node name="EnergyPassDayInfo" parent="MarginContainer" unique_id=2044341204 instance=ExtResource("2_feyaf")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_constants/margin_left = 15
|
theme_override_constants/margin_left = 15
|
||||||
theme_override_constants/margin_top = 15
|
theme_override_constants/margin_top = 15
|
||||||
theme_override_constants/margin_right = 15
|
theme_override_constants/margin_right = 15
|
||||||
theme_override_constants/margin_bottom = 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():
|
func _ready():
|
||||||
hide()
|
hide()
|
||||||
setup_energy_values()
|
setup_energy_values()
|
||||||
%PassDayInfo.hide()
|
|
||||||
%Background.modulate.a = 0.
|
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if recharging:
|
if recharging:
|
||||||
@@ -71,36 +69,14 @@ func pass_day_animation():
|
|||||||
|
|
||||||
func appear():
|
func appear():
|
||||||
show()
|
show()
|
||||||
add_tween(
|
%PassDayAnimationPlayer.play("Appear")
|
||||||
"modulate:a",
|
|
||||||
%Background,
|
|
||||||
1.,
|
|
||||||
0.5
|
|
||||||
)
|
|
||||||
await add_tween(
|
|
||||||
"modulate:a",
|
|
||||||
%NightAnimation,
|
|
||||||
1.,
|
|
||||||
0.5
|
|
||||||
).finished
|
|
||||||
|
|
||||||
await %PassDayInfoAnimationPlayer.appear()
|
await %PassDayAnimationPlayer.animation_finished
|
||||||
|
|
||||||
func disappear():
|
func disappear():
|
||||||
await %PassDayInfoAnimationPlayer.disappear()
|
%PassDayAnimationPlayer.play_backwards("Appear")
|
||||||
add_tween(
|
|
||||||
"modulate:a",
|
|
||||||
%Background,
|
|
||||||
0.0,
|
|
||||||
0.5
|
|
||||||
)
|
|
||||||
await add_tween(
|
|
||||||
"modulate:a",
|
|
||||||
%NightAnimation,
|
|
||||||
0.,
|
|
||||||
0.5
|
|
||||||
).finished
|
|
||||||
|
|
||||||
|
await %PassDayAnimationPlayer.animation_finished
|
||||||
hide()
|
hide()
|
||||||
|
|
||||||
func add_tween(
|
func add_tween(
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ config/description="Seeding planets is a survival, managment and cosy game in wh
|
|||||||
config/version="0.1"
|
config/version="0.1"
|
||||||
run/main_scene="uid://c5bruelvqbm1k"
|
run/main_scene="uid://c5bruelvqbm1k"
|
||||||
config/features=PackedStringArray("4.7", "Forward Plus")
|
config/features=PackedStringArray("4.7", "Forward Plus")
|
||||||
|
boot_splash/bg_color=Color(0.0627451, 0.05882353, 0.16862746, 1)
|
||||||
config/icon="uid://df0y0s666ui4h"
|
config/icon="uid://df0y0s666ui4h"
|
||||||
|
|
||||||
[audio]
|
[audio]
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
var game_loaded := false
|
||||||
|
|
||||||
func _ready():
|
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"]
|
[gd_scene format=3 uid="uid://c5bruelvqbm1k"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bely2if04v736" path="res://root.gd" id="1_pq8q7"]
|
[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]
|
[node name="Root" type="Node" unique_id=72535230]
|
||||||
script = ExtResource("1_pq8q7")
|
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_color = Color(0.5882353, 0.7019608, 0.85882354, 1)
|
||||||
albedo_texture = ExtResource("2_mr0dk")
|
albedo_texture = ExtResource("2_mr0dk")
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_dlfx2"]
|
|
||||||
viewport_path = NodePath("Screen/SubViewport")
|
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
|
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
|
||||||
size = Vector2(3, 3)
|
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"
|
screen_text = "CONNECT_TO_POSEIDON"
|
||||||
broken = true
|
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]
|
[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)
|
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)
|
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"]
|
[connection signal="clicked" from="AiReceptacle" to="." method="_on_ai_receptacle_clicked"]
|
||||||
|
|
||||||
[editable path="hub"]
|
[editable path="hub"]
|
||||||
[editable path="AiReceptacle"]
|
|
||||||
[editable path="AiReceptacle/ModelBroken"]
|
|
||||||
[editable path="Player3D"]
|
[editable path="Player3D"]
|
||||||
|
|||||||
-1
@@ -33,7 +33,6 @@ var ship_icon : Sprite2D
|
|||||||
func update(with_animation := true, recreate_map = false):
|
func update(with_animation := true, recreate_map = false):
|
||||||
|
|
||||||
if is_node_ready() and story_step:
|
if is_node_ready() and story_step:
|
||||||
print(current_position)
|
|
||||||
if recreate_map or not ship_icon:
|
if recreate_map or not ship_icon:
|
||||||
|
|
||||||
if story_step and get_step_number() < story_step.get_region_sequence_length():
|
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
|
func (pd : PlantData): return pd.random_seed == plant_data.random_seed
|
||||||
) == -1:
|
) == -1:
|
||||||
plants.append(plant_data)
|
plants.append(plant_data)
|
||||||
|
plant_data.region_data = self
|
||||||
plant_data.disappeared.connect(_on_plant_disappeared)
|
plant_data.disappeared.connect(_on_plant_disappeared)
|
||||||
plant_data.updated.connect(func (_p : PlantData) : update())
|
plant_data.updated.connect(func (_p : PlantData) : update())
|
||||||
if with_update:
|
if with_update:
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
keys,en,fr
|
keys,en,fr
|
||||||
|
ORCHINDIE_PRESENTS,Orchindie presents,Orchindie présente
|
||||||
TUTORIAL,Tutorial,Tutoriel
|
TUTORIAL,Tutorial,Tutoriel
|
||||||
ICONS_MEANINGS,Icons Meanings,Signification des Icônes
|
ICONS_MEANINGS,Icons Meanings,Signification des Icônes
|
||||||
PLANT_POINTS,Plant points,Points de plante
|
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]
|
ABSURD,[rainbow]Absurd[/rainbow],[rainbow]Absurde[/rainbow]
|
||||||
GROW_IN_%d,Grow in [b]%d[/b] days,Mature dans [b]%d[/b] jours
|
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
|
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}"
|
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,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
|
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}"
|
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,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"
|
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]"
|
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}"
|
HURRIED_EFFECT_TEXT,"[b]{growing_time_change}[/b]{growing_time_icon}","[b]{growing_time_change}[/b]{growing_time_icon}"
|
||||||
VIVACIOUS,Vivacious,Vivace
|
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
|
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
|
PROLIFIC_EFFECT_TEXT,[b]+{seeds_change}[/b]{seeds_icon} if mature,[b]+{seeds_change}[/b]{seeds_icon} si mature
|
||||||
PURE,Pure,Pure
|
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
|
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"
|
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é"
|
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]"
|
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,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"
|
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)"
|
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,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"
|
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,Spontaneous,Spontanée
|
||||||
SPONTANEOUS_EFFECT_TEXT,Now produces seeds only on maturation,Produit maintenant des graines uniquement à la maturation
|
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
|
COST_%d_ENERGY,Cost %d energy,Coûte %d d'énergie
|
||||||
ONE_TIME_USE,Single use,Usage unique
|
ONE_TIME_USE,Single use,Usage unique
|
||||||
BUILD_%s,Build %s,Construit %s
|
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"
|
MUSIC_SOUND_DESIGN_AND_WRITING,"Music, Sound design and Wrinting","Musique, Sons et Écriture"
|
||||||
COMMUNICATION,"Communication","Communication"
|
COMMUNICATION,"Communication","Communication"
|
||||||
SPLASH_ART,Splash Art,Splash Art
|
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"
|
TRAILER,"Trailer","Trailer"
|
||||||
CREDITS,Credits,Crédits
|
CREDITS,Credits,Crédits
|
||||||
ASTRA_FACTORY,Astra Factory,Usine Astra
|
ASTRA_FACTORY,Astra Factory,Usine Astra
|
||||||
|
|||||||
|
Reference in New Issue
Block a user