Plugin for Godot that adds a projectile system in 2D&3D. There are four projectile classes (2 each for 2D & 3D), base one and extended, to which you can add more stuff, like changing speed every second or making it disappear only after interacting with 3 objects.
Also includes two more plugins: NZ_projectiles_emitter (adds nodes with which you can emit projectiles) and NZ_projectiles_custom (adds a new projectile class that is much more customizable, but harder to work with). Both plugins require the main one - NZ_projectiles.
Every update adds a new scene in NZ_projectiles/Scenes/Updates where you can see recently added things (even if the update doesn't say that it added a new scene).
All Move_extended_projectile classes now have node alternatives while the base classes are deprecated.
Move_extended_projectile_node should be used instead of Move_extended_projectile.
ME_direction should be used instead of Move_direction_projectile.
ME_node2D should be used instead of Move_to_node2D_projectile.
ME_line2D should be used instead of Move_projectile_on_line2D.
Add ME_node2D_dynamic - allows projectile to dynamically switch the current target.
Move_extended_projectile3D will be moved from resources to nodes in one of the next updates.
This doesn't mean that all other resources will be replaced with nodes, I just find nodes to be more useful to be used as a base for extending projectiles movement instead of resources.
Add queue_free_if_cant_move_on_line to Move_projectile_on_line2D.
Add queue_free_if_cant_move_on_path3d to Move_projectile_on_path3D.
Add point_type to Move_projectile_on_line2D, now you can select, will the required point be a square or a circle.
Add PointType enum in ProjectileEnum.
Add use_min_value_the_same_as_atk to AC_random_range.
Add max_value_is_min_value_plus_max_value to AC_random_range.
Fix bug when the projectile move used a longer way to get to look at the point on the Line2D and Path3D.
Move_projectile_on_path3D will now show an error if it can't find a node with path3d_path.
!IMPORTANT! Some modules will be moved to another plugin to make the main one less bloated. I will do it in 2.12 or 2.13.
Move_projectile_on_line2D will now show error if it can't find a node with line_path.
If debug is set to true in Move_projectile_on_line2D then will be printed when _cur_line is set to null through _set_cur_line_to_null().
Fix calling _ready() in the wrong resource in PR_extra_changer.
Update NZ_projectiles_emitter to 1.6.1.
Update Move_to_node3D_projectile, now includes reach_distance, extra_resource, and when extra_resource will be activated.
extra_timer_path can only be set to Timer in Move_to_node2D_projectile.
Change use_extra() in Projectile_resource_extra, now it requires a projectile node as an argument and the projectile variable in Projectile_resource_extra is now deprecated.
Add add_to_position in RP_spawn_projectile to change spawned projectile position.
Add instant_look and look_speed in Move_projectile_on_line2D, Move_projectile_on_path3D, Move_to_node2D_projectile and Move_to_node3D_projectile
Add find_shortest_way_to_angle() in Move_extended_projectile and Move_extended_projectile3D
Improve PR_extra_change_var, now you can select what to do with a new value, replace the old value, add to it or subtract from it.
In Move_projectile_on_path3D and Move_projectile_on_line2D clamp() was changed to clampi() and wrap() to wrapi().
In Move_direction_projectile3D,Move_direction_projectile and RP_spawn_projectile clamp() was changed to clampf().
type is now export_storage
Add more comments.
Some fixes in comments.
Update documentation
Update NZ_projectiles_emitter to 1.6.
Add PR_extra_change_var - change any variable in a projectile.
Update Move_to_node2D_projectile, now includes reach_distance, extra_resource, and when extra_resource will be activated.
Hit_extended_projectile is now not an abstact class. This is made to use Projectile_resource_extra without giving more arguments.
Change Hit_extended_projectile and HE_other icons.
Now if Move_projectile_on_line2D is used then the projectile will use a duplicate of it.
Update NZ_projectiles_emitter to 1.5.
You can set a resource to change projectiles speed, atk, movement, hit arguments and removal logic.









