Commit Graph

1314 Commits

Author SHA1 Message Date
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
ArcaneDefence
602b094a37 Makes augmented limb icon_states agender (#56527) 2021-02-01 21:52:04 +01:00
Timberpoes
e85cf07b96 Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#56515)
Hypnosis and brainwashing now have entries in the Player Panel logging
under attack and entries in the attack logs.

Mirrors some logging that would otherwise just be in the game logs.
From an admin-perspective, issues where you'd want to check
brainwashing/hypnosis tend to go hand-in-hand with issues relating to
attack logs as opposed to game logs.
2021-01-31 20:21:38 +00:00
Y0SH1M4S73R
bbd794db51 Miscellaneous Pronoun & Grammar Fixes (#56504)
Changes a few uses of static pronouns in dynamically generated strings to calls to the p_ procs.
2021-01-30 22:06:26 -03:00
dragomagol
f837ce4397 Cyborg modules renamed to models (#56312)
Changes the references of borg module (type) to model, adds a file for robot declarations and one for model declarations. Basically trying to make the code layout a little more sane.

Initially changed them to 'configurations' but I prefer model; its meaning is closer to module than configuration and avoids confusion with actual config.
2021-01-22 21:38:35 +02:00
ATH1909
50d4a79a6e buffs the surgical toolset implant (#56253)
## About The Pull Request

The surgical toolset implant's circular saw and surgical drill now both have a force of 15 (as is normal for surgical tools of their respective types), instead of 10.

## Why It's Good For The Game

I don't really see any reason why these tools should be "dulled" for the surgical toolset implant, especially seeing how the integrated toolset implant (which contains much more generally-usefull tools than what the surgical toolset implant has) contains a 40u welder that has a force of 15, and that's not causing any balance problems. For combat purposes, both of these implants are outclassed by replacing your arm with a chainsaw (which has a force of 24).

Whirring saws and spinning drills that you can extend from your arm like wolverine and shank a guy with are fucking badass, and if a doctor wants to defend themselves with their integrated tools instead of carrying around an extra "normal" saw/drill in their backpack just for combat purposes, then by god, we shouldn't arbitrarily penalize them for doing that.
2021-01-19 21:03:17 -05:00
Ryll Ryll
787bbeddbb Improves Bleeding Feedback + Misc Wound/Organ Decay Tweaks (+ Removes Teeth) (#56056) 2021-01-14 23:53:34 -08:00
Manybones
a376769983 Now brain trauma paralysis works in arms as intended (#56105)
Fixing issue #56076 making arms affected by the corresponding brain trauma. Fixing brain trauma paralysis in non-human limbs is impossible without a partial or complete refactor of paralysis code or species code, and since this situation happens very rarely, I doubt someone want to waste time in this. But if someone wants to do it anyway feel free to ask me about how it can be done.
2021-01-12 16:56:57 -03:00
coiax
3c3e8ecf72 Regular CTF no longer has wounding (#56093)
🆑 coiax
tweak: Regular Capture-The-Flag players can no longer be wounded.
Simulated participants in the Medieval Shuttle can still be violently
murdered with wounds however.
/🆑

CTF is very fast paced, and if you've taken damage without your shield,
you are nearly dead most of the time. However, if you do survive, you're
supposed to slowly heal, but wounds are untreatable on the battlefield.

People still being able to be bloodily stabbed in the Medieval Shuttle
is definitely a feature.

- Aliens (xenomorphs) are still immune to wounds, but that immunity is
  now done with a trait, rather than a typecheck.
2021-01-11 14:47:38 -08:00
coiax
89eea73703 Rework job food/alchohol benefits into livers (#55721)
By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)

Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.

Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.

Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.
2021-01-11 16:34:40 -03:00
Coffee
653d75e429 Flesh to stone no longer makes you immune to bleeding, refactors bleedsuppress into a trait (#56078)
Being hit by the Flesh to Stone makes you bleed immune to prevent you from getting petrified while bleeding, and bleeding out while turned into stone. However, it doesn't make you vulnerable when you get unpetrified. This is a bug. This also makes bleedsuppress into a trait, as both is broken and should be a trait.
2021-01-11 14:59:48 -03:00
John Willard
102fdf8f8f Flypeople can get flashed from any direction (#55724) 2021-01-09 12:10:30 -03:00
NightRed
3aef95b93b Default organ reagent stops forever flavor (#55966)
This makes the default reagent in stomachs not be nutriment, the flavor of nutriment was merged in to the nutriment that sits in the stomach add flavors to it.
New the default reagent of the stomach is organ_tissue, this will prevent compounding flavors.
2021-01-07 14:35:02 -08:00
John Willard
2e2ed0ec70 Flypeople say "s" as "z" and dont get disgusted by toxic food (#55802)
## About The Pull Request

Flypeople will now say "s" as "z" (They already say "z" as "zzz", but s -/> zzz) and arent disgusted by toxic food anymore. 

I'm hoping that by the end of my changes, Flypeople could be considered a unique and viable race, being actually worth something other than "that one unmaintained race we have disabled" (best-case scenario is they become fit to be a proper roundstart race)

## Why It's Good For The Game

Flypeople is the forgotten race of /tg/, this makes them more unique and fits for them.
Not being disgusted by toxic food fits well due to Flypeople being considered disgusting and vile creatures.
2021-01-05 21:52:46 -05:00
81Denton
a0571e2324 Merge pull request #55869 from LemonInTheDark/fixes-plasma-alerts
Fixes plasma alerts not showing up
2021-01-03 12:15:57 +01:00
coiax
917585f60d Refactor plasmaman stomach typepath (#55716)
Skeleton and plasmaman stomachs now share the same code.
Skeletons now heal brute and burn damage from drinking milk, plasmamen
only heal brute damage.
2021-01-02 17:17:39 -08:00
coiax
68be48ed85 Tweaks how some tongues have no taste (#55811)
Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.

Carbons without tongues also can no longer taste anything.

- The utility item "taster" has had some additional messages added.

* Remove can_taste proc

Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-31 17:42:36 -08:00
spessbro
e304660b23 fixes surgery on non-carbons (#55794)
fix good even if "nobody" uses that surgery
2020-12-31 17:38:04 -08:00
Ryll Ryll
a8d77b57d7 wrinkling my brain (#55829)
#54939 removed a part of individual logging code that used the length of the individual's logging list as part of the index for storing a given line of logging.

The problem is, that number was important for avoiding collisions in the logging lists. Since the length of an atom's logging list can only ever increase by 1 every time a new line is logged, you were guaranteed to always have a unique index for each new line. Without the length in the index, if any logging event was triggered on the same atom multiple times in the same second (like if someone spoke once willingly and once by force from something like tourettes at the same time), two entries would be logged, but both of them would point to whichever one was processed last.

This was most noticeable with wound logging, since the victim would log both the attack itself and the wound it caused at the same time in the same category (LOG_ATTACK), meaning that the wound log would just be turned into a copy of the attack entry, but I believe this is the cause behind most (if not all) of the issues logging has had with duplicating some events and losing others entirely.

The fix is simple, just adding the length of the list to the end of the index. This still allows logs to be sorted by timestamp while ensuring that each log entry is unique.
2020-12-31 17:13:14 -08:00
coiax
1a64abe7a7 Add inacusiate to syndicate medical borgs (#55823)
Giving syndicate medical cyborgs access to the ear healing chemical
allos them to heal one of the most crippling problems that can afflict
an op; being unable to communicate effectively (through ear damage).
Being unable to communicate because they are a bad player is uncurable
through in-game methods however.
2020-12-31 17:09:09 -08:00
LemonInTheDark
130d974faa adds new sprites for n2o damage, and makes a new alert for them. Fixes plasma alerts never showing, the n2o alerts were overriding them 2020-12-31 16:59:48 -08:00
Qustinnus
f66ca34626 Refactors monkeys into a species (#55614)
Changes monkeys from carbon subtype to species.
2020-12-30 16:30:15 +01:00
coiax
b8dbe4c1ab Make eye(s) of god NODROP only when equipped (#55651)
* 👀 Make eye(s) of god NODROP only when equipped

🆑 coiax
tweak: The "eye of god" only becomes unremovable when put in your eye.
/🆑

- The lavaland chest reward "eye of god", will only become NODROP (ie.
  unremovable) when actually placed in someone's glasses slot, rather
  than becoming immediately stuck in your hand.
- Eyes of god now hurt when implanted, causing temporary blindness and
  screaming.
- A pre-doubled eye of god is now a typepath.
- Eyes of god are no longer made out of glass.
- Glasses colouring procs have been moved to the top of the glasses
  file, but unchanged.

* Apply suggestions from code review

- Refactor out explicit `src` with implicit instance access.
- Use ternary string expression for burrow grammar

Co-authored-by: Fikou <piotrbryla@onet.pl>

* Fix NODROP staying on beheading

Even though the item is NODROP, it can still be removed from someone,
such as when they're beheaded. We don't want it to remain sticky, so
remove the NODROP trait.

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-12-29 14:25:45 +01:00
Ghom
7bc81e5831 Refactors how movetypes are added and removed, No timers this time. (#55444) 2020-12-28 17:57:51 -08:00
spessbro
cd649b7575 You can't eat appendices scot free anymore (ew) (#55632) 2020-12-20 13:07:57 -08:00
LemonInTheDark
92f509ea80 Revert "Refactors how movetype flags are added and removed and the floating animation (#54963)" (#55432)
This reverts commit b8425c003a.
2020-12-09 19:30:28 -08:00
Ghom
b8425c003a Refactors how movetype flags are added and removed and the floating animation (#54963)
I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game

A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.

Tested, but i'm pretty sure improvements could be made.
Changelog

cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl
2020-12-10 09:28:32 +13:00
Qustinnus
8737e8cb80 Small do-after refactor (#55172)
This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.

For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.

I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.
2020-12-07 13:04:51 -08:00
Qustinnus
4650a5d7ee Sound Environments - Adds reverb and echo to rooms (#55333)
Jack and Style figured out that sound environments can be cancelled by setting some settings in Echo. By default audio has no reverb, but if a sound environment is selected in playsound_local it will become a reverb sound.

This makes every room sound a bit different. The only caveat is is that if you move into another room, Already playing sounds will transition into the new environment, which sounds odd.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-12-07 11:53:58 +02:00
Coffee
2ddd7d994b Adds amputation shear suicide (#55308)
* part 1

* now works

* uhhuh

* and i oop

* snip snip

* SNIP SNIP

Co-authored-by: Coffee <crashkray@gmail.coom>
2020-12-03 17:20:33 -05:00
TiviPlus
0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
antropod
97a89f75c2 Detect if ghost reentered the brain (#54975) 2020-11-24 18:19:14 +08:00
zxaber
9201846090 Fixes tool implant tools being storable in boxes (#54914)
* Moves storing tool implant items to use the drop hotkey rather than a dropped item event

* de-debugging
2020-11-24 18:14:44 +08:00
XDTM
03de3dfb07 Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments (#54710)
Adds a new set of nanite protocol programs as a researchable Bepis tech.
Protocol programs are programs that are mutually exclusive within their time, so remember that only one of the following can be active at once in the same host.

    Hive Protocol: Makes nanites use space more efficiently, increasing maximum volume by 250 (500 -> 750)
    Zip Protocol: Makes nanites use a compression routine when not in use, increasing maximum volume by 500 (500 -> 1000) but consuming 0.2 nanites per tick to perform the zipping/unzipping
    Free-Range Protocol: Makes nanite use looser storage routines, reducing the maximum volume by 250 (500 -> 250) but gaining 0.5 nanite replication rate
    S.L.O.P. (Safety Level Override Protocol): Removes nanite storage safety measures, allowing them to reach up to 2000 volume. However, when the volume surpasses the maximum recommended volume (500) the host will start to suffer from side effects, manifesting in slow organ damage. The more the nanite volume approaches the physical limit, the more harmful it becomes.

Replaced the Tinker Nanite Replication Protocol with the Pyramid Protocol, which gives an extra 1.2 regeneration rate, but only while the nanites are at 80% volume or above.
Renamed the Offline Production Protocol to Eclipse Protocol.

Chain detonation now uses dyn_explosion(), at a rate of 1 power per 50 nanite volume. The power level should be similar to how it was for normal nanite volumes, but it should scale more linearly when going above the limit with the new programs.

If nanite volume is suddenly significantly higher than the maximum allowed (likely caused by deleting an active storage protocol) the extra nanites will be forcefully expelled from the host's body, which can range from minor oozing, to vomiting puddles of nanites, to nanites rapidly bursting from eyes, ears, and skin pores.
Despite how it looks, this process causes no lasting damage, since it's a security feature made to prevent acute nanite poisoning.

Added some comments on a few nanite functions.
Refactored vomit code to make it a bit more customizable. The toxic arg (supposedly used to choose an alternate vomit icon, but in fact not functional) is now vomit_type, and purge (which determined vomit would remove 10% of reagents or 67% of reagents) is now purge_ratio, which accepts custom values. Made the refactor mostly to allow a 0% ratio, but it can be handy in other future uses.

Adds extra content to Bepis research, giving a little more reason to invest money into it.
Creates more options to customize a previously rigid parameter in nanites, maximum nanite volume. This opens up strategies that involve storing up large amounts of nanites for special occasions, or viceversa reducing the maximum rate to get more constant replication rate to sustain continued programs.
2020-11-20 12:07:20 -08:00
NightRed
29a67ab7fd Ensure reagent holder on stomachs (#55003)
Forgot that all stomachs are not organic and edible.
This ensures that the stomach has a reagent holder.

Fixes #54995
2020-11-18 11:32:34 -05:00
NightRed
de0b8397b7 Stomach food reagents on vomit (#55002)
Missed check for stomach food reagents in stomach vomit code causing pain.
Now vomit code checks that the reagents it has are not in the food reagents when applying damage.

fixes #55000
2020-11-18 11:31:29 -05:00
Ryll Ryll
9b62c86f4d Fixes disabled limbs from compound fractures, only robotic limbs can be disabled by pure damage now (#54922) 2020-11-16 14:54:32 -08:00
NightRed
5be988ff9e Reverts metabolism on stomachs, keep them as important to eating (#54632) 2020-11-13 19:28:55 -08:00
ArcaneMusic
5338ad1696 Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)
* The Re-pricening

* Rewritten and adjusted for paycheck defines.

* I made the map changes finally.

* And the refills too.

* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"

* And the premium ones too.

* Accidently spoiled a future pr due to dme bleedover
2020-11-13 16:17:22 -05:00
prodirus
da2c7914c0 Luminescent eyes no longer toggle back on with movement. Colour switching keeps light on. (#54873) 2020-11-08 22:48:15 -08:00
TemporalOroboros
edd6500d78 /obj/screen --> /atom/movable/screen (#54403)
Repaths screen objects to /atom/movable
2020-11-08 23:07:15 -03:00
Capsandi
484f8f2d5f [READY]Removes Nitryl burn damage and adds Nitryl decomposition reaction (#53821)
This PR removes the burn damage you accumulate when breathing nitryl and adds a reaction to breakdown nitryl into its components(excluding bz) when in contact with oxygen under 600k. This produces small amounts of heat.

Nitryl, as it stands, is barely made or used due to the constant damage you take from breathing it, which causes damage slowdown after less than a minute of use. By making nitryl unsafe or unable to breathe with oxygen present, users must turn to pluoxium while using it in tanks, or hyper-nobilium when filling a room with it. BZ is not refunded if you waste your nitryl.
You now burp while breathing nitryl instead of gasping because it no longer directly harms you.
Breathing nitryl will cause lung damage proportional to the amount you are breathing at a rate proportional to the amount you are breathing when it makes up more than 10% of your breath.
2020-10-24 14:16:15 -07:00
Ghom
b6099da14b Merges species/var/list/default_features with species/var/list/mutant_bodyparts. (#54525)
default_features and mutant_bodyparts have been used ambivelently since a long time, so I'm merging the two together and replacing relevant 'in' list access operations with '[ ]' for performance while I'm at it.
2020-10-23 14:05:31 -03:00
Fikou
500608ac6d removes hexane (#54437)
removes hexane gas from video game

(the ability to hear dchat got removed like half a day ago) (Lemons note, it's been more then half a day)

it will speed up atmos a bit with less reactions, the reagent from the gas does the same things as halon + bz and the reaction from it is pretty similar to halon, they are both gases that exist to stop fires, i dont think we need both
2020-10-19 11:41:25 -07:00
zxaber
2fdf13f218 Activate Held Object and Drop hotkeys (Z and Q by default) now activate and store arm implant tools (#53893)
* Self_attack for arms if the hand is empty

* Oops

* Light runtime fix

This is not my runtime, but I will fix it all the same

* return better good

* How about a variable name that actually fits

* asdf
2020-10-16 20:44:22 -04:00
Ghilker
ec64b37e4b hexane refractor and rework (#54263)
Hexane no longer grant the ability to hear dchat (yep it was a bad idea) (Lemon's note: I am very dumb)
Hexane now gives the resist heat trait to fight fires better but can give you a lot of hallucinations
2020-10-16 01:36:03 -07:00
ZeWaka
9629feed35 Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
2020-10-13 16:43:53 -03:00
Rohesie
af65c90125 Mobility refactor: no more update_mobility() (#54183)
This is a pretty big change all around. The gist of it is that it moves the mobility_flags into traits or variables that can track the sources, and to which we can append code to react to the events, be it via signals or via on_event-like procs.

For example, MOBILITY_STAND could mean, depending on context, that the mob is either already standing or that it may be able to stand, and thus is lying down.

There was a lot of snowflakery and redefinitions on top of redefinitions, so this is bound to create bugs I'm willing to fix as I learn them.

The end-goal is for every living mob to use the same mobility system, for the traits to mean the same among them, and for no place to just mass-change settings without a way to trace it, such as with mobility_flags = NONE and mobility_flags = ALL

Fixes AIs being able to strip nearby people. They've lost their hands usage.
2020-10-09 16:04:30 -07:00
ArcaneDefence
b344d2e822 Fixes NOBLOOD species having hearts (#54239) 2020-10-09 01:45:50 -03:00
spookydonut
2a0eac8772 Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)
overrides weren't detected by should not sleep, i think i've mostly 
fixed that with SpaceManiac/SpacemanDMM#214

Some of these are wacky but overall this pr is harmless

signals shouldnt sleep even in weird 1 in a million situations or due 
to other people adding bad code

overrides of changeling can_sting() use alert() and input() and that's 
just too fucked for me to fix in this pr
2020-10-08 17:06:19 -07:00