Commit Graph

13749 Commits

Author SHA1 Message Date
Tim
cdf0a3c58a Add hallucinogen poison to frog attacks (#67572)
* Add frog hallucingen effects

* Add frog to venomous code comment
2022-06-07 21:34:23 -04:00
Tim
f06d735a52 All AI Lawsets are rebalanced, can be researched, appear in config, and random spawners for AI upload. (#66854)
This formally adds the new AI lawsets from #66636 into the game. Every lawset can
be researched, appears in config, and random spawners.
2022-06-06 22:54:29 -07:00
TemporalOroboros
2683ec04b0 Improves logging for smoke clouds. (#67206)
About The Pull Request

Makes smoke propagate the fingerprints of the last person to touch the source of the smoke.
This makes gunpowder smoke actually log the person responsible for the explosions.
Why It's Good For The Game

As of right now gunpowder smoke (and similar) doesn't actually have very good logging as as far as the smoke is concerned it's never been touched and so the resulting explosions are blameless. Obviously, scrolling up for a good minute looking for who has just obliterated the escape shuttle is slightly annoying for the admins. Ergo, making the explosions log who actually is responsible for making the smoke they originate from should reduce admin annoyance.
Changelog

cl
admin: Smoke now logs the last person to touch the source of the smoke as the last person to touch the smoke itself. Gunpowder smoke should be less annoying to log dive as a result as every explosion will log that person.
/cl
2022-06-07 15:45:20 +12:00
Timberpoes
8b08bdcfd7 Fixes issues where players can enter the game without accepted interviews. (#67565)
* Feex

* Buttonguard

* Re-add removed code from debugging

* Remove duplicate line

* Be nice
2022-06-06 23:11:16 -04:00
Tim
59e61bc840 [NO GBP] Fix illiterate quirk bugs (#67473)
* Add trait literate to defines

* Add TRAIT_LITERATE to global vars

* Add is_literate proc to check for literate trait

* Remove is_literate proc from human

* Remove is_literate proc from silicon

* Add TRAIT_LITERATE to silicons

* Add TRAIT_LITERATE to drones

* Add TRAIT_LITERATE to abudctors

* Revert last commit

* Add TRAIT_LITERATE to abductors

* Add TRAIT_LITERATE to androids

* Add TRAIT_LITERATE to dullahan

* Add TRAIT_LITERATE to species

* Add TRAIT_LITERATE to flypeople

* Add TRAIT_LITERATE to golems

* Add TRAIT_LITERATE to humans

* Add TRAIT_LITERATE to jellypeople

* Add TRAIT_LITERATE to lizards

* Add TRAIT_ILLITERATE to monkeys

* Add TRAIT_LITERATE to mothmen

* Add TRAIT_LITERATE to mushpeople

* Add TRAIT_LITERATE to plasmamen

* Add TRAIT_LITERATE to podpeople

* Add TRAIT_LITERATE to shadowpeople

* Add TRAIT_LITERATE to skeletons

* Add TRAIT_LITERATE to snail species

* Add TRAIT_LITERATE to vampires

* Add TRAIT_LITERATE to zombies

* Add TRAIT_LITERATE to clever mutation

* Comment out TRAIT_LITERATE for monkeys

* Comment out TRAIT_LITERATE for ashwalkers

* Fix illiterate mobs reading tablet messages

* Update traits.dm
2022-06-05 23:38:50 -04:00
dragomagol
ebbcc4d179 Ports crow holochassis for pAI (#67516)
* Add crow holochassis for pAI

* on-head crow sprite

Co-authored-by: tattle <article.disaster@gmail.com>
2022-06-05 16:27:47 -04:00
Looks-to-the-Moon
4946dabfad Xenomorph evolve runtime fix (#67504)
Fixes xenomorph larva runtiming and displaying unnecessary messages when hitting cancel on evolution tgui
2022-06-05 15:55:40 -04:00
dragomagol
6370761692 Move more silicon-relevant logs to silicon logs (#67340)
Moves a bunch of logs that were silicon-related but logged to game.log to silicon.log.
2022-06-04 19:50:41 +01:00
SmArtKar
305aa1e478 Fixes statue simplemob teleport not working and 3 other spells not appearing (#67105)
* Fixes statue simplemob not being able to teleport, and their 3 spells they're supposed to have.
* Also repaths statues to netherworld mobs, to reduce copy paste code.
2022-06-03 04:56:47 -04:00
scriptis
d76859e76a Fix androids looking like humans (#67443)
Don't set android limbs back to weird hybrid human-like limbs (like synths do).

Co-authored-by: Scriptis <scriptis@duck.com>
2022-06-01 19:42:24 -04:00
MrMelbert
b7eace2fad Adds Cargorilla (#67003)
* Adds cargorilla

* working cargorilla

* Tweaks to control + jobs and stuff

* Sleep

* Probably don't leave in debug

* el sanity

* el change them to use globals, el refactor

* Does this fix it?

* Ah, okay

* el copypaste

* el mapload vars

* ready to ship
2022-06-01 19:41:46 -04:00
san7890
9904a3e0ca Removes adjustHealth procs from Icemoon Fauna (they no longer regenerate health) (#67426)
* Removes adjustHealth procs from Icemoon Fauna

Hey there,

As described in Issue #67311, several ice waste fauna regenerate *1.25%* of their health every Life tick (presumably when they're not attacking). This was added back in 2020 at IceBox's first introduction, when the station was still in it's infancy and normal crew weren't really meant to explore the lower Z-Levels or even exist there. However, this design has been altered heavily over the last few years as the station has had a heavier focus on having crew be placed on these lower structures, so it should be easier for crew to not have to struggle with something non-explicit feature these mobs have as they try and merely exist in the wastes (or fight their way back up to the station).

* removes life procs
2022-06-01 00:29:12 -04:00
Fikou
ee3ab47e01 Adds the Ninja MODsuit (#67220)
Why It's Good For The Game

Ninja code is pretty bad, I think it's best to move away into nice modular stuff instead.
Changelog

cl Fikou, PositiveEntropy, Nerevar, InfraRedBaron
refactor: the ninja space suit is now a modsuit
fix: fixes dash beams not working
/cl
2022-06-01 09:25:27 +12:00
Fikou
bcbb2f1033 Adds a chance for ID cards to be tastefully thick (#67359)
About The Pull Request

Adds a 1% chance for any ID to have a new trait (100% on golden IDs)
This trait adds a special interaction with ID appraisal chips
https://streamable.com/pdu7kj
Why It's Good For The Game

Impressive. Very nice. Let's see the Captain's card.
Changelog

cl
add: Adds a chance for ID cards to be tastefully thick
/cl
2022-06-01 09:24:54 +12:00
John Willard
f4d2a0d7b7 Refactors how fauna scans stuff + electrocute act (#66947)
* Refactors how fauna scans stuff + electrocute act

Electrocuting fauna (like with staff of storms) now acts the same way attacking it does, and causes Megafauna to hunt you.
This refactors fauna's FindTarget to do so.

* merges the two for loops
2022-05-31 14:25:02 +02:00
ATH1909
3622cd4758 Fixes podpeople getting fat under certain circumstances (#67358)
* Makes podpeople fat check not dependant on whether or not you’re in a closet.
2022-05-31 06:59:46 -04:00
Kapu1178
6d470992cb This tail refactor turned into an organ refactor. Funny how that works. (#67017)
* Fuck you (refactors ur tails)

* Errors

* Wow. Pain.

* Fixes up probably everything

* finish up here

* Fixes hard del maybe

* original owner hard del

* garbage collection runtime

* suck my peen byond

* Mapped tails

* motherfucker.

* motherrfucker. again.

* Whooopppppsie

* yeah bad idea

* Turns out external organs literally just sat in nullspace forever if their parent was deleted, and didnt Remove() themselves, causing harddels.

* So anyways I repathed all organs

* Fixes

* really.

* unit test... test

* unit test-test but it passes linters this time because im a moh-ron

* I've lost track of what im doing at this point

* Hopefully fixes hard del?

* meh

* Update code/datums/dna.dm

* things n stuff

* repath from master pull
2022-05-30 21:18:34 -07:00
Ryll Ryll
9431c92f70 Caps projectile armor at 90%, armor now applies to pellet cloud wounding (#67331) 2022-05-30 13:45:15 -07:00
Tastyfish
353e0f0ca6 Simple animal Destroy edge case fix (#67356)
It's a semi pointless check, but it shouldn't be doing any harm. It's just overly cautious.
2022-05-29 16:52:19 -07:00
Ghilker
9596a1ad2e removes atmos history (#67317)
Removes one unused global list and removes the other one that was used only 3 times.
2022-05-27 10:13:42 -04:00
Ryll Ryll
6d3095b5c8 Continues removing unnecessary species names of bodyparts in visible messages (#67254)
* removes some more unnecessary species mentions from bodypart messages
2022-05-27 10:09:27 -04:00
Wallem
b290e90bd0 Adds BUG food types (eating ants) (#67202)
* Adds BUG food types, liked by Flypeople, Felinids, Jellypeople, Monkeys and Lizardpeople, while Moths and Podpeople hate it.

* BUG foods include moth meat, ants, ant pizza, spider eggs, canned larvae, and a few others.
2022-05-27 10:00:39 -04:00
RandomGamer123
16e7259547 Fixing plasmamen setting on fire when they shouldn't (#67021)
Reverts a fire-proof trait check that was accidentally flipped.
2022-05-27 09:52:32 -04:00
SmArtKar
45b19cd314 Fixes most eye color effects not working (#67127)
* Fixes most eye color effects not working, adds eye refreshing to species' handle_body.
2022-05-27 09:41:32 -04:00
LemonInTheDark
dd974f3738 Fixes simple animals getting stuck in ai lists (#67273)
DO NOT ADD US TO A LIST OF AI PROCESSING MOBS IF WE ARE QDELETING
hhhhhhhhhhhhhhhhhhh

Oh also lets add more deets to the warning, and upgrade it to an error
I want to actually have to fix these, or just remove them if they become
redundant
2022-05-26 16:07:21 -04:00
Fikou
ccbd002c61 Security modsuit update (#67131) 2022-05-26 12:24:06 -07:00
Ghilker
4e581f3c04 podpeople ass icon (#67258)
adds the podpeople photocopy ass icon
2022-05-25 13:08:52 -03:00
ike709
d1fb8f9901 Fixes more issues OpenDream uncovered (#67222)
Co-authored-by: ike709 <ike709@github.com>
2022-05-24 13:59:33 -07:00
MrMelbert
4325f15950 Puts Wags-His-Tail and Eats-The-Roaches back in Delta's janitor closet (extremely important) (#67228) 2022-05-24 08:55:39 -07:00
SmArtKar
4cfefad2f8 [NO GBP]Fixes stopping, dropping and rolling not extinguishing your clothing (#67096)
* Resisting out of fire now makes your clothes stop being on fire, too.
2022-05-23 23:50:26 -04:00
Tim
0c5b3ac1fd New illiterate quirk (#66648)
* New illiterate quirk that makes a person unable to read or write. This applies to books, PDAs, paper, computers, and other electronics.
* New brain trauma dyslexia that makes you illiterate until fixed.
* Ashlizards are now illiterate as a default starting trait. The mining shuttle computer has been updated to compensate illiterate mobs randomly smashing buttons that causes a shuttle launch.

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-05-23 20:06:52 -04:00
Fikou
1621d5722a makes herald projectiles less dumb (#67207) 2022-05-23 17:42:47 -04:00
Jolly
cfc2330528 [MDB IGNORE] More /area/ typepath organization and cleanup (#67107)
This further continues what I did in b4fb8f3ed1 (but instead of just stations, its now every (most) applicable area in the game
2022-05-23 13:01:19 -06:00
MrMelbert
ba2ffdd887 Fixes a semi-rare bee hard delete (#67203) 2022-05-22 02:37:59 -07:00
MrMelbert
e2e658db41 Refactors and sorts Nuclear Bombs and Cinematics. Fixes and unit tests nuke cinematics, and re-adds a missing malf ai cinematic. (#67144) 2022-05-21 22:49:06 -07:00
John Willard
ca9bef008a Removes Cyborg's PDA app (#66921)
Removes Cyborg's PDA
2022-05-21 10:36:46 -04:00
LemonInTheDark
7e9ff85f2a [NO GBP] Jetpack and spacedrift: Fixes and niceties (#66628)
* Jetpack and spacedrift: Fixes and niceties

Ok so when I ported spacemovement onto movement loop,
I neglected to port this behavior that existed to support jetpacks.

Basically, if something that lets you move while spacedrifing
completes a move while you're spacedrifting, the
drift should "disable" to let it complete, and then later restart.

I neglected to add support for that, so that's what this does.

There's some other stuff going on here, mostly things to let jetpacks
ignore some of drift's extra behavior, since when a jetpack is not on
stablized, we want both to coexist.

It's a bit of a mess, I'm sorry about that.

Oh and at temporal's suggestion I've moved the visual_delay set from
newtonian move to an istype on the drift component, that was a good
idea, thanks quiet

* Makes dropping a pull while drifting carry the momentum into the pulled thing\

* Adds some extra context to Process_Spacemove, fixes a bunch of stupid
space bugs

It used to be, if you called Process_Spacemove with a direction, it
assumed you were an "action", so a client or mob trying to move in a
direction.

Unfortuantely for it, I needed to be able to use direction to make mob
pull drifting work. So we now actually pass in a second variable
called continuous_move, which tracks if this Process_Spacemove is on
behalf of a continuous move or not

In addition to this, I've added logic to bumping "off" someone to
prevent backbumping if that makes sense, since the bump is in the form
of a newtonian move that's run before the thing that's bumping actually
moves, we need some way to exclude it from holding the other object in
place.

* Adds a jetpack component, uses it to unify all three versions of
jetpacking

I hate you fikou
There were three copies of the same behavior, which made it hard to fix
stuff. Let's just componentize it

* Fixes jetpacks stabalizing even without fuel

This is mildly hacky. The real fix is to do this with events, but I
really don't wanna bend my brain like that. This'll do

* Ensures turn_off always has a user)

* Shut pu

* Bulky drags no longer effect your movespeed in space, fixing a consistency issue between them and all other forms of drags

* Removes some redundant code, cleans up some messy stuff

* Removes redundant safety checking from jetpack code

* see above

* Removes redundant signals
2022-05-20 00:54:00 -07:00
Mothblocks
09a6cdb4e0 Dynamic 2022, Part 1 - Redesigning midround rolls (Midrounds happen far more frequently now, and scale their power over time) (#65997)
Implements the new midround roll changes.

1. Split midround rulesets into heavy/light impact
First, midround rulesets will be split into light/heavy impact categories. For example, sleeper agent and midround thief would be classified as light impact, while blob/ninja would be classified as heavy impact.

This split will then be used to spawn lighter impact antagonists earlier into the round, and higher impact antagonists later into the round.

Midrounds before 25 minutes = 100% light impact / 0% heavy impact
Midrounds from 25-60 minutes = Varying chances, increasing in favor of heavy impact after enough time
Midrounds from 60+ minutes = 0% light impact / 100% heavy impact
Low impact threat rulesets are guaranteed to roll if there is enough threat. High impact threat rulesets will carry the same % chance as they do now. If a heavy impact threat ruleset cannot be rolled, but there is enough threat, a light impact threat ruleset will roll in its place. In the future, this can potentially be changed into not spawning any ruleset if the station is deemed extremely hostile, or even be tweaked into spawning protagonists like ERTs.

Alongside this, rulesets should be able to determine their minimum time required. For example, nuclear assault has terrible numbers--it's very high cost, and very low weight, which are basically the only variables it can configure. In Dynamic 2022, it should be able to have low cost, still low weight (though maybe nto as much), while only being rollable after 70 minutes or so.

2. Midround antagonists now roll as intervals, determined by midround threat
In order to make sure 50 midround threat spawns more antagonists than 10 midround threat, the intervals at which midround threats are spawned will change from 15-45 minutes to increments determined by midround threat. Larger midround threat = more, close intervals, smaller midround threat = less, farther intervals.

Any threat not spent on midrounds will still be carried into latejoins, which as before will still consume midround threat, and are unchanged by this document.
2022-05-18 20:16:46 -07:00
dragomagol
6ff4d03ee0 Split and Document Logging Procs (#67052)
* put logging procs into their own files

* Moving more procs into their own files

* Moving talk

* The last of the logging

* ticks shuttle.dm

Co-authored-by: tattle <article.disaster@gmail.com>
2022-05-18 11:29:34 -07:00
vincentiusvin
f991ee248f Cryo heals on crit, changes status effect check to trait. (#67076)
Old bug was caused by IsUnconscious and IsSleeping being status effect checks, these status effects are not applied on crit. This changes it to be trait checks instead, which are applied on crit
2022-05-18 12:12:26 -04:00
LemonInTheDark
32dbaf33aa Fixes initial floating action buttons failing to properly position (#67068)
Also cleans up artificer stuff a bit, their rune button should align
with their spells.

Basically, when we grant someone a button, it gets positioned in its
default location. If the button's floating, their location var becomes
an invalid arg to position_action. Then we called position action with
their location var.

Big fucky.

I've cleaned up the logic a bit, and ensured that you can never position
to FLOATING directly, since it's a marker rather then a real position on
the screen
2022-05-18 11:50:00 -04:00
Fikou
f501b1e49e MODsuit module update: new stuff and improved old stuff (#67042)
Doubles the range of the MOD Pathfinder AI
Fixes modules rendering below the suit.
Adds the ability for modules to be used when inactive.
Documents/cleans up some code.
Updates some old descriptions and explains some concepts better.
Armor Booster and Ash Accretion can no longer boost your speed over no slowdown at all.
Makes flashlight module start with 4 instead of 3 range, so it's better for people that don't know about configuration.
Doubles t-ray module range, from 2 to 4 (t-ray scanner is 3).
Puts the noslip module lower in progression, lowers its' price to 2.
New sprites for the magnetic harness module by Onule.
Brings back the holster module, it can now be used when the suit is inactive, can be printed with security suit research.
Adds the power kick module for the ERT Commander. It's a powerful kick.
2022-05-18 01:19:31 -04:00
DragonTrance
89650214fd [MDB Ignore] Refactoring Flora code (#66978)
* organizing flora file and icon states, & flags

Changes the typepath for a lot of flora, and adds new paths depending on the amount of icon states the flora had, for better modularization on mappers. Also adds flags to the flora depending on what type it was, instead of 3 bools

* Getting ready to attempt to modularize flora

Moving most vars and procs from ash flora into the normal flora type path, as a general preparation to add more here

* Weighted products & Region Messages

Rewrites flora code so a flora's produced items can be initialized with a weighted list. Also has some improvements, relating to item stacks.

Adds an option via variables to separate 3 messages into 3 possible regions, or the old method where the message changes when the value is exactly the same as the low or high harvest value

* organizing + documentation on procs

* Documentation, Organization & Modularization

(DOMing) yeah, I dom
Gives variables for tools that can harvest flora, a blacklist of them, and modularizes variables a bit.

Retypes the stump to be a subtype of a tree, which just deletes after being harvested

* Adds the ability to uproot flora with a shovel

* added eswords to the list of things that can cut

* ausbush junk

* code review appreciation + changing drag_slowdown

* more code review appreciation

* kirbyplants ComponentInitialize() -> Initialize()

* forgot glob.
2022-05-16 00:00:54 -07:00
Seth Scherer
a3add37618 Refactors the forensics component into a datum (#66809)
About The Pull Request

This was doing things component really shouldn't be doing, and now all
of its behaviour is contained onto a datum, as it should've been the
whole time
Why It's Good For The CODEBASE

some things just really shouldn't be components, this was made back when DCS was first implemented and just thrown in because it was the new hot thing i guess, but datumized forensics makes far more sense, AND doesn't use GetComponent

TODO:

    More thorough testing to make sure nothing broke

Changelog

🆑
refactor: Turned the forensics component into a datum.
/🆑
2022-05-16 16:33:59 +12:00
magatsuchi
bea9387458 refactors statpanel to use tgui API (#66971)
refactors the status panel to utilize the tgui/byond communication APIs instead of passing along href data, as well as converts the entirety of it into a datum/tgui_window

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2022-05-16 07:12:05 +03:00
Thunder12345
e53a3152a2 massively improves the readability of stripping related attack logs (#66895) 2022-05-14 12:01:42 -04:00
John Willard
c61d6dc3cb Removes CPU, Sensors and Identify ModPC parts. (#66924)
Removes CPU, Sensors and Identify parts from modulra computers.
This is in effort to simplify how tablets and tablet apps are, while removing barriers to download specific apps. Limiting apps needed for your job, through hardware, is a terrible idea, and just limits departmental stuff to being there roundstart/latejoin, punishing people who job change through the in-game HoP system, devaluing the job as a whole.
2022-05-13 14:50:35 -04:00
wesoda25
ba9b1d4786 Allows ethereals to ghost out of crystallization (#66853)
* moves around tgui question so it doesnt piss off linter or someting idk

* code clean up
2022-05-12 15:12:30 -04:00
GoldenAlpharex
a3c8013b45 Refactors how legs are displayed so they no longer appear above one-another when looking EAST or WEST (#66607)
So, for over 5 years, left legs have been displaying over right legs. Never noticed it? Don't blame you.
Here's a nice picture provided by #20603 (Bodypart sprites render with incorrect layering), that clearly displays the issue that was happening:

It still happened to this day.
Notice how the two directions don't look the same? That's because the left leg is always displaying above the right one.

Obviously, that's no good, and I was like "oh, that's a rendering issue, so there's nothing I can do about it, it's an issue with BYOND".

Until it struck me.

"What if we used a mask that would cut out the parts of the right leg, from the left leg, so that it doesn't actually look as if it's above it?"

Here I am, after about 25 hours of work, 15 of which of very painful debugging due to BYOND's icon documentation sucking ass.

So, how does it work?

Basically, we create a mask of a left leg (that'll be explained later down the line), more specifically, a cutout of JUST the WEST dir of the left leg, with every other dir being just white squares. We then cache that mask in a static list on the right leg, so we don't generate it every single time, as that can be expensive. All that happens in update_body_parts(), where I've made it so legs are handled separately, to avoid having to generate limb icons twice in a row, due to it being expensive. In that, when we generate_limb_icon() a right leg, we apply the proper left leg mask if necessary.

Now, why masking the right leg, if the issue was the left leg?
Because, see, when you actually amputated someone, and gave them a leg again, it would end up being that new leg that would be displayed below the other leg. So I fixed that, by making it so that bodyparts would be sorted correctly, before the end of update_body_parts(). Which means that right legs ended up displaying above left legs, which meant that I had to change everything I had written to work on right legs rather than left legs.

I spent so much time looking up BYOND documentation for MapColors() and filters and all icon and image vars and procs, I decided to make a helper proc called generate_icon_alpha_mask(), because honestly it would've saved me at least half a day of pure code debugging if I had it before working on this refactor.

I tried to put as much documentation down as I could, because this shit messes with your brain if you spend too long looking at it. icon and image are two truly awful classes to work with, and I don't look forward to messing with them more in the future.

Anyway. It's nice, because it requires no other effort from anyone, no matter what the shape of the leg is actually like. It's all handled dynamically, and only one per type of leg, meaning that it's not actually too expensive either, which is very nice. Especially since it's very downstreams-friendly from being done this way.


It fixes #20603 (Bodypart sprites render with incorrect layering), an issue that has been around for over half a decade, as well as probably many more issues that I just didn't bother sifting through.

Plus, it just looks so much better.
2022-05-10 23:49:06 -07:00
MrMelbert
29bfa42779 Converts jittering to status effect, striking yet another mob level status value (#66852)
Converts jittering to status effect, striking yet another mob level status value
2022-05-11 00:56:29 -04:00