Commit Graph

171 Commits

Author SHA1 Message Date
LemonInTheDark aef7adfc3b Removes a source of ian harddels, keeps mcgruffs bed discription from getting overwritten at roundstart, moves the bed claiming feature to just the dogbed typepath, none of the subtypes, this applies to buckling too (#55158)
Removes a source of ian harddels, keeps mcgruff's bed description from getting overwritten at roundstart, moves the bed claiming feature to just the dogbed typepath, blacklisting subtypes. This applies to buckling too.

This means that a dogbed can only ever belong to one dog. Fuck you.
Remake of #54892, github doesn't like force pushes, not sure why
2020-11-26 21:10:01 -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
Yenwodyah 62311ee1a8 Fix royal alien pixel offset, change getter to variable (#54706)
Fixed a bug where royal aliens would have their base pixel offset applied twice, making them off-center (https://i.imgur.com/BtspaM0.png)

Changed the mob/living procs get_standard_pixel_x_offset() and get_standard_pixel_y_offset() to variables (body_position_pixel_x_offset and body_position_pixel_y_offset), to match the contribution guidelines.

Also corrected a few random things that weren't using base pixels but should have been.
2020-11-09 12:26:31 +13:00
Rohesie c55bb1b6c8 Basepixels (#54652) 2020-10-28 20:31:13 -07:00
Rohesie c07df08690 Standardizes attack chain signal returns and fixes a tk bug (#54475)
The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.

In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.

Additionally, fixed a tk bug reported by @Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack

Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.

Also cleaned some code here and there.
2020-10-21 05:42:38 +01:00
Rohesie 29ec525147 Implements timed_action_flags for do_after-like procs (#54409)
Originally I wanted to fix an issue where the `get_up()` `do_after()` would ignore the callback checks, because it was `uninterruptible`, so that made me refactor these procs to allow for higher granularity on checks and standardize behavior a bit more.
There's more work to be done for them, but one thing at a time.

* Removes the `uninterruptible` check in favor of the more granular `timed_action_flags`
* Cleans code on the `do_atom`, `do_after_mob`, `do_mob` and `do_after` procs to standardize them a little better.
2020-10-19 17:06:49 -04: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
L fb38066f09 bitmask 2020-09-26 12:14:27 -03:00
L 5a21a0d92f objs 2020-09-26 12:14:26 -03:00
KathrinBailey 3edffc9606 Chess, Sofas & Shutters - Furniture Update (#53861)
About The Pull Request
A series of changes bulked together to give players and mappers a little more freedom in their builds to make things look nicer.

Chess:
• Introduces a bunch of jumbo chess pieces that are craftable in-game. Sprites are my own.

Shutters
• Defines 100 integrity for the shutters and gives them an armor block so they don't inherit their stats from blast doors. This means shutters will no longer be just a reskinned blast door.
• Redid the sprites for the shutters. They now animate much smoother and look like normal slanted shutters. Their blinking light once animating is also easier to see.
• Added the window shutter; this is a normal shutter with a window so you can always see past it. I've used it in prisons and on armouries in the codebase I'm from to allow officers to see into the areas shutters are protecting, giving the area additional protection of having someone being able to look into it.
• Added radiation shutters. Maintainers feel free to question this. Through extensive experimentation, any rad insulation value between 0 and 1 does pretty much nothing to radiation. Numbers higher than 1 start multiplying it, negative numbers start reducing it. This will stop the radiation from a supermatter irradiating you only if you stand behind it. If you're not covered by the shutters or the shutters are open, they won't protect you at all. They also have their own sprite with a radioactive hazard symbol.
• Added the rad shutters to in-rotation maps on their supermatter engines and the windowed shutters to Metastation armoury.

Sofas
• Introduces the corporate sofa. A sleek grey sofa. The original sprite I ported from Hyperstation's files. I'm not sure where they got the sofa but I was told it was Eris. I didn't see it there but I didn't look super hard. I've updated the sprites on it to work with armrest sprite overlays.
• Ports the sofa sprites from Cit and the armrest sprite overlays. They look nicer than awkwardly floating over the sofa. The sofas are the same, they're just moved a little for the armrest to work.
• Makes the new corporate sofa craftable.
2020-09-24 05:24:06 -04:00
uomo a72c314661 You can buckle yourself or somebody else into a chair, if you're next to the chair. (#53255)
You can now buckle yourself, as well as others, into a chair as long as you (and the other person, if you're not buckling yourself) are Adjacent to said chair, and being on the same tile as the chair is no longer required.

No more god-awful pixelhunt to accomplish a very simple task.

(You can buckle yourself and others into chairs that you're right next to, instead of needing to be on top of the chair to do it.)
2020-08-30 23:42:45 -07: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
floyd 9b4a488216 no food stuff 2020-08-20 23:36:18 +03:00
Rohesie b0726e032b Icon smooth refactor (#52864)
bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.

    canSmoothWith list turned into a bitflag list.

    smoothing_groups list added to substitute the type path list.

    smoothing procs turned into atom procs, refactored and optimized a bit.

    smooth directions redefined in order to fit in 8 bits for a future smoothing system

    some variable names changed, foreseeing a second smoothing system

    SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.

    SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.

    Does very minor code cleanup.

    Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.

    Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.

Could be tested a bit to see if I missed any icons not properly smoothing.
2020-08-13 14:03:49 +12:00
uomo 52a090af65 Consistency for station pets. (#52717)
* Station pets!

* Makes Lia and Sgt Araneus actual subtypes.

* Fixes some vars.

* Turns on AI for Cayenne and Lia, makes Lia neutral faction.

* Gives Lamarr a description.

* Pettable status and emotes for HoS and syndicate pet..

* Tom the mouse consistency.

* Comment correction.
2020-08-10 17:46:03 -03:00
Rohesie cb9f81e43c Renames smooth var to smoothing_flags (#52427)
* smooth_flags

* SMOOTH_FALSE

* smooth_flags
2020-07-29 10:19:23 +02:00
nemvar 6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00
Cenrus 0411342ecc Fixes right pew name (#50683)
About The Pull Request

Fixes the right wooden pew end name
Why It's Good For The Game

discrepancy detected
Changelog

cl
fix: right pews are no longer left pews.
/cl
2020-04-28 12:48:20 +12:00
Fikou a2de4d3546 you can now make shuttle seats with titanium (#50455)
* adds shuttle seats to titanium recipes

* shuttle seats now deconstruct into titanium
2020-04-20 02:07:29 +08:00
Timberpoes a74cf4789f Fix chair examine edge case (#49827)
* Fix chair examine edge case

* Modernising chair code

* Dynamically generate examine text from source object

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

Co-authored-by: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-03-10 14:08:41 +08:00
spookydonut beca456c0f Add new lints (#49751)
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-03-09 22:13:48 -07:00
Emmett Gaines ab3a127295 Makes the global materials lookup lazily initialized 2020-02-03 10:17:13 -05:00
Qustinnus 8337ccac44 Fixes integrity issues related to datum mats (#48586) 2020-01-07 10:02:18 -05:00
ArcaneMusic 39b58f1edc Adds several more uses for plastics (Trinkets, Trash, Decor, and Killing the Environment) (#48337)
* Initial Commit, Plastic Boxes and Soda Rings. Basic carp interaction.

* Beads, trash created from breaking plastic, carp eat plastic properly.

* Cleans up sprites, adds designs to autolathe, and adds plastic plants

* Icon Conflict more like Ion Comblict because I can't spell

* Oh neat, there's already a party crate. Added Beer/Soda 6packs to the crate, adjusted price accordingly.

* Aaaaaaaaaa runtime loop.

* You win this round travis.

* Makes the in-hand sprite the soda can sprite because honestly it's close enough don't @ me

* Typo.

* Merge conflict, style changes, FINE CARP DON'T BREATHE.

* BEGONE CONFLICT BEGONE FROM ME
2020-01-03 02:13:43 +01:00
spookydonut 2591ce17a6 Travis EOF newline detection v3 (#47539)
* scream

* aaa

* aaa

* new one
2019-11-04 19:16:50 -08:00
ArcaneMusic 6e238392bf Adds several different uses for plastics (Cups, Utensils, Folding Chairs, Station Signs) (#47486)
* Initial PR, Cups, Utensils, Signs, Chairs

* Endline fixes for travis, adds plastic utensils to the initial node

* Makes bar invisible, addtimer added, fixes potential dmi/dm conflict

* Fixes Merge conflict take 2

* Wraps the chair snapping proc in invoke_async

* Cleans up Async Call a smidge
2019-11-02 20:30:35 +01:00
MrPerson a0753d6ca3 Improved material colos
Gave better color matrices to some materials. Simplified some of the existing matrices down. Gave uranium a standard color since it didn't need a matrix. Made bananium obnoxiously bright. Made gold slightly less bright. Made diamonds somewhat brighter. Made glass actually look like glass, it was almost grey before wtf.
Improved some of the greyscaled sprites used by materials, many of them were too dark and/or straight reused from other things. Some of them weren't even grey come on guys.

I'll add some pics later.
2019-10-30 23:37:31 -05:00
kingofkosmos 52325eda25 Merge branch 'master' of https://github.com/tgstation/tgstation into misc_span_fixes1
# Conflicts:
#	code/game/machinery/Sleeper.dm
#	code/game/machinery/doors/airlock.dm
#	code/game/objects/structures/beds_chairs/chair.dm
#	code/game/objects/structures/lavaland/geyser.dm
#	code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
#	code/modules/antagonists/clockcult/clock_mobs/_eminence.dm
#	code/modules/paperwork/contract.dm
2019-10-17 06:02:06 +03:00
KomradeSpectre 9ff071af60 Clockcult Removal 2019 (#47057)
* Nanotrasen fires the Wave Motion Gun at the Clock Cult

* Fixes a random changelog appearing from the reebe void.

* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.

* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.

* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron

* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
2019-10-15 10:13:41 +02:00
Qustinnus 908ccfe7b3 Fixes some material datum bugs (#47049)
* fixes

* chair

* ass

* fixes

* dumb

* done

* fix
2019-10-14 00:36:56 -04:00
kingofkosmos 280d416d4f Adds missing spans, missing periods and missing span endings. Also changes spans to suit the situation better. 2019-10-12 19:34:11 +03:00
Qustinnus a394ccdc2b Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)

this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.

also applies materials to everything, with fixes, which can close #46299
2019-10-08 11:06:02 -04:00
81Denton 23123404f4 Chameleon projector exploit fixes (#46827)
* Stops Chameleon projectors from scanning stealth implant boxes

* Also stops holosign scanning

* Dab on mimes

* Replaces mime typepath checks with alpha/invisibility checks

* Alpha/invis checks

* Removes typepath check
2019-10-01 16:56:03 -04:00
variableundefined 900483ba44 Remove redundant structure/chair/wood/normal typepath (#46443) 2019-09-15 00:29:23 -07:00
kingofkosmos 8358169b8e New 'hear' span class (#46369)
* Reverts italics-span back to no color.

* Cleans up many extra spaces and indents.

* Adds 'hear' span class.

* Replaces all 'italics' used in heard messages with 'hear'.
2019-09-14 23:56:34 -07: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
tralezab 4fa0d761a8 song for this fix: Enigma - Modern Crusaders (#45936) 2019-08-16 21:12:21 +02:00
nemvar 0cb92c724a Fixes that one issue (#45717)
You can no longer pick up sofas
2019-08-05 11:50:22 -07:00
Qustinnus b33d1c49a3 [READY] Floydmats (Datum materials) & custom toolboxes (#45118)
* Initial work

* more

* ass

* wsedfwedff

* asss

* test

* stuff

* fuck

* sss

a

* kms

* asdadwedwdfwefwef

* start

* test

* dwwdew

* ewefwfef

* Redemption machine (#8)

* Redemption machine

* Removes debug messages

* changes

* fuckmyshitup

* coin mint works with new material shenanigans (#10)

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

* woops

* furnace (#11)

* autolathe manufacturing of toolboxes

* eggs in a basket

* some small changes

* matcolors

* documentation

* more documentation and effects

* done

* Color man bad (#12)

* fixes designs

* ass

* more fixes

* fuck me

* firestacks adder

* epic fixes

* fixes designs

* DONE DIDDILY DOO

* removes category macro

* ch-ch-ch-changes

* fixes some stuff

* Fixes display of ore values (#9)

* Redemption machine

* Removes debug messages

* Re-adds value display

* Replaces the fire stacking component with an element instead (#13)

* fixes examine

* fixes ligma bugs

* double ligma boofus

* fix

* misses some defines

* fixes ORM

* Update code/datums/components/material_container.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* fixes

* Makes glass objects weaker (#14)

* Makes glass objects weaker

* uses correct proc

* fixes shit

* honk honk

* better

* oh shit oh fuck

* fixes

* fuck ORMs

* fixes the biogen

* documentation

* ass (#15)

* component

* changes

* ass

* ass

* doc

* Auto stash before merge of "materials-plasmacomponent" and "origin/materials-plasmacomponent"

* fixes rounding

* fixed
2019-07-24 11:27:01 -04:00
bgobandit 87006c3c6d Gives the mime two new spells: Invisible Chair and Invisible Box. [READY] (#44494)
About The Pull Request

    Adds two new mime spells to the game. Both work like the invisible wall, i.e. they spawn an invisible item for a limited amount of time:
    Invisible Chair: Summons a chair and has the mime sit in it. Perfect for crowded shuttles or staying put.
    Invisible Box: Everyone's favorite stock mime routine! The mime summons a box (invisible to everyone but him, although you do get the message once spawned) that can store small items. When it disappears, the items are dropped.
    To prevent massively overpowered mimes, the mime gets a spellbook at roundstart from which he can choose only one out of the three mime spells.

Why It's Good For The Game

The mime doesn't get nearly as much cool stuff as the clown, and these are pretty common pantomime routines to riff off.
Changelog

cl
add: After receiving many complaints about mimes who never pantomime, Nanotrasen has liquidated its mime personnel and hired new mimes who know more routines.
add: The mime gets the choice of two new spells: Invisible Chair and Invisible Box. They work much like the Invisible Wall spell does and disappear after a short span of time. The invisible chair can be buckled to like usual chairs; the box works like a standard inventory box item.
tweak: Mime spells are now granted via a spellbook that starts out in the mime's inventory. Mimes can choose one of these three.
/cl
2019-06-23 13:24:00 +12:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
ShizCalev c1f7d01334 Repath /obj/structure/chair/office/dark to /obj/structure/chair/office (#43269)
The parent was just a dummy path, no sense having it really.
2019-03-26 20:43:30 -07:00
4dplanner 72fc9bb043 Fixes wheelchairs [TESTMERGE ME :)] (#42894)
Changelog

cl
fix: Buckle objects can now properly specify lying angle
fix: Wheelchairs and other such vehicles let you use UIs even if your legs don't work
fix: You can now pull objects while in a wheelchair even if your legs don't work
fix: You no longer have a chance of sleeping upside down in a bed
tweak: No longer randomises lying direction a second time on fall
/cl

code: simplified can_stand code

fixes #41703
2019-03-17 23:22:01 +13:00
Caiggas 0979aa0cd3 Adds wooden chapel pews (#42712)
* Adds wooden chapel pews

This adds wooden chapel pews to the game. They function much like ratty couches, in that there are several different pieces which can be mixed and matched to make different length pews. They can be built from 3 wooden sheets.

The change to sheet_types.dm adds the pew crafting recipies to the end of the wood sheets crafting list.

The added file pew.dm  is the code which makes the pews work.

The added file pew.dmi is the sprites for the pews, including the overlays for the armrests.

the change to tgstation.dme is a single line which includes pew.dm.

This is my first PR ever, so please let me know if I made any mistakes in approved process.

* merged pew.dmi into sofa.dmi

As per the instructions of several commenters, I merged pew.dmi into sofa.dmi. pew.dm has been updated to reflect this.
2019-02-11 13:43:32 +13:00
nicbn c4213f13ab New() -> Initialize() (#41876) 2019-01-03 18:56:15 -08:00
kevinz000 45b5bc20fb Adds sofas 2018-12-02 10:21:19 -08:00
swindly 45e67977d7 makes chairs drop rods 2018-10-13 20:49:47 -04:00
kevinz000 3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00