added endless mode support to the wave viewer
@@ -15,7 +15,8 @@ icon = ExtResource("1_xgen5")
|
|||||||
scene = ExtResource("3_otbdk")
|
scene = ExtResource("3_otbdk")
|
||||||
death_sprite = ExtResource("1_yj87d")
|
death_sprite = ExtResource("1_yj87d")
|
||||||
sprite = ExtResource("2_mkbm6")
|
sprite = ExtResource("2_mkbm6")
|
||||||
spawn_power = 16
|
spawn_power = 6
|
||||||
|
group_size = 10
|
||||||
health = 15
|
health = 15
|
||||||
penalty = 4
|
penalty = 4
|
||||||
movement_speed = 3.5
|
movement_speed = 3.5
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ icon = ExtResource("2_idym2")
|
|||||||
scene = ExtResource("3_fmkhl")
|
scene = ExtResource("3_fmkhl")
|
||||||
death_sprite = ExtResource("1_skyfd")
|
death_sprite = ExtResource("1_skyfd")
|
||||||
sprite = ExtResource("5_okcvf")
|
sprite = ExtResource("5_okcvf")
|
||||||
spawn_power = 6
|
spawn_power = 5
|
||||||
|
group_size = 6
|
||||||
health = 120
|
health = 120
|
||||||
penalty = 7
|
penalty = 7
|
||||||
movement_speed = 1.0
|
movement_speed = 1.0
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ icon = ExtResource("1_lck53")
|
|||||||
scene = ExtResource("3_m808b")
|
scene = ExtResource("3_m808b")
|
||||||
death_sprite = ExtResource("1_qveaa")
|
death_sprite = ExtResource("1_qveaa")
|
||||||
sprite = ExtResource("2_7nc4x")
|
sprite = ExtResource("2_7nc4x")
|
||||||
spawn_power = 14
|
spawn_power = 8
|
||||||
|
group_size = 4
|
||||||
health = 150
|
health = 150
|
||||||
penalty = 15
|
penalty = 15
|
||||||
movement_speed = 1.4
|
movement_speed = 1.4
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ icon = ExtResource("2_tyyee")
|
|||||||
scene = ExtResource("3_mxg1o")
|
scene = ExtResource("3_mxg1o")
|
||||||
death_sprite = ExtResource("1_r8gpy")
|
death_sprite = ExtResource("1_r8gpy")
|
||||||
sprite = SubResource("AtlasTexture_n6kdu")
|
sprite = SubResource("AtlasTexture_n6kdu")
|
||||||
|
spawn_power = 3
|
||||||
health = 60
|
health = 60
|
||||||
movement_speed = 1.6
|
movement_speed = 1.6
|
||||||
spawn_cooldown = 1.2
|
spawn_cooldown = 1.2
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_ldkvi"]
|
[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://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="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://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"]
|
[ext_resource type="Script" uid="uid://bp6q371iypd06" path="res://Scripts/wave_config.gd" id="6_gmv8c"]
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("5_kje1i")
|
script = ExtResource("5_kje1i")
|
||||||
hero_class = ExtResource("4_5rrxx")
|
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")])
|
waves = Array[ExtResource("6_gmv8c")]([ExtResource("7_43tyk"), ExtResource("8_mblpn")])
|
||||||
zone = ExtResource("9_sbxeq")
|
zone = ExtResource("9_sbxeq")
|
||||||
metadata/_custom_type_script = "uid://dalgif6huggwg"
|
metadata/_custom_type_script = "uid://dalgif6huggwg"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("3_frc10")
|
script = ExtResource("3_frc10")
|
||||||
enemies = Dictionary[ExtResource("1_b6olw"), int]({
|
enemies = Dictionary[ExtResource("1_b6olw"), int]({
|
||||||
ExtResource("2_b51i4"): 5
|
ExtResource("2_b51i4"): 10
|
||||||
})
|
})
|
||||||
rewards_blank_cassette = true
|
rewards_blank_cassette = true
|
||||||
bonus_cash = 3
|
bonus_cash = 3
|
||||||
|
|||||||
BIN
Locales/en.mo
@@ -651,6 +651,12 @@ msgstr "Wave Preview"
|
|||||||
msgid "BUTTON_CLOSE"
|
msgid "BUTTON_CLOSE"
|
||||||
msgstr "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
|
#, fuzzy
|
||||||
#~| msgid "LABEL_DISPLAY_NAME"
|
#~| msgid "LABEL_DISPLAY_NAME"
|
||||||
#~ msgid "LABEL_CARD_NAME"
|
#~ msgid "LABEL_CARD_NAME"
|
||||||
|
|||||||
@@ -608,3 +608,9 @@ msgstr ""
|
|||||||
|
|
||||||
msgid "BUTTON_CLOSE"
|
msgid "BUTTON_CLOSE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LABEL_CAMPAIGN_DESC"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LABEL_ENDLESS_DESC"
|
||||||
|
msgstr ""
|
||||||
|
|||||||
13
PCs/hero.gd
@@ -262,18 +262,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
var wave_preview: WaveViewer = wave_preview_scene.instantiate() as WaveViewer
|
var wave_preview: WaveViewer = wave_preview_scene.instantiate() as WaveViewer
|
||||||
pause()
|
pause()
|
||||||
hud.add_child(wave_preview)
|
hud.add_child(wave_preview)
|
||||||
var wave_list: Array[Wave] = []
|
wave_preview.set_waves(game_manager.get_upcoming_waves(10), game_manager.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.closed.connect(unpause)
|
wave_preview.closed.connect(unpause)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ _subresources={
|
|||||||
},
|
},
|
||||||
"Material.003": {
|
"Material.003": {
|
||||||
"use_external/enabled": true,
|
"use_external/enabled": true,
|
||||||
"use_external/fallback_path": "res://Props/BigTree1/big_tree_bark.tres",
|
"use_external/fallback_path": "res://Materials/wood1/wood1.tres",
|
||||||
"use_external/path": "uid://bo8hb5kchxsaj"
|
"use_external/path": "uid://c21fh4gsnunfg"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"meshes": {
|
"meshes": {
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
|
|
||||||
[node name="Node3D" type="Node3D" unique_id=924363235]
|
[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")]
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
Before Width: | Height: | Size: 367 B |
@@ -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
|
|
||||||
@@ -87,6 +87,30 @@ func networked_set_wave(wave_number: int) -> void:
|
|||||||
connected_players_nodes[player].hud.set_wave_count(wave_number)
|
connected_players_nodes[player].hud.set_wave_count(wave_number)
|
||||||
wave = wave_number
|
wave = wave_number
|
||||||
set_upcoming_wave()
|
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:
|
func spawn_level(scene: PackedScene) -> void:
|
||||||
@@ -154,15 +178,11 @@ func ready_player(player_ready_true: bool) -> void:
|
|||||||
|
|
||||||
|
|
||||||
func spawn_enemy_wave() -> void:
|
func spawn_enemy_wave() -> void:
|
||||||
#level.shop.close()
|
|
||||||
#wave += 1
|
|
||||||
level.disable_all_tower_frames()
|
level.disable_all_tower_frames()
|
||||||
level.flow_field.calculate()
|
level.flow_field.calculate()
|
||||||
for spawn: EnemySpawner in level.enemy_spawns:
|
for spawn: EnemySpawner in level.enemy_spawns:
|
||||||
spawn.visible = false
|
spawn.visible = false
|
||||||
spawn.spawn_wave()
|
spawn.spawn_wave()
|
||||||
#for tower_base: TowerBase in level.walls.values():
|
|
||||||
#tower_base.disable_duration_sprites()
|
|
||||||
wave_started.emit()
|
wave_started.emit()
|
||||||
|
|
||||||
|
|
||||||
@@ -215,18 +235,8 @@ func set_upcoming_wave() -> void:
|
|||||||
|
|
||||||
func temp_set_upcoming_wave(new_wave: Wave, coins: int) -> void:
|
func temp_set_upcoming_wave(new_wave: Wave, coins: int) -> void:
|
||||||
pot = coins
|
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())
|
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")
|
@rpc("reliable", "call_local")
|
||||||
func networked_set_endless(value: bool) -> void:
|
func networked_set_endless(value: bool) -> void:
|
||||||
@@ -299,7 +309,7 @@ func end_wave() -> void:
|
|||||||
#else:
|
#else:
|
||||||
#shop_chance += 0.09
|
#shop_chance += 0.09
|
||||||
wave_finished.emit()
|
wave_finished.emit()
|
||||||
if wave < wave_limit:
|
if wave <= wave_limit:
|
||||||
set_upcoming_wave()
|
set_upcoming_wave()
|
||||||
|
|
||||||
|
|
||||||
@@ -383,13 +393,25 @@ func end(outcome: bool) -> void:
|
|||||||
menu.set_outcome_message("You lost...")
|
menu.set_outcome_message("You lost...")
|
||||||
lost_game.emit()
|
lost_game.emit()
|
||||||
true:
|
true:
|
||||||
|
menu.won_game()
|
||||||
menu.set_outcome_message("You win!")
|
menu.set_outcome_message("You win!")
|
||||||
won_game.emit()
|
won_game.emit()
|
||||||
|
menu.pressed_continue.connect(continue_with_game)
|
||||||
UILayer.add_child(menu)
|
UILayer.add_child(menu)
|
||||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
connected_players_nodes[multiplayer.get_unique_id()].pause()
|
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:
|
func quit_to_desktop() -> void:
|
||||||
multiplayer.multiplayer_peer.close()
|
multiplayer.multiplayer_peer.close()
|
||||||
multiplayer.multiplayer_peer = null
|
multiplayer.multiplayer_peer = null
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ extends Object
|
|||||||
## Takes in wave number and number of players and returns a spawn power value
|
## Takes in wave number and number of players and returns a spawn power value
|
||||||
## intended for passing into the generate_wave method
|
## intended for passing into the generate_wave method
|
||||||
static func calculate_spawn_power(wave_number: int, number_of_players: int) -> int:
|
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
|
## 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:
|
static func generate_wave(spawn_power: int, spawn_pool: Array[Enemy]) -> Wave:
|
||||||
var wave: Wave = Wave.new()
|
var wave: Wave = Wave.new()
|
||||||
|
|
||||||
var points: int = int(spawn_power / 10.0)
|
|
||||||
#print("Generating wave with " + str(points) + " points to spend")
|
#print("Generating wave with " + str(points) + " points to spend")
|
||||||
while points > 0:
|
while spawn_power > 0:
|
||||||
var new_card: EnemyCard = EnemyCard.new()
|
var new_card: EnemyCard = EnemyCard.new()
|
||||||
|
|
||||||
#First, choose an enemy at random
|
#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
|
#and, if not, then we have to pick a different enemy, repeat until
|
||||||
#we've successfully chosen one we can actually afford
|
#we've successfully chosen one we can actually afford
|
||||||
var enemy_chosen: bool = false
|
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:
|
while !enemy_chosen:
|
||||||
#Next, determine which is the most expensive rarity we can afford
|
#Next, determine what is the most groups we can afford
|
||||||
if new_card.enemy.legendary_cost <= points:
|
most_enemies_afforded = int(spawn_power / new_card.enemy.spawn_power)
|
||||||
highest_rarity = Data.Rarity.LEGENDARY
|
if most_enemies_afforded > 0:
|
||||||
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
|
|
||||||
enemy_chosen = true
|
enemy_chosen = true
|
||||||
else:
|
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
|
#a different enemy and try this process again
|
||||||
var enemy_id: int = spawn_pool.find(new_card.enemy)
|
var enemy_id: int = spawn_pool.find(new_card.enemy)
|
||||||
enemy_id -= 1
|
enemy_id -= 1
|
||||||
|
if first_enemy_id == -1:
|
||||||
|
first_enemy_id = enemy_id
|
||||||
if enemy_id < 0:
|
if enemy_id < 0:
|
||||||
new_card.enemy = spawn_pool[spawn_pool.size() - 1]
|
new_card.enemy = spawn_pool[spawn_pool.size() - 1]
|
||||||
else:
|
else:
|
||||||
new_card.enemy = spawn_pool[enemy_id]
|
new_card.enemy = spawn_pool[enemy_id]
|
||||||
|
most_enemies_afforded = 0
|
||||||
#Now that we know which rarities we could afford, lets just choose a
|
if enemy_id == first_enemy_id:
|
||||||
#random one
|
return wave
|
||||||
var chosen_rarity: int = NoiseRandom.randi_in_range(spawn_power, 0, highest_rarity)
|
#Now that we know how many we could afford, lets just choose a
|
||||||
new_card.rarity = chosen_rarity as Data.Rarity
|
#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!
|
#Add that new enemy to the wave and spend the points!
|
||||||
wave.enemy_groups.append(new_card)
|
wave.enemy_groups.append(new_card)
|
||||||
if chosen_rarity == Data.Rarity.COMMON:
|
spawn_power -= chosen_groups * new_card.enemy.spawn_power
|
||||||
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
|
|
||||||
return wave
|
return wave
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://nxl5wabgl36t"]
|
[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="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"]
|
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_ky46y"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
@@ -13,4 +14,5 @@ attributes = Dictionary[String, float]({
|
|||||||
"Speed Multiplier": 2.0,
|
"Speed Multiplier": 2.0,
|
||||||
"Speed Time": 3.0
|
"Speed Time": 3.0
|
||||||
})
|
})
|
||||||
|
features = Array[ExtResource("1_5mpl7")]([ExtResource("2_is2l1")])
|
||||||
text = "DESC_TOWER_ACCEL"
|
text = "DESC_TOWER_ACCEL"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
class_name GameEndScreen extends PanelContainer
|
class_name GameEndScreen extends PanelContainer
|
||||||
|
|
||||||
|
signal pressed_continue()
|
||||||
|
|
||||||
@export var box: PackedScene
|
@export var box: PackedScene
|
||||||
|
|
||||||
@export var outcome_label: Label
|
@export var outcome_label: Label
|
||||||
@@ -12,6 +14,11 @@ class_name GameEndScreen extends PanelContainer
|
|||||||
var game_manager: GameManager
|
var game_manager: GameManager
|
||||||
|
|
||||||
|
|
||||||
|
func won_game() -> void:
|
||||||
|
$VBoxContainer/Buttons/ContinueButton.visible = true
|
||||||
|
$VBoxContainer/Buttons/PlayButton.visible = false
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
winrate_label.text = str(Data.save_data.winrate) + "%"
|
winrate_label.text = str(Data.save_data.winrate) + "%"
|
||||||
total_games_label.text = str(Data.save_data.wins + Data.save_data.losses)
|
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:
|
func _on_button_mouse_entered() -> void:
|
||||||
$AudioStreamPlayer.play()
|
$AudioStreamPlayer.play()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_continue_button_pressed() -> void:
|
||||||
|
pressed_continue.emit()
|
||||||
|
queue_free()
|
||||||
|
|||||||
@@ -123,6 +123,11 @@ size_flags_vertical = 3
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
alignment = 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]
|
[node name="PlayButton" type="Button" parent="VBoxContainer/Buttons" unique_id=774071211]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "BUTTON_RESTART"
|
text = "BUTTON_RESTART"
|
||||||
@@ -135,6 +140,8 @@ text = "BUTTON_MAIN_MENU"
|
|||||||
stream = SubResource("AudioStreamRandomizer_dram5")
|
stream = SubResource("AudioStreamRandomizer_dram5")
|
||||||
bus = &"SFX"
|
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="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="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"]
|
[connection signal="mouse_entered" from="VBoxContainer/Buttons/QuitButton" to="." method="_on_button_mouse_entered"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class_name MainMenuLevelSelector extends PanelContainer
|
class_name MainMenuLevelSelector extends PanelContainer
|
||||||
|
|
||||||
signal level_selected(specs: LevelSpecs)
|
signal level_selected(specs: LevelSpecs, side_chosen: int)
|
||||||
|
|
||||||
var side: int = 0
|
var side: int = 0
|
||||||
|
|
||||||
@@ -8,12 +8,12 @@ var side: int = 0
|
|||||||
|
|
||||||
func _on_button_pressed() -> void:
|
func _on_button_pressed() -> void:
|
||||||
side = 0
|
side = 0
|
||||||
$VBoxContainer/Label.text = "Standard Campaign Mode"
|
$VBoxContainer/Label.text = tr("LABEL_CAMPAIGN_DESC")
|
||||||
|
|
||||||
|
|
||||||
func _on_button_2_pressed() -> void:
|
func _on_button_2_pressed() -> void:
|
||||||
side = 1
|
side = 1
|
||||||
$VBoxContainer/Label.text = "Endless Mode with random waves and all unlocked equipment"
|
$VBoxContainer/Label.text = tr("LABEL_ENDLESS_DESC")
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -27,4 +27,4 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func start_level(level: int) -> void:
|
func start_level(level: int) -> void:
|
||||||
level_selected.emit(levels[level])
|
level_selected.emit(levels[level], side)
|
||||||
|
|||||||
@@ -118,9 +118,9 @@ func generate_seed() -> void:
|
|||||||
gamemode.rng_seed = randi()
|
gamemode.rng_seed = randi()
|
||||||
|
|
||||||
|
|
||||||
func level_selected(level: LevelSpecs) -> void:
|
func level_selected(level: LevelSpecs, side: int) -> void:
|
||||||
generate_seed()
|
generate_seed()
|
||||||
gamemode.endless = false
|
gamemode.endless = true if side == 1 else false
|
||||||
gamemode.daily = false
|
gamemode.daily = false
|
||||||
game.level_specs = level
|
game.level_specs = level
|
||||||
start_game()
|
start_game()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
[gd_scene format=3 uid="uid://8yv7excojcg0"]
|
[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="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="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"]
|
[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
|
grow_vertical = 2
|
||||||
color = Color(0.5176471, 0.60784316, 0.89411765, 1)
|
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
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 0.5
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
text = "TITLE_GAME_NAME"
|
grow_vertical = 2
|
||||||
horizontal_alignment = 1
|
mouse_filter = 2
|
||||||
vertical_alignment = 1
|
texture = ExtResource("2_14tm0")
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="MainControls" type="VBoxContainer" parent="." unique_id=923552840]
|
[node name="MainControls" type="VBoxContainer" parent="." unique_id=923552840]
|
||||||
custom_minimum_size = Vector2(80, 0)
|
custom_minimum_size = Vector2(80, 0)
|
||||||
@@ -455,7 +457,7 @@ text = "BUTTON_BACK"
|
|||||||
|
|
||||||
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=654891125]
|
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=654891125]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Standard Campaign Mode"
|
text = "LABEL_CAMPAIGN_DESC"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://cj2x1jvo8l4ot"]
|
[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="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"]
|
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_y36gr"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
@@ -14,4 +15,5 @@ attributes = Dictionary[String, float]({
|
|||||||
"Speed Multiplier": 3.0,
|
"Speed Multiplier": 3.0,
|
||||||
"Speed Time": 4.0
|
"Speed Time": 4.0
|
||||||
})
|
})
|
||||||
|
features = Array[ExtResource("1_vn048")]([ExtResource("2_t6xv0")])
|
||||||
text = "DESC_WEAPON_ACCEL"
|
text = "DESC_WEAPON_ACCEL"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://d2yo07m2mp2mp"]
|
[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="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"]
|
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://Scripts/Resources/card_text.gd" id="2_ow0r7"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
@@ -12,4 +13,5 @@ attributes = Dictionary[String, float]({
|
|||||||
"Fire Delay": 2.0,
|
"Fire Delay": 2.0,
|
||||||
"Target Limit": 3.0
|
"Target Limit": 3.0
|
||||||
})
|
})
|
||||||
|
features = Array[ExtResource("1_h5r83")]([ExtResource("2_lnb6u")])
|
||||||
text = "DESC_WEAPON_ROCKET"
|
text = "DESC_WEAPON_ROCKET"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -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
|
|
||||||
@@ -216,7 +216,6 @@ corpses = NodePath("Parents/Corpses")
|
|||||||
cinematic_cam = NodePath("CinematicCamManager")
|
cinematic_cam = NodePath("CinematicCamManager")
|
||||||
printer = NodePath("CardPrinter")
|
printer = NodePath("CardPrinter")
|
||||||
shop = NodePath("ShopStand")
|
shop = NodePath("ShopStand")
|
||||||
data_path = "res://Worlds/GreenPlanet/Levels/Cave/level3.json"
|
|
||||||
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
||||||
|
|
||||||
[node name="Parents" type="Node3D" parent="." unique_id=447416055]
|
[node name="Parents" type="Node3D" parent="." unique_id=447416055]
|
||||||
|
|||||||
@@ -39,25 +39,25 @@ materials/extract_format=0
|
|||||||
materials/extract_path=""
|
materials/extract_path=""
|
||||||
_subresources={
|
_subresources={
|
||||||
"materials": {
|
"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": {
|
"Material.002": {
|
||||||
"use_external/enabled": true,
|
"use_external/enabled": true,
|
||||||
"use_external/fallback_path": "res://Materials/cobblestone1/cobblestone1.tres",
|
"use_external/fallback_path": "res://Materials/cobblestone1/cobblestone1.tres",
|
||||||
"use_external/path": "uid://ci2m26g6b7ao5"
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 527 B |
@@ -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
|
|
||||||
|
Before Width: | Height: | Size: 852 B |
@@ -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
|
|
||||||
|
Before Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 433 B |
@@ -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
|
|
||||||
@@ -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://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="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="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="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"]
|
[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)
|
size = Vector3(3.6270146, 6.87512, 10)
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_134um"]
|
[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"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fi8e6"]
|
||||||
transparency = 1
|
transparency = 1
|
||||||
@@ -258,7 +257,6 @@ cinematic_cam = NodePath("CinemaCam")
|
|||||||
printer = NodePath("CardPrinter")
|
printer = NodePath("CardPrinter")
|
||||||
shop = NodePath("ShopStand")
|
shop = NodePath("ShopStand")
|
||||||
obstacles = Array[PackedScene]([ExtResource("7_6tcu8")])
|
obstacles = Array[PackedScene]([ExtResource("7_6tcu8")])
|
||||||
data_path = "res://Worlds/GreenPlanet/Levels/Bridge/level1.json"
|
|
||||||
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
||||||
metadata/_editor_floor_ = Vector3(4, -10, 8)
|
metadata/_editor_floor_ = Vector3(4, -10, 8)
|
||||||
|
|
||||||
@@ -404,13 +402,10 @@ collision_mask = 2
|
|||||||
script = ExtResource("26_tuncf")
|
script = ExtResource("26_tuncf")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Killbox" unique_id=1079628314]
|
[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")
|
shape = SubResource("BoxShape3D_134um")
|
||||||
|
|
||||||
[node name="Shredder" parent="." unique_id=964733986 instance=ExtResource("27_gppb4")]
|
[node name="bridge" parent="." unique_id=1818123169 instance=ExtResource("30_ttr7n")]
|
||||||
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")]
|
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2.5, 0)
|
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]
|
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1926664882]
|
||||||
|
|||||||
BIN
ingame_logo.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
@@ -2,19 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://r6t8tw8wdg0k"
|
uid="uid://mt6liu1hi15j"
|
||||||
path="res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"
|
path="res://.godot/imported/ingame_logo.png-55759551dc5765576e8b2217c84044f0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
generator_parameters={
|
|
||||||
"md5": "90c8db677a98042ac33135e89c44851a"
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Zones/Moat/mesh_moat_grass.png"
|
source_file="res://ingame_logo.png"
|
||||||
dest_files=["res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"]
|
dest_files=["res://.godot/imported/ingame_logo.png-55759551dc5765576e8b2217c84044f0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
@@ -26,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||