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

@ -0,0 +1 @@
uid://d147vuqksqhis

@ -2,4 +2,5 @@ class_name EnemyMovement extends Node
@export var character: CharacterBody3D
var astar: AStarGraph3D
var distance_remaining: float = 0.0

@ -0,0 +1 @@
uid://cy0htr7710hnn

@ -0,0 +1,143 @@
class_name LeapingController extends PathingController
@export var eastl: Label
@export var westl: Label
@export var northl: Label
@export var southl: Label
@export var easts: Sprite3D
@export var wests: Sprite3D
@export var norths: Sprite3D
@export var souths: Sprite3D
@export var box: CSGBox3D
var tolerance: float = 50.0
var jumping: bool = false
func _process(delta: float) -> void:
tolerance = remap(character.health.current_health, 10, 50, character.health.max_health * 0.20, character.health.max_health)
func _physics_process(delta: float) -> void:
if !path or jumping:
return
var distance_travelled: float = (character.stats.movement_speed * clampf(character.movement_speed_penalty, 0.0, 1.0)) * delta
distance_remaining -= distance_travelled
path_progress += distance_travelled
var sample: Transform3D = path.sample_baked_with_rotation(path_progress, true)
character.global_position = sample.origin
character.look_at(character.global_position + -sample.basis.z)
var closest_point: int = astar.astar.get_closest_point(character.global_position, false)
box.global_position = astar.astar.get_point_position(closest_point)
var east: int = astar.get_east_point(closest_point)
var west: int = astar.get_west_point(closest_point)
var north: int = astar.get_north_point(closest_point)
var south: int = astar.get_south_point(closest_point)
#if east >= 0 and astar.astar.is_point_disabled(east):
#eastl.text = "fuck no"
#else:
#eastl.text = "yeah"
#if west >= 0 and astar.astar.is_point_disabled(west):
#westl.text = "fuck no"
#else:
#westl.text = "yeah"
#if north >= 0 and astar.astar.is_point_disabled(north):
#northl.text = "fuck no"
#else:
#northl.text = "yeah"
#if south >= 0 and astar.astar.is_point_disabled(south):
#southl.text = "fuck no"
#else:
#southl.text = "yeah"
norths.global_position = character.global_position + Vector3(-1.0, 1.0, 0.0)
souths.global_position = character.global_position + Vector3(1.0, 1.0, 0.0)
easts.global_position = character.global_position + Vector3(0.0, 1.0, -1.0)
wests.global_position = character.global_position + Vector3(0.0, 1.0, 1.0)
if east >= 0:
if astar.astar.is_point_disabled(east):
var further_point: int = astar.get_east_point(east)
if further_point >= 0 and !astar.astar.is_point_disabled(further_point):
var expected_offset: float = path.get_closest_offset(character.global_position + Vector3(0.0, 0.0, -4.0))
var current_offset: float = path.get_closest_offset(character.global_position)
var gain: float = expected_offset - current_offset
if gain >= tolerance:
distance_remaining -= gain
path_progress += gain
leap(Vector3(0.0, 0.0, -4.0))
#eastl.text = str(gain)
#easts.visible = true
else:
eastl.text = "cant"
else:
eastl.text = "clear"
else:
eastl.text = "invalid"
if west >= 0:
if astar.astar.is_point_disabled(west):
var further_point: int = astar.get_west_point(west)
if further_point >= 0 and !astar.astar.is_point_disabled(further_point):
var expected_offset: float = path.get_closest_offset(character.global_position + Vector3(0.0, 0.0, 4.0))
var current_offset: float = path.get_closest_offset(character.global_position)
var gain: float = expected_offset - current_offset
if gain >= tolerance:
distance_remaining -= gain
path_progress += gain
leap(Vector3(0.0, 0.0, 4.0))
#westl.text = str(gain)
#wests.visible = true
else:
westl.text = "cant"
else:
westl.text = "clear"
else:
westl.text = "invalid"
if north >= 0:
if astar.astar.is_point_disabled(north):
var further_point: int = astar.get_north_point(north)
if further_point >= 0 and !astar.astar.is_point_disabled(further_point):
var expected_offset: float = path.get_closest_offset(character.global_position + Vector3(-4.0, 0.0, 0.0))
var current_offset: float = path.get_closest_offset(character.global_position)
var gain: float = expected_offset - current_offset
if gain >= tolerance:
distance_remaining -= gain
path_progress += gain
leap(Vector3(-4.0, 0.0, 0.0))
#northl.text = str(gain)
#norths.visible = true
else:
northl.text = "cant"
else:
northl.text = "clear"
else:
northl.text = "invalid"
if south >= 0:
if astar.astar.is_point_disabled(south):
var further_point: int = astar.get_south_point(south)
if further_point >= 0 and !astar.astar.is_point_disabled(further_point):
var expected_offset: float = path.get_closest_offset(character.global_position + Vector3(4.0, 0.0, 0.0))
var current_offset: float = path.get_closest_offset(character.global_position)
var gain: float = expected_offset - current_offset
if gain >= tolerance:
distance_remaining -= gain
path_progress += gain
leap(Vector3(4.0, 0.0, 0.0))
#southl.text = str(gain)
#souths.visible = true
else:
southl.text = "cant"
else:
southl.text = "clear"
else:
southl.text = "invalid"
func finish_jump() -> void:
jumping = false
func leap(to_point: Vector3) -> void:
jumping = true
var tween: Tween = create_tween()
tween.tween_property(character, "global_position", character.global_position + (to_point / 2.0) + Vector3.UP, 1.0)
tween.tween_property(character, "global_position", character.global_position + to_point, 1.0)
tween.tween_callback(finish_jump)

@ -0,0 +1 @@
uid://dqluvn05min37

@ -18,3 +18,4 @@ func _physics_process(delta: float) -> void:
var sample: Transform3D = path.sample_baked_with_rotation(path_progress, true)
character.global_position = sample.origin
character.look_at(character.global_position + -sample.basis.z)
var closest_point: Vector3 = path.get_closest_point(character.global_position)

@ -0,0 +1 @@
uid://b62xnsbki8axa