way too many changes to list, oops. big rewrite.

This commit is contained in:
2025-05-27 03:38:03 +10:00
parent 16951a9beb
commit 4a21701a35
663 changed files with 7389 additions and 3283 deletions
Assets
Audio
Cards
Classes
Mods/Base
PCs
Projectiles
Resources
Scenes
8_direction_sprite.tscn
CardPrinter
Menus
Projectiles
ShopStand
Shredder
TowerBase
Towers
UI
Weapons
corpse.tscndamage_particle.tscnenemy_spawner.tscngauntlet.tscnhealth_bar.tscnitem_card.tscnitem_container.tscnpath_visual_thing.tscnvisual_path.tscn
Scripts
Affectors
EnemyAI
Projectiles
Resources
StatusEffects
Towers
Weapons
a_star_graph_3d.gda_star_graph_3d.gd.uidalert_popup.gd.uidaudio_options.gd.uidcard_hand.gd.uidchatbox.gd.uidcinema_cam.gd.uidconfirmation_popup.gd.uidcorpse.gdcorpse.gd.uiddamage_particle.gd.uiddata.gddata.gd.uidedit_tool.gd.uideffect.gdeffect.gd.uideight_direction_sprite.gd.uidenemy_card.gdenemy_card.gd.uidenemy_goal.gd.uidenemy_spawner.gdenemy_spawner.gd.uidfloat_and_spin.gd.uidgame.gdgame.gd.uidgame_mode.gdgame_mode.gd.uidgameplay_options.gd.uidgraphics_options.gd.uidhealth.gdhealth.gd.uidhealth_bar.gd.uidhitbox.gdhitbox.gd.uidinteract_button.gdinteract_button.gd.uidinventory.gd.uiditem_card.gd.uiditem_container.gd.uidkey_icon_map.gd.uidkeybind_options.gd.uidkillbox.gd.uidlevel.gdlevel.gd.uidlifebar_segment.gd.uidlives_bar.gd.uidloadout_editor.gdlobby.gdlobby.gd.uidminimap_cam.gd.uidmultiplayer_lobby.gdmultiplayer_lobby.gd.uidon_top_camera.gd.uidoptions_menu.gd.uidpath_visual_thing.gd.uidpickup_notification.gd.uidround_stats.gd.uidscoreboard.gd.uidscoreboard_entry.gd.uidserver_form.gdserver_form.gd.uidsingleplayer_lobby.gdsingleplayer_lobby.gd.uidsprite_bobber.gd.uidstatus_effector.gd.uidtarget_dummy.gd.uidtarget_finder.gdtarget_finder.gd.uidtext_input_popup.gd.uidtower_base.gd.uidvisualized_path.gdvisualized_path.gd.uidwave.gdwave.gd.uidwave_manager.gdwave_manager.gd.uid
Towers
Ascension
Assault
Blowdart
BombLauncher
Fireball
Flamethrower
Gatling
GlueLauncher
Icicle
Overclock
Reactor
Refrigerator
RocketLauncher
Sniper
tower.gdtower.gd.uid
UI
Weapons
Ascension
Assault
Blowdart
BombLauncher
Fireball
Flamethrower
Gatling
GlueLauncher
Icicle
Overclock
Reactor
Refrigerator
RocketLauncher
Sniper
Worlds
achievement_popup.gdachievement_popup.gd.uidachievement_popup.tscnbridge.blendbridge.glbbridge.glb.importcard_item.gdcard_item.gd.uidenemy_card_ui.gdenemy_card_ui.gd.uidenemy_card_ui.tscnenergy_bar.gdenergy_bar.gd.uidenergy_bar.tscnexport_presets.cfgjoytest.gdjoytest.tscnladder.gdladder.gd.uidladder.tscnmat1.tresmat13.tresmat2.tresmod_menu.gdmod_menu.gd.uidmouse_hover_material.tresnew_standard_material_3d.tresnew_style_box_flat.tresnew_theme.tresplan.glbplan.glb.importplan.tscnplan_mat.tresplan_plan_tex.pngplan_plan_tex.png.importproject.godotshot1.wavvisualized_path.tscnworld_test.tscn

@ -6,10 +6,8 @@ var non_build_locations: Array = []
var astar: AStar3D = AStar3D.new()
#TODO generalize this better
@export var start: Node3D
@export var end: Node3D
@export var spawner: EnemySpawner
@export var visualized_path: VisualizedPath
@export var spawners: Array[EnemySpawner]
@export var tower_path: Node
var tower_base_scene: PackedScene = load("res://Scenes/TowerBase/tower_base.tscn")
var tower_frame_scene: PackedScene = load("res://Scenes/tower_frame.tscn")
@ -19,6 +17,11 @@ var tower_frames: Array = []
var wall_id: int = 0
func _ready() -> void:
for spawner: EnemySpawner in spawners:
spawner.astar = self
func toggle_point(point_id: int, caller_id: int) -> void:
networked_toggle_point.rpc(point_id, caller_id)
@ -210,15 +213,18 @@ func place_random_towers(tower_limit: int) -> void:
func find_path() -> bool:
var path: PackedVector3Array = astar.get_point_path(astar.get_point_count() - 2, astar.get_point_count() - 1)
if !path.is_empty():
var curve: Curve3D = Curve3D.new()
for point: Vector3 in path:
curve.add_point(point)
spawner.path.curve = curve
spawner.path.spawn_visualizer_points()
return true
return false
for spawn: EnemySpawner in spawners:
var path: PackedVector3Array = astar.get_point_path(spawn.astar_point_id, astar.get_point_count() - 1)
if !path.is_empty():
var curve: Curve3D = Curve3D.new()
for point: Vector3 in path:
curve.add_point(point)
spawn.path.global_position = Vector3.ZERO
spawn.path.curve = curve
else:
return false
spawners[0].path.spawn_visualizer_points()
return true
func make_grid() -> void:
@ -247,10 +253,12 @@ func make_grid() -> void:
var west_point_id: int = grid_size.y * x + (y + 1)
astar.connect_points(point_id, west_point_id, false)
non_build_locations.append(astar.get_point_count())
astar.add_point(astar.get_point_count(), start.global_position)
for x: int in grid_size.y:
astar.connect_points(int(astar.get_point_count() - 1), x)
for spawn: EnemySpawner in spawners:
non_build_locations.append(astar.get_point_count())
spawn.astar_point_id = astar.get_point_count()
astar.add_point(astar.get_point_count(), spawn.global_position)
for x: int in grid_size.y:
astar.connect_points(int(astar.get_point_count() - 1), x)
non_build_locations.append(astar.get_point_count())
astar.add_point(astar.get_point_count(), end.global_position)
for x: int in grid_size.y: