Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious
Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
* Beep beep gamemode removal coming through
* More cleaning
* More cleaning
* Clean up station_was_nuked
* Station nuke source
* Remove name
* More unused functions
* Remove antag rep, which was unused in dynamic
* Remove more antag rep stuff, which was UNUSED IN DYNAMIC
* Station goals outside of mode
* Remove setup_done
* Remove player lists
* Move some older procs
* Fix simulations
* Attempt to fix this stupid case sensitive bullshit
* Revert "Attempt to fix this stupid case sensitive bullshit"
This reverts commit 8693c02d67602543d7d4b92130a7a32cd973e5bf.
* ???
* Delete icons/Testing directory
* Move station_goals global definition
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.
* Remove gamemode references from age checks
* Monkey
* Remove heretics
* Remove BBs
* Refactor uplinks and remove clown ops
* Remove nuke ops
* Removes and refactors cult
* Remove extended
* Remove and move out meteors
* Removes wizard
* Remove sandbox
* Remove changelings
* Remove traitors
* Remove revs
* Remove gangs
* Remove changing mode and voting for new gamemodes
* get_candidates signature fix
* Summon ERT and NERD in their own panel
* Remove some old unneeded age_check stuff
* Fix old signatures of get_uplink_items
* Use Extended like config for dynamic.json
* Fix discounted gear
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm
We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.
There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.
Hi codeowners!
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
This PR adds station traits which are essentially small changes to a normal round that can be used to create small variations in how a round might play out, sometimes there might be only one, very simple trait, but you might have a round where they have a somewhat bigger impact, to make rounds feel slightly more different from each other.
The following traits have been added:
Positive:
Lucky winner - Free pizza and beer every 6-12 minutes
Galactic Grant - Larger starting funds for cargo
Premium internals boxes - emergency box has flare + radio as bonus
Bountiful bounties - Bounties pay 20% more
Strong supply lines - Imports 20% cheaper
Filled maint - More loot in maint
Fast shuttle - Cargo shuttle is faster
Free scarves - Free scarfs if a slot is free
Neutral:
Bananium shipment - Clown starts with 5 sheets of bananium (Neutral because this helps noone but the clown)
Unnatural atmosphere - Lava planet can get more restricted gasses
Unique AI - Random lawset at roundstart for AI
Ian adventure - Ian teleports to a random spot on the station
Glitched PDAs - PDA's have a different beep
Announcer intern - Changes the announcement messages to sound like they're from an intern at Centcom
Negative:
Carp infestation - Carp event is more common and can start earlier
Weak supply lines - Imports 20% more expensive
Blackout - Station lights are partially broken around the station
Empty maint - Less loot in maint
Overflow bureacracy mistake - Random overflow job (From a vetted list)
Late Arrivals - Everyone starts in arrivals
Random spawns - Random spawn location (by drop pod)
Slow shuttle - Cargo shuttle is slower
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
Replaces GLOB.poi_list |= src and GLOB.poi_list -= src with an element that handles it directly.
More consistent code, especially when a lot of code couldn't decide how to add/remove (some |=, some -=, some .Remove, etc).
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>
About The Pull Request
It annoyed me that we have a perfectly good frag grenade item, and a perfectly good shrapnel component, but no crossover episode between the two. This remedies that, and does a lot, lot more.
dreamseeker_2020-03-30_05-01-13.png
dreamseeker_2020-03-30_05-01-26.png
Big points:
Adds new component: pellet_cloud, which can be used by ammo casings, guns, and landmines to spray shrapnel and display aggregate hit messages ("You're hit by 6 buckshot pellets!" vs "You're hit by the buckshot pellet in the X" x6). All gun ammo that shoot multiple pellets now use this component on firing.
Adds stingbangs, premium less-lethal grenades that shoot off lots of stinger pellets, to cargo. Frag grenades are also reworked to have smaller booms, but shoot off lots of shrapnel shards. You can jump on top of these grenades to absorb a portion of the shrapnel to save those around you! There's an achievement for dying this way, called "Look Out, Sir!"
Projectiles can now embed items/shrapnel. Adds .38 DumDum ammo to cargo that does less damage and has negative armor pen, but can embed in people. This is the only ammo that currently embeds.
Bullets can now ricochet off walls, structures, and machinery (harder surfaces are more likely to ricochet). Only standard .38 and Match Grade .38/.357/L6 ammo can ricochet, with Match Grade being much better at ricocheting. You can buy Match Grade .38 from cargo and Match Grade L6 ammo from the nuke uplink, while Match .357 is admin only.
Armor now protects you from harmful embeds, taking the better of the bullet/bomb armor on the affected limb. Armor penetration can modify this of course, and many blunt embeds like stingbangs and DumDum bullets are significantly worse if you have even 1 armor.
Other misc fixes/changes
Refactored the embed element a bunch and fixed it creating new elements for every instance rather than expected bespoke behavior. There are new /obj/item helpers for modifying and adding embedding.
Fixes#49989: Spears can no longer embed in turfs cause their sprite is annoying to me, it's generally harder for most things to embed in turfs
Fixes#49741: New carbon helpers for removing embedded objects
Fixes#46416: Handles embedded objects getting qdel'd or moved while embedded
Renamed the old shrapnel component for RPG loot to MIRV to avoid confusion
Repathed frag grenades from under minibombs to under base grenades, and added explosion vars to base grenades
Why It's Good For The Game
Fixes a bunch of janky design with embeds, adds lots of new avenues for projectile and grenade variety, ricochets and collateral damage are fun!
Changelog
🆑 Ryll/Shaps
add: Adds stingbangs to cargo (and one in the sec vendor premium), premium less-lethal grenades that shoot off a giant swarm of stingball pellets to help incapacitate swarms of people in tight quarters. You can jump on top of a live one to be a hero and absorb a bunch of shrapnel, same with frag grenades. There's even an achievement for dying to a grenade you jumped on!
add: Projectiles can now embed in people! Or at least grenade shrapnel and the new .38 DumDum ammo, now available in cargo, can. DumDum rounds excel against unarmored targets, but are pricey and do poorly against armored targets.
add: Bullets can now ricochet! Or at least, standard .38 and the new .38/L6 Match Grade ammo can. Match Grade ammo is finely tuned to ricochet easier and seek targets off bounces better, and can be purchased from cargo (for the .38) or nuke ops uplink (for the L6), but standard .38 ammo has a chance to ricochet as well.
tweak: Frag grenades now have smaller explosions but shoot off a bunch of devastating shrapnel, excellent for soft targets!
tweak: Shotguns and other multi-pellet guns now print aggregate messages, so you'll get one "You've been hit by 6 buckshot pellets!" rather than 6 "You've been hit by the buckshot pellet in the X!" messages. Bye bye lag!
balance: Armor can now protect against embedding weapons, taking the best of either the bullet or bomb armor for the limb in question away from the embed chance. Some weapons are better at piercing armor than others!
/🆑
* fish friends
* fish pals
* fish pals
* dumb
* hunting knife now is useful
* hunting knife now has a sprite
* FUCK
* inhand
* rohesie reviews
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Adds a new job: EMT
* adds code
* either adds or removes code, hard to tell at this point
* Never not on it, leanin' so hard you're ashamed
You can't dismiss this sick transmission, huffs your brain
Exhale your will and forget I ever knew you
Fuck do you do?
Fuck a man with hips for hulu
Rack a snitch, chalk and cue you
Corner pocket consume you
Too many hoes in my
Too many hoes in my motherfuckin' meal
Asking if I know how a motherfucker feels
How a motherfucker feels
* 300 hours in MS Paint
* map editing is almost as pleasant as CBT
* remove crepe
* indentation
* map merge
* crew pinpointer, EVA access
* sick sprites by twaticus
* Replaces pen acid bottle with calomel
* Moves crew monitor/pinpointer to premium
* Triple six, five, forked tongue
Subatomic penetration rapid fire through your skull
How I shot it on one taking it back to the days of trying to lose control
Swerving in a blaze of fire, raging through my bones
Oh shit I'm feeling it Takyon
Hell yeah, fuck yeah, I feel like killing it Takyon
Alright that's tight, what its like to experience Takyon
Out of the blue, in through the back
Door coming through like fuck what was that
Man I don't know, but it made me feel so heated
How we creep without showing you jack
Shit from below, give a shit if you know
'cause even if you did, you'd keep coming back
Back for more, need it man you're addicted to the heat
We make beats catch
Beat it til it bleeds to death, each track
Like EPMD snappin' necks as we tap energy
From everything on and off the map
Oh shit I'm feeling it Takyon
Hell yeah, fuck yeah I feel like killing it Takyon
Alright that's tight what its like to experience Takyon
Takyon, shot down your throat like a keg of beer
Choke on the smoke we in and exhale 'til the whole chamber is clear
Haters act so fucking weird
Try to stain this atmosphere
But they can't 'cause its way too sheer
How to make a hater disappear
Take shit where it ain't never been
Fuck what you thought could not comprehend
This shit if I fisted your brain with it
10-9-8-7-triple 6-5-forked tongue
Criminal level crunk lightning storm
Get out the way or get up torn
Ain't a picture big enough to fit
What we dig up from the core
Of all that they forgot ever was
Militant march of this war
Takyon taking them down
All we see is blood
Takyon turning them out
How to trick out and freak that buzz
Oh shit I'm feeling it Takyon
Hell yeah, fuck yeah I feel like killing it Takyon
Alright that's tight what its like to experience Takyon
Lunar eclipse forcing you to trip
Off the moonlit fire we spray
Cryonic haunted bullets hollow tipped with toxic waste
So here's the deal, if you don't feel ill
Don't want it nowhere near my zone
That shit is dead, can't nobody get
With that shit gets dial toned
Takyon bitch slappin pussy clots and clones
Takyon settin' off uni bombs inside your dome
Oh shit I'm feeling it Takyon
Hell yeah, fuck yeah I feel like killing it Takyon
Alright that's tight what its like to experience Takyon
* YUH
* Updates sprites
* changes job order, uncomments plasmeme clothes
* Updates outfits
* last commit I swear
* bottle descriptions
* Renames EMT to paramedic
* Renames existing EMT clothes to paramedic as well
* Add missing job icons for Paramedic (#9)
SecHUD icon
ID card icon
* Improves descriptions
* Reverts vending balance change, replaces random spaces with tabs
* Resolves map conflicts
* Update strings/ion_laws.json
Co-Authored-By: BadSS13Player <58376109+BadSS13Player@users.noreply.github.com>
* Adds missing pda_slot to the paramedic outfit
* roller bed starting equipment
* Fixes map conflict
Co-authored-by: JJRcop <jrubcop@gmail.com>
Co-authored-by: BadSS13Player <58376109+BadSS13Player@users.noreply.github.com>
* Adds sorting to most input() lists.
* Sorted some global lists, added more input sorting
* Should now use correct sort everywhere.
* compiles
* Last fixes.
About The Pull Request
Adds cancel buttons to input boxes that didn't have them before.
Why It's Good For The Game
Good UX.
Changelog
cl
add: More cancel buttons.
/cl
* Removes bolts of death from all magicarps.
The bolt of death has been removed from the Magicarp and Chaos Magicarp.
* Only xenobiology carps are affected.
Wizard event carps still got their bolts of death.
* Gives xenobiology magicarps the correct colors.
Fixes a would-be bug where xenobiology magicarps would have normal carp colors. - I really shouldn't have made a commit at 2AM while being tired as hell...
* Removes call with no recieving end. (probably)
Removed a ..() which led to nowhere.
* Adds empty space, removes a tab.
Removes a tab at 82. - Oops.
* Removes another call going nowhere.
Removed another ..(), but for the chaos variant this time. - Travis please I'm getting worried.
* Cleans up code a little.
Compressed code a bit more. - God I love redefines.
* Compresses the code even more.
Since procs inherit I managed to save some more space. - Thanks cobb.
* Stops tracker from tracking nonexistent changes.
It's the same list as before this PR now.
About The Pull Request
This PR ports Baystation color carps. In short, normal carps can now spawn in variety of colors,
This only affects normal carps, not special ones like magicarps or megacarps, these retain their own unique sprite. There are also some pretty rare color variant for carps and our friendly Syndicate carp Cayenne has increased chance to get it.
Why It's Good For The Game
Better aesthetics and immersion.
Changelog
cl
imageadd: Normal carps now spawn with a random color! There might even be some really rare color variant.. try asking Cayenne about it.
/cl
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
There is now a bitflag that controls all the ways a species can be
selected from the different methods of changing species, xeno spawn,
pride mirror, magic mirror etc.
The soviet and capitalist golems are no longer selectable from the pride
or magic mirrors (just the badmin one)
interesting thing I found, androids and synths (including military
synth) are acheivable via xeno extracts!
* Refactors NODROP flag into TRAIT_NODROP
🆑 coiax
fix: Anti-drop implants can no longer be used to drop objects that they
were not responsible for sticking to a person's hand.
fix: Backfiring with a Barnyard spellbook will now play a spooky horse sound.
refactor: Refactors the way that "NODROP" items work to a new system,
there should be no change in functionality.
/🆑
Various items in the codebase were doing weird hoop jumps in order to
preserve the nodrop flag's state when it also wanted to change it, so I
moved it to a trait system.
I may have gone overboard with the type of unique trait sources, but
those can be changed later. My long term plan is make a general "CURSED"
nodrop origin, which means you can unlock cursed items by being hit with
a bolt of door opening or something. But that's for another PR, this has
no functionality changes, apart from some slightly modified descriptions
on cursed masks.
- Removed a bunch of redundant voice changing code for all the voice
changing animal masks, used two new clothing flags for this purpose.
- Also refactored a bit the animal masks, making new cursed subtypes that play
the sound when created.
* Drop location
* Added Curse of Madness to Summon Event pool
🆑 coiax
add: Curse of Madness can now be triggered by a wizard's Summon Events,
at the same chance as Summon Guns or Summon Magic.
admin: When an admin triggers Curse of Madness manually, they can
specify their own dark truth to horrify the station with.
/🆑
Random Curse of Madness events pick a line from the redpill.json file,
which I've added some more entries to.
* REDPILL_FILE
🆑 coiax
tweak: The Shuffle Race wizard event no longer changes people's names.
/🆑
We've got Change Names and Change Faces for this, sometimes you just wanna stab
a button and make everyone DIFFERENT, but not DIFFERENT PEOPLE.
cl XDTM
add: Spraying holy water on tiles will now prevent cult-based teleportation from using them as a destination point.
tweak: Quantum, wormhole and magic teleportation is no longer disrupted by bags of holding.
/cl
Refactors some teleportation code so it uses do_teleport instead of directly forceMove.
do_teleport now has a channel argument, to specify the type of teleportation used. This will affect what can and cannot interfere with teleportation. For example, BoHs interfere with bluespace teleportation but not wormhole, quantum or magic teleportation.
do_teleport now sends a COMSIG_ATOM_INTERCEPT_TELEPORT signal, allowing the target turf (or anything placing a signal on said turf) to react appropriately. As a proof of concept, blessed tiles use it to prevent teleportation from the cult channel.
Intercepting teleportation can have interesting potential uses, from teleport denial fields, to teleport scramblers (teleports you somewhere else instead), telefraggers that gib anyone unlucky enough to teleport in their area of effect, teleport anchors that shunt all teleportations in a wide area to themselves, and so on.