Commit Graph

168 Commits

Author SHA1 Message Date
SkyratBot
b7122f2d6e [MIRROR] Converting art component into element. (#1562)
* 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.

* Converting art component into element.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-04 00:35:26 +00:00
SkyratBot
98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* Enforce preserving parent proc return values across ui_act call stacks (#53964)

All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot
93534e18e1 [MIRROR] Improves cardboard box consistency. (#717)
* Improves cardboard box consistency. (#53525)

* Improves cardboard box consistency

* Also gives them cardboard datum mats.

* Improves cardboard box consistency.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-09-09 08:29:32 +02:00
SkyratBot
8177144397 [MIRROR] Bring back painting arbitrary objects with spray cans (#570)
* Bring back painting arbitrary objects with spray cans (#52936)

Brings back the behavior removed from #52186 with cleaner code.

Differences in the code:

    No more explicit type checks in the spray paint code, other than a broad isobj.
    Checking for dark colors is now based on luminosity, rather than unscientifically summing all the RGB components and checking an arbitrary number.
    Removes the paintable component. This was used on one item, and its behavior is replicated in the spray can.
    Instead of checking for windows specifically and changing opacity through there, atoms can now specify through init flags whether or not they allow dark colors. Windows set this flag.
    Adds a COMSIG_OBJ_PAINTED signal. Windows use this signal to dynamically update opacity, just like how they did before.

This was a fun cosmetic feature that I'm not sure anyone had a problem with. The original reason for removal seemed to be because of code quality, and not because of negatives about the feature.

Makes canvasses unpaintable

* Bring back painting arbitrary objects with spray cans

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-30 05:25:02 +02:00
SkyratBot
a5306924c3 [MIRROR] Makes reagent exposure methods bitflags (#527)
* Makes reagent exposure methods bitflags (#53164)

* Makes reagent exposure methods bitflags

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-26 02:37:07 +02:00
SkyratBot
49f7becb88 [MIRROR] Personalized combat messages part 2 (#334)
* Personalized combat messages part 2 (#52890)

Adds more "personalized" combat messages for all participants in a fight: the attacker, the victim and the spectators

* Personalized combat messages part 2

* Update misc.dm

Co-authored-by: kingofkosmos <riki.sundberg@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-08-14 23:29:15 +02:00
SkyratBot
724f9632b5 [MIRROR] [READY]syriniver nerfix / syringe projectile fix + various fixes requested by maintainer (#190)
* [READY]syriniver nerfix /  syringe projectile fix + various fixes requested by maintainer (#52019)

* syringe projectile fix

* greenman review

* oversight fix

* [READY]syriniver nerfix /  syringe projectile fix + various fixes requested by maintainer

Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
2020-08-04 12:18:41 +02:00
Mickyan
9bd9672153 Removed spraycan ability to paint any object (#52186)
* begone

* dont need this
2020-07-20 16:33:47 -03:00
Aleksej Komarov
0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
ShizCalev
558a15df6a Improves feedback when tagging an area that's already tagged by your gang (#52205)
* Improves tagging feedback

* instead
2020-07-14 20:12:24 -04:00
TemporalOroboros
e78d82592f Refactors reagent exposure code (#51396)
* Refactors reagent exposure code

Removes istype clutter. Renames a few procs

* == TRUE

Adjusts COMPONENT_NO_EXPOSE_REAGENTS bitflag offset.

TODO: Remove comment

Co-authored-by: Rohesie <rohesie@gmail.com>

* == TRUE

Adjusts COMONENT_NO_EXPOSE REAGENTS bitflag offset.

Removes comment

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-06-21 20:03:19 -03: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
actioninja
b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
Ghom
d3d805fa2e The spraycan color input can now be triggered with ctrl-click while it's on your person. (#50300)
* force push

* Update crayons.dm
2020-03-31 16:19:01 +08:00
Iamgoofball
3203f19290 The Families Gamemode. Home. At least it was 'til I fucked everything up. (#49274)
Adds the Families gamemode to the codebase. In this 1 hour showdown, 
multiple criminal families are placed onto the station with their goal 
to rack up the most points by the end of 1 hour. At which point, the 
Space Cops hit up the station to crack down on the family activity. The 
severity of the Space Cops is based on how much carnage and murder the 
families have committed.

## Why It's Good For The Game

With an actual official medium/heavy RP server, and the codebase taking 
a much harder swing towards heavier consequences for death, a more 
player focused gamemode with a unique swing on teamwork, the concept of 
what exactly is an antagonist, and trust/paranoia will do wonders to 
help improve that atmosphere.

Previous tests went extremely well(when administrators weren't 
intentionally sabotaging it by welderbombing families as the Head of 
Security every single round immediately with no escalation), but 
suffered from "this just isn't a gamemode for no RP servers like /tg/".

However, /tg/ is now an RP server.

Get ready to rep your family.

## Isn't this just Gang?
Heck no. Only thing similar is tagging turf and the fact criminal 
groups are involved. This mode is completely different otherwise.

## Heck yeah, where do I sign up?
Ask a family member where their Signup Point is, and then simply click 
on it with an open hand. You'll be signed up for the family instantly, 
and given some sick threads and a spraycan for tagging.

## How do I rep my family?
Wear your gang's uniform or colors similar.

## What does it mean to roll with a crew?
Travel in a group of four or more for bonus points towards your gang.
However, you receive less for having eight or more, so be careful. Try 
to spread your crews out!

## I'm an X, what do?
Gangster: Yeah, go do whatever. Wanna backstab your gang? Go for it. 
You can switch sides at any time by clicking on an enemy gang's sign up 
point. Wanna murder some snitch because they ratted you out to the 
pigs? Do it. Wanna pressure the locals into supplying you with goods to 
export? Emergent gameplay.
Civilians: Wanna join a gang? Go for it. Gangsters probably shouldn't 
be arbitrarily murdering you, but if you're repping someone else's 
colors, don't expect to be given a free pass. After all, uniforms are 
the only way to really identify a gang member.
SPACE COP: Get rid of all the gangsters. Secure the station. Protect 
the law. Uphold the law. Eat donuts.

## No huds? How can I tell if someone's part of my group?
Tough shit, man. I hope you like trust.

In short, this gamemode will be a fun exercise in how far the 
playerbase can go in regards to trusting eachother and unifying to meet 
a common goal for their group with no rules, gameplay mechanics, or 
anything actively forcing them to work together.

## How do I know if someone is a gangster?
1. Are they wearing a gang uniform/color?
   If yes, they're probably a gangster.
   If no, they're probably a civvie.
2. Are they attacking gangsters?
   If yes, they're probably a gangster.
   If no, they're probably a civvie.
2020-03-08 18:33:54 -07:00
ShizCalev
7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
MrPerson
f7eb2c905b Unicode awareness Part 2 -- copytext() (#48512)
* Unicode support Part 2 -- copytext()

This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.

I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````

with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.

This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.

* Makes the code functional

* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.

* Removes ninjaspeak since it's unused
2020-01-18 13:07:22 +13:00
MrPerson
e22560a346 update_icon() improvements (#48669)
* update_icon() improvements

Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().

The rest of obj/item fuck it

* Suggested fixes, also passes the linter

* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON

* Actually this is better

* Signilzes datum/action to update its icon when its connected item does.
2020-01-11 23:46:43 -05:00
kingofkosmos
228b4282ca Merge branch 'master' of https://github.com/tgstation/tgstation into misc_span_fixes1
# Conflicts:
#	code/game/objects/items/devices/PDA/PDA.dm
#	code/modules/mob/dead/new_player/new_player.dm
2019-10-13 15:21:17 +03:00
Ghom
2821303c74 Stops non-alphanumeric graffiti decals from being named "letter". (#46979)
About The Pull Request

Does exactly what it says on the tin.
text2ascii accepts text strings with length higher than one character as first arg, so we need to check against that beforehand.
Why It's Good For The Game

Fixing a (likely unreported) mild issue with the game.
Changelog

cl
fix: non-alphanumeric graffiti decals will no longer display as "letter".
/cl
2019-10-13 16:42:35 +13: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
81Denton
3863d6b4d5 Fixes spraying/painting over dark paint (#46854)
* Fixes spraying/painting over dark paint

* Blacklists infinite spraycans from pyrite slime extracts
2019-10-08 21:50:09 -07:00
carlarctg
88c6761316 Crayons have powder back, but it doesn't color anymore (#46715)
* cray

* things gatrg yrty rthh

* things fixed

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

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

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

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

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2019-10-06 01:38:16 -04:00
Rob Bailey
8a87fc5065 update fix (#46832) 2019-10-05 18:48:54 +02:00
Akrilla
1fe0d9a697 Spray cans can't be set to extremely dark colours (#46213)
* no dark

* lighter

* limit only affects objs

* fix
2019-09-03 01:34:40 -04:00
Akrilla
197fd1056c Removes crayon eating colour change (#46210)
* better colours, no eating

* renamed

* powder

* missed renames
2019-09-03 00:30:04 -04: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
Rob Bailey
26b04ede42 Obliterates item_color: new washing machine functionality edition (#45961)
About The Pull Request

Completely removes item_color and the clusterfuck of bad programming it caused.

In places where item_color was used for entirely unique purposes it was split off and renamed to a new var on that typepath only, or refactored so it wasn't needed

In places where item_color was used as a dye color, it was converted to the new dye_color var

In places where item_color was used as the worn overlay it was removed and instead now icon_state is always used as the clothing overlay.

A new mob_overlay_icon var was added for manually setting where the mob overlay icon path is for specific items.

Moved some mob overlay files relating to clothing to their own directory as well for organization purposes.

Totally refactors washing machines, instead of the horrible abortion that was iterating through the typepath it now uses a registry of dye results.

Some bonus functionality to come out of this:
the washing machine now supports arbitrary dye colors.
Why It's Good For The Game

It's been 4 years since the "this should be deprecated soonish" comment was added, and this var is a shitpile of confusion if you just trace the usage of it.
Changelog

cl
add: Washing machines now support arbitrary dye color
add: Washing machines now dye nearly every item.
refactor: lots of backend changes to clothing overlays, report any issues
/cl
2019-08-26 20:38:11 +12:00
tralezab
e9988dffba whoops 2019-08-15 12:33:29 -07:00
tralezab
81529e49fe song for this fix: Seiko Matsuda - Aoi Sangoshou 2019-08-15 12:30:13 -07:00
tralezab
270f349a58 removes the stun from spraycans (#45048)
* removes stun from spraycans

* compiles

* now flashes the color you were sprayed with
2019-07-09 11:20:24 -04:00
nemvar
23648022c7 Gives tagger the art component (#45046)
* freespraycanbegone

* crayon

* Crayoncolor

* atomized
2019-07-08 14:02:15 -04: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
vuonojenmustaturska
58935e41c9 Fixes and speedups to spraycans/crayons (#44561)
* spraycan stuff

* tgui.js again

* Update text.dm
2019-06-18 15:25:49 +02:00
Emmett Gaines
c3f95024b2 Gets rid of the GetComponent macros (#44220)
* Removes the GetComponent macros

* Regex replacement for GET_COMPONENT

Search: `GET_COMPONENT\( *(.+?) *, *(.+?) *\)`
Replace: `var$2/$1 = GetComponent($2)`

* Regex replacement for GET_COMPONENT_FROM

Search: `GET_COMPONENT_FROM\( *(.+?) *, *(.+?) *, *(.+?) *\)`
Replace: `var$2/$1 = $3.GetComponent($2)`
2019-06-04 17:39:58 +02:00
vuonojenmustaturska
6a106bc877 Remove reagent ids and use typepaths where applicable (#44166)
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
2019-05-31 21:57:26 +12:00
Akrilla
2d32be1904 Small storage refactor and examine change (#44109)
* Removes repeated line

* Description change for clothing items that can only store specific items

* Get all children of can_hold listed items.

* can_hold only needs the top most item, child items are dealt automatically

* cant_hold related change

* Text change

* Moves the item check to the line above, and removes the current.

* Same changes, but to belt/wallet code.

* Change to using signals instead

* Generic signal on datum/topic

* Cache typecache, and small signal change

* Small argument tweaks and remove unneeded lists

* Change to proc

* Change call can_holds/cant_holds to use new proc

* initial, and cleaned up display code

* Null check
2019-05-30 14:20:29 -04:00
vuonojenmustaturska
fb45b7a017 Turns trait accessors into defines, fixes some bugs (#43820)
It's free performance.
2019-05-06 19:44:05 -04:00
AnturK
0c25ec40a5 Fix spraycan changing opacity and paint remover not working on objects (#43358)
The paint remover change is technically a buff but it was kinda
inconsistent with all other color removal sources.
2019-03-27 21:53:14 -07:00
ShizCalev
cf701f94fc Improve rainbow crayon/spraycan click code (#43146) 2019-03-17 15:02:14 -07:00
Mickyan
ca84639286 Allows coloring objects with spray cans (#42327) 2019-01-16 16:43:04 -05:00
ShizCalev
87faef9019 Adds logging to reagent transfers 2018-10-31 08:36:21 -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
Mickyan
c6803492ab Add new graffiti (#40559) 2018-09-29 19:47:52 -07:00
vuonojenmustaturska
c704e58794 yeah maybe with this, the world will actually init 2018-09-11 18:42:59 +03:00
vuonojenmustaturska
c15f7edbbf i opened the wrong file by accident, this is the result 2018-09-11 17:59:51 +03:00
81Denton
d8393bed10 Add examine descs, air alarm construction descs (#39949)
A bunch of items were missing examine messages about their alt+click
functionality, I added them. Also, construction step descs for air alarms.
2018-09-05 23:06:23 -07:00
XDTM
3f32f8c110 [Ready]Logs when speech is forced by an external factor (#39964)
* Logs when speech is forced by an external factor

* makes say args uniform

* fix
2018-09-03 11:38:16 +02:00