added endless mode support to the wave viewer

This commit is contained in:
2026-02-07 09:07:00 +11:00
parent 9453389853
commit 8f14012fff
41 changed files with 145 additions and 344 deletions

View File

@@ -15,7 +15,8 @@ icon = ExtResource("1_xgen5")
scene = ExtResource("3_otbdk")
death_sprite = ExtResource("1_yj87d")
sprite = ExtResource("2_mkbm6")
spawn_power = 16
spawn_power = 6
group_size = 10
health = 15
penalty = 4
movement_speed = 3.5

View File

@@ -15,7 +15,8 @@ icon = ExtResource("2_idym2")
scene = ExtResource("3_fmkhl")
death_sprite = ExtResource("1_skyfd")
sprite = ExtResource("5_okcvf")
spawn_power = 6
spawn_power = 5
group_size = 6
health = 120
penalty = 7
movement_speed = 1.0

View File

@@ -15,7 +15,8 @@ icon = ExtResource("1_lck53")
scene = ExtResource("3_m808b")
death_sprite = ExtResource("1_qveaa")
sprite = ExtResource("2_7nc4x")
spawn_power = 14
spawn_power = 8
group_size = 4
health = 150
penalty = 15
movement_speed = 1.4

View File

@@ -21,6 +21,7 @@ icon = ExtResource("2_tyyee")
scene = ExtResource("3_mxg1o")
death_sprite = ExtResource("1_r8gpy")
sprite = SubResource("AtlasTexture_n6kdu")
spawn_power = 3
health = 60
movement_speed = 1.6
spawn_cooldown = 1.2

View File

@@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_ldkvi"]
[ext_resource type="Resource" uid="uid://deer0awg4d18o" path="res://Cards/assault.tres" id="2_0atj5"]
[ext_resource type="Resource" uid="uid://cucdevshmdohf" path="res://Cards/overclock.tres" id="3_wfxcl"]
[ext_resource type="Resource" uid="uid://cvto66tp7rrst" path="res://Cards/gatling.tres" id="3_sbxeq"]
[ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://Classes/Engineer/class.tres" id="4_5rrxx"]
[ext_resource type="Script" uid="uid://dalgif6huggwg" path="res://Scripts/Resources/level_specs.gd" id="5_kje1i"]
[ext_resource type="Script" uid="uid://bp6q371iypd06" path="res://Scripts/wave_config.gd" id="6_gmv8c"]
@@ -13,7 +13,7 @@
[resource]
script = ExtResource("5_kje1i")
hero_class = ExtResource("4_5rrxx")
allowed_cards = Array[ExtResource("1_ldkvi")]([ExtResource("2_0atj5"), ExtResource("3_wfxcl")])
allowed_cards = Array[ExtResource("1_ldkvi")]([ExtResource("2_0atj5"), ExtResource("3_sbxeq")])
waves = Array[ExtResource("6_gmv8c")]([ExtResource("7_43tyk"), ExtResource("8_mblpn")])
zone = ExtResource("9_sbxeq")
metadata/_custom_type_script = "uid://dalgif6huggwg"

View File

@@ -7,7 +7,7 @@
[resource]
script = ExtResource("3_frc10")
enemies = Dictionary[ExtResource("1_b6olw"), int]({
ExtResource("2_b51i4"): 5
ExtResource("2_b51i4"): 10
})
rewards_blank_cassette = true
bonus_cash = 3

Binary file not shown.

View File

@@ -651,6 +651,12 @@ msgstr "Wave Preview"
msgid "BUTTON_CLOSE"
msgstr "Close"
msgid "LABEL_CAMPAIGN_DESC"
msgstr "Standard Campaign Mode"
msgid "LABEL_ENDLESS_DESC"
msgstr "Endless Mode with random waves and all unlocked equipment"
#, fuzzy
#~| msgid "LABEL_DISPLAY_NAME"
#~ msgid "LABEL_CARD_NAME"

View File

@@ -608,3 +608,9 @@ msgstr ""
msgid "BUTTON_CLOSE"
msgstr ""
msgid "LABEL_CAMPAIGN_DESC"
msgstr ""
msgid "LABEL_ENDLESS_DESC"
msgstr ""

View File

@@ -262,18 +262,7 @@ func _unhandled_input(event: InputEvent) -> void:
var wave_preview: WaveViewer = wave_preview_scene.instantiate() as WaveViewer
pause()
hud.add_child(wave_preview)
var wave_list: Array[Wave] = []
var i: int = -1
for wave: WaveConfig in game_manager.level_specs.waves.slice(game_manager.wave - 1):
i += 1
var new_wave: Wave = Wave.new()
for enemy: Enemy in game_manager.level_specs.waves[game_manager.wave - 1 + i].enemies.keys():
var enemy_card: EnemyCard = EnemyCard.new()
enemy_card.enemy = enemy
enemy_card.count = game_manager.level_specs.waves[game_manager.wave - 1 + i].enemies[enemy]
new_wave.enemy_groups.append(enemy_card)
wave_list.append(new_wave)
wave_preview.set_waves(wave_list, game_manager.wave)
wave_preview.set_waves(game_manager.get_upcoming_waves(10), game_manager.wave)
wave_preview.closed.connect(unpause)

View File

@@ -46,8 +46,8 @@ _subresources={
},
"Material.003": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Props/BigTree1/big_tree_bark.tres",
"use_external/path": "uid://bo8hb5kchxsaj"
"use_external/fallback_path": "res://Materials/wood1/wood1.tres",
"use_external/path": "uid://c21fh4gsnunfg"
}
},
"meshes": {

View File

@@ -4,4 +4,4 @@
[node name="Node3D" type="Node3D" unique_id=924363235]
[node name="big_tree" parent="." unique_id=1005968396 instance=ExtResource("1_jd860")]
[node name="big_tree" parent="." unique_id=1374218049 instance=ExtResource("1_jd860")]

View File

@@ -1,12 +0,0 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://bo8hb5kchxsaj"]
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_kebxd"]
[ext_resource type="Texture2D" uid="uid://dmv1t70b2befg" path="res://BigTree1/big_tree_tree1_bark.png" id="2_mo30x"]
[resource]
render_priority = 0
shader = ExtResource("1_kebxd")
shader_parameter/albedo = ExtResource("2_mo30x")
shader_parameter/jitter_z_coordinate = true
shader_parameter/jitter_depth_independent = true
shader_parameter/alpha_scissor = 1.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

View File

@@ -1,44 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1fudnfgxctbc"
path.s3tc="res://.godot/imported/big_tree_tree1_bark.png-11db26644d40a58c1d1b623d52b4e041.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "3a9eb64baf1362d22626d5e08a5eea2e"
}
[deps]
source_file="res://Props/BigTree1/big_tree_tree1_bark.png"
dest_files=["res://.godot/imported/big_tree_tree1_bark.png-11db26644d40a58c1d1b623d52b4e041.s3tc.ctex"]
[params]
compress/mode=2
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=true
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=0

View File

@@ -89,6 +89,30 @@ func networked_set_wave(wave_number: int) -> void:
set_upcoming_wave()
##wave_count is number of upcoming waves this function should return
func get_upcoming_waves(wave_count: int) -> Array[Wave]:
var waves: Array[Wave] = []
var i: int = -1
for wave_config: WaveConfig in level_specs.waves.slice(wave - 1):
i += 1
var new_wave: Wave = Wave.new()
for enemy: Enemy in level_specs.waves[wave - 1 + i].enemies.keys():
var enemy_card: EnemyCard = EnemyCard.new()
enemy_card.enemy = enemy
enemy_card.count = level_specs.waves[wave - 1 + i].enemies[enemy]
new_wave.enemy_groups.append(enemy_card)
waves.append(new_wave)
if waves.size() < wave_count:
var starting_wave: int = wave
for x: int in wave_count - waves.size():
var spawn_power: int = WaveManager.calculate_spawn_power(starting_wave + x, connected_players_nodes.size())
var new_wave: Wave = WaveManager.generate_wave(spawn_power, level.enemy_pool)
waves.append(new_wave)
return waves
func spawn_level(scene: PackedScene) -> void:
level = scene.instantiate() as Level
var flow_field: FlowField = FlowField.new()
@@ -154,15 +178,11 @@ func ready_player(player_ready_true: bool) -> void:
func spawn_enemy_wave() -> void:
#level.shop.close()
#wave += 1
level.disable_all_tower_frames()
level.flow_field.calculate()
for spawn: EnemySpawner in level.enemy_spawns:
spawn.visible = false
spawn.spawn_wave()
#for tower_base: TowerBase in level.walls.values():
#tower_base.disable_duration_sprites()
wave_started.emit()
@@ -215,18 +235,8 @@ func set_upcoming_wave() -> void:
func temp_set_upcoming_wave(new_wave: Wave, coins: int) -> void:
pot = coins
#connected_players_nodes[multiplayer.get_unique_id()].hud.show_wave_generation_anim(new_wave)
connected_players_nodes[multiplayer.get_unique_id()].hud.set_upcoming_wave(new_wave.to_dict())
#TODO: You'll probably have to write a to_dict function for the new wave system
#before any of this shit works in multiplayer
#@rpc("reliable", "call_local")
#func networked_set_upcoming_wave(wave_dict: Dictionary, coins: int) -> void:
#upcoming_wave = wave_dict
#pot = coins
#for key: int in connected_players_nodes:
#connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave)
@rpc("reliable", "call_local")
func networked_set_endless(value: bool) -> void:
@@ -299,7 +309,7 @@ func end_wave() -> void:
#else:
#shop_chance += 0.09
wave_finished.emit()
if wave < wave_limit:
if wave <= wave_limit:
set_upcoming_wave()
@@ -383,13 +393,25 @@ func end(outcome: bool) -> void:
menu.set_outcome_message("You lost...")
lost_game.emit()
true:
menu.won_game()
menu.set_outcome_message("You win!")
won_game.emit()
menu.pressed_continue.connect(continue_with_game)
UILayer.add_child(menu)
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
connected_players_nodes[multiplayer.get_unique_id()].pause()
func continue_with_game() -> void:
game_active = true
gamemode.endless = true
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
connected_players_nodes[multiplayer.get_unique_id()].unpause()
#TODO: This shouldn't happen. instead, the wave generator should generate level_specs waves
level_specs.waves = []
set_upcoming_wave()
func quit_to_desktop() -> void:
multiplayer.multiplayer_peer.close()
multiplayer.multiplayer_peer = null

View File

@@ -13,7 +13,8 @@ extends Object
## Takes in wave number and number of players and returns a spawn power value
## intended for passing into the generate_wave method
static func calculate_spawn_power(wave_number: int, number_of_players: int) -> int:
return (20 * number_of_players) + (4 * wave_number)
#print("wave number: " + str(wave_number) + ", number of players: " + str(number_of_players))
return (11 * number_of_players) + (6 * wave_number)
## Takes in wave number and number of players and returns the amount of coins
@@ -38,9 +39,8 @@ static func get_test_wave(spawn_pool: Array[Enemy]) -> Wave:
static func generate_wave(spawn_power: int, spawn_pool: Array[Enemy]) -> Wave:
var wave: Wave = Wave.new()
var points: int = int(spawn_power / 10.0)
#print("Generating wave with " + str(points) + " points to spend")
while points > 0:
while spawn_power > 0:
var new_card: EnemyCard = EnemyCard.new()
#First, choose an enemy at random
@@ -50,49 +50,33 @@ static func generate_wave(spawn_power: int, spawn_pool: Array[Enemy]) -> Wave:
#and, if not, then we have to pick a different enemy, repeat until
#we've successfully chosen one we can actually afford
var enemy_chosen: bool = false
var highest_rarity: Data.Rarity = Data.Rarity.COMMON
var most_enemies_afforded: int = 0
var first_enemy_id: int = -1
while !enemy_chosen:
#Next, determine which is the most expensive rarity we can afford
if new_card.enemy.legendary_cost <= points:
highest_rarity = Data.Rarity.LEGENDARY
enemy_chosen = true
elif new_card.enemy.epic_cost <= points:
highest_rarity = Data.Rarity.EPIC
enemy_chosen = true
elif new_card.enemy.rare_cost <= points:
highest_rarity = Data.Rarity.RARE
enemy_chosen = true
elif new_card.enemy.uncommon_cost <= points:
highest_rarity = Data.Rarity.UNCOMMON
enemy_chosen = true
elif new_card.enemy.common_cost <= points:
highest_rarity = Data.Rarity.COMMON
#Next, determine what is the most groups we can afford
most_enemies_afforded = int(spawn_power / new_card.enemy.spawn_power)
if most_enemies_afforded > 0:
enemy_chosen = true
else:
#Even the common rarity was too expensive, so we have to choose
#Even 1 group was too expensive, so we have to choose
#a different enemy and try this process again
var enemy_id: int = spawn_pool.find(new_card.enemy)
enemy_id -= 1
if first_enemy_id == -1:
first_enemy_id = enemy_id
if enemy_id < 0:
new_card.enemy = spawn_pool[spawn_pool.size() - 1]
else:
new_card.enemy = spawn_pool[enemy_id]
#Now that we know which rarities we could afford, lets just choose a
#random one
var chosen_rarity: int = NoiseRandom.randi_in_range(spawn_power, 0, highest_rarity)
new_card.rarity = chosen_rarity as Data.Rarity
most_enemies_afforded = 0
if enemy_id == first_enemy_id:
return wave
#Now that we know how many we could afford, lets just choose a
#random number of groups
var chosen_groups: int = NoiseRandom.randi_in_range(spawn_power, 1, most_enemies_afforded)
new_card.count = chosen_groups * new_card.enemy.group_size
#Add that new enemy to the wave and spend the points!
wave.enemy_groups.append(new_card)
if chosen_rarity == Data.Rarity.COMMON:
points -= new_card.enemy.common_cost
elif chosen_rarity == Data.Rarity.UNCOMMON:
points -= new_card.enemy.uncommon_cost
elif chosen_rarity == Data.Rarity.RARE:
points -= new_card.enemy.rare_cost
elif chosen_rarity == Data.Rarity.EPIC:
points -= new_card.enemy.epic_cost
elif chosen_rarity == Data.Rarity.LEGENDARY:
points -= new_card.enemy.legendary_cost
spawn_power -= chosen_groups * new_card.enemy.spawn_power
return wave

View File

@@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://nxl5wabgl36t"]
[ext_resource type="Script" uid="uid://bsuinotkvh7eu" path="res://Scripts/Resources/feature.gd" id="1_5mpl7"]
[ext_resource type="Resource" uid="uid://dfup264h2pun7" path="res://Scripts/Features/HeavyRounds/heavy_rounds_feature.tres" id="2_is2l1"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_ky46y"]
[resource]
@@ -13,4 +14,5 @@ attributes = Dictionary[String, float]({
"Speed Multiplier": 2.0,
"Speed Time": 3.0
})
features = Array[ExtResource("1_5mpl7")]([ExtResource("2_is2l1")])
text = "DESC_TOWER_ACCEL"

View File

@@ -1,5 +1,7 @@
class_name GameEndScreen extends PanelContainer
signal pressed_continue()
@export var box: PackedScene
@export var outcome_label: Label
@@ -12,6 +14,11 @@ class_name GameEndScreen extends PanelContainer
var game_manager: GameManager
func won_game() -> void:
$VBoxContainer/Buttons/ContinueButton.visible = true
$VBoxContainer/Buttons/PlayButton.visible = false
func _ready() -> void:
winrate_label.text = str(Data.save_data.winrate) + "%"
total_games_label.text = str(Data.save_data.wins + Data.save_data.losses)
@@ -49,3 +56,8 @@ func _on_play_button_pressed() -> void:
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()
func _on_continue_button_pressed() -> void:
pressed_continue.emit()
queue_free()

View File

@@ -123,6 +123,11 @@ size_flags_vertical = 3
layout_mode = 2
alignment = 2
[node name="ContinueButton" type="Button" parent="VBoxContainer/Buttons" unique_id=1143038936]
visible = false
layout_mode = 2
text = "BUTTON_CONTINUE"
[node name="PlayButton" type="Button" parent="VBoxContainer/Buttons" unique_id=774071211]
layout_mode = 2
text = "BUTTON_RESTART"
@@ -135,6 +140,8 @@ text = "BUTTON_MAIN_MENU"
stream = SubResource("AudioStreamRandomizer_dram5")
bus = &"SFX"
[connection signal="mouse_entered" from="VBoxContainer/Buttons/ContinueButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/ContinueButton" to="." method="_on_continue_button_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/Buttons/QuitButton" to="." method="_on_button_mouse_entered"]

View File

@@ -1,6 +1,6 @@
class_name MainMenuLevelSelector extends PanelContainer
signal level_selected(specs: LevelSpecs)
signal level_selected(specs: LevelSpecs, side_chosen: int)
var side: int = 0
@@ -8,12 +8,12 @@ var side: int = 0
func _on_button_pressed() -> void:
side = 0
$VBoxContainer/Label.text = "Standard Campaign Mode"
$VBoxContainer/Label.text = tr("LABEL_CAMPAIGN_DESC")
func _on_button_2_pressed() -> void:
side = 1
$VBoxContainer/Label.text = "Endless Mode with random waves and all unlocked equipment"
$VBoxContainer/Label.text = tr("LABEL_ENDLESS_DESC")
func _ready() -> void:
@@ -27,4 +27,4 @@ func _ready() -> void:
func start_level(level: int) -> void:
level_selected.emit(levels[level])
level_selected.emit(levels[level], side)

View File

@@ -118,9 +118,9 @@ func generate_seed() -> void:
gamemode.rng_seed = randi()
func level_selected(level: LevelSpecs) -> void:
func level_selected(level: LevelSpecs, side: int) -> void:
generate_seed()
gamemode.endless = false
gamemode.endless = true if side == 1 else false
gamemode.daily = false
game.level_specs = level
start_game()

View File

@@ -1,5 +1,6 @@
[gd_scene format=3 uid="uid://8yv7excojcg0"]
[ext_resource type="Texture2D" uid="uid://mt6liu1hi15j" path="res://ingame_logo.png" id="2_14tm0"]
[ext_resource type="Script" uid="uid://ci8vq73u23viy" path="res://UI/Menus/MainMenu/main_menu.gd" id="2_ivytu"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="5_cwn2i"]
[ext_resource type="Script" uid="uid://bwsw4oq150v3p" path="res://UI/Menus/MainMenu/level_selecter_main_menu.gd" id="8_qshe4"]
@@ -53,15 +54,16 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(0.5176471, 0.60784316, 0.89411765, 1)
[node name="TitleLabel" type="Label" parent="." unique_id=1731106766]
[node name="TextureRect" type="TextureRect" parent="." unique_id=57227105]
layout_mode = 1
anchors_preset = -1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 0.5
anchor_bottom = 1.0
grow_horizontal = 2
text = "TITLE_GAME_NAME"
horizontal_alignment = 1
vertical_alignment = 1
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("2_14tm0")
stretch_mode = 5
[node name="MainControls" type="VBoxContainer" parent="." unique_id=923552840]
custom_minimum_size = Vector2(80, 0)
@@ -455,7 +457,7 @@ text = "BUTTON_BACK"
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=654891125]
layout_mode = 2
text = "Standard Campaign Mode"
text = "LABEL_CAMPAIGN_DESC"
horizontal_alignment = 1
vertical_alignment = 1

Binary file not shown.

View File

@@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://cj2x1jvo8l4ot"]
[ext_resource type="Script" uid="uid://bsuinotkvh7eu" path="res://Scripts/Resources/feature.gd" id="1_vn048"]
[ext_resource type="Resource" uid="uid://dfup264h2pun7" path="res://Scripts/Features/HeavyRounds/heavy_rounds_feature.tres" id="2_t6xv0"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_y36gr"]
[resource]
@@ -14,4 +15,5 @@ attributes = Dictionary[String, float]({
"Speed Multiplier": 3.0,
"Speed Time": 4.0
})
features = Array[ExtResource("1_vn048")]([ExtResource("2_t6xv0")])
text = "DESC_WEAPON_ACCEL"

View File

@@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://d2yo07m2mp2mp"]
[ext_resource type="Script" uid="uid://bsuinotkvh7eu" path="res://Scripts/Resources/feature.gd" id="1_h5r83"]
[ext_resource type="Resource" uid="uid://dfup264h2pun7" path="res://Scripts/Features/HeavyRounds/heavy_rounds_feature.tres" id="2_lnb6u"]
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_ow0r7"]
[resource]
@@ -12,4 +13,5 @@ attributes = Dictionary[String, float]({
"Fire Delay": 2.0,
"Target Limit": 3.0
})
features = Array[ExtResource("1_h5r83")]([ExtResource("2_lnb6u")])
text = "DESC_WEAPON_ROCKET"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,43 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl6equc2hhaem"
path="res://.godot/imported/model_cave_dirt.png-039135bf5228cec74a8d4790b669eb21.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "dcd74dad69b0cf175774820a45df225d"
}
[deps]
source_file="res://Zones/Cave/model_cave_dirt.png"
dest_files=["res://.godot/imported/model_cave_dirt.png-039135bf5228cec74a8d4790b669eb21.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=true
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

View File

@@ -216,7 +216,6 @@ corpses = NodePath("Parents/Corpses")
cinematic_cam = NodePath("CinematicCamManager")
printer = NodePath("CardPrinter")
shop = NodePath("ShopStand")
data_path = "res://Worlds/GreenPlanet/Levels/Cave/level3.json"
metadata/_custom_type_script = "uid://cvejbo3srx8py"
[node name="Parents" type="Node3D" parent="." unique_id=447416055]

Binary file not shown.

View File

@@ -39,25 +39,25 @@ materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Dirt": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/dirt1/dirt1.tres",
"use_external/path": "uid://vu21wvwrmhlj"
},
"Grass": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/grass1/grass1.tres",
"use_external/path": "uid://c4qub458rqpt2"
},
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/bricks1/bricks1.tres",
"use_external/path": "uid://b7wnk32j3acfr"
},
"Material.002": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/cobblestone1/cobblestone1.tres",
"use_external/path": "uid://ci2m26g6b7ao5"
},
"bricks1": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/bricks1/bricks1.tres",
"use_external/path": "uid://b7wnk32j3acfr"
},
"dirt1": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/dirt1/dirt1.tres",
"use_external/path": "uid://vu21wvwrmhlj"
},
"grass1": {
"use_external/enabled": true,
"use_external/fallback_path": "res://Materials/grass1/grass1.tres",
"use_external/path": "uid://c4qub458rqpt2"
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

View File

@@ -1,43 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cgk5bsrx4on5g"
path="res://.godot/imported/mesh_moat_bricks.png-c2ba537b406e30bb339b467fd403153a.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "bcdd6414a2f4ce476e1cfdafd881ca59"
}
[deps]
source_file="res://Zones/Moat/mesh_moat_bricks.png"
dest_files=["res://.godot/imported/mesh_moat_bricks.png-c2ba537b406e30bb339b467fd403153a.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=true
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 B

View File

@@ -1,43 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vqji3458oxk"
path="res://.godot/imported/mesh_moat_cobblestone.png-2dc3858667c8d48b81ecde3ebb6fb3ec.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "4cb1f838ef5968fed908002c6419a080"
}
[deps]
source_file="res://Zones/Moat/mesh_moat_cobblestone.png"
dest_files=["res://.godot/imported/mesh_moat_cobblestone.png-2dc3858667c8d48b81ecde3ebb6fb3ec.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=true
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

View File

@@ -1,43 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3frq1qqxo6py"
path="res://.godot/imported/mesh_moat_level_tex.png-7de3230baae0928690a37428dd1e0993.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "ba963c984781211fb82f1802a965d534"
}
[deps]
source_file="res://Zones/Moat/mesh_moat_level_tex.png"
dest_files=["res://.godot/imported/mesh_moat_level_tex.png-7de3230baae0928690a37428dd1e0993.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=true
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

View File

@@ -18,7 +18,6 @@
[ext_resource type="PackedScene" uid="uid://c8ecof4oeng1f" path="res://Props/BigTree1/big_tree.tscn" id="21_6tcu8"]
[ext_resource type="PackedScene" uid="uid://c6isprnkaliqr" path="res://Scenes/MixingTable/remix_table.tscn" id="21_ks6qx"]
[ext_resource type="Script" uid="uid://cy6oj2hr8q8br" path="res://Scripts/killbox.gd" id="26_tuncf"]
[ext_resource type="PackedScene" uid="uid://c2avjln5vmr0y" path="res://Scenes/Shredder/shredder.tscn" id="27_gppb4"]
[ext_resource type="Texture2D" uid="uid://dqrfgw65d0sq8" path="res://Assets/Textures/bridge_map.png" id="28_6od8s"]
[ext_resource type="PackedScene" uid="uid://ca174636iktc6" path="res://Zones/Moat/mesh_moat.glb" id="30_ttr7n"]
@@ -236,7 +235,7 @@ fog_depth_end = 200.0
size = Vector3(3.6270146, 6.87512, 10)
[sub_resource type="BoxShape3D" id="BoxShape3D_134um"]
size = Vector3(70.0478, 1, 73.4615)
size = Vector3(260.6662, 18.99414, 318.20755)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fi8e6"]
transparency = 1
@@ -258,7 +257,6 @@ cinematic_cam = NodePath("CinemaCam")
printer = NodePath("CardPrinter")
shop = NodePath("ShopStand")
obstacles = Array[PackedScene]([ExtResource("7_6tcu8")])
data_path = "res://Worlds/GreenPlanet/Levels/Bridge/level1.json"
metadata/_custom_type_script = "uid://cvejbo3srx8py"
metadata/_editor_floor_ = Vector3(4, -10, 8)
@@ -404,13 +402,10 @@ collision_mask = 2
script = ExtResource("26_tuncf")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Killbox" unique_id=1079628314]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0668106, -6.8471, 0.829394)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -32.947075, -15.84417, 71.8072)
shape = SubResource("BoxShape3D_134um")
[node name="Shredder" parent="." unique_id=964733986 instance=ExtResource("27_gppb4")]
transform = Transform3D(0.748886, 0, 0.662699, 0, 1, 0, -0.662699, 0, 0.748886, 34.8662, 0.5, 16.6183)
[node name="bridge" parent="." unique_id=142248090 instance=ExtResource("30_ttr7n")]
[node name="bridge" parent="." unique_id=1818123169 instance=ExtResource("30_ttr7n")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2.5, 0)
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1926664882]

BIN
ingame_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -2,19 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://r6t8tw8wdg0k"
path="res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"
uid="uid://mt6liu1hi15j"
path="res://.godot/imported/ingame_logo.png-55759551dc5765576e8b2217c84044f0.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "90c8db677a98042ac33135e89c44851a"
}
[deps]
source_file="res://Zones/Moat/mesh_moat_grass.png"
dest_files=["res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"]
source_file="res://ingame_logo.png"
dest_files=["res://.godot/imported/ingame_logo.png-55759551dc5765576e8b2217c84044f0.ctex"]
[params]
@@ -26,7 +23,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""