Commit Graph

382 Commits

Author SHA1 Message Date
Ghom
17b3091867 Merges tinfoil (hat) protection into the anti_magic component. Implements it on Hivemind gamemode and telepathy. (#43978)
About The Pull Request

Was fairly shocked to find out hiveminds never took tinfoil hat protection in account, so decided to implement the factor in the game mode. Might have overdone it and probably erroneously changed a couple logics while getting rid of some really indented passages that could easily early return.
So what's said on the tin, this is lot more preferable than clunky is_type() checks on headwear anyway.
Also expanded tinfoil protection to hivemind and (non-revenant) telepathy.
Why It's Good For The Game

Let us remember the "purpose" of tinfoil hats.
Changelog

cl
code: Merged tinfoil hat kind of protection into the anti_magic component.
add: Tinfoil hats can also be warped up from excessive dampening of mindray/though control/psicotronic anomalies, or by simply being microwaved in an oven, and become useless.
add: Immortality Talisman and Paranormal Hardsuit helmets now come with tinfoil protection too (minus the paranoia and limited charges).
balance: Rebalanced many hivemind effects to be dampened/delayed by tinfoil shielding. Bruteforced Assimilate Vessel, One mind and Awake Vessel abilities will consume more tinfoil charges compared to others.
balance: Genetics/Slime/Alien Telepathy and Slime Link are now stopped by tinfoil protection.
/cl
2019-05-30 20:29:30 +12:00
Akrilla
55ed0ebf35 Fedoras hold small and gimmick items (#44139)
* This was probably originally intended...

* Fedoras hold small items, and exceptions for gimmicks

* Only create cache once

* Cache exception_hold, and adds other katana type
2019-05-28 09:57:59 -04:00
ShizCalev
c19b36b729 Merge pull request #44112 from vuonojenmustaturska/mousemove
Removes /client/mousemove, changes beamrifles
2019-05-28 02:02:54 -04:00
XDTM
5020a59565 Adds a communication remote that can send custom messages to some nanite programs (#43673)
About The Pull Request

Adds a new device, the nanite communication remote, which can be built from any protolathe once Basic Nanite Research is completed.
The Skull Echo, Forced Speech, and Hallucination programs can now be signaled by this new device to receive custom messages, instead of having to set them manually every time.
To do so, these programs must be set with a Comm Code, which will have to be signaled by a comm remote with the same Comm Code. A Comm Code of 0 is not signalable by remotes and will only work in the old way. If instead you want the program to be only activatable by remote, you must set the trigger code to 0.
Why It's Good For The Game

Makes these programs more elastic in use, allowing for example nanite-delivered private communication via Skull Echo, or actively messing up conversations with forced speech.
Changelog

clXDTM
add: Added a new device, the nanite communication remote, which can be used to send custom messages to message-based nanite programs.
add: Comm remotes use separate Comm Codes: for a message to be received, the signal's comm code must be the same as the program's.
/cl
2019-05-27 22:21:49 +12:00
vuonojenmustaturska
0a0fbeef53 Update lockon_aiming.dm 2019-05-24 21:47:28 +03:00
vuonojenmustaturska
2219250476 remove /client/mousemove 2019-05-23 22:28:01 +03:00
Emmett Gaines
66cab55f28 Replaces the rpg loot datum with a component and makes some suffixes have real effects (#44044)
* Replaces the rpg loot datum with a component

* Makes bane accept species types

And cleans up some other code
2019-05-22 08:47:42 +02:00
vuonojenmustaturska
300e663f32 Nukies get two kinds of shared team discounts rather than individual discounts (#44027 )
About The Pull Request

This replaces the 3 individual discounts on each nukie uplink with two shared pools of discounts. There are 5 unlimited stock discounts and 10 limited stock discounts. Amounts subject to change and debate.
Why It's Good For The Game
Changelog

cl Naksu
balance: nukeop uplinks now have 5 unlimited discounts and 10 limited discounts shared between the team, rather than 3 individual discounts like traitor uplinks
/cl
2019-05-22 10:48:32 +12:00
vuonojenmustaturska
a844611ff4 removes an explicit uplink component check in favor of a signal in detomatix carts (#44023)
* yeets a GET_COMPONENT_FROM

* signal rather than component

* Update code/game/objects/items/devices/PDA/virus_cart.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>
2019-05-20 19:43:42 -04:00
Jordan Brown
7a61ee6901 Merge pull request #44034 from ninjanomnom/squeaky-source
Adds a source var to a signal receiver that should have it
2019-05-19 11:22:59 -04:00
AnturK
4b259d87fb can i have -Wall for dm already (#44008) 2019-05-18 15:27:06 -04:00
ninjanomnom
539a17dc21 Adds a source var to a signal receiver that should have it 2019-05-18 14:56:00 -04:00
oranges
1bc9a6c871 Merge pull request #43987 from AnturK/mood_runtime
Fixes mood events keeping hard references in category
2019-05-17 14:41:24 +12:00
vuonojenmustaturska
1009d008de mistakes were made (#43957) 2019-05-16 14:42:19 +02:00
AnturK
5d2b572450 Fixes mood events keeping hard references in category 2019-05-15 21:29:29 +02:00
Mickyan
3b5c9b5a34 [READY] Moves mood quirk checks to their respective quirk process (#43845)
* quirk process

* does the same for hygiene

* un-breaks miasma generation

* so how's your day going
2019-05-12 10:52:25 +12:00
vuonojenmustaturska
fb45b7a017 Turns trait accessors into defines, fixes some bugs (#43820)
It's free performance.
2019-05-06 19:44:05 -04:00
4dplanner
2a23295947 Summon item fails on station loving items (#43786)
* Summon item fails on station loving items

* missing bracket

* Uses DM

* Uses signal

* BLOCK_MARK_RETRIEVAL define
2019-05-06 09:23:16 +02:00
AnturK
326e59dc69 Buff beetlejuice component (#43581)
Forgot to add this when I changed it to regex.
2019-04-14 21:45:04 -07:00
WJohn
52637ff9ec Fixes neat/neet traits. (#43561) 2019-04-10 15:49:28 -04:00
Tad Hardesty
38977aa740 Fix Alt-Click to rotate soda and booze dispensers (#43522) 2019-04-08 10:37:39 +02:00
Tlaltecuhtli
ec1ad61558 new cargo crates & tweaks (#43454)
* 1

* 2

* finall pre pr

* oof

* oof

* testing merge conflict fix

* test mk2

* test mk3

* plant & chem

* bvcgr

* fixed stuff

* grammar stuff

* fixes clothing + cobby bribe

* new sprites by wjohn

* Update code/modules/clothing/suits/armor.dm

Co-Authored-By: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>

* tweaks .38 stuff

* Update code/modules/cargo/packs.dm

Co-Authored-By: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>

* nuclear option
2019-04-03 14:23:38 -04:00
Militaires
3ff0287d90 [READY] Outputs Datum Cooldown: For Real Guys This Time (#43038)
cl Basilman
fix: Added a cooldown for datum outputs
/cl

also added an arg called do_owner in playsound that lets the owner of a datum output be different from the atom that plays it, chiefly used for component/squeak so that you can apply the component directly to any single atom without having to fuck with said atom's datum_outputs list so that it can properly play the sound, since the datum output is already stored within the datum component itself.

also send_info now returns true or false based on whether it's cooling down or not, i dont like this and i initially just had a var for whether it's cooling down or not but raz said it saves a var so i guess whatever ill just have it like that
2019-04-03 10:48:37 +13:00
AnturK
bbbf712e94 Adds beetlejuice component. (#43192)
* Adds beetlejuice component.

* NAMEOF is horrible.

* Okay, this var name is better

* regex
2019-03-25 11:17:09 -04:00
Rob Bailey
ceca1e605e [READY] Yet more darkmode tweaks and fixes (#43306)
* fuck you whoever made the last icon it was garbage

* ticket log fixes

* ticket log fixes

* changes colors from hardcode per line to a define

* some nicer darkmode colors

* asay and ooc name default fixes

* fuck you appveyer build again

* slight brightening of the default font color

* properly fixes tip of the round being hard to read
2019-03-25 20:49:59 +13:00
Time-Green
c731285891 New snail sprite and fixes (#43132)
* snail sprite update and fixes

* fixes snail cure

* Fixes blood
2019-03-20 11:03:14 -04:00
oranges
0267bce949 Turns out a bunch of components do not properly transfer because of (#42691)
one of three things.

    1. They don't use RegisterWithParent or UnregisterFromParent to unregister
       and register signals

    2. They use callbacks which refer to a source object, which is usually deleted
       on transfer, or lost in some manner, or simply makes no sense at all to be
       transferred

    3. the component was never designed to be transferred at all

TransferComponents gave no shits about any of this and just blindly transferred
all components, if they were actually capable of it or not.

I only noticed this because it was causing chairs to break as they would not register signals
and verbs correctly for rotation after being picked up and then placed down, and a player
reported that issue via ahelp.

Luckily we caught it before the rot got anywhere, only chairs and the shuttle subystem
tend to use this proc (Shuttle uses it on turfs), can you imagine if everything was using
this LMAO

Which is good because it's more dangerous than a loaded gun

I have added a can_transfer var, that is true when a component is valid to
actually transfer, which means the dev has actually thought about what happens when
you take the parent object away and swap it for another and all the crazy that is entailed
by this

I have done my best to audit what components are actually
transferable, but things are basically a hot mess (Thanks @Cyberboss )

The following components required edits:
Forensics:
did not register/deregister the clean_act signal properly, did not checkblood on new parent

Rotation:
did not use RegisterWithParent or UnregisterFromParent, turned out
to not be transferable anyway due to having callbacks that can be
passed in to the parent with unknown sources that we can't feasibly
reuse (i.e if you're transferred from a chair to a bed, your old rotation
call backs are no longer valid). Turns out the use case it was for (just chairs)
didn't need it anyway, so I just made it non valid for transfer.

Wet Floor:
Honestly this one is just a hot mess, it should be a subtype of the slippery
component with the extra wet turf handling.

As it is it basically manages a slippery component on top of it's own extra
functionality, so that's a major code smell.

I added registration/unregistration of the signals, and made it's pretransfer
remove the slippery component and the posttransfer add it back (via update_flags)

Components that seem transferable without issues
mirage_border
orbiter
decal
spill
storage (I hope to earth)
2019-03-05 20:27:29 +01:00
Time-Green
ad1dd38655 Adds snailpeople as a rare genetic meltdown effect (#42889)
Meant to be part of #42864 , but got a little big so I'll add it to wichever gets merged last.
[Snailcrawl demonstration](https://youtu.be/IL7WFpfRo4c)

PROS

- Gets snailcrawl, wich makes them greatly faster and gives them a lube trail

- Their blood is spacelube

- They get a cool armored nodrop snail shell

- They don't slip

CONS

- Very slow

- Punch is pathetic

- Tttaaalllkkk llliiikkkeee ttthhhiiisss

- Extremely vulnerable to salt

- Can't wear glasses

Adds gastrolisis, wich is pretty much [this](https://www.youtube.com/watch?v=lFbPi8o0OEU) spongebob episode where they slowly turn into snails

You can also get gastrolisis by random_reagent_id, so maintpills and botany

🆑
add: Adds snailpeople as a rare genetics accident.
sprite: Snailshell sprites by nickvr628
/🆑
Snailshell sprites by @nickvr628

Why: It's a silly gimmicky race and it's a rare occurence. Also extremely highly requested for some reason
2019-03-02 09:40:56 +13:00
tralezab
7762e72405 New trait: Unstable (#42904)
* nice.

*  They exist to cease.

*  "They've got eyes inside my head!"

* frick

* unstable insanity

* Just try taking this bull by the horns. (eyeballs)

* It's a thankless job, and you'll probably die in an explosion. But the pay is pretty good.

* "The best denials are simply that: a beginning and end unchanged, a dream with no memory."

* fixes the dme
2019-02-28 10:35:13 -05:00
Jordie
5dc5e59431 Merge pull request #42898 from ShizCalev/jaunt-squeek-fix
Fixes jaunting mobs squeeking things.
2019-02-26 20:46:11 +11:00
ShizCalev
c4c5ece3ba Fixes jaunting mobs squeaking things. 2019-02-25 09:31:28 -05:00
nero1024
327d8fbd40 fix footstep sounds from being played while buckled (#42788)
Fixes the crawling sound from being played from moving buckled/mounted mobs.
## Why It's Good For The Game

Apparently I didn't catch the crawling sounds being played from buckled mobs that are moving. Examples include the Janitor on their pimpin' ride or some assistant piggy-backing off of a cyborg.
2019-02-25 15:00:40 +13:00
Tad Hardesty
5fb918ebe4 Fix some variables with 'list' in the wrong place 2019-02-21 19:32:53 -08:00
nero1024
e949346cfd Fixes footstep sounds for downed/lying mobs (#42704)
Nobody made a report but I noticed this issue: Downed players being dragged are playing footstep sounds, specifically the bare footstep sounds via their hands from what I noticed.

Fixes (hopefully) footstep sounds from being played from incapacitated mobs that are being moved (via dragging for example). Instead, lying mobs will play a crawling sound when moving.
## Why It's Good For The Game

Footstep sounds shouldn't be played when mobs are being dragged.
2019-02-10 12:43:55 +13:00
tralezab
46e3894bb2 Creep fluff completely rewritten (#42675)
* hang in there!

* Apply suggestions from code review - rewrite P1

Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>

* most creep > obsessed - rewrite P2

* removes creep_inlove, last edit to greet
2019-02-08 11:26:41 -05:00
Militaires
cecf676684 [Ready] Outputs datum (#41535)
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
2019-02-04 10:25:48 +13:00
Jordan Brown
84a1b0cd6c Merge pull request #42586 from 4dplanner/antimagic
Antimagic works again
2019-01-30 11:33:48 -05:00
tralezab
1733858ba8 [Ready] Happiness drug overdose has special mood icons, badass syndies get sunglasses on their moodlet, creeps get heart eyes (#42502)
* mood_event.dm

* runaway - kanye west

* didn't take forever debugging how nice

* fixes and sanity

* moods are fun
2019-01-30 22:44:54 +11:00
4dplanner
7ad8fa48c6 ?. 2019-01-29 18:34:48 +00:00
4dplanner
7a707d3c8f ! 2019-01-29 13:11:04 +00:00
4dplanner
89ded4fc4d Antimagic works again 2019-01-29 12:40:02 +00:00
Trilbyspaceclone
555f0bda23 Fixes power tool drill fitting in boots/wallet (#42476)
* Update wallets.dm

* Update pockets.dm

* Apply suggestions from code review

For when people forget how sister code works

Co-Authored-By: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com>
2019-01-23 14:32:04 -05:00
Jordie
945c19b5ec Merge pull request #42382 from coiax/heirloom-observer-check
Observers can tell if an object is a family heirloom on examine()
2019-01-18 22:56:04 +11:00
coiax
881e8c1ab9 Refactors NODROP flag into TRAIT_NODROP (#42109)
* 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
2019-01-17 15:24:30 -05:00
Qustinnus
e1d360ff05 [ready] Golem DLC pass 2018 (Adds new golem types) (#41951)
* Bronze golem

* adds creation

ad

* removes shit adds shit

* temp

* fff

* bone, leather and cardboard

* fff

* boneyard

* temp

* ahahahha dumb moron

* adds durathread golem sprites

* reee

* ass

* Auto stash before merge of "golemgang" and "origin/golemgang"

* fix

* uuh

* d

doned

* remove dupe
2019-01-16 13:42:20 -05:00
Jack Edge
8a4f1e9081 Observers can tell if an object is a family heirloom on examine()
🆑 coiax
tweak: Observers are able to see family heirloom messages when examining
objects.
/🆑

I mean, it bugged me the once time that I suspected a random object was
an heirloom, but had to use VV to check.
2019-01-16 07:48:28 +00:00
tralezab
240cb31e12 [READY] New Side Antagonist: The Creep! (#42021)
cl
add: Added a new antagonist, the Creep!
add: Chosen from a random event, the Creep will become obsessed with one person, feeling amazing around them and terrible when they aren't. They will have objectives to steal heirlooms, take pictures, hug, and kill coworkers. They also have to kill the obsession but some objectives can only be completed while the obsession is alive, requiring you to protect the obsession!
/cl

There really is no reason to betray people, generally. Maybe some stuff with security and traitors working things out, but a traitor based around betrayal and the general insane creep idea is just cool.

One Creep can show up, and they get objectives to mess with their obsession leading to the obsession's death. Here is their objectives:

    A random creepy objective. It could be taking a photo with them in it, hugging them, etc
    After your are done with your objectives, kill them. you can't complete the objectives when they are dead!

Creeps do not get the determination mood. Instead, when they are around their obsession, they feel AMAZING! If they are around too long, they will stutter, cough, and generally spaghetti out when talking near their obsession. So if you are going to talk near them, do it when you aren't entranced.
2019-01-07 19:18:35 +13:00
Tad Hardesty
adb9c884d3 Create gas mixture and use assume_air 2019-01-03 16:00:20 -08:00
Tad Hardesty
42250b3d5e Stinky people no longer stink up space 2019-01-02 15:49:12 -08:00
Tad Hardesty
36a611b49f Fix miasma infecting space 2019-01-02 15:09:30 -08:00