Commit Graph

109 Commits

Author SHA1 Message Date
TemporalOroboros
976c1fcb8c [READY] Bespoke Datum Mats (#55296)
* Bespoke Material Backend

- Adds support for bespoke materials:
  - Reimplements [/datum/material/var/id]
  - Ports GetIdFromArguments from SSdcs
  - Adds a wrapper define for GetMaterialRef
  - Adds [MATERIAL_INIT_BESPOKE]
  - Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials

- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials

* Some has_material procs and cleaning up some spaghetti

- Adds a pair of has_material procs for use in checking whether a given atom has a given material

* Adds meat

- Adds bespoke meat variants
  - Does not make them accessible
- Shuts up the linter

* Implements bespoke meat

- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats

* Makes butchering produce bespoke meats

This is jank and really needs to be folded into a unified butchering and gibbing system

* Material documentation

- Adds, fixes, and touches up some documentation

* Material container insertion callback

- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.

* Makes processing meat conserve materials

- Makes bespoke meat carry over into meatballs

* Makes preserving custom materials an option

- Implements the ability to turn preserving custom materials _off_ for processor recipes

* Fixes all bespoke materials of the same type using the same singleton

- We use ids now, not just types.

* Makes the fat sucker produce bespoke meats

- Because consistency is good.

* Fixes autolathes merging bespoke stacks into normal stacks.

* Makes the callback to test materials for holdibility optional

- @Floyd

* GetMaterialRef -> GET_MATERIAL_REF

- We capitalize macros.

* Removes an extraneous callback

- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.

* Makes mob and species meat null compatible

* Fixes the ore silo

- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.

* Fixes minor lathe bugs

- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.

* Various documentation fixes

- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures

* More fixes

-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.

* Fixes old typepaths
2021-01-15 23:39:58 -08:00
LemonInTheDark
6d1cb94ffb LINDA Reforged (#55604)
Speeds up gas movement significantly
Documents the intent and finer details of the atmos system (Thanks dunc)
Fixes excited groups constantly rebuilding, this broke 4 years ago
Fixes superconductors just straight up not working
Allows turfs to sleep while inside an excited group
Adds a new subprocess to SSAir to support rebuilding in this state
Most heat based behavior no longer relies on being inside a fire
Adds a new element to support doing this cleanly
Adds a new subprocess to SSAir to support doing this while a turf is asleep
Refactors air_update_turf to allow for finer control
Makes apcs take damage in heat to prevent infinite plasma fire diffs
Cleans up immutable gas mixtures to make them work properly when the mix has gas in it
Planetary turfs no longer create a new copy of themselves each time they process. We instead use a global
immutable mix
Cleans up a typed for loop in reactions
Canisters will take damage from outside heat now
Speeds up excited group dismantle
Increases the superconductor threshold by 200k
Cleans up some roundstart ATs on some ruins
Uses /turf/open/var/excited to track if a turf is actively processing, preventing a |=
Prevents openspace from trying to melt
Tweaks a canister examine line
Makes planetary turfs reset to base when broken down as part of an excited group
Makes it impossible for planetary turfs to rebuild, just like space tiles
Fixes closed turfs not activating their replacement when destroyed by moving closed -> open turf activation to
the adjacent air subsystem. They were activating and then going back to sleep before adjacent air got a chance
to tick.
Fire alarms will trigger when the area gets too cold for humans
2021-01-08 08:14:08 +01:00
AnturK
adcd4af1ff Meat statue fixes (#55790)
Fixes few statue bugs with textured materials.
Makes materials use managed filters. This can have side effects on things that already had unmanaged filters on.
2020-12-30 11:47:57 -05:00
Rob Bailey
cb01640043 Filterrific! (#55246)
Filter refactor + In Game Filter Editor
Accessed via VV in the dropdown of atoms. "Edit Filters.
Makes filters actually usable.

Co-authored-by: ghgh <hghgh>
2020-12-18 20:05:20 +02: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
Ghom
4c31b0e116 CanUseTopic() refactor. (#54747)
* CanUseTopic() refactor.

* Forgot about default_can_use_topic. Tested and working.

* Update bin.dm

* no-nonsense.
2020-11-25 13:12:12 +01:00
Ghom
ede1358f78 Beauty component improvements. Two new fantasy component prefixes (#54622)
Title. Changed the component backend code slightly to allow a single component to hold the total score instead of spawning new components. This should fix cases, such as material stacks without the MATERIAL_NO_EFFECTS flag, where multiple set_costum_materials calls can be made and new beauty components spawned.
2020-11-10 15:08:32 -03:00
Ghom
9597f2f97f Converting art component into element. (#54616)
* Only art is now an element. There have been some issues with beauty.

* Typo.

* Update art.dm

* Update art.dm

* Maintainer suggestions. Reversing order of switch(impress) for correct moodlets.

* Fixing some pre-existing oddities with art element.

* stating the right var.

* simplifying the component.

* Update art.dm

* lowercasing pronoun.
2020-11-03 19:00:50 +08:00
EOBGames
bbc9e40d22 Corrects the Chisel Description (#54711) 2020-10-31 21:35:27 -07:00
Mickyan
fb76d6d38a Allows rotating statues with alt click (#54179)
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-10-06 18:30:22 -07:00
Qustinnus
cf11ade4d7 Nerfs uranium material effects, and changes how effective materials are on sheets and statues (#54178) 2020-10-06 13:01:48 -07:00
AnturK
5acc1a2bcd Duplicating statues sanity (#54018) 2020-09-28 19:02:05 -03:00
AnturK
61e5c556df Custom statues and sculpting changes. (#53154)
### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.
2020-09-23 02:46:01 -03:00
Ghilke
afc12176a9 merge master 2020-08-30 12:10:30 +02:00
TiviPlus
ca366c3ea1 Bools and returns super-pr (#53221)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-28 14:26:37 -07:00
Ghilke
97004597f6 f 2020-08-22 16:12:53 +02:00
Ghilke
6fb91dde6c reactions.dm fixes, grammar fix, removed flamethrower.dm changes (dumb dumb changes), added shitty animations for the gas crystals 2020-08-22 16:10:26 +02:00
Ghilke
dba15dfc87 some fixes, better code and sprites 2020-08-18 00:12:43 +02:00
Ghilke
2485402175 AHAH atmos goes BRRRRRR 2020-08-17 16:52:31 +02:00
TemporalOroboros
5b99d66569 Replaces some zero-delay timers with INVOKE_ASYNC (#52434)
* INVOKE_ASYNC

Replaces a zero-delay timer with INVOKE_ASYNC

* More timers

Switches out some more zero-delay timers for `INVOKE_ASYNC`

* lib_codex_gigas

One last switch
2020-07-26 22:09:58 -04:00
Emmett Gaines
9e34b3d6a1 Supports named arguments in AddComponent and AddElement (#49098)
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this.

InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init.

As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder.
2020-02-17 17:57:52 +13:00
nemvar
a148cae769 Kills obj/item/projectile in favour of obj/projectile (#46692)
* Kills obj/item/projectile in favour of obj/projectile

* Resolves conflicts properly

* fixes that one map

* it lives
2019-10-06 13:37:24 -04:00
Qustinnus
26a95ac867 Re-adds room beauty without the negative moodlets (#46848)
* re-add

* epic

* fix

* epic
2019-10-05 22:47:49 -04:00
nemvar
dc783795db Renames is_hot and is_sharp to get_temperature and get_sharpness (#46680) 2019-09-23 14:02:59 -07:00
Krysonism
747b73a824 October comes early! Revolutionary art and bust. (#46163)
* Marx bust + rev art component

* Fixies

* -f
2019-09-12 12:43:05 +02:00
bgobandit
c606522bec Non-tagger graffiti counts as bad art (and other art adjustments.) (#46248)
About The Pull Request

    Non-taggers' graffiti counts as bad art. Taggers' graffiti counts as good art, not great art.
    Makes the art defines global defines and removes some magic numbers.
    Re-orders the switch statement for art to go ascending instead of descending, because otherwise if something is at BAD_ART it will register as good instead, if it's at GOOD_ART it will register as great, etc., which defeats the purpose of having defines.

Why It's Good For The Game

The tagger component: Because there isn't really much bad art in the game ,and graffiti is as obvious a candidate as any, and gives the janitor an actual excuse to remove it besides being a dick. If you don't want the potential for a bad moodlet, don't examine the art. You have to go out of your way to do so anyway.

Very slightly nerfing tagger graffiti: Because "what a thought-provoking piece of art" is kind of much for graffiti.

The other component: Because there's no point in having defines if people are just going to put magic numbers everywhere anyway. (I left the impressiveness numbers for statues, etc. alone, because those can take damage, dropping their quality. But if something can't take damage, just use the define.)
Changelog

cl
tweak: Graffiti by a non-tagger counts as bad art.
/cl
2019-09-02 09:17:41 +12:00
Rob Bailey
2029163d33 playsound vary boolean define conversion (#46254)
About The Pull Request

Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls

This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE

I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game

Code usability
2019-08-30 18:45:20 +12:00
kingofkosmos
df1fecc58c Adds notice-span to visible_messages with no spans (#46044)
About The Pull Request

Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game

This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
2019-08-26 20:50:00 +12:00
ishitbyabullet
71277af9d3 Improved Cabin Away Mission (#45618)
* The map itself

I hope it won't PR on /tg/station immediately.

* ok lavaland monster dmi thank you

"bruh you added two sprites oh shit im about to m-m-m-malfuncti-" *BOOM*

* cabin building stuff

Still need to merge master.

* Ninja's uniform PR got merged.

Good thing I used, like, only one jumpsuit for the entire map. I hope this merges before someone changes winter coats though.

* lmao

* MrDoomBringer forgot a few things

obj/iced_abductor. that's an ayy lmao moment.

Besides that, the block should work. Just don't destroy it before the round begins otherwise you see this: https://i.imgur.com/K3GGnqy.png

Proof that this works: https://i.imgur.com/MxVO0Og.png

* no more claustrophobic medbay

It doesn't look as good as I want it to. It also feels way too fucking cramped.
2019-08-05 01:37:11 -07:00
spookydonut
88eca69eb5 converts some spawns into timers (#45429)
* converts spawns into timers

* linter

* change per review
2019-07-29 02:23:15 -07: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
bgobandit
f9330d2fd1 Art produces moodlets, good or bad depending on quality. THE REMAKE (#44174)
* Art produces moodlets, good or bad depending on quality.

* makes more requested changes

* makes requested changes/placates oranges

* fuck this shit

* this is my last will and testament, when I am dead and gone I request that my relatives make the changes that I will probably still be requested to make at that point
2019-06-08 21:58:13 +02:00
kevinz000
7370de6961 Fixes projectiles not hitting people resting, a bit of refactoring of how projectile target collision is done (#42241)
* Fixes projectiles not hitting mobs, some refactoring too

* some stuff for projectile can hit target to work with not being ontop of an object

* Yeah let's just refactor bullet_act while we're at it.

* Yeah let's just refactor bullet_act while we're at it.

* Yeah let's just refactor bullet_act while we're at it.

* CanPass returns true to projectiles regardless of hit

* snakecase?
2019-01-19 11:17:42 +13:00
ShizCalev
2fa1ac1349 Replaces istypes with the proper tool_behaviour checks. (#40414) 2018-10-01 03:10:31 +03:00
AnturK
72e9cea3b6 Makes objects blocking air restore airflow in /atom/Destroy (#39210) 2018-07-21 06:28:57 -04:00
Jordan Brown
96c92d5eb7 Merge pull request #38938 from ninjanomnom/b-b-bump
Converts collide back to bump and fixes double bumping in another way
2018-07-09 14:50:27 -04:00
Qustinnus
284f90a3ab Makes some requested changes to mood (#38851)
cl Floyd
del: removed beauty / dirtyness
balance: Mood no longer gives you hallucinations, instead makes you go into crit sooner
/cl

oranges requested these changes, i havn't coded in DM for a while so I might have made some mistakes
2018-07-08 13:50:54 +12:00
ninjanomnom
059da44453 Converts collide back to bump and fixes double bumping in another way
This is in preparation for step_x support as the default behavior for these procs is necessary for proper functionality.

turf/Enter and atom/movable/Move default code got rewritten to replicate default byond functionality with minor changes.
2018-07-07 11:22:29 -04:00
ShizCalev
c41d6ac965 Standardizes and cleans up some admin messages & logging (#38128)
* Improved logging

* Fixes & emitter logging

* ded
2018-05-30 21:57:06 -07:00
kevinz000
f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
Qustinnus
4911991f70 [READY] Several fixes/changes to mood, longterm mood effects, beauty component (#36344)
cl Floyd / Qustinnus
del: Removes short-term effects of mood
add; Adds long-term effects of mood by implementing sanity which goes up with good mood, down with bad mood, but takes time to change. Your sanity can be seen as your average mood in the recent past. All effects of moods are now covered by this system
add: Beauty component, currently only attached to cleanables, but you could attach it to any atom/movable and make them pretty/ugly, affecting mood of anyone in the room.
refactor: Removes the original way of adding mood events, uses signals properly instead.
fix: Cleanables "giving" area's free beauty during initialization
fix: Fixes some events not clearing properly
/cl

Fixes #36444

From now on mood no longer affects you directly, instead it decides whether your sanity goes up or down, when your sanity gets too low you will get the effects of what mood did before.

This means getting hit with bad moods due to being attacked while not mean you are doomed anymore, and you get a large timeframe to get away and just fix your mood later.

I also added the beauty component, you could add this to any object and it would either make a room prettier or uglier, comparable to DF or Rimworld. You could add traits to make certain people ugly, for example.
2018-03-18 19:48:50 +13:00
Dax Dupont
cffedcf7c1 Display cases can now have a list where to randomly spawn items from (#36058)
* Adds allowing display cases to pick from a random list

Keeps compatibility with older maps and moves trophy/plaque message to all display cases

* A bit more legible

* Refactors statues tool interaction code

* Don't override it already exists

* done
2018-03-09 09:17:57 +01:00
ACCount
c6e607dc17 Refactors use_sound and changes the way tools play sounds (#35521)
* Adds list support to usesound, ports drills to usesound

* Adds more tool sounds, changes usesound usage to play_tool_sound

* fix
2018-02-12 17:16:47 +02:00
ACCount
100c4b6114 Adds new helper: use_tool, shakes things up in tool code (#35095)
* small changes

* Adds a use_tool helper and changes some tools to use it

* Ports most tool operations to use_tool

* Converts more tool operations to use_tool and tool_act

* Changes some things to default_unfasten_wrench

* Improves tool_behavior support in mech construction

* Code review memes

* Fixes all instant use_tool calls failing

* Code improvements

* merge fixes
2018-02-06 11:02:53 +01:00
Robustin
3876bdc919 Plasma statues get fixed (#33224)
* Plasma statues fix

* Actually a fix

* brackets
2017-12-03 14:15:42 -05:00
Emmett Gaines
9d17e9c102 Fixes camera mobs becoming contaminated and other tweaks (#31731) 2017-10-14 19:39:51 -03:00
Emmett Gaines
456cd10d94 Radiation rework and subsystem (#30909)
* radiation rework and subsystem

* moves a few things to initialize and adds radiation insulation

* adds a radiation contamination mechanic and makes requested changes

I'm terrified by the possibilities from this

* radiated objects give off light

and hopefuly contamination is balanced

* fixes runtimes and an mc crash kek

removed the lighting part of contaminated objects
attempted some more balancing

* Collectors output power in process() gradualy

And some more balancing tweaks

* Excludes a bunch of things from becoming radioactive

* Ready for testmerge balancing

* Inverse square law was swapped

* testmerge balancing

fixes the geiger counter
buffs collector power gen
nerfs sm radiation
slightly buffs rad insulation
nerfs rad damage (and its burn)
raised the minimum radiation

* disabling the radiation subsystem won't build up rad wave datums forever

* rewrites how mobs handle radiation

upgrades geiger counter functionality
and more balance tweaks

* cleans up stuff and removes debug message

* Slight contamination buff

* Major rad wave performance boost

Also improves rad insulation
Buffs contamination, again

* Fixes insulation runtime

More balance and performance tweaks

* fixes rad collectors not receiving power

* The final balance commit

Fixes a major bug causing radiation to underperform
More geiger counter changes that will be changed more to add sounds

* Monkey business

* Geiger counter sounds

* cleanup and move components to their own initialize

* Some code cleanup

And forgotten changes

* Cleans up some trailing returns

* Mapping changes
2017-10-13 10:22:00 -04:00
Tad Hardesty
5a0bb2f599 Grammar fixes to atom descriptions (#31293)
* Grammar fixes to atom descriptions

- Capitalization and punctuation on most descriptions
- CentCom instead of centcom where appropriate
- Earth instead of earth where appropriate

* Remove spaces before newlines and oneline some strings
2017-10-05 16:33:35 -04:00
KorPhaeron
6898c4a445 Disablers and ions wont burn statues 2017-09-05 14:41:36 -05:00
Ian Turk
7460f2c5b8 Replaced flags with flags_1 2017-08-16 13:01:15 -06:00