Commit Graph

1770 Commits

Author SHA1 Message Date
LemonInTheDark
6fcbce39cd Makes turfs persist their signals, uses this to optimize connect_loc (#59608)
* Makes turfs persist signals

* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear

* Converts all uses of connect_loc over to the new patterns

* Adds some comments, actually makes turfs persist signals

* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work

* bro fuck documentation

* Changes from a var to a proc, prevents admemems and idiots

* Extra detail on why we do the copy post qdel
2021-06-22 23:12:34 -04:00
Fikou
24549d707b Toy Update (#59754)
* code

* sprite part 1

* sprites and mapping

* wa

* fix

* warden figure fix

* warden fix 2

* wahwah

* Update code/game/objects/items/toys.dm

* series

Co-authored-by: tralezab <spamqetuo2@gmail.com>
2021-06-22 00:17:26 -07:00
Rohesie
e03cd1aada Refactors move procs to support multitle objects (#59658)
Enter(), Entered(), Exit() and Exited() all passed the old loc forward, but everything except a single a case cared about the direction of the movement more than about the specific source.
Since moving multi-tile objects will have multiple sources of movement but a single direction, this change makes it easier to track their movement.

Cleaned up a lot of code around and made proc inputs compatible.

I'll add opacity support for multi-tile objects in a different PR after this is merged, as this has grown large enough and I don't want to compromise the reviewability.

Tested this locally and as expected it didn't impair movement nor produced any runtimes.
2021-06-20 14:55:37 -07:00
Emmett Gaines
5adb8df64a During unit tests, does extra verification on text based overlays (#59553)
This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-20 14:02:01 -07:00
Rohesie
0ec599786a Adds a setter for density (#59529)
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.

Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon
2021-06-16 15:06:10 -07:00
Watermelon914
375a20e49b Refactors most spans into span procs (#59645)
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)
2021-06-14 13:03:53 -07:00
TemporalOroboros
daec5002fc Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
2021-06-13 15:40:53 -03:00
EOBGames
b05af8b31d Add Lizard Food: a Taste of the Homeworld (#59412)
The aims of this commit are threefold:

 - To introduce lizard culture (based upon Common Core) in a tangible way.
 - Give some more variety of techniques and recipes to the chef and bartender.
 - To give some flavour (metaphorically and literally).

🆑 Inept, Coiax, AdipemDragon, YakumoChen
add: The release of the new cookbook, "Tiziran Cooking: a Taste of the Homeworld" has brought Lizard food to the masses! Try out some new treats, like Moonfish, Nectar Larvae, and perhaps even Headcheese at the kitchen today!
add: To coincide with the new popularity of Lizard cuisine, Nanotrasen now stocks seeds for Korta Nuts, a common ingredient in lizard cooking, in the Megaseed vendors. Botanists, you know what to do.
add: A few Tiziran fish are also available for you aquaculture lovers out there. They all like saltwater!
add: A few new snacks are also now available at the station's snack vendors, for those of you too lazy to visit the kitchen.
/🆑

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-06-12 20:01:44 +01:00
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
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
2021-06-10 21:44:23 -03:00
Rohesie
d990b71da2 set_anchored() (#59532) 2021-06-08 12:07:34 -07:00
Emmett Gaines
43c5dc8bfa Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.

get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
2021-06-04 11:48:05 -03:00
MrMelbert
3e355b091c GAGS Lizard Plushes (#59323)
* greyscale lizards

* repathing

* uses set greyscale

* mapped sprite
2021-05-27 19:50:36 +02:00
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
GoldenAlpharex
7eed65c41e Minebot Fixes (#59083)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-21 14:59:42 -07:00
tralezab
132a755aa3 Componentizes Duffelbag Curse and turns it into an RPGloot modifier (+ curse announcement element) (#59029)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-14 01:03:45 -07:00
tralezab
ea57e3f960 Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more) (#58882) 2021-05-09 16:49:59 -07:00
MrMelbert
72fec84289 Gives botany plants a new formula for calculating bite size, fixes swallowing watermelons whole (#58795)
About The Pull Request

This PR gives botany plants a new formula for getting the size of their bites.

The formula is (potency / 20) * (max_volume / 100) * (modifier) + 1.

This brings your average 100 potency plant to a bite size of 6 units per bite. [(5 * 1 * 1) + 1] - For reference, a Tomato has 14 units of reagents with default genes at 100 potency, so this means a tomato is eaten in 3 bites.

This PR also goes through and audits all the plant's bite modifiers to bring them in line with the new formula. This makes the bite modifier actually a bite modifier instead of some weird constant var that lies about what it actually does.

Fixes #55527
Why It's Good For The Game

Currently, all plants are eaten in a single bite. Including watermelons and the dank weeds. This is bad.

image

This PR brings them all in line so you no longer swallow watermelons whole, so you stop accidentally getting fat.
I also audited all the plants so their relative bitesizes make sense with the new formula. Only apples and potatos are eaten in 1 bite. Plants with more reagents naturally should now have larger bitesizes, and plants with less reagents have smaller bitesizes. Balance is restored.
Changelog

🆑 Melbert
fix: You no longer eat all botany plants plants in 1 bite. Apples and Potatos retain their unique 1 bite behavior.
code: Botany plants use a new formula for calculating bite size. All botany plants have had their bite modifier adjusted to match.
/🆑
2021-05-09 12:16:42 +12:00
dragomagol
c86aff9a82 The Wallening Approacheth: Adds directional variants to most wall mounts (#58809) 2021-05-08 02:57:36 -07:00
Kylerace
08df8798ce (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#58340)
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-05-07 03:54:03 -07:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
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
2021-04-25 01:55:10 -07:00
Fikou
592bcaa9c3 makes the hook shotgun work on right click, adds new icons for it (#58270) 2021-04-10 15:07:24 -07:00
Fikou
7b12b80537 fixes getting nothing from necropolis chests (#57839) 2021-03-21 06:00:36 -07:00
Fikou
ed85d3f5aa Full-Automatic Guns (#57084)
* fullauto component

* eh

* h

* brap

* it works!

* FUCK SHITUP

* dumbass

* l6

* oops

* GOD

* THE LAST 10% OF A PROJECT IS 90% OF THE WORK

* slopwer projecitles, replaces the tesla gun

* heavy

* minigun

* minigun stuff

* runtime fixes, pointer icon

* nuh uh

* makes modifeirs things

* nerf this

* yes

* aghh

* agh

* real high intensity changes here

Co-authored-by: Ryll-Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-03-20 21:39:52 -07:00
TemporalOroboros
fb488fdfff Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
2021-03-20 16:03:59 -07:00
Mothblocks
84fc8464a3 Remove the voodoo doll (#57780)
A clunky to use grief tool that is near exclusively used to just make
people say slurs and WGW and copypastas and rule breaking stuff and
yadda yadda.
2021-03-18 13:18:57 +00:00
MMMiracles
5f3e12178e Tramstation: choo choo MORE MAP COMIN' THROUH (#56509)
* cool map bro!

* security

* perma

* secfull

* secman

* medstart

* engine2

* atmos start

* barrrr

* bar2

* bar3

* civil

* lower

* barrrr

* barrrrrr

* start

* cargo

* sci

* j

* servicedecal

* civildecal2

* service decal2

* service decal 3

* service decal 4

* pip

* decal4

* decal8

* arse!

* arrivals

* arrivals 2

* ai

* aifix

* vault+techstorage

* medbay

* bridge 1

* sec 3

* sectest

* squish squish

* securitywork

* secmore

* config setup

* tram

* cargo work

* escape

* disposalfuck

* i hate pipes

* disposalsfull

* SEC

* grav

* bads

* researchwip

* caw

* hguhwhuh??

* apc+air_alarm

* engie

* sm

* stttt

* aisat

* areas

* camera wip

* camera 2

* secam

* shuttle shit or something idk

* aaaa

* path nodes + waypoint navs

* almost there

* pull

* unnecessary file

* standardize

* tram choo choo!!!

* tgm

* testmerge feedback fixes

* map work

* test

* test2

* i hate

* THERE

* trams without pulling upstream like an idiot (#3)

TRAM

* fast tram fast TRAM

* fuck turfs

* tram collisions, tram cooldowns (#4)

lol

* ass

* tram but real

* forgot the ,

* code improvements, fixes, and tram call buttons (#5)

* unnecessary check gone, nulls now scrubbed (#6)

* fancy tram

* feedback changes

* AT fix

* feedback changes

* incin+engine atmos wooo!

* missing grav gen cable

* more feedback changes + diagonal shuttle wall

* bottom floor explodes into airless asteroid instead of space now

* even more feedback changes

* area change

* update to iron sheets

* ore smelter wrong dirs

* path changes agagagagaga

* no more fabs

* atmos fixes + more general fixes

* Creates SStramprocess and Makes Movement Use That Instead of Timers (#7)

* makes SStramprocess a child of SSprocess and makes tram obj use it

* gets rid of continue_movement() in favor of SStramprocess

* remove fake tram

* tgm baby

* maintenance update + chode tram

* hopefully makes the tram choke the server out less (#9)

tries to put brakes on the tram

* bad id console

* more maint stuff

* Big bundle of fixes and additions for trams (#10)

* BANG TING OW

* fixes docs, makes everyone always take damage, fixes bump text and span

* control prevention... maybe?

* combat mode no longer triggers trams

* tram conflicts + tram console

* medical changes + tram lift console

* bot pathing in tunnels

* tram whiteship + bad area string fix

* -station fixes
-tram monorail
-tram monorail grinding + achievement

* trail these noots

* rail

* yee

* diner bots + xeno changes

* Tram TGUI FINALLY (#11)

* bflehgfwblilbrga

* Update TramControl.js

* --fix, --lint

* more ui

* brokendimmer now doesn't try to load content, static data updates, MORE sanity.

* finishing off tram sprites

* cleaning up dmis

* Portal Improv

* re-removes icons

* relay moved, map fix

* fixed? (#12)

* rd machines

* relay moved, upload moved to sci, service lathe access, typo

* maint stuff

* tgm

* medical overhaul, more maint junk

* comments out achievements for testing

* space hole + spare

* actual tram blender fix according to known blender method

* tgm

* trail these

* removes depreciated tram content + accidental changes during pulling

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-03-11 18:43:57 +01:00
Sparkezel
114cfbb208 Bitflags urgent (cult cannot make runes/ build structures in maint, blobbo cant place core in library and few other spots) fix (#57393)
Co-authored-by: Stanisław <1haslo4@gmail.com>
2021-03-06 14:55:11 -08:00
Ghom
10b6b033a9 Hieroclub teleportation now uses do_teleport as it should. (#57431)
Hieroclub teleportation now respects unteleportable mobs such as anchored AIs and megafauna.
2021-03-05 19:10:30 -08:00
John Willard
126d1eeb72 Defines some traits and cleans it out a little (#57389) 2021-03-04 13:37:52 -08:00
Ryll Ryll
3feb8c959b Fixes runtimes from firing projectiles, adds unit test for firing guns (#57345) 2021-03-03 16:27:36 -08:00
Timberpoes
6744a888eb Creates offstation variants of the protolathe and circuit imprinter for offstation and ghost roles. (#57367) 2021-03-03 16:19:49 -08:00
tralezab
f5f15df94a you must also roll..... (#57340)
Minebots treads now make noise as they move!
2021-03-03 01:33:47 -08:00
Dex
60c3946e5e Survival capsules no longer get deleted when deployed at the edge of the map (#57215) 2021-03-02 15:55:34 -08:00
Timberpoes
890615856e Fully implements the ID Card design document (#56910)
Co-authored-by: Rohesie <rohesie@gmail.com>
2021-02-28 19:26:45 -08:00
TemporalOroboros
e2e7ccdbdc /mob/living/proc/Life(delta_time) (#55534)
- Makes `/mob/living/proc/Life` and most related procs use `delta_time`
- Procs that had snowflaked timing systems, such as breathing, addiction, and advanced diseases were left unchanged.
2021-02-19 10:24:20 -05:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
Whoneedspacee
9ee4703133 Icebox QoL minus features (#56472) 2021-02-17 03:17:41 -08:00
LemonInTheDark
5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
necromanceranne
efa1f8088f Sprite fixes: Suppressed Sniper Rifles and Donksoft Pistols (#56754)
* Gives the sniper rifle a suppressor overlay so that it no longer shows up as missing a sprite, also fixes donksoft pistols by repathing them from pistols over repathing them from toy saber smgs. Creates a flag for checking if a gun needs a toy overlay, so it is handled in the parent.
2021-02-14 21:33:48 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
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>
2021-02-14 16:53:29 -08:00
Tom
5b9d42c289 Winter coats (#56854)
add: Thirteen more winter coats covering all departments and most jobs.
2021-02-12 08:30:33 -05:00
Fikou
8d586a7cb0 Rename metal sheets to iron sheets (#56643)
It's a specific type of metal, it shouldnt just be called generic "metal".
The reagent, ore and material datum are already called iron.
2021-02-05 15:48:00 +00:00
Fikou
efbb133167 Adds powerup system, refactors ctf pickups and powerup mine subtypes into it (#56605) 2021-02-03 23:46:08 -08:00
Qustinnus
707fc287b4 Replaces intents with combat mode (#56601)
About The Pull Request

This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:

    Disarm and Grab intents have been removed.
    Harm/Help is now combat mode, toggled by F or 4 by default
    The context/verb/popup menu now only works when you do shift+right-click
    Right click is now disarm, both in and out of combat mode.
    Grabbing is now on ctrl-click.
    If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)

Minor interaction changes:

Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game

Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.

As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.

As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.

In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.

The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog

cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
2021-02-04 16:37:32 +13:00
TemporalOroboros
0782e92d1d Defines calibers (#56476)
Adds defines for all of the ammo calibers
Replaces all current magic strings with defines
Docs what guns use what calibers
Corrects the name of the incendiary .45 ammo casing to indicate that it fires incendiary rounds rather than armor piercing rounds
2021-01-30 22:16:30 -03:00
SmArtKar
169a2bedfe Resonator rework (#56293)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-01-30 17:09:30 -08:00
Tristrian
a4a7cf03bf Adds missing duffelbags for some jobs and update their respective vendors and closets. (#56505)
add: Added duffelbags for Science, Botany, Virology, Genetics, Mining and Chemistry.
2021-01-30 19:36:00 -05:00
elle
68564d5b62 stopped players from being able to eat regenerative cores (#56448) 2021-01-27 21:04:44 -05:00
coiax
5ea2c1dfb4 Reworks skittish quirk to be automatic (#56048)
* Reworks skittish quirk to be automatic

🆑 coiax
tweak: The Skittish quirk will now cause you to automatically dive into
a locker/crate if you move into it while it is closed. Walk to avoid
this behaviour.
/🆑

This makes the quirk more useful, while also making it more thematic,
since the "diving into" behaviour can't be disabled, only supressed by
walking.

The cost is unchanged, as the quirk in its current form is overcosted at
2 points.

The emergent effect of skittish people diving into closets when caught
into explosions is definitely a feature, and not a bug.

* Reworks skittish into a element

Skittish is now an element attached to mobs, when the TRAIT_SKITTISH is
added, rather than code that runs on every single Bump of a closet.

Some crates that don't function like normal crates, like the "loot
mastermind" crate, or the wooden crate than can only be deconstructed,
are not divable into.
2021-01-23 02:28:38 -08:00