Commit Graph

59 Commits

Author SHA1 Message Date
Emmett Gaines
71ed48d944 Datum mat GAGS support and mace migration (#59114)
Makes datum materials support GAGS icons without too much configuration needed. You just need to specify a base config and subtype configurations can be for specific materials. I used the cleric mace as a testing item due to it having 2 distinct regions to color, so it got migrated to this system.

Moving forward we should not be using the regular color system for datum mat items as you can get conflicts with other code adding colors whereas with this the sprite has the base colors baked in.

Also I made the gold mace shimmer, for fun.
2021-05-31 03:06:26 -07:00
cacogen
d2ea4be6c8 Fixes human burgers not naming after the meat donor (#59286)
- Adds custom materials to result of grilling
- Adds custom materials to result of atom processing
- Adds source name and job to mob_meat material if available
- Makes processed atoms have same pixel offsets as their source but randomise with each subsequent one
2021-05-27 04:39:17 -07:00
Kylerace
b76a29675c makes LoadComponent() a macro like AddComponent() is so it supports named arguments (#59185) 2021-05-20 02:53:12 -07:00
Kylerace
08df8798ce (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#58340)
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-05-07 03:54:03 -07:00
tralezab
8f420e7cca Removes Crystal Invasion (#58711) 2021-04-27 18:26:19 -07:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Fikou
7e3a4f2442 fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708) 2021-04-26 16:15:18 -07:00
Ghilker
99ed48ce8d [Ready]Atmos enhanced. Part 1: Crystallizer and machine recipes (#56889)
* crystallizer
2021-02-27 19:19:43 +01:00
Ghom
69711bde15 Beauty is now an element. Fixing an issue with enter/exit area comsigs. (#57147)
Co-authored-by: Ghommie <425422238+Ghommie@users.noreply.github.com>
2021-02-24 21:17:03 -08:00
Qustinnus
931a32ffb3 Experi-Sci: Techweb nodes may now require you to perform "scientific" experiments (#54093)
Co-authored-by: Brett Williams <bobbahbrown@gmail.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-23 13:30:24 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
CRITAWAKETS
112ec2aaa7 Allows Titanium, Plastic, Adamantine, Wood and Mythril to be placed in an autolathe. (#56692)
Adds in the proper flag to Titanium, Plastic, Adamantine, Wood and Mythril in order for them to actually be able to be put in an autolathe. These are the materials that used to be missing that flag but were meant for autolathe usage.
2021-02-07 00:18:45 -08:00
Fikou
8d586a7cb0 Rename metal sheets to iron sheets (#56643)
It's a specific type of metal, it shouldnt just be called generic "metal".
The reagent, ore and material datum are already called iron.
2021-02-05 15:48:00 +00:00
Qustinnus
c51b77f1de Adds the Hauntium material, which turns any item into a ghost (with AI) (#55728) 2021-01-27 12:27:47 -08:00
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
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
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
MrMelbert
c8536907fc Accidental Consumption post-food refactor cleanup (#55152)
Renames a bunch of vars to be more descriptive
    Removes old references to snacks
    Updates some code slightly
2020-11-26 14:41:26 +00:00
ArcaneMusic
c565e56d25 Woodgrain (#54926)
Basic wooden texture is visible to wood, material crafted objects.
2020-11-18 07:42:37 -05: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
Qustinnus
6424b6136e Turns transparency for turfs into an element, and gives it to datum materials. (#54250) 2020-11-03 15:05:54 -08:00
Qustinnus
74755a5a3a Audio falloff re-work, and increased audio range. (#54362)
imo; the ss13 audio-scape is quite barren, you can only hear most things if you can see them, which in my opinion doesn't make much sense. This changes that so you can hear further away, but falloff is much higher, so in reality you will only hear things relatively quietly when they're out of sight.

This PR increases the hearing distance of most sound by 9, excluding sounds such as antag items that are meant to be used stealthily

This PR also replaces Byond's inbuilt falloff system with something I made, (And thanks to potato for helping me throw together a formula for it). This fall-off system makes sound fall off more naturally, with sounds being full volume within a certain range, and then softly falling off until they are completely quiet. This makes for a smoother transition between "This sound is full volume" and "I dont hear this sound".

Co-authored-by: ff <ff>
2020-10-20 17:14:16 -07:00
TemporalOroboros
cab4313b29 Adds Alloy Materials (#53623)
Adds and implements alloy materials

Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.

Materials added:
    Plasteel
    Plastitanium
    Plasmaglass
    Titaniumglass
    Plastitanium Glass
    Alien Alloy

Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.

Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.

(Lemons note: Adds a regeneration component, used for alien alloy)
2020-10-09 12:23:40 -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
NightRed
4e2dda164f Makes the stomach important part of eating (#53228)
This puts food you eat in to the stomach.
If you do not have a stomach you can not eat, if you try to swallow anything you will spew it out.

Changes to surgeries:

    Stomach pump can now be done on the living, and pushes out the reagents in the stomach.
    Blood filter is a new tool and cleans the reagents out of the body.

This also makes it so that reagents that do not metabolize can accumulate in the stomach reducing how much food you can eat.
2020-09-03 17:02:23 -03:00
Ghilker
37f849fb17 ZK-Lambda-Class Remade (#52941)
This PR adds the crystal invasion event, a new event involving the Supermatter and the monsters from within.
When the event starts there will be a message from centcomm announcing it, then the supermatter explode leaving a destabilized crystal that emits radiations and harmful gases; after a bit portals will spawn around the station, that will produce a number of monsters each. there are 4 types of waves and 4 types of portals
The waves are: Small, Medium, Big, Huge (each have different kind of portals that can spawn and different amounts too)
The portals are the same types of the waves, they differ from each other for the number of monsters that can spawn and the kind of monsters that can spawn (bigger portals spawn stronger monsters)
To end the event the players should stabilize the crystal by destroying the portals (for now are indestructible and they are disabled by using an anomaly neutralizer, might change that) and collecting otherworld crystals; then those crystals are to be put in the crystal stabilizer, an item unlockable in the tech tree. After this just inject the destabilized crystal with it and the remaining portals will close on their own (the spawned monsters will still remain tho so you have to slay them)

All the numbers are mostly eyeballed and could change if requested/with feedbacks
2020-08-29 23:56:40 -03:00
TemporalOroboros
6e950daccc Defines damage flags. (#53158) 2020-08-24 08:20:33 -03:00
NightRed
12f8b03249 Shatter glass by slapping the floor (#52916) 2020-08-18 22:40:07 -03:00
Timberpoes
19c3bbde31 Cleanup up all instances of using var/ definitions in proc parameters. (#52728)
* var/list cleanup

* The rest of the owl

* plushvar bad

* Can't follow my own advice.
2020-08-07 12:23:42 -03: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
MrMelbert
789aa2b6ba Adds an item proc for accidental consumption and implements it in food containers (bread, cake, cheese) (#51925)
* cronch monch ow, i'm dyin bros

* oopsies

* also should've removed that

* first round of fixes, thanks bros

* fk

* Some post cleanup

* ?

* if-else begone

* gotta sweep sweep sweep

* proper math

* Update code/modules/projectiles/ammunition/_ammunition.dm

Co-authored-by: ラッピ from PSO2 <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-07-20 09:40:46 -04:00
Qustinnus
ea9ad4ca17 kill featurecoders (#51319) 2020-05-29 13:17:42 +08:00
William Wallace
dee2db6873 remove unnecessary var/id from /datum/material (#51322)
* remove var/id from /datum/material

* nice commit message dot meme
2020-05-28 13:05:01 -04:00
Ghilker
9532dbd2a8 Hydrogen Gas (#50510)
* new PR no tgui bundle build yet

* tgui bundle built

* atmos.dmi conflict fix 2

* balancing

* tgui bundle fix
2020-04-20 14:47:22 -03:00
spookydonut
8dbf1cf4ec Changes to comply with GitHub TOS
Further changes to comply with the ToS

More ToS cleanup

Bye bye George Melons

Better to be safe than sorry
2020-04-14 21:24:50 +00:00
cacogen
6298203cf0 Material wall/floor and floor tile name/desc changes (#50203)
* Renames material "plating" to floor, changes material wall desc to match regular walls

* floor tile

* Custom descs for walls and floor tiles based on material

* material tile throwforce 1 -> 5

* switch order of material flags on material tile

* Removes material flag and check

- Simplifies floor tile desc throwforce check

* Moves the throwforce message to examine()

* Gives more nuance to tile throwforce examine() messages

* Simplifies tile examine throwforce code

- Fixes problem with radioactive item examine of outputting a single period when too far away
- Adds spans to tile throwforce examine and radioactive item examine

* logic 10

Co-Authored-By: Rohesie <rohesie@gmail.com>

* Adds throwforce message to examine return

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-05 21:31:42 -03:00
Ghilker
5d64a90618 Hot ice fix (#50353)
* fixed the burning oh the sheets

* finish touches

* properly fixes the hot ice component

* runtimes are bad

* Update code/game/objects/obj_defense.dm

Co-Authored-By: Rohesie <rohesie@gmail.com>

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-05 21:06:45 -03:00
EOBGames
6653315d22 Codename Cheesy Goodness: New Material Datums (#49941)
About The Pull Request

Adds a slew of new material datums. Included are bronze, runed metal, sand (made from sand blocks, made by using sand on a sink), sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
newmats
(from left to right: bronze, sandstone, sand, snow, bamboo, paper, cardboard, runed metal, and bone).

PIZZA
PIZZA!
Pizza is a special case: it's edible, and to craft it, you need pepperoni sheetzzas. These are made by using a rolling pin on a pizza slice.
Why It's Good For The Game

More mats datumised, and pizza is a good meme.
Changelog

🆑 EOBGames (Inept)
add: A whole bunch of materials are now datumised! Check out bronze, runed metal, sand, sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
/🆑
2020-04-03 16:57:31 +13:00
ArcaneMusic
a24f6da1e3 Items without Export Datums calculate their value based on material datums. (#49991)
* The exportlarity.

* Some clean up on cargo logs. May need tweaks still

* Whoops.

* Several Review comments and some cleanup on pricetags

* Review comments round 2

* Almost forgot

* further updates.

* Forgot one.

* Yeah that isn't doing anything.
2020-03-31 02:55:06 -03:00
Ghilker
22cf0dc785 Freon fixes, tweaks and balancing (#50153)
* balancing, fixes, tweaks

* freon specific_heat increase

* fix an issue with negative temperature

* changed HyperNob canister color

* done change request and tweaked more the hardcap limit
2020-03-28 21:31:35 +01:00
Ghilker
e7a22853f7 Addition of Freon (no removal, no fire) (#49821)
* Just freon addition, no removal nor fire. Maybe unbalanced

* fixes

* material properties addition, removed from the object itself

* added admin and game logging to hot ice

* Typos

* made the component more generic

* other typos, some fixes

* typos and balancing

* better code readability

* dunno

* merge error and travis build errors fixes

* asked changes, fixes and balancing
2020-03-20 19:08:50 -03:00
ArcaneMusic
d276d08725 Fixes a few mat datum issues. 2020-03-13 23:41:32 -04:00
Fikou
cb923d982d plastic is now a rigid material (#49838) 2020-03-10 18:35:44 +08:00
Qustinnus
4b2a8aebe5 [READY] Meat material & material datum turf support (#49402)
* temp

* meatwalls

* more

* adds sheetifier

* fix

* two

* mat texture + 4dplanner admin (#21)

* mat texture + 4dplanner admin

* keep together trait

* counter instead of trait

* finalizations

* woops

* fixes

* oopsie

* only set starting keep_together if necessary (#24)

* keep together as trait again

* remove false comment

* doc for TRAIT_KEEP_TOGETHER

* remove needless scoping

Co-authored-by: 4dplanner <3combined@gmail.com>
2020-03-04 23:18:08 +08:00
JJRcop
a1392847bd Remove ismovableatom macro (#9) 2020-02-17 15:03:16 +01: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
ArcaneMusic
b62d105228 Adds the Wood Datum Material, giving it to items made from wood. (#48820)
* Initial commit, wood datum mat. Works on my machine.

* Wait this makes baseball bats worthless nevermind

* Review changes, uses the define now, just don't know how bitflags work well enough for that other bit

* Adds the material dependance check

* FINE
2020-01-23 17:36:10 -05:00
Qustinnus
8337ccac44 Fixes integrity issues related to datum mats (#48586) 2020-01-07 10:02:18 -05:00
Emmett Gaines
12a4983b75 Adds a flag for bespoke elements (#47807)
* Adds a flag for bespoke elements

And applies it to firestacker

* Improves bespoke documentation
2019-11-25 17:53:00 +01:00
MrPerson
9e204afd58 Material fixes based on feedback 2019-11-01 03:00:05 -05:00