This adds the ability to lock your mob towards facing either a certain
direction or a certain atom. Direction is done by shift-middleclick,
atom is done by shift-ctrl-middleclick.
kills off anim() proc, removes ninja rigsuit electricity effect
gets rid of the flick() in temporary_visual.dm because pooling is dead
updates ethereal_jaunt.dm and makes it OOP, wraiths no longer show the wizard animation, jaunters cannot move after duration is over, fixes directions errors
turns many anim() into obj/effect/overlay/temp
smoother pet heart animation
This commit modifies all of our smoothing sprites to work properly when
the client's screen is rotated. It also does the same for the lighting
overlays, adding directional sprites so that they rotate correctly.
It also ports the movement input system from Baystation, which means
that your controls aren't suddenly reversed when your screen is rotated.
The primary function of this is a new button in the "Preferences" tab -
Set View Range. This functions similarly to the admin verb "Change View
Range", but it only allows you to set view ranges lower than the normal
world.view.
Full changelog:
- Added ViewMods system to clients.
- Everything that wants to change client.view should do it through
this system.
- Currently used by the Set View Range button and Marauders.
- Stretch mode is set to stretch when active, but the original
setting is preserved, as long as you set it with no ViewMods enabled.
- The basic way this works is that it keeps track of /datum/viewmods
on /clients, and whenever one is added or removed, it picks the
highest view range out of all of them and sets the client's vision to
that. This effectively means that, if you, say, set your view range
to 5x5, and get into a Marauder and use the "zoom" button, it will
always go to the marauder's zoom level.
- The HUD is set to minimal mode for any view ranges below
world.view, which means you only get absolutely critical buttons.
- It's set to invisible if you go down to view range 1 or 2,
because the buttons can't fit on the screen at those view
ranges.
- Removed canvas examine option. Just zoom in yourself!
This commit ports /tg/'s move refactor.
The throwing system has been replaced entirely, removing the necessity
of throw_at_fast and resolving multiple outstanding issues, such as
crossbows being unusable.
Spacedrifting has also been upgraded to function with the new throwing
system. It is now it's own process.
Tickcomp has been killed, and the config values have been adjusted to
more or less match live Paradise.
All mobs now share a common Bump() proc. There are only four mobtypes
which do not, including humans and simple animals. With the exception
of mob types that do not ever want to Bump() or be Bumped(), they should
call the parent proc.
Human movement slowdown has been moderately tweaked in how it stacks effects;
It shouldn't be significantly different from a player perspective.
Mobs will now spread fire if they bump into another mob. I don't want to set
the world on fiiiire, I just want start a flame in your heart~
For player facing changes: Input delay has been reduced by roughly ~50ms for
any direction keys, by advantage of a previously unknown flag on byond verbs
which allow them to operate independently from the tick rate of the server.
You may need to clear your interface.dmf file if you have a custom skin for
this change to function.
Start of porting the /tg/station mecha update.
This commit only cleans up the code and adds the proper dependencies for
the mecha.
- Removes relative pathing from /datum/events
- Updated Process_Spacemove() to use
atom/movable/proc/get_spacemove_backup()
- Basically just makes launching off of unanchored objects in space an
OOP behaviour
- Removed styling atrocities and relative pathing from most of the mecha files.
- Notable exceptions:
- code/game/mecha/mech_bay.dm
- code/game/mecha/mech_fabricator.dm
- code/game/mecha/mecha_construction_paths.dm
- code/game/mecha/mecha_parts.dm
- code/game/mecha/mecha_wreckage.dm
- code/game/mecha/paintkits.dm
- Removed dyndomove/dyndoattackby/dyndobulletact. No more icky dynamic
calls. Replaced by specific code for the 3 modules that used it.
- Refactored module cooldown. It now uses addtimer, and power usage is
hooked directly into the cooldown calls.
- Added atom/movable/proc/has_buckled_mobs(). Currently not that useful,
but, necessary for porting the multi-buckling system from /tg/.
- Split code/game/mecha/equipment/tools/tools.dm into multiple files.
- Removed snowflake behaviour from exosuit drill. It now calls
turf.drill_act(src).
- Different from /tg/: Allows you to drill any wall/floor normally.
- Drill no longer gibs mobs. It deals 80 organ damage instead.
- Drill can be used to harvest dead mobs.
- Removed all global_iterator systems from mecha and mecha equipment.
Everything now uses object processing.
- Mecha now have a turn sound variable and step sound variable. Updated
all subtypes to use these instead of snowflake domove procs.
- Removed mecha_do_after, mecha now uses the normal do_after.
- Removed enter_after, same as above.
- /obj/mecha/Process_Spacemove no longer strangely calls the user's
spacemove.
- /obj/mecha/return_pressure now uses return_air instead of copypasted
cabin air detection.
- Same for /obj/mecha/return_temperature
- Added /obj/mecha/Exited. Basically, properly clears occupant refs,
even if they teleport out/otherwise exit improperly.
- Added hooks for mecha action buttons; Didn't implement them yet.
- Moved mecha UI to code/game/mecha/mecha_topic.dm
- Fixed turfs not updating atmos when ChangeTurf(/turf/space) is used.
- Updated visible_message and audible_message. Both now use
get_mobs_in_view() to ensure that mobs inside containers can see
messages.
- Removed /obj/item/mecha_parts/mecha_equipment/tool subtype. It had no
use. Any subtypes are now just subtypes of
/obj/item/mecha_parts/mecha_equipment.
- Added 4 new HUD styles
- Humans recreate their hud if they change their UI pref mid-game
- Refactored how objects are added to the client screen
- HUD's are now handled by subtype and mob/proc/create_mob_hud()
- HUD visibility is no longer chained directly to the F12 button, it's a proc on HUD datums now
- Mobs only create/destroy their HUD when necessary, not every Login()
- Destroyed aim-mode, it didn't work and I couldn't make it work.
- Renamed all of the screen1_x.dmi files to screen_x.dmi
- Removed screen1.dmi, screen_gen.dmi now handles generic icons.
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
Conflicts:
code/modules/mob/living/carbon/human/human.dm
^ This shit is haunted. It's conflicted on two branches for 0
reason, the automatic merge wouldn't work on the fucking end of
file.
This commit does the following:
- Overhauls how pull works. It is now based on a mob verb,
mob/verb/pulled()
- Makes the pull icon much more responsive. It is now updated whenever a
mob starts or stops pulling an object, and instantly updates.
- This required HUD changes. God help me.
This commit adds baystation's rigsuit system on top of our own hardsuits;
Our own hardsuits still function fine and are around, but these are
available to admins. Next commit will contain balancing and player
implementation stuff.
This commit updates the spacemove system to -tg-'s; All objects now drift
in space, not just mobs. A few hardcoded space checks have been replaced
with has_gravity(); So it applies to zero-G as well as space.
Spacepods no longer drift, because their snowflakey shitcode just doesn't
work. So they just move.
This commit overhauls a bunch of systems so that buckling works for
any subtype of /obj. This means that space vines and chairs and beds all
use the same system. A lot of stuff has been touched.
This commit updates the previous commit with the latest changes from the
CB:GI git.
Primary Changes:
- Dancing! Passively grab someone, they passively grab you, looks like
dancing/wrestling. You get the image, I'm sure.
- Clarifications and possible runtime nipping.
Drop Item will now deselect, and Toggle Throw will now unequip and cycle
to the next module; previously, these hotkeys did nothing for cyborgs.
Also, unequipping a module while the module list is open will now update
it like it should.
This is the first commit to the context based grab system ported from
baystation 12. It includes the first 4 baystation commits. More commits
will be added as their system is developed.