Commit Graph

667 Commits

Author SHA1 Message Date
MrPerson
12eecfd181 Makes raw HTML and browser datum popups UTF-8 aware (#49066)
* Makes raw HTML and browser datum popups UTF-8 aware

Admin menus specifically really shouldn't break just because you named some guy "☺s the Clown"

* Fixed new_player.dm

* Fucking filing cabinets
2020-02-01 22:14:31 +01:00
Bawhoppen
f104cfad2b suggested changes 2020-02-01 00:25:39 -06:00
Bawhoppen
f09e1bc3d4 fix 2020-01-23 19:23:34 -06:00
MrPerson
26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -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
AnturK
bca492823a Runtime fixes: Episode 113 (#48814)
* Fixes mood nanite settings

* Fixes yet another quirk runtime.

* Ugly paperplane fix

* Abductor armor runtime.

* cablecutting runtime

* Nukeop death runtime (were those spec deaths meant to fire on gibbing too ? )

* headpike runtime fix

* ERT outfit runtime

* bonfire oxygen runtime

* Rest of nanite updates
2020-01-16 11:16:37 -05:00
ArcaneMusic
65485b9c54 Adds a new Tech to the B.E.P.I.S., Specialized Engineering, and a new Minor Reward. (#48507)
About The Pull Request

Round 2.
image
Adds a new tech to be unlocked within the B.E.P.I.S.'s major techs, called "Specialized Engineering". Within that tech are 2 new items, Heat Resistant Rods, and the Tinker's Gloves, as well as a new minor tech, the Survival Pen.
Heat Resistant Rods:
Have you ever wanted to expand Lavaland Base? Build a lava fortress worthy of your magnificence? Well, now you can! Using Heat Resistant Rods, you can make a catwalk to cross lava tiles, as well as build atop lava, without messy methods like using the RCD!
Tinker's Gloves:
This just in engineers, insulated gloves have new competition in town! The Tinker's gloves are complicated, overdesigned gloves that, while not very shockproof, allow for faster wall girder construction. No longer will you need to die of old age walling off an area when you're out of RCD ammo! Warning: This product contains no likeness to clockwork gauntlets used by the extinct cult of Rat'Var, and any such similarity is by no means intentional.

Survival Pen:
Have you ever been stuck on lavaland, trapped by your survival pod with just a few chairs, some titanium walls, and walls of ash closing in on you? Well THANK GOD you have your Rockbreaker brand Survival Pen! Allows for basic mining operations, and is portable like a standard pen!
BUT WAIT!
A watcher blocks your path. Thankfully, your expensive, diamond encrusted pen isn't just good for being the world's slowest pickaxe, it's ALSO coated in the one thing watchers crave: DIAMONDS. Toss the pen to draw the watcher's attention elsewhere.
Why It's Good For The Game

Starts to fill our B.E.P.I.S. Major Reward Techs, as intended, and fills a niche that doesn't get much play nowadays: Building on Lavaland. This was something I've had in the back of my mind since we did the first tests of the Disaster gamemode a few months ago, so each item here was made with the intention of improving the mining base should the station become un-livable. Lava-Proof Rods are beneficial in that you'll be able to cross and build over lava by the mid-end of the shift. RCDs still work as usual, but this way you won't have to worry about getting specialized engineering equipment as a member of cargo or science. The tinker's gloves are basically a variant of the nitrile gloves, but they grant a speed bonus to adding plating to metal girders, so that some kind of functional alternative to giving every engineer insulated gloves.
Survival Pens are quite honestly very niche, but getting dumb pens with extra functionality is a tradition of trade shows all over the world, so it feels right at home as a minor reward.

Also, does a tiny change to the doe sprites, just to look a little bit less old.
Changelog

cl
add: A new Technology has been implemented as a major reward in the B.E.P.I.S., Specialized Engineering, to appeal to engineering utility and new construction horizons.
tweak: Watchers will now actively consume diamond ore left lying around, alongside the new survival pens.
/cl
2020-01-14 11:21:40 +13:00
ArcaneMusic
e39eea7b17 [Ready] Adds a new RnD method, the B.E.P.I.S. (#48040)
* Squashes Commits, has BEPIS, Techs, TGUIs, Rewards, and fixes.

* Makes rewardable techs a variable in all_nodes, and removes RnD Points rewards from the minor reward pool.

* Fixes conflict with pubby and beam icon.

* Review comments and basic cleanup A

* Review Comments and basic cleanup B, also cleans up icon states to work fluidly.

* Map Update

* Indentation, flipped Update_decal_path, and rebuilds tgui

* One last clean up of icon_state, adds the last bit of changes from review, and that should be everything.

* Alright last change for real I swear 105%

* Last change, adds simple sanity check for silicons.

* Moved Human and card variables into ui_interact.

* Fixes map conflict

* Alright Review Round 2 Part A, Fixes Grammar, splits polycircuit into it's own file, UI QOL improvements, Withdrawing credits, changes from arbitary values on the mini RLD, etc.

* More review bits, Part 2:B. Easier returns for less processing, Defines, fixes the merge conflict and updates the UI with new buttons. Just need to figure out Button Mapping for the UI and Duplicate prevention.

* Implemented duplicate tech protection. Yeet.

* Get back in there you

* Alright why are you breaking on me god damnit.

* It's optimized, closer to god, nearly perfect, all together it's ready to ship.

* Cleans up all of the decal painter, shorter, cleaner, works around all the turf_decal quirks.

* Tab spacing on github will look fucky

* More review changes.

* Uses use_power == ACTIVE_POWER_USE instead of powered except for the UI
2019-12-25 23:48:28 +01:00
bawhoppen
3fabcd89dd All small objects can now fit into filing cabinets (#48353)
Better to have them be able to hold anything that is reasonably small, 
rather than a pre-defined list of papers, folders, and photographs. 
This will work well for things like pens, ID cards, tapes, or even 
secret booze, which would all rightfully belong in an administrator's 
filing cabinet. Also could be useful for future away missions, etc.
2019-12-23 11:05:25 -08:00
Fel
a5b0273e2f Adds a Charcoal Stylus (#48219) 2019-12-13 10:51:28 -05:00
Emmett Gaines
5481515dff Removes the non bitflag slot defines (#47742)
Removes the non bitflag slot defines
2019-11-17 17:52:11 -08:00
Firecage
ff42a1590b Ports carbon paper from Bay. (#47691)
* Ports carbon paper.

* Can't fold stacked carbon paper into paperplane.

* Changes some update_icon()'s into update_icon_state()'s

* Does as Action asked.

* Return is returned to the box from whence it came.
2019-11-14 02:56:35 -08:00
spookydonut
dd6fa5eded More spawn/sleep removals (#47634)
* remove more spawns

* more

* more

* varsets

* oops

* unfuck this
2019-11-13 03:07:59 -08:00
spookydonut
2591ce17a6 Travis EOF newline detection v3 (#47539)
* scream

* aaa

* aaa

* new one
2019-11-04 19:16:50 -08:00
ArcaneMusic
f796acbaf8 Adds a new Lavaland Ruin, the Elephant Graveyard (#47325)
* Initial Commit, Features the Map, Map specific files, changes to a metric ton of icons, etc.

* Fixes merge conflict, actually adds the map

* Spelling is hard Part 1

* Alright, steps are bad. Got it.

* Clean slate, please pretend to compile

* dme issue

* Fixes it for lavaland elites PR

* Removes the last dirty step_x, removes duplicate file, makes treavor happy

* Fixes some newline issues.

* Fixes some types, spawns skeletons in select graves since mob_spawns kept shoving them outside.

* Makes bone statues and shovel actually craftable, cleans up some comments.

* Properly defines muddy paper, updates map, fixes a few more typos.

* Prevents some future turf atmos issues, finally touched up the two skull sprites.

* Refactors strong mineral drops, cleans up some duplicate code, prevents washing hands with OIL

* I swear officer, i'm a native english speaker, fixes remains dropping correctly, un-nests my Ifs further.

* Oil well now covers target in oil when interacting with it.

* Refactors sink deconstruction a bit, oil wells can't be constructed with a wrench.

* Cleans up some atmos, and adds a return

* Adds subtype of remains for use in graves, move their spawn to src, not loc

* Moves around remains spawn, gets rid of untouched var
2019-10-26 21:41:43 +02:00
81Denton
6b1161ecd9 Cleans up revive related procs (#47025)
* Cleans up revive related procs

* h

* fuck

* Fixes proc arguments

* Further fixes

* Unfucks line endings
2019-10-22 15:16:13 -07:00
Krysonism
59a0440acf Da white kit nerf update: sutures and regen mesh. (#47092)
* Base

* epic

* bandaid begone

* Documentation

* Bugmash

* Replaces bruise packs and ointment in on maps.

* Fixes for testmerge

* new line

* Dirty web

* Nasty webedit

* med suture is now a chemical recipe, adds cellulose reagent
2019-10-20 13:18:42 -04: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
Mike Long
e1034675f4 Record the number of infernal contracts of each sort signed. This should give a bit more information for a potential future rework. (#47050) 2019-10-15 20:57:33 -04:00
spessbandit
1d1da3a961 refactors event announce chance (#47085) 2019-10-15 10:15:18 -04:00
kingofkosmos
259626a8b4 Removes excess spaces in messages. 2019-10-13 14:36:43 +03: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
Qustinnus
81c3d92129 Adds pick-up, drop and throw sounds for items. (#46677)
* finishes up

* adds sound volumes

* woops

* forgot to ctrl + s

* cloth

* smh

* done
2019-10-04 18:53:09 -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
nemvar
27dbe6cf0c Fixes proximity checks (#46652)
* Fixes proximity

* shock hand no longer calls parent

* actually lets just let it do what it does.
2019-09-22 03:03:45 -07:00
spookydonut
116958444b Replace some sleep()s with timers (#46631)
* replace some sleeps

* ooops callback typepath

* change per review
2019-09-22 03:01:32 -07:00
oranges
83440d85c7 User input can no longer set the browse window name for paper (#46580)
This was using a user managed input, and in the case of the input being
html encoded < and > this was breaking goon chat (by appearing to
possibly browse the html to goonchat, instead of it's own window)

Using an md5 encoded version of the name removes any possibility of
exploit and fixes the reported issue
2019-09-18 07:22:47 +02:00
spookydonut
860985f193 Changes obj_break on machines to use parent calls (#46485)
The way stat |= BROKEN was done was a mess, this makes everywhere use obj_break with proper parent calls and adds a signal for when a machine enters the broken state.
Why It's Good For The Game

Better code quality, more signals.
2019-09-16 16:45:24 +12:00
AnturK
7bd1db3e34 Adds simple voting box. (#46153) 2019-09-02 23:55:31 -07:00
cacogen
37b3064eaf Fixes HoP ticket messages not being visible unless on the ground (#45979)
About The Pull Request

The messages alerting people that they were next in line or of a ticket's destruction were only visible when the tickets were on the ground. Not even the holder could see them. This fixes that. I'm not confident in the method though.

This also enables the HoP to delete the latest ticket, instead of having to bin it because he can't delete it until a new ticket is created that he can increment to.
Why It's Good For The Game

Makes the thing work as intended.
Changelog

cl cacogen
tweak: HoP can now delete the latest ticket
fix: HoP ticket messages should now be visible when the ticket is held
/cl
2019-09-01 19:55:35 +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
Akrilla
c5b11dc283 Adds cancel buttons to inputs (#45825)
About The Pull Request

Adds cancel buttons to input boxes that didn't have them before.
Why It's Good For The Game

Good UX.
Changelog

cl
add: More cancel buttons.
/cl
2019-08-21 11:25:41 +12:00
cacogen
1ca0f3aa9b One HoP ticket per person, old tickets delete (#45813)
* One HoP ticket per person, old tickets deleted

* does a lot look at it

* Pleases Travis. Doesn't try to sell the nanite paper thing too hard, who cares if the stupes don't get it

* Update ticketmachine.dm

* it works fine now

* adds cooldown to emag_act
2019-08-16 11:14:26 -04:00
nemvar
e587b970da Adds parent calls to almost all tool_acts (#45582)
* Adds parent calls to almost all tool_acts

* actually compiles
2019-08-03 22:25:57 -07:00
nemvar
449e5d38e6 This turns butchering into something that resembles a component. (#45299)
* This turns butchering into something that resembles a component.

* Changes how the recycler works.
It no longer uses butchering in disgusting ways.

* I guess this works? It's not pretty though.

* How the fuck...
2019-07-26 23:57:37 -07:00
RandolfTheMeh
da5aa3b07c Ticket Counter Fixes (#45417)
* PDA painter fix

* Tickets burn

* Comment and new commit to retry compile tests
2019-07-25 02:21:14 -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
Kmc2000
bc2a238748 Gives the HOP a ticket machine (#45095)
* Adds a ticket machine to the HOP's office so you can keep track of unruly hoardes of greyshirts while giving the clown all access.

* Fixes a logic error

* Whoops

* Idiot proofing

* Pt 2.

* Me make code less shit

* Fixes more badcode
2019-07-14 02:15:54 -07:00
Alek2ander
4e26573f7b Job specific ID cards (#45112)
* Job based IDs attempt one

* This doesn't actually work

* Back to overlays

* The Comment Section

* Cached flat icons
2019-07-13 21:24:35 -07:00
ShizCalev
399dbbb61f Merge pull request #45137 from YPOQ/eyelessfix
Fixes runtimes when eyeless mobs are hit by paper planes and last resort
2019-07-12 23:54:01 -04:00
YPOQ
c04a0627bb Fixes runtimes when eyeless mobs are hit by paper planes and last resort 2019-07-11 15:30:00 -06:00
nemvar
2fafc66375 Paperplanes no longer delete their paper twice. (#45074)
* Paperplanes paper

* yeah you're right. I'm wrong
2019-07-11 11:41:40 -04:00
RandolfTheMeh
e9dab4c665 Universal Organ Damage system (#44710)
About The Pull Request

So organ damage is a thing now associated with general object of organ, meaning all organs inherit a damage variable, failing boolean, healing variable, and maxHealth variable. The proc applyOrganDamage takes in the damage and organ path, applying damage/healing to said organ. While an organ is in use, it heals a small amount over time (granted the organ is not failing), with this fraction being set by the healing variable.

This also reworks preexisting organ damage systems to function more so on the universal organ damage system, the liver specifically. So much code exists in regards to eyes/blindness and ears/deafness that I'll need to go ahead and take a longer time combing through the code to get everything that can reasonably be tied to those two organs and their level of damage reworked to function off of the organ damage system, as opposed to just a trait add/remove system.

Lastly, this slightly reworks scanners, since now you need to check for every organ in the body. Since organs are stored as "the [organ]" with the method I used to get them, the phrasing on the medical scanner was changed to make more sense given it now has to say something along the lines of "severe/minor damage detected within [the organ]". I'll likely add another proc if I cannot find a way to get the organ's max health during this operation, since a static number determining minor/severe damage does not work when an organ's max health is less than the typical 100 points (as is the case with eyes).
Why It's Good For The Game

Every organ can be damaged, though not every damaged organ does anything right now. Damaged livers do the same thing as they did previously, and damaged eyes develop varying levels of vision impairments. The benefits to this PR are more for future coding projects than it is for the game currently, with no foreseeable changes to the way it's played currently.
Changelog

cl
code: Universal Organ Damage variables and procs
/cl
2019-07-05 09:40:30 +12:00
kingofkosmos
ebf787a97a * "You should..." and "You must..." 2019-06-26 06:13:32 +03:00
kingofkosmos
81a0518474 * warning-spans added to cases of "You do not..." and "You don't..." 2019-06-25 22:05:55 +03:00
kingofkosmos
6bbb64e2cf * more warnings 2019-06-25 21:46:21 +03:00
kingofkosmos
fb9731492c * extra spaces removed from "span class = '" --> "span class='"
* warning-spans added to cases of "You need..."
2019-06-25 21:03:25 +03:00