* Adds the Active Sonar mod to the game. (#67828)
Adds the Active Sonar Module to the game, a module which lets you see the locations of living creatures within a 9 tile radius.
It can be attained by researching Security Modules, and then printed like any other module.
It takes 3 complexity to house, has a 25 second cooldown, and takes a good amount of energy to use.
* Adds the Active Sonar mod to the game.
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Parallax but better: Smooth movement cleanup (#66567)
* Alright, so I'm optimizing parallax code so I can justify making it do a
bit more work
To that end, lets make the checks it does each process event based.
There's two. One is for a difference in view, which is an easy fix since
I added a view setter like a year back now.
The second is something planets do when you change your z level.
This gets more complicated, because we're "owned" by a client.
So the only real pattern we can use to hook into the client's mob's
movement is something like connect_loc_behalf.
So, I've made connect_mob_behalf. Fuck you.
This saves a proc call and some redundant logic
* Fixes random parallax stuttering
Ok so this is kinda a weird one but hear me out.
Parallax has this concept of "direction" that some areas use, mostly
the shuttle transit ones. Set when you move into a new area.
So of course it has a setter. If you pass it a direction that it doesn't
already have, it'll start up the movement animation, and disable normal
parallax for a bit to give it some time to get going.
This var is typically set to 0.
The problem is we were setting /area/space's direction to null in
shuttle movement code, because of a forgotten proc arg.
Null is of course different then 0, so this would trigger a halt in
parallax processing.
This causes a lot of strange stutters in parallax, mostly when you're
moving between nearspace and space. It looks really bad, and I'm a bit
suprised none noticed.
I've fixed it, and added a default arg to the setter to prevent this
class of issue in future. Things look a good bit nicer this way
* Adds animation back to parallax
Ok so like, I know this was removed and "none could tell" and whatever,
and in fairness this animation method is a bit crummy.
What we really want to do is eliminate "halts" and "jumps" in the
parallax moveemnt. So it should be smooth.
As it is on live now, this just isn't what happens, you get jumping
between offsets. Looks frankly, horrible. Especially on the station.
Just what I've done won't be enough however, because what we need to do
is match our parallax scroll speed with our current glide speed. I need
to figure out how to do this well, and I have a feeling it will involve
some system of managing glide sources.
Anyway for now the animation looks really nice for ghosts with default
(high) settings, since they share the same delay.
I've done some refactoring to how old animation code worked pre (4b04f9012d). Two major
changes tho.
First, instead of doing all the animate checks each time we loop over a
layer, we only do the layer dependant ones. This saves a good bit of
time.
Second, we animate movement on absolute layers too. They're staying in
the same position, but they still move on the screen, so we do the same
gental leaning. This has a very nice visual effect.
Oh and I cleaned up some of the code slightly.
* Parallax but better: Smooth movement cleanup
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds a scope component, removes old zooming and adds sniper marksman ammo. (#66218)
Removes the old sniper rifle zoom, replaces it with a scope component. the scope activates on right click and lets your camera follow your mouse.
https://streamable.com/2c63u4 (due to byond rounding some shots were weirdly missed in that video, its fixed now)
Also adds sniper marksman ammo to the nukie uplink. It does slightly less damage, but it is hitscan and has one guaranteed ricochet shot, so you can shoot a wall and it could still hit someone.
* Adds a scope component, removes old zooming and adds sniper marksman ammo.
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Mining MODsuit Rework (#64688)
makes dropkey deactivate device modules
fixes speed potion being fucky
fixes doubled up balloon alerts
makes some cell code better i think
makes the gps module open the gps tgui for you, instead of putting a gps in your hand
the loader suit can now hold mailbags
Reworks the mining modsuit.
The suit is no longer cold-proof (this can be mitigated by using module space for thermal regulators)
The suit fits less modules than standard suits, but cant burn in lava.
In suit storage it can carry ore bags, resonators and kinetic crushers.
It features a storage, gps, ore bag, drill, clamp and by default comes with a plasma core, being recharged with plasma ore rather than by power cell.
Features two new modules:
Ash Accretion, it gathers dust from basalt (or snow) you walk on to create a layer of ash around the suit, acting as armor and a speed up that quickly drains when you walk on other terrain.
Sphere Transform, turns you into a fast moving ball that can travel past lava, you cannot use your hands when in this form, but you can launch aoe mining bombs to attack or mine
* Mining MODsuit Rework
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Field of View and Blindness improvements [bounty + upstream push]
* Update death.dm
* almost done
* Update fov_handler.dm
* Face mouse when in combat mode, fix
* Fixes the category for the fov admin verb. #63401
* Fixes objects with bad planes and FoV bugs #63412
* pain
* there we go
* face pref
Co-authored-by: Azarak <azarak10@gmail.com>
* Tracers: Migrate to use new rendering system (#61963)
This fixes Emitters, beam_rifle, and more.
The great rendering refactor (#61286) changed how rendering worked.
Entities need to have a usable plane to render to. This isn't normally
a problem, as sensible defaults are set very low in the type path.
However, tracer effects use an appearance override, which was missing
the plane definition.
This adds the plane to the appearance used when apply_vars is called,
by copying it from the holding entity.
* Fix Emitters, and everything that uses hitscan beams.
Co-authored-by: esainane <esainane+github@gmail.com>
* Layer overhaul (#57915)
## About The Pull Request
Changes up some layer and plane defines for no particular reason lol
## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._
* Layer overhaul
* aaaaaaaaa
a
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
* moves gun related icons to guns folder
Co-authored-by: Fikou <piotrbryla@onet.pl>
* cult construct stuff (#57027)
edits sprites for wizard cult constructs to have more sheen
fixes wizard cult constructs not working
makes soulstone code a bit cleaner i think
makes cult spells use second defines
fixes wraith jaunts being invisible
* cult construct stuff
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Food Cart remade as a mini-kitchen you can set up in the hallways (AND DO ANYTHING) (ARMFLOYDENKITCHENEZAB) (#55625)
About The Pull Request
The food cart no longer... Does whatever garbage it did before. What, like, store condiments? Terrible. Now you drag it around and set it up, creating a tent with a griddle, smartfridge, and a table. You can pack up anytime. Breaking parts of the tent will pack up the machine and subsequently break it, so careful!
Why It's Good For The Game
The food cart has been an entirely outdated, out classed, completely dead machine to use. We just can do a lot better in 2020. Now it once again has a nice unique function and lets chefs do a new gimmick of being a travelling seller of food. Employs the "steal the janicart" meta from the janitor in the new and equally infuriating "steal the entire damn tent lmao"
Changelog
🆑
add: Food Cart has been completely remade to work as a mobile kitchen
/🆑
* Food Cart remade as a mini-kitchen you can set up in the hallways (AND DO ANYTHING) (ARMFLOYDENKITCHENEZAB)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Remove duplicate definitions of /obj/effect/ex_act, explicitly noop it (#55076)
/obj/effect/ex_act had several different re-definitions to make it a noop. The original definition would randomly delete it, which is bad news when a lot of /obj/effects are just that--effects, that shouldn't be blown up.
The ones that actually do want to be blown up (like decals) already have their own implementations. The one in place was never ran, and nobody had problems with it.
* Remove duplicate definitions of /obj/effect/ex_act, explicitly noop it
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* repaths neurotoxin + embedding changes in bullets + adds effects when you shoot energy weapons (#52543)
* how
* Update alien_powers.dm
* adds impact effects, makes thinks that shouldnt embed not embed
* rogue pixel moment
* repaths neurotoxin + embedding changes in bullets + adds effects when you shoot energy weapons
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
* makes cult sexy
* turns cult sprites into sex
* gurgr
* hola
* final commit maybe
* FUCK
* shit
* a
* walla walla bing bong
* man fuck
* i didnt even know you could do this wtf
* new sounds from actioninja
* ahoy spongebob
* yeah
* bazinga
* should be finished
* oops
* update_icon() improvements
Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().
The rest of obj/item fuck it
* Suggested fixes, also passes the linter
* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON
* Actually this is better
* Signilzes datum/action to update its icon when its connected item does.
* Nanotrasen fires the Wave Motion Gun at the Clock Cult
* Fixes a random changelog appearing from the reebe void.
* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.
* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.
* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron
* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
About The Pull Request
It adds a shrink ray that has 5 shots, can be recharged, has unique (coder)sprites, and has a cool sound
Shoot a thing with the shrink ray to make it small. Anything can be shrunk except floors
Shrunken things grow back after a couple seconds, might adjust this
Small things will not block vision and can be walked over (this includes walls)
Small people won't fit into their clothes and will drop all their stuff (or rather, their stuff will drop off of them). They also can't move very fast, and take 2x damage while shrunk.
Preview video here
Why It's Good For The Game
It's really goddamn cool
Changelog
cl PKPenguin321, Fury McFlurry
add: A shrink ray for abductors that they can buy at their console for 2 experiment points. Anything can be shrunken, and shrunken things can be walked over/seen past (for example, you can shrink a wall and then walk around it). If a human is shrunk, they will drop all of their belongings, move slower, and take 2x damage.
imageadd: Shrink ray sprites by Fury McFlurry. Thank you!
/cl
I intend to add it as a thing abductors can purchase but am putting it up now for code review and if anybody has any other ideas on good thematically fitting places to put it.
The old Laser Sprite was pretty old, literally just a 4 color line.
Decided that it should probably look more in line with a 2,000,000
Watt beam of pure destruction.
As an added bonus, the laser now fires on the correct tile in front of
the BSA now, in addition to having a built in splashwave around where
it's fired.
Idea and instructions by @Razharas, many thanks.
This PR only implements the framework required to catalog as well as play the sounds. Their to_chat text, and icons (if any) are not included, are to be pushed in a separate PR.
This PR does not remove the old playsound_local system, it is kept for the sake of not necessitating a direct changeover of every single playsound in the code, which will surely cause a lot of merge conflicts. It does however, replace bike horns' and toy nukes' means of playback to this datum, purely as proof of concept.
Playsound_local may remain in the code to support playback of admin-uploaded sounds that do not have an inherent datum. Playsound will likely be renamed to something else in the next PR to reflect its new, more universal function. We will see.
New process for adding sounds:
Create a new datum/outputs subtype.
If you wish, write down some supporting text; this gives further meaning to the sound.
Add multiple sounds to the sounds list, and weight them as you wish. (New)
Add a sound icon if you wish, it defaults to a generic sound circle anyways though.
playsound(/datum/outputs/new_subtype, receiver), and it will deliver, icon, sound, and text to the receiver.
Maintaining implication is that from now on playsound should only be processing datum/outputs
This pr intends to gut to_chats that are added alongside playsounds in the code.
This pr eliminates the need to initialize sounds in a list so that you can weight them or have the game play them randomly from the list.
Sound Rings
Currently, only mobs with the audiolocation var may view them. Sound icons have an alpha that depends on the volume of the sound, louder sounds create a more opaque image
Sound rings are completely modular and may be changed to any image.
In addition to renaming playsound to reflect its new function. I intend to give blind people sound icons at the cost of their small view, but that is for another PR.
cl Basilman
refactor: refactored how sounds are stored and played
add: Added sound rings and supporting text
/cl
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".
It is my belief that science weaponry should exist but not be "just better energy guns/whatever". Right now, portal guns are actually pretty powerful, as their random teleport can space people (especially if they have bohs), and actually does burn damage, albeit very little. I want to make scilathe weapons into useful utility things that can be weaponized if you use it right and in somewhat niche scenarios.
This PR will make wormhole projectors into more utility than combat.