* Refactor several log lines to use datum_info_line and atom_loc_line
* Add default return strings from datum_info_line and atom_loc_line
* Add parentheses around atom_loc_line data
* Change more logs to use atom_loc_line
* Add check in atom_loc_line for turfs to avoid calling get_turf on them
* Re-add removed 'at'
* Replace datum_info_line with key_name and atom_loc_line with loc_name
* Refactor logging functions
* Avoid double-logging self-interactions
* Fallback to simple stringification if all else fails in key_name()
* Rewrite muscle spasm logging to use log_message
* Standardize logging of martial arts
* Tweak individual logging panel look
* Fix individual logging panel source
* When I typed || I really meant &&
* Fix Telecomms logging always showing client logs in the panel
* Reverts addition of buggy ownership log to panel
* Remove colon
* Fix missing log_directed_talk tag
* Add warning for missing type in log_direted_talk
* Change warnings to stack_traces
* Add square brackets around fallthrough key_name() case to help parsing
* Allow atom arguments/src in log_*() functions
* Change log_combat call with null argument to log_message
* Change mecha types' log_message() arguments to match atom and mob version
* Add key_name() case for atoms
* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it
* Fix log_globally logic
* Add logging for hitting objects with items
* Move log_combat() to atoms.dm
* Use utility functions for object stringification in log_combat()
* Use utility functions for object stringification in log_combat()
* Add missing logs for interacting with display cases
* Rewrite log_combat() comment
* Add missing space in log_combat()
* Add logging for hitting grilles barehanded
* Add missing ..()
cl
experimental: Hitscanning tracers now have lighting effects
experimental: Projectile pathing has been changed - instead of moving to a turf 32 pixels forward using byond's built in step_towards() proc, it now increments 2 pixel 16 times (subject to change). While this will increase the processing overhead, this will more or less eliminate cases of "projectiles clipping past corners in some angles but not others".
This is in preparation for step_x support as the default behavior for these procs is necessary for proper functionality.
turf/Enter and atom/movable/Move default code got rewritten to replicate default byond functionality with minor changes.
Adds spell cards. They're a wizard spell that shoots a burst of 5 semi-accurate homing cards.
Projectiles now have a homing framework, complete with some variant of simulated inaccuracy.
The said wizard spell will make use of a new mob component, that allows that mob to select targets by moving their cursor near them. It will give a visual and lock onto the nearest mob to the cursor, allowing the homing projectiles to target on the locked on mob/object.
Removes colliding variable from projectiles - We never used it after Bump was refactored to Collide.
Images soon when I get the lockon datum-components to work.
* Cross Z support
* Fixes projectile cross-Z
* removes unnecessary code
* don't draw impacts if you're not impacting
* fix
* unneeded var
* No mapcheck()ing anymore, space does it for us 2.0
Moves beam rifle snowflake code up to projectile level for a proper hitscan system.
🆑
rscadd: Chameleon laser guns now have a special firing mode, activated by using them in hand! Only certain gun disguises will allow this to work!
/🆑
* adds support for non-1:1 screen ratios for fullscreen overlays
* prevents future copypasta, adds widescreen support to clickcatchers
* oops, makes it actually compile
* HOPEFULLY makes it actually compile, makes projectiles and mouse_angle_from_client support widescreen
* i need shittier shitcode
* !!!HOPEFULLY!!! fixes the screen fuckery
* Fixes compiling errors. Tested locally, it seems like it works
* fixes runtime in mouse_angle_from_client
* Fixes non-1:1 TGUI runtimes for borgs and ghosts
* adds actual defines for fullscreen overlay resolution
* makes varediting view call change_view to make clickcatcher regenerate proper
* testmerge toggle widescreen verb and fixes vving view
* FUCK - fixes test verb to properly use change_view, so clickcatchers regenerate and such
* fixes parallax runtimes - how'd i miss this
* removes debug verb
* Revert "all this wrapping and it's not even christmas (#33035)"
This reverts commit faaf151580.
* Revert "fuck me for forgetting to graph this one"
This reverts commit 45d7acea2f.
* Revert "defines math"
This reverts commit 2817a1737b.
ITT worst coder tries not to break everything and improve the code.
fixes#29211🆑
refactor: Legacy projectiles have been removed. Instead, all projectiles are now PIXEL PROJECTILES!
rscadd: Reflectors can now be at any angle you want. Alt click them to set angle!
/🆑
Also lets just
fixes#18133
because the shortest path from point A to B is a straight line, when projectile ranges are "number of times moved/processed" ofcourse it's going to be shorter if you fire diagonally. It will be a problem as long as range is done like that or if range are in "pixels/tiles" moved without outright using get_dist.
* wee
* screen clock update
* resist and stop pulling
* Whoop, Joan messed up on the selection border so here's some fixed icons for that
* there we go
* Update walls.dm
* Update walls.dm
* Update walls.dm
* Projectile code additions
* Adds !prehit checks and corrects the check for energy cannon spam
* Adds checks for machines and structures to stop double hitting
* JJRcop Requesting Fixes#1
* JJRcop Requested Fixes#2
* Fixes projectiles unable to hit mobs in machines
* Adds in a new proc select_target, and rewrites some bits
Fixes projectiles double hitting when targetting machines with mobs on them, also makes it so weapons with forcedodge can hit targets inside walls.
* AnturK requested fix#1
Tick contention is when the mc, sleep()/spawns(), and byond internal processing fight each other for game tick time. Usually in an unproductive way that wastes cpu cycles and reduces the effective amount of game tick to go around.
Tweaked the anti-tick contention heuristics of the MC a touch.
Fixed an incorrect operator in the mc's anti-tick contention heuristics causing it to apply in times of no lag rather then times of lag.
The mc's anti-tick contention heuristics now plays better with the high pop processing mode.
We no longer reserve the tail end of a tick for the mc to have if the mc doesn't plan to run next tick because of high pop mode or anti-tick contention heuristics.
stoplag() can now be given an initial delay allowing it to act like a smarter sleep (in that it sleeps for longer if the server is overwhelmed.
All short sleeps that only existed for performance reason and had no game play, visual/audio, or balance reasons behind their timing were converted to stoplag().
* Configuration datum refactor
* More WIP
* New easier on the eyes format
* More WIP
* Finished config.txt
* Fucktons more WIP
* The end of conversion draws near...
* Add all this shit
* Done converting entries finally
* Hunting down compile errors
* More WIP
* MORE CONVERSIONS
* More WIP
* More WIP
* Oh shit only 90 errors this time!
* IT COMPILES!!!
* Fixes world start runtimes
* Fixes suppressing in pocked and w_class issues
* Used defines for some things
* Reworded
* Removed the now redundant initial_w_class var
* Early returns
* Null