added support for obstacles to levels again
This commit is contained in:
@@ -15,17 +15,7 @@ scene = ExtResource("3_otbdk")
|
||||
death_sprite = ExtResource("1_yj87d")
|
||||
sprite = ExtResource("2_mkbm6")
|
||||
spawn_power = 16
|
||||
health = 70
|
||||
health = 15
|
||||
penalty = 4
|
||||
movement_speed = 3.5
|
||||
spawn_cooldown = 0.6
|
||||
common_group = 5
|
||||
common_cost = 2
|
||||
uncommon_group = 11
|
||||
uncommon_cost = 2
|
||||
rare_group = 16
|
||||
rare_cost = 4
|
||||
epic_group = 23
|
||||
epic_cost = 6
|
||||
legendary_group = 30
|
||||
legendary_cost = 10
|
||||
|
||||
@@ -15,16 +15,7 @@ scene = ExtResource("3_m808b")
|
||||
death_sprite = ExtResource("1_qveaa")
|
||||
sprite = ExtResource("2_7nc4x")
|
||||
spawn_power = 14
|
||||
health = 350
|
||||
health = 150
|
||||
penalty = 15
|
||||
movement_speed = 1.1
|
||||
movement_speed = 1.4
|
||||
spawn_cooldown = 2.0
|
||||
common_group = 2
|
||||
uncommon_group = 5
|
||||
uncommon_cost = 2
|
||||
rare_group = 8
|
||||
rare_cost = 3
|
||||
epic_group = 14
|
||||
epic_cost = 4
|
||||
legendary_group = 18
|
||||
legendary_cost = 5
|
||||
|
||||
@@ -20,6 +20,6 @@ icon = ExtResource("2_tyyee")
|
||||
scene = ExtResource("3_mxg1o")
|
||||
death_sprite = ExtResource("1_r8gpy")
|
||||
sprite = SubResource("AtlasTexture_n6kdu")
|
||||
health = 180
|
||||
movement_speed = 1.5
|
||||
health = 60
|
||||
movement_speed = 1.6
|
||||
spawn_cooldown = 1.2
|
||||
|
||||
@@ -19,5 +19,4 @@ hero_class = ExtResource("3_ksxj8")
|
||||
allowed_cards = Array[ExtResource("1_yuhm2")]([ExtResource("2_vvycy")])
|
||||
waves = Array[ExtResource("3_5cjqa")]([ExtResource("6_xm2iu"), ExtResource("7_ginir"), ExtResource("8_heo8u"), ExtResource("9_5mf8a"), ExtResource("10_skwnu"), ExtResource("11_rusuq")])
|
||||
zone_scene = ExtResource("12_ksxj8")
|
||||
data_path = "res://Worlds/GreenPlanet/Levels/Bridge/level1.json"
|
||||
metadata/_custom_type_script = "uid://dalgif6huggwg"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
[resource]
|
||||
script = ExtResource("2_tihwe")
|
||||
enemies = Dictionary[ExtResource("1_ijigs"), int]({
|
||||
ExtResource("2_ywnes"): 4
|
||||
ExtResource("2_ywnes"): 10
|
||||
})
|
||||
rewards_blank_cassette = true
|
||||
metadata/_custom_type_script = "uid://bp6q371iypd06"
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
[resource]
|
||||
script = ExtResource("2_yby3c")
|
||||
enemies = Dictionary[ExtResource("1_ddbxs"), int]({
|
||||
ExtResource("2_mjqnu"): 7
|
||||
ExtResource("2_mjqnu"): 25
|
||||
})
|
||||
metadata/_custom_type_script = "uid://bp6q371iypd06"
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
[resource]
|
||||
script = ExtResource("2_mvtl1")
|
||||
enemies = Dictionary[ExtResource("1_8j1mh"), int]({
|
||||
ExtResource("2_cyr3d"): 5,
|
||||
ExtResource("3_6mlj7"): 2
|
||||
ExtResource("2_cyr3d"): 15,
|
||||
ExtResource("3_6mlj7"): 5
|
||||
})
|
||||
rewards_blank_cassette = true
|
||||
metadata/_custom_type_script = "uid://bp6q371iypd06"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
[resource]
|
||||
script = ExtResource("2_6kjfn")
|
||||
enemies = Dictionary[ExtResource("1_k10uy"), int]({
|
||||
ExtResource("2_htd28"): 10
|
||||
ExtResource("2_htd28"): 40
|
||||
})
|
||||
new_shop = true
|
||||
bonus_cash = 20
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
[resource]
|
||||
script = ExtResource("2_gexw5")
|
||||
enemies = Dictionary[ExtResource("1_evs1i"), int]({
|
||||
ExtResource("2_38p3i"): 10,
|
||||
ExtResource("3_8y41r"): 3
|
||||
ExtResource("2_38p3i"): 20,
|
||||
ExtResource("3_8y41r"): 15
|
||||
})
|
||||
metadata/_custom_type_script = "uid://bp6q371iypd06"
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
[resource]
|
||||
script = ExtResource("2_ltlqs")
|
||||
enemies = Dictionary[ExtResource("1_asx4x"), int]({
|
||||
ExtResource("2_u1tse"): 25
|
||||
ExtResource("2_u1tse"): 40
|
||||
})
|
||||
metadata/_custom_type_script = "uid://bp6q371iypd06"
|
||||
|
||||
@@ -21,7 +21,6 @@ script = ExtResource("2_y3kr2")
|
||||
hero_class = ExtResource("4_ldc6i")
|
||||
allowed_cards = Array[ExtResource("1_rchhl")]([ExtResource("2_geygk"), ExtResource("3_xdjpy")])
|
||||
waves = Array[ExtResource("3_05rhi")]([ExtResource("7_siv73"), ExtResource("8_kee6w"), ExtResource("9_k6fmx"), ExtResource("10_dd7gv"), ExtResource("11_nmbqu"), ExtResource("12_p0fmg"), ExtResource("13_alfsy"), ExtResource("14_jyonc")])
|
||||
points_blocked = Array[int]([40, 41, 42])
|
||||
points_blocked = Array[int]([34, 33, 41, 40, 39, 47, 79, 86, 85, 78, 91, 84])
|
||||
zone_scene = ExtResource("15_xdjpy")
|
||||
data_path = "res://Worlds/GreenPlanet/Levels/Bridge/level1.json"
|
||||
metadata/_custom_type_script = "uid://dalgif6huggwg"
|
||||
|
||||
@@ -342,3 +342,8 @@ func select_in_grid(grid: int) -> void:
|
||||
for node: FlowNode in flow_field.nodes:
|
||||
if node.grid_id == grid:
|
||||
selected.append(node)
|
||||
|
||||
|
||||
func _on_print_ids_pressed() -> void:
|
||||
for node: FlowNode in selected:
|
||||
print(node.node_id)
|
||||
|
||||
@@ -126,6 +126,10 @@ layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Load"
|
||||
|
||||
[node name="Button2" type="Button" parent="VBoxContainer" unique_id=1458001763]
|
||||
layout_mode = 2
|
||||
text = "Print Node_IDS"
|
||||
|
||||
[node name="Position" type="HBoxContainer" parent="." unique_id=1194117729]
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.4
|
||||
@@ -201,6 +205,7 @@ grow_vertical = 0
|
||||
[connection signal="pressed" from="VBoxContainer/Calculate" to="." method="_on_calculate_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Save" to="." method="_on_save_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Load" to="." method="_on_load_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/Button2" to="." method="_on_print_ids_pressed"]
|
||||
[connection signal="pressed" from="Position/Button" to="." method="set_position"]
|
||||
[connection signal="pressed" from="Position/Button2" to="." method="offset_position"]
|
||||
[connection signal="pressed" from="VBoxContainer2/Button" to="." method="load_zone"]
|
||||
|
||||
@@ -5,4 +5,3 @@ class_name LevelSpecs extends Resource
|
||||
@export var waves: Array[WaveConfig]
|
||||
@export var points_blocked: Array[int]
|
||||
@export var zone_scene: PackedScene
|
||||
@export var data_path: String
|
||||
|
||||
@@ -89,12 +89,12 @@ func networked_set_wave(wave_number: int) -> void:
|
||||
set_upcoming_wave()
|
||||
|
||||
|
||||
func spawn_level(scene: PackedScene, path: String) -> void:
|
||||
func spawn_level(scene: PackedScene) -> void:
|
||||
level = scene.instantiate() as Level
|
||||
var flow_field: FlowField = FlowField.new()
|
||||
level.flow_field = flow_field
|
||||
level.add_child(flow_field)
|
||||
flow_field.load_from_data(FlowFieldTool.load_flow_field_from_disc(path))
|
||||
flow_field.load_from_data(FlowFieldTool.load_flow_field_from_disc(level.data_path))
|
||||
level.load_flow_field()
|
||||
level.game_manager = self
|
||||
for x: EnemySpawner in level.enemy_spawns:
|
||||
@@ -106,6 +106,7 @@ func spawn_level(scene: PackedScene, path: String) -> void:
|
||||
root_scene.add_child(level)
|
||||
for spawner: EnemySpawner in level.enemy_spawns:
|
||||
spawner.create_path()
|
||||
level.generate_obstacle(level_specs.points_blocked)
|
||||
|
||||
|
||||
func spawn_players() -> void:
|
||||
@@ -298,6 +299,7 @@ func end_wave() -> void:
|
||||
#else:
|
||||
#shop_chance += 0.09
|
||||
wave_finished.emit()
|
||||
if wave < wave_limit:
|
||||
set_upcoming_wave()
|
||||
|
||||
|
||||
@@ -322,7 +324,7 @@ func setup() -> void:
|
||||
connected_players_nodes.clear()
|
||||
|
||||
#Spawn new stuff
|
||||
spawn_level(level_specs.zone_scene, level_specs.data_path)
|
||||
spawn_level(level_specs.zone_scene)
|
||||
|
||||
#Set starting parameters
|
||||
game_active = false
|
||||
|
||||
@@ -12,6 +12,7 @@ extends Node3D
|
||||
@export var shop: ShopStand
|
||||
@export var obstacle_scenes: Array[PackedScene]
|
||||
@export var obstacles: Array[PackedScene]
|
||||
@export var data_path: String
|
||||
var walls: Dictionary[FlowNode, TowerBase] = {}
|
||||
var wall_id: int = 0
|
||||
var tower_base_scene: PackedScene = load("res://Scenes/TowerBase/tower_base.tscn")
|
||||
@@ -84,6 +85,20 @@ func spawn_wall(point: FlowNode, name_id: int, caller_id: int) -> void:
|
||||
disable_path_tower_frames()
|
||||
|
||||
|
||||
func generate_obstacle(ids: Array[int]) -> void:
|
||||
var points: Array[FlowNode] = []
|
||||
for node: FlowNode in flow_field.nodes:
|
||||
if ids.has(node.node_id):
|
||||
points.append(node)
|
||||
for node: FlowNode in points:
|
||||
var obstacle: Node3D = obstacles[0].instantiate()
|
||||
obstacle.position = node.position
|
||||
flow_field.toggle_buildable(node)
|
||||
if node.traversable:
|
||||
flow_field.toggle_traversable(node)
|
||||
add_child(obstacle)
|
||||
|
||||
|
||||
func generate_obstacles() -> void:
|
||||
pass
|
||||
#print(str(multiplayer.get_unique_id()) + " spawning obstacles with seed: " + str(Game.rng.seed))
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
script = ExtResource("2_k26ta")
|
||||
energy_type = 2
|
||||
attributes = Dictionary[String, float]({
|
||||
"Damage": 3.0,
|
||||
"Damage": 6.0,
|
||||
"Energy": 20.0,
|
||||
"Fire Delay": 0.2,
|
||||
"Fire Delay": 0.468,
|
||||
"Range": 15.0
|
||||
})
|
||||
features = Array[ExtResource("1_vqq5l")]([ExtResource("2_prves")])
|
||||
|
||||
@@ -258,6 +258,7 @@ 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)
|
||||
|
||||
@@ -266,7 +267,6 @@ script = ExtResource("9_xuyhn")
|
||||
path_follows = [NodePath("Path3D/PathFollow3D"), NodePath("Path3D2/PathFollow3D2"), NodePath("Path3D3/PathFollow3D2")]
|
||||
cameras = [NodePath("Path3D/PathFollow3D/Camera3D"), NodePath("Path3D2/PathFollow3D2/Camera3D2"), NodePath("Path3D3/PathFollow3D2/Camera3D2")]
|
||||
pan_speed = 0.1
|
||||
does_its_thing = false
|
||||
|
||||
[node name="Path3D" type="Path3D" parent="CinemaCam" unique_id=869538998]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.63136, 4.35346, 7.28324)
|
||||
|
||||
@@ -216,6 +216,7 @@ 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]
|
||||
|
||||
Reference in New Issue
Block a user