Commit Graph

438 Commits

Author SHA1 Message Date
nemvar
67b5619071 Swarming component now gets deleted properly. (#45108)
* ? It's worth an attempt.

* attempt 2

* attempt 3

* attempt whatever

* attempt whatever and 1

* attempt whatever + 2

* return

* Update code/datums/components/swarming.dm

Co-Authored-By: MrPerson <spamtaffic@gmail.com>
2019-07-12 02:27:56 -07:00
nemvar
40ce94f8ef Thermite tweaks. (#44959)
* thermite fixes

* 10 seconds

* Update code/datums/components/thermite.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>
2019-07-09 11:04:27 -04:00
Time-Green
ceeff661a0 [READY] Plumbing (#44833)
cl Time-Green
add: Adds plumbing pipes and some hidden plumbing related machines. They're not available in-game yet.
sprites: Geyser and geyser pump sprites created by Mey-Ha-Zah!
/cl
Adds the following objects:

    Fluid ducts . Like atmos pipe, but for reagents. They're smart and can be seperated by layer and color

    Geysers. They spawn on lavaland and can be harvested with liquid pumps or just beakers.

    Liquid pumps. For pumping geysers. They need to be on a wire node and connected to a duct network.

    Plumbable reagent dispenser subtype.

    New plumbing RPD specific RPD.

    Plungers. The reinforced plunger can be used for plunging geysers to activate them. They currently serve no other function and can't be worn as a hat yet.

They're all disabled and admin only.

Adds the following systems:

    Ductnet datum. They pretty much say "hey, we're connected"

    Plumbing component. You can turn any movable atom into a plumbable thing. Comes with overlays and everything. They're essential for everything that has input and outputs, except pipes. That means you can have machines connected to both atmospheric pipes and fluid ducts. They only connect with layer 3 ducts.

    Fluid subsystem that handles the processing on the plumbing machinery and other plumbing related stuff.

Basically atmospherics but with reagents. Reagents are pressurized and thus transferred instantly, to avoid those stupid leftovers in pipes no one likes. I am PRing it now because if I were to add a dozen or so associated machines, it would be too much of a pain to manage/review in one PR. It would also be a massive waste if people didn't even want it in the first place.

Also yes all of this works (as far as I know)

Things I plan to add in later PR's

    Layers / colors (maybe) done
    Machinery (Stuff like chemical processors, filters, special mixing chambers and factories)
    Make geysers more interesting, so chemists/atmostechs/cargotechs/assistants can go to lavaland and get some exotic stuff.
    Pipe fractures. Damaged pipes could do the cartooney water soaker beam coming out to shoot at people cause why the fuck not.

Code concerns:

    Connecting is handled through pipes only. Not sure if this is the best approach. This means plumbing devices cant directly connect to each other without pipes. I could add some exceptions to handle it. I could also take connecting away from pipes and make it a global proc, with alot of exceptions since it'd be handling both plumbing machinery and the ducts.

    Reagent transferring. Basically the transfer is instantaneous from A to B. I did this because stuff getting stuck in pipes could pose some serious mixing problems with chemistry, since it's alot more delicate than atmos. I could understand if people would want it to be like atmos. It wouldn't be difficult to change.

Also for testing I suggest you set the pipe_dispenser to category 3 to print fluid ducts. My tests were done with
/obj/structure/geyser
/obj/structure/reagent_dispensers/plumbed/storage
/obj/item/plunger/reinforced
/obj/machinery/power/liquid_pump
/obj/item/pipe_dispenser/plumbing
that and standard tools for setting things up
2019-07-09 11:58:02 +12:00
Emmett Gaines
328fc7b1f1 Adds elements: Lightweight shared components/Global components (#44817)
If you came here thinking this was some game feature then you are in the wrong place. Here is where I ramble about code.

This adds /datum/element as a sort of sibling to components. Only one of each type gets instanced and they do not get tied directly to any particular thing like a component does. Basically they're a very lightweight component for doing simple functionality that doesn't have much state.

Originally this concept came about as a kind of component that could be shared between many parents to reduce some resource costs. Doing this would allow us to componentize more behaviors that are a part of too many things to be viable to have a whole component for every single one. For example a component on every space turf would be entirely unviable. With elements it's much more reasonable.

This implements a prety bare framework and a couple components are migrated to it. It's ready to be used but I fully expect I'm going to need to refine how it works for all the usecases we'll want it for.

Also: this fixes the qdeleted signal. This signal isn't even possible because after qdel is done there's nothing to receive a signal anyway. I've changed it to a qdeling signal instead. I need it to work for some elements to know when to clean themselves up.
2019-07-09 11:26:51 +12:00
nemvar
ba24766c08 Fixes area moodlets. (#45043)
* moodie

* newline
2019-07-08 13:14:04 -04:00
Garen Crownguard
534a9140aa merge 2019-07-05 17:59:38 -05:00
Krysonism
1edc7fb582 Add cowboy boots! (#44880)
This PR adds 6 new types of cowboy boots. Brown, black and white
cowboy boots have been added to the clothesmate. Two types of lizard
skin boots can be crafted, these boots can then be exported for money.
An additional pair of fancy boots are currently unobtainable, but will
be part of a future project. Cowboy boots can now act as shelter for
some type of snakelike creatures, fill a pair with snakes as a prank
or harebrained assassination plot.
2019-07-05 12:08:22 -07:00
RandolfTheMeh
e9dab4c665 Universal Organ Damage system (#44710)
About The Pull Request

So organ damage is a thing now associated with general object of organ, meaning all organs inherit a damage variable, failing boolean, healing variable, and maxHealth variable. The proc applyOrganDamage takes in the damage and organ path, applying damage/healing to said organ. While an organ is in use, it heals a small amount over time (granted the organ is not failing), with this fraction being set by the healing variable.

This also reworks preexisting organ damage systems to function more so on the universal organ damage system, the liver specifically. So much code exists in regards to eyes/blindness and ears/deafness that I'll need to go ahead and take a longer time combing through the code to get everything that can reasonably be tied to those two organs and their level of damage reworked to function off of the organ damage system, as opposed to just a trait add/remove system.

Lastly, this slightly reworks scanners, since now you need to check for every organ in the body. Since organs are stored as "the [organ]" with the method I used to get them, the phrasing on the medical scanner was changed to make more sense given it now has to say something along the lines of "severe/minor damage detected within [the organ]". I'll likely add another proc if I cannot find a way to get the organ's max health during this operation, since a static number determining minor/severe damage does not work when an organ's max health is less than the typical 100 points (as is the case with eyes).
Why It's Good For The Game

Every organ can be damaged, though not every damaged organ does anything right now. Damaged livers do the same thing as they did previously, and damaged eyes develop varying levels of vision impairments. The benefits to this PR are more for future coding projects than it is for the game currently, with no foreseeable changes to the way it's played currently.
Changelog

cl
code: Universal Organ Damage variables and procs
/cl
2019-07-05 09:40:30 +12:00
oranges
3316f0dcbe Merge pull request #44895 from ninjanomnom/signal-async
Makes signal calls async again
2019-07-05 09:34:04 +12:00
nemvar
698fb9c080 Antimagic now gets used up once it loses all charges (#44956)
Also makes the tinfoil hat load correctly if varedited in the DMM.
2019-07-04 13:04:20 -07:00
Qustinnus
d9b316b7ab Sanity Rebalancing (#44800)
cl Floyd / Qustinnus
tweak: The Nanotrasen Physological department has realized that working at a metal deathbox is more stressful than it currently is. Mood has been slightly rebalanced
/cl

This PR is mostly a rebalance of various variables that exist withing the system. The system is now more likely to skew one of two ways instead of always hanging at neutral unless you're hungry, I plan to make it more likely to skew to one side from other things as well, and nerfed various low effort and non interesting interactions such as reading books while buffing the ones that have gameplay like drinking good bartender drinks or winning arcade games.

I also plan to add a moodlet for being in the bar; this will reinforce players to visit these areas if things get bad, or if they just want to refuel for a bit.
2019-07-03 19:32:09 +12:00
oranges
64460ae3ca Merge pull request #44825 from AutomaticFrenzy/patch/lints
In advance of eventually adding SpacemanDMM's linter to Travis, fix everything it can currently detect.

Some lists, including global lists, are given types so that L[i].foo expressions can be checked.

Some procs are given a new form of return type annotation so that DuplicateObject(O).forceMove()-type invocations can be checked.

Open to syntax suggestions on the return type annotations, and on whether the preprocessor strategy makes sense.

Return type syntax is currently roughly:

    <typepath> | <paramname>([_])*(.type)?
2019-07-03 19:31:11 +12:00
ShizCalev
6e44bd3a93 Merge pull request #44796 from kingofkosmos/addswarningspans
Adds warning-spans
2019-07-02 00:47:43 -04:00
Shaps
e799621f0b Changes improvised jetpack recipe (#44794)
* Corrects crafting recipe

* Update code/datums/components/crafting/recipes.dm

Co-Authored-By: nemvar <47324920+nemvar@users.noreply.github.com>
2019-07-01 20:52:07 +02:00
ninjanomnom
55b8aa1837 Makes signal calls async again 2019-06-30 21:04:30 -04:00
kingofkosmos
c969f6d3eb Merge branch 'master' into addswarningspans 2019-06-27 15:12:54 +03:00
kingofkosmos
ec5c82029a * "Is already...", "Can not...", "Not when..." etc. 2019-06-27 06:15:43 +03:00
Rob Bailey
532cc7ea63 Smart cable fixes (#44784)
I wanted to get this up next day but I kept falling asleep before finishing what I wanted to
About The Pull Request

Fixes some issues that have been brought to my attention with smart cables

Closes #44768
Closes #44775
Why It's Good For The Game

this shit pretty broke as is in game.
Changelog

cl
fix: removed mech rcl from the research node so it stops spamming a warning in log
fix: cables now disconnect machines when cut
fix: terminal linking/not linking behavior with smeses has been improved
fix: couple of small mapping fixes
tweak: changed cable coils back to 30
tweak: changed the box smes room a little to prevent stacking terminals
tweak: removed the rpcl from engineering on every map because it's not used for wiring anymore
/cl
2019-06-27 12:20:49 +12:00
Tad Hardesty
0f0604575f Add return type annotations to some procs 2019-06-25 23:03:38 -07:00
Tad Hardesty
b07065a477 Add additional type annotations to lists 2019-06-25 22:48:10 -07:00
kingofkosmos
fb9731492c * extra spaces removed from "span class = '" --> "span class='"
* warning-spans added to cases of "You need..."
2019-06-25 21:03:25 +03:00
XDTM
114628ad7c Fixes antimagic not working in hand slots (#44606)
* Fixes antimagic not working in hand slots

* proper changes

* Update code/modules/mining/lavaland/necropolis_chests.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>
2019-06-24 10:31:11 -04:00
Garen Crownguard
3a37d0322c merge 2019-06-23 20:39:24 -05:00
Emmett Gaines
d615abf23c Replaces callbacks in signals with simple proc paths (#44579) 2019-06-22 18:21:57 +02:00
Tlaltecuhtli
d3dd48de46 fixes russian helmets not holding vodka (#44692)
* 1

* no need for this

* e

* dsdag
2019-06-22 02:17:55 -04:00
vuonojenmustaturska
8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
nemvar
d2cd28da78 Adds superlube to the clown ruin. (#44595)
* welp

* h

* Superlube
2019-06-18 21:37:11 +02:00
granpawalton
e92a3187a9 miasma temp and pressure (#44586)
* miasma temp and pressure

* temp changed from T20C to BODYTEMP_NORMAL
2019-06-18 21:29:05 +02:00
nemvar
137e2af8e2 Turns art into a component (#44525)
* welp

* h

* artcomponent

* I forgot something

* handsome squidward

* handsome squid

* n

* Ghosts should have fun too, I guess.
2019-06-18 14:23:42 +02:00
nemvar
d9761d448d Adds primal farming implements. (#44388)
About The Pull Request

Adds a rake (reskinned cultivator) and a wooden hatchet to the ashwalker base. Replaces their bucket with a wooden bucket.

Added crafting recipes for the rake and wooden bucket.
Why It's Good For The Game

It looks more flavourful (inb4 where did they get the wood from) and adds a bit of functionality to unused content (i.e. ashwalker farming).
Changelog

cl
add: Added wooden farming implements to the ashwalker base.
add: Makes rakes and wooden buckets craftable.
/cl
2019-06-17 13:34:15 +12:00
oranges
2d30317a49 Merge pull request #44510 from ninjanomnom/revert-datum-output
Reverts datum outputs
2019-06-16 08:31:38 +12:00
WJohn
39c86a8930 Fixes sanity minimum/maximum not affecting action speed (#44469)
If you were below 0 or above 125 sanity, the action speed multiplier
wouldn't come into play. Now it does. Also prevents sanity from
constantly going overboard and being reeled in all of the time.
2019-06-13 19:35:27 -07:00
ninjanomnom
56196df9c6 Reverts datum outputs
reverts #43038
reverts #41535
2019-06-13 20:09:10 -04:00
AnturK
0ce8241c78 Fixes cross-z dumping with bluespace bags. (#44437) 2019-06-11 14:32:34 +02:00
Emmett Gaines
6e1a049052 Removes an infective GetComponent (#44422)
* Removes an infective GetComponent

* Adds a meme underscore

* Restructures signal registration
2019-06-11 13:59:08 +02:00
AnturK
85871da5c9 Fixes ghost seizures. 2019-06-10 11:19:47 +02:00
vuonojenmustaturska
0254559eca Replaces hear_intercept with signals, refactors MOVABLE_HEAR, touches up nanites and to_chat (#44391)
hear_intercept is removed in favor of having the things that care register for the COMSIG_MOVABLE_HEAR signal instead.

The signal has been changed to be like the speech one with an args list.

Nanite datums no longer register for the hearing signal just in case, only the voice sensor nanite program does.

Dead code has been removed from to_chat, the savefile/sound checks being just-in-case boilerplate checks made during the conversion to to_chat, the replacetexts sidestepping a byond bug that was fixed in 512.1420.
2019-06-10 10:43:12 +12:00
oranges
5c5f991816 Merge pull request #44351 from AnturK/droneuplink
Fixes refunding on ownerless uplinks (ie drones)
2019-06-10 10:30:48 +12:00
nemvar
ce479edd1a Ethereal stomach take 2 (#44336)
* Take 2

* Merge conflict begone

* Renames it

* Stupid borgs.
2019-06-10 00:29:37 +02:00
Arkatos1
e82707a8cc Examine tooltips now work on items put into storage (#44311)
* Examine tooltips now work in items put into storage

* IN_STORAGE define

* IN_STORAGE bitfield and proper parenthesis
2019-06-09 18:15:12 -04:00
Emmett Gaines
45ec62931d Finally removes the signal redirect component (#44251) 2019-06-09 17:25:50 -04:00
Rob Bailey
5743c9a748 Dragging prone mobs slows you down, fireman carrying (#44155)
About The Pull Request

Dragging prone mobs (resting, knocked down, stunned, dead, in crit, etc) that aren't buckled to anything slows you down.

You can fireman carry by aggressive grabbing then click dragging onto yourself. This causes a slight speed penalty that is lower than dragging.
Why It's Good For The Game

Prevents the classic "stun and beat the shit out of while zipping off" which is obnoxious and I don't think anybody likes besides the people who do it.
Makes it so if you feel like being a cunt you can rest while being arrested to make you a pain to take back.
Makes it harder to steal bodies and move away before anybody can properly react, but makes dragging bodies riskier at the same time
Fireman carrying adds an element of risk reward, it takes a little while of standing still to pick them up and also slows you down slightly. More useful to move someone a long distance out of a relatively safe area than a quick pull away.
Changelog

cl
add: fireman carrying. Aggressive grab then click drag onto yourself.
tweak: pulling prone mobs slows you down.
tweak: carrying another human slows you down.
tweak: pacifists can aggressive grab.
/cl
2019-06-09 23:54:02 +12:00
nemvar
94d25d1024 Adds craftable firebrands. (#44376)
* Prometheus

* /aaa
2019-06-08 20:19:42 -04:00
nemvar
c44120b5d1 Adds bee plushies (#44342)
* Adds beeplushies

* makes the behind less pure black

* Newline
2019-06-07 13:55:02 -04:00
AnturK
8c11e8755a Fixes refunding on ownerless uplinks (ie drones) 2019-06-06 08:31:38 +02:00
Emmett Gaines
7250d0ed71 Make GetComponent warn on dupe enabled components (#44226)
GetComponent gets a singular component, if you're trying to get a
component which allows duplicates on the object then you're doing
something that can very easily break. Stop it.

I'll straight up disable the capability once everything that does this
has been cleaned up but each and every one is its own project.
2019-06-05 21:01:12 -07:00
Razharas
c55145299a Componentizes menucrafting (#44221)
Fixes menucrafting opening a new window when finishing construction
2019-06-04 17:01:45 -04:00
Emmett Gaines
d2c9864390 Fixes tactical component removal/unmodification (#44239) 2019-06-04 17:51:24 +02:00
Emmett Gaines
c3f95024b2 Gets rid of the GetComponent macros (#44220)
* Removes the GetComponent macros

* Regex replacement for GET_COMPONENT

Search: `GET_COMPONENT\( *(.+?) *, *(.+?) *\)`
Replace: `var$2/$1 = GetComponent($2)`

* Regex replacement for GET_COMPONENT_FROM

Search: `GET_COMPONENT_FROM\( *(.+?) *, *(.+?) *, *(.+?) *\)`
Replace: `var$2/$1 = $3.GetComponent($2)`
2019-06-04 17:39:58 +02:00
Garen Crownguard
caa683e5b1 merge 2019-06-04 07:04:21 -05:00