Commit Graph

3656 Commits

Author SHA1 Message Date
Ryll Ryll
6bf874839a Adds new body type pref (#51058)
* tgdb

* tgdb

* Auto stash before cherry pick of "balance changes, enables burn surgery, various body improvements"

* moves unnecessary list out of client

* describes a var

* corrects
2020-05-29 14:25:01 -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
spessman-007
ab84042f94 [READY] Improve spelling (#51134)
* Improve spelling

* Spell isn't, ain't, shouldn't, hasn't, wasn't correctly

Co-authored-by: NewSta <spessman-007@users.noreply.github.com>
2020-05-25 02:13:37 +08:00
LemonInTheDark
1614501d23 Datum view and some other things (#51208)
* Datumizes all uses of change_view

* Cleanup and helper procs

* tweaks values to match the format, hint hint, (value - 0.5) works just fine

* And there's the rest

* woop, braindamage

* and one more

* fuck you menu file

* woops

* we should apply that

* fixes tooltip drift, thank you goon coders

* you can shake but you can't zoom
2020-05-25 01:53:51 +08:00
spessman-007
5ae305ec9f Resolve issues with incorrect usage of a/an (#51095)
Co-authored-by: NewSta <spessman-007@users.noreply.github.com>
2020-05-25 01:34:34 +08:00
Whoneedspacee
8af93a638b Icebox Station (#51090)
* there was an attempt

* adds ice moon map

adds config options for choosing mining maps

areas now have options that affect random generation on them

weather now has an option to not target indoor areas

adds base for icemoon ruins

turns many 1's into booleans

adds ice chasms

adds ztraits for weather stuff

* fixes up ice ruins to be ice moon compatible

adds lower z level to the ice moon mine

ice chasms now have a smoothed icon

megafauna only spawn in the underground portion of ice moon now

* openspace fixes

* adds new areas and underground specific ruins

* Adds the abandoned village ruin for Ice Moon

* adds abandoned village ruin and fixes some area and tile stuff to work with ice moon

* random mining maps are no longer picked in the config

you can no longer change the mining map before setup is complete

* adds above and below ground ruin as a test

* adds debug functionality for ice moon ruins

fixes a bug where multiz was impossible unless there were shared areas because of whitelisted areas

adds multiple whitelist areas for ruin placement in a list

all underground areas are now outdoors

underground plasma lava rivers are now only spawned in unexplored areas so ruins don't get destroyed by them

* adds unique spawners to icemoon to replace tendrils

adds 2 new mobs to icemoon the polar bear and wolf

adds a clothing flag for shoes that dont slip on ice

modifies mining site to be ready except for the boss

adds the ability for tunnel width to be a specification, ice moon can have 1 tile wide tunnels and rarely 2 wide tunnels

adds a no caves mineral for ice moon ruins

* wolves no longer run into lava or chasms

bears now enrage sooner

bear spawners can now actually be created

adds base for ice moon atmospherics

adds base for a new boss and achievements / score

really bad coder icon for ice boots added

* ice moon now has it's own planetary atmos! (thank god)

* new frost miner stuff

megafauna recovery time can now be tailored to have different cooldowns to ranged or melee attacks
by default sets both of them, with two arguments the first is ranged cooldown and the second is melee cooldown

* converts a bunch of lavaland maps to be compatible with ice moon

adds tendrils from lavaland to the bottom of ice moon with the other megafauna

* updates mob drops for ice moon mobs

updates config entry default value for ice moon

updates ice moon map to have new gulag

* updates station parallax for icemoon

removes extra lavaland ported ruins

updates to demonic frost miner

adds ladder to icemoon map near station

* updates ice moon map to have the ladder inside the mining base

plant flora dont spawn on the lower z level of ice moon now

you get sand from mining rocks now

buncha demonic frost miner changes holy cow

* adds the buried library

* improves map, fixes comment

* make this crap work with the station cause i have to lol it is pretty cool though and now i understand the mapping crap better

* updates ice ruin blacklist

* ice moon stop being too cold thanks

icebox changes, now actually has its own z level that can spawn ruins and such instead of just being openspace

tunnel width is now not stupid

* fixes a demonic frost miner bug where orbs werent exploding after death

atmosphere temp is now correct

fixes library ruin for icemoon

polar bear range is now fixed, only aggros in a short range and follows further than 3 tiles

reverts necropolis chest change

* Adds a new ruin: bathouse, barebones edition

* adds many new ruins

fixes a bug with tunnel creation that caused it to enter no tunnel allowed areas

finishes the frost miner and adds loot to him

you can now force a wabbajack option

* main z level now always has gravity for ice box

* hopefully the hot springs arent the buggiest thing in the world anymore

protects areas near the station from having openspace

* icebox takes less players

fixes the ladder positioning on every icemoon map

* snowstorms now only occur on the station level

fixes some issues with the icebox z level having openspace over the lower level mining base

* Update code/datums/map_config.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/datums/ruins/lavaland.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/game/objects/structures/lavaland/necropolis_tendril.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/game/turfs/closed/minerals.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/game/turfs/open/chasm.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/game/turfs/open/floor/plating/asteroid.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* Update code/modules/ruins/icemoonruin_code/hotsprings.dm

Co-Authored-By: spookydonut <github@spooksoftware.com>

* fixes areas on the lust ruin

polar bears now drop a goliath plate equivalent

wolfs now drop a watcher sinew equivalent

adds snow legions

adds a crusher trophy for the demonic frost miner that prevents movement

fixes a bug with asteroid mobs where the aggro icon would never show

adds ice to the snow cave tunnel generation

* starts work on the wendigo megafauna

* replaces snowball machine gun with more miner useful content

adds gentle var for knockback to prevent stunning on hit

polar bears move slower now

new icon for phase 2 demonic miner now

* fixes lust ruin areas

fixes whitespace

fixes nesting issues

adds underground specific mobs

* name / location fixes

demonic frost miner doesnt stun on knockback now

ice demons move faster

* fixes icebox having the wrong baseturf

* adds achievement defines to the wendigo

snowstorm for the lower z level again

adds a new helper for ranged target turfs

theres now a specific subtype for rivers

fixes a bug where ice and spawners spawned with rocks and other flora on top of them

adds indestructible ice rock turf

fixes a bug with ice demons teleport distance being incorrect

adds the start of wendigos attacks

* Apply suggestions from code review

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

* Update code/modules/mapping/ruins.dm

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

* Fixes a dumb bug with ruins from a webedit review

The syndicate shuttle can now land on mineral turfs

* the final commit, all that im going to change after this is documentation for procs lol

makes both ice moon z levels below the station underground, and makes it so they generate rivers of their baseturf

* adds nice animation to wendigo scream

* small fixes

* finishes autodoccing everything i could find

* ok im done for real now

* adds anywhere ruins

does review stuff

* review stuff

* ok it removes the stuff now

* fix removal

* fixes from the git

* adds surroundings to the asteroid and lavaland sites

adds butchering gloves to wrath ruins

the lower icebox levels are no longer station levels

fixes capitals on blood drunk and frost miner boss medals

adds engineering outpost ruin by trollbreeder

adds boxstation job changes to icebox

polar bear transformation no longer has immunity to lavaland mobs

fixes ice whelp spelling mistake

* fixes engi outpost atmospherics

fixes missing plating on solar panels

changes slowdown for icemoon turfs

* fixes ruins areas so tunnels can spawn into some of them

adds lights to icebox below area

openspace turfs mine the thing below them now

* fixes wall boundings on asteroid and lavaland domes

* ur lame armhulen

* adds public mining area to icebox

adds computer vendors to icebox

* minor fixes

* fixes map type error

* removes slowdown entirely

increases ore chances

fixes openspace on main map

fixes a ton of active turfs at roundstart

modifies demonic frost miner loot to be cooler and more useful since the boss was hardly killed during tests

tunnels are wider underground now

openspace now deletes itself if it spawns above a ruin

* improve da ruins

* tries to fix multiple atmos issues with ruins

removes bz from the planetary atmos since it could cause unstoppable chain reactions which would cause massive lag

demonic frost miner drill now automatically scans everywhere around you

fixes tunnel generation issue

makes it so randomly generated turfs inherit their no_ruins flags

Co-authored-by: Jonathan Church <jchurch093@gmail.com>
Co-authored-by: s <wesoda24@gmail.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-05-22 02:17:15 -07:00
wesoda25
bad585e2e5 wow i have braindamage 2020-05-15 17:44:01 -04:00
s
bd966b991c xenoboksly 2020-05-15 16:44:07 -04:00
vuonojenmustaturska
5e1f57de77 Speeds up area power usage handling, and apc process(). Cleans up related code (#51002)
About The Pull Request

/area/proc/usage() attempts to give list-like access to a bunch of vars. Why not make it a list instead and avoid all the proc calls? Might be room for followup here, to do something to powered(), use_power() etc.

Some legacy machinery was ignoring the default machinery use_power pulling from the machine's power channel by default

Total power usage was unused, APCs ignored it in favor of calculating it themselves :)

I also renamed the defines because they were in the danger zone of being very common words.
Changelog

cl Naksu
code: optimized area power usage calculations.
/cl
2020-05-11 11:33:56 +12:00
Qustinnus
2c9a9d90ac Adds glass floors (That work with multi-z) (#50831) 2020-05-06 05:03:10 -07:00
William Wallace
e007b3dcab reduce amount of lists that exist during runtime for custom materials (#50832) 2020-05-06 05:00:39 -07:00
Arkatos1
c35630466a Janitorial cart now uses a radial menu (#50806) 2020-05-05 17:34:30 -07:00
Fikou
a38d30296e upgrades potty's status (#50755) 2020-05-05 17:18:28 -07:00
William Wallace
b9b3cffad7 removing some duplicated proc definitions (#50812)
* remove duplicate definition of '/datum/component/plumbing/reaction_chamber/can_give'

* remove duplicate proc definitions for '/datum/status_effect/pacify/'

* syndicate holster correctly sets storage component's silent var

* singularity_act no longer deletes fulton 'extraction holder'

* singularity_act no longer deletes rend tears

* remove duplicate singularity_pull method from /obj/effect/cult_turf/overlay

* remove no longer used 'dir_map_to_angle' proc from reflectors

* remove duplicate /mob/living/simple_animal/bot/hygienebot/Crossed
2020-05-06 02:36:14 +08:00
necromanceranne
0eaf4ca0df Various Antagonist Handgun/Rifle changes; Stechkin, Stechkin APS, c20-r, m90gl (#50734)
* overhauls the crap out of a lot of antag guns and their ammo

* Should probably shoot an additional bullet per squeeze at this point

* nyoops

* So travis will stop yelling at me for new lines

* Should be all I need to fix for maps

* Touches up the stechkin sprite again

* Increased the fire rate and spread of the APS and the spread of the m90, added additional magazine types for the APS and added incendiary mags into the Spetznaz bundle to retain the fire theme, added phasic m90 ammo that penetrates through all surfaces but does significantly less damage available to ops for 8 tc, tided up the code for the aps a little more and also it's sprite.

* fixes some stuff

* So travis will cease screaming

* Changed how the phasic bullets work to being closer to xray beams, added additional flags to allow the bullets to pass through structures and machinery

* Update code/game/machinery/_machinery.dm

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

* Update code/game/machinery/_machinery.dm

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

* Update code/game/machinery/doors/door.dm

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

* Update code/modules/projectiles/boxes_magazines/external/pistol.dm

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

* Update code/game/objects/structures.dm

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

* updated the gun sprites a bit more

* Hopefully this fixes the conflicts?

* Update code/game/machinery/doors/door.dm

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

* More updating, fatter stechkin sprite

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-05-04 06:21:14 -03:00
EdgeLordExe
30dc79dc66 [READY]Major explosive rebalanance and changes patch: Edge strikes back (#50775)
* Explosion rebalance patch

* more rebalancing

* reee

* removes ghetto bpp

* next balance

* Exotic Stabilizer

* forgot about this

* Maintainer suggestions

Co-authored-by: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* appveyor ree

Co-authored-by: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2020-05-03 13:43:57 -04:00
EgorDinamit
78bd1a78a0 [Ready] Policy config refactor for Forgottenship ruin. (#50597)
* Update ghost_role_spawners.dm

* Update ghost_role_spawners.dm

* Update ghost_role_spawners.dm

* Update ghost_role_spawners.dm

* Removing all copy-pasta
2020-05-02 18:25:39 -04:00
Dangerous dingidy doo
4cdf3dff38 Ports tables from Sunset Station (Sprites are credited to Quantum-M) (#50753)
* Port

A bunch of tables from sunset

* thanks floyd

* zoo-wee mama
2020-05-02 06:46:20 -03:00
uomo
7a31f65220 Some more fixes for signs and related stuff. (#50752)
* inhand icons

* Adding to the object, forgot to name one icon.

* Fixing some stuff, and creating inhand icons.

* Fixes a thing I broke.

* Fixes things (including ALL posters) that shouldn't be wrenchable being wrenchable. Plaques now transfer icon_state always.

* Picture frames, painting frames, and the monkey portrait are now wooden.

* Fountain pens can now be uncommonly found in maint.

* Uneditable sign types should not become editable when unwrenched.

* Move redefined var above newly defined var.
2020-05-01 21:52:36 -03:00
senjx
0fcf099df9 Removes the compact combat shotgun 2: Electric Boogaloo (#50764)
* Removes the compact combat shotgun from the code.

* Removes the compact shotgun sprite
2020-04-30 21:01:43 -03:00
Iamgoofball
a3aa69701a [READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)
About The Pull Request

Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.

Explosions have been refactored to do the actual exploding in a subsystem.

Credit to goon.

Here's some videos!

Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates

Changelog

cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
2020-04-30 10:27:53 +12:00
uomo
d5451ae60a Department, warning, and general sign code fix. And brand new custom plaques! (#50550)
* Oh God I hope this works...

* It didn't work.

* Making things better.

* Making things even better.

* That made things worse.

* Sorting works! \o/

* Tidying some thing ups.

* Adding a custom plaque to the game.

* Some plaque tweaks.

* Makes plaques more durable than signs.

* Adds the stack crafting.

* Plaques take a little time to engrave, signs can't be changed instantly anymore.

* Comments, and renamed the global list to avoid confusion.

* Appends "sign" to every name, makes department signs not all caps, fixes some names and descriptions.

* Touching up plaque customization and display, removing one last all caps.

* Plaques can now be engraved in hand too.

* Newline.

* Update code/game/objects/structures/customplaque.dm

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

* Update code/game/objects/structures/customplaque.dm

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

* Mirroring some fixes from customplaque.dm

* A bunch of stuff.

* Unwrenched signs now lay horizontal.

* A lot more stuff, turned a negative variable into a positive.

* Fix chat inconsistency, remove deprecated and unused variable.

* Apparently buildable_sign is used elsewhere, whoops.

* Adding documentation to this, fixing a bool being 0 in another file.

* Don't know why this was here, sign dir is 100% irrelevant.

* Fixes some sound malarkey.

* Changes delays to be readable, removes unneeded return.

* Fixes these two early returns, it needed return TRUE at the end to work.

* Trying to fix a revert I messed up...

* Moving plaques to a directory, moving old sign plaque types into it. Map changes.

* Rename since I relocated this object entirely.

* Signs (and plaques) now properly place, and aren't visible through walls.

* Comment to help people in the future.

* Signs and plaques can be placed diagonally now.

* Removes duplicated code line.

* Blank signs now commonly spawn in maint, blank plaques uncommonly.

* Repairing signs & plaques with a welder is now good to go.

* Moves the GLOB, makes it start as an empty list.

* Update code/game/objects/structures/plaques/_plaques.dm

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

* Gets rid of some oldcode.

* Apply suggestions from code review

Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>

* Simplifying dir switch to two if elses.

* Plaques take one sheet of gold to graft instead of five.

* Just making this wording in crafting a little clearer.

* They can be removed with wrenches, so I don't think this is proper.

* Makes variables descriptive.

* More descriptive variables, a little dmdoc, move things around to be next to like things.

* Remove a redundant definition.

* Apply suggestions from code review

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

* Fixes mapping path, rename sign_backing to just sign.

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-04-28 01:43:44 -03: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
spookydonut
d18dbc8226 Remove spawn in favour of timers (#50562)
* Remove spawn in favour of timers

* aaaaaa

* Qdels

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

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-27 02:15:36 -03:00
Archanial
83f369b5e9 Fixes stasis bed runtimes (#50525)
* fix

* suggested changes

* Theresnotwoargument

* changes

* okay

* Update code/game/objects/structures/tables_racks.dm

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

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-24 17:35:35 -03:00
SomeoneYouProbablyKnow
7ce87578a1 Adds the detective wardrobe (#50564)
* Adds the det vendor and map changes

* Revert "Adds the det vendor and map changes"

This reverts commit 8c9c59935fbfe1a6e858f69d16684a21f911b093.

* Unfucks the mapmege expect box. box soon tm

* Literally A newline

* Box and other stuff

* Changes the sprite

* Kilo and donut

Co-authored-by: J? the J man <Zeldin.nick@gmai.com>
2020-04-24 17:04:36 -03:00
ArcaneMusic
b30eb7e32e Take2 (#50655) 2020-04-24 09:46:22 -03:00
Fikou
0ec86b44b1 adds new stamps, resprites old ones, various cool stuff (#50573)
* adds new stamps, resprites old ones, various cool stuff

* FUCK

* fix

* today i will forget a comma

* ok i guess
2020-04-24 00:43:12 +08:00
tralezab
f1d5fd2d79 way overtuned (#50399) 2020-04-22 12:15:51 -03:00
oranges
218512451d Merge pull request #50497 from stylemistake/tgui-3.0
About The Pull Request

This is a massive rework that is coming down the pipe.
Removal of routes.js

This PR removes routes.js file in favor of filename-based routing. DM-code will now reference components directly.

For example, previously, DM code would use "ntos_main" as a key. Now you need to use "NtosMain" as a key, and it should match both the exported name and a file name of your component.
Flexible Layout System

As a result of the above, interfaces are now top-level components. To accomodate this change, we have created a new abstraction for the layout: the Window component.

You will now see, that interfaces, instead of returning window contents directly, return a tree that starts with a <Window /> component:
export const Apc = (props, context) => {
  return (
    <Window resizable>
      <Window.Content scrollable>
        <ApcContent />
      </Window.Content>
    </Window>
  );
};

Metadata, which was previously added to routes.js (things like theme, wrapper, scrollable) can now be declared on the Window.

This also eliminates the need for a concept called wrapper, because now you can directly control where you render <Window.Content />, which allows adding things like toolbars, status bars, and modal windows.

We also have <NtosWindow /> for NtOS interfaces, and <Layout /> for completely custom, non window-based layouts. (Side-panel tguis, or maybe even goonchat or stat panel replacement, wink wink, nudge nudge, WYCI).
Modals

Now since we have a new layout system, modals are now easier to implement than ever! This is because now we have a clear slot for them, which would cover all area above the content with a Dimmer.

This avoids issues like Dimmer being scrollable together with the content, or covering content only partially, and things like that.

export const Apc = (props, context) => {
  return (
    <Window resizable>
      {/* Dimmer/Modal slot starts here */}
      {showModal && (
        <Modal>
          {...}
        </Modal>
      )}
      {/* Dimmer/Modal slot ends here */}
      <Window.Content scrollable>
        <ApcContent />
      </Window.Content>
    </Window>
  );
};

React Context

You have probably noticed, that we have a second argument to components: context.

This is a "magical" state container, that is available on all components without you doing anything extra to support it. It carries the Redux store and all tgui backend related data, meaning that things like useBackend(context) will now use context instead of props.

This also means, that you no longer have to pass around the state via the props:

<AnotherNestedComponent state={state} />

With context available on all components, this is all you need to do:

<AnotherNestedComponent />

Shared TGUI states

We introduce a new abstraction, that eliminates all previous use-cases for class-based React components - local component state.

You can now achieve the same thing with help of a useLocalState() function:

const AirAlarmControl = (props, context) => {
  const [screen, setScreen] = useLocalState(context, 'screen');
  // Use `screen` to access current screen.
  // Use `setScreen(nextValue)` function to set screen to a new value.
};

This also removes the redundant tgui:view action, and config.ui_screen variable, because now this thingie can achieve the same thing in a more generic way.

But wait, there's more!

You can use useSharedState() function, to not only create a piece of state, but also sync it across all clients, which is a fantastic way to allow observers see how user interacts with the UI.

const AirAlarmControl = (props, context) => {
  const [screen, setScreen] = useSharedState(context, 'screen');
  // Now screen will change for everyone who observes the UI.
};

useSharedState() is JSON-serializable, which means you can use anything as a state, not only strings and primitive values.
Performance Improvements

We have sped up the initial render by about a full frame.

Miscellaneous
    Fixed operating computer getting stuck on last step of the surgery.
    All UIs refactored to use new Tabs API
    Formatters
        formatPower, outputs watts with SI units, kilo, mega, etc.
        formatMoney, formats cash with thousand separators and shit. Code for this is stolen from real business applications.
    Number helpers
        round(number, precision) helper, with correct 0.5 rounding, and with other float nonsense fixed.
        toFixed(number, precision) won't throw an exception on negative values
    Moving stuff around in webpack
        DOM polyfills get their own directory, and are bundled together with the rest of the code. 60KB -> 20KB, indirectly adds speed to initial render.
        Stylesheets are now imported in index.js (well, everything is now imported in index.js now).
    Achievements UI cleaned up, smaller, neater UI.
    Black Market Uplink cleaned up
    Generalized Uplinks, Malf Module Picker now uses this generic uplink UI, with custom theme still applied. Saved a few kilobytes.
    Uplinks limit search results to 25, which helps reduce lag while typing into the search box.
    Added padding props to Box, aka all this crap: p, px, py, pt, pr, pl, pb.
    Reduced stats while building the bundle, now you can actually see the meaningful green text in console instead of all the child module spam.

Flattened Crafting Categories

New Kiosk UI

Modal Tweaks

You can track progress of other tgui ideas here: tgui: Roadmap

Information for downstreams

Your tgui modifications will not be easily mergeable because we have effectively shifted indentation of all interfaces by two, and added a new wrapping component called <Window />.

This will be a lot of manual work, but it's not that terrible though. If you can isolate your local contributions to tgui, you can just copy-paste them into the new tgui where needed, and it should just work.

If you're not yet using tgui 2.0 (or tgui-next) in your project - great news, this is the final big refactor, and everything will be quieter after this PR. Things are looking really solid now. This will serve as a great base for your future UI work.
Acknowledgements

Big thanks to @actioninja for converting half of the interfaces, that's a lot of work!
2020-04-20 20:52:04 +12:00
spookydonut
e4f1f58793 Stasis bed/Operating Computers now consider diagonals for linking (#50443)
* stasis bed takes diagonals

* op computers also account diagonals

* optable initialize too
2020-04-20 02:11:40 +08: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
actioninja
b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
EgorDinamit
3dc4ae7bc7 [Ready] Forgottenship Ruin - rebalance, config update, uplink item. (#50529)
* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Update code/modules/ruins/spaceruin_code/forgottenship.dm

Co-Authored-By: TiviPlus <57223640+TiviPlus@users.noreply.github.com>

* Lowered Cybersun hardsuit armour values.

* Upgrading energy armour value.

* Now captain isn't male-only.

* Turrets

shot_delay changed from 0.8 seconds to 1.0 second.

* Adds 3 encryption keys for cyborgs and AIs to use

* Syndi-captain gets loud-voice headset.

* Policy config

* Define space syndies

* Added Robotics access for syndies

It's really useful for when they create cyborgs.

* Adds special version of medivend instead of normal one

* Replaces basic syndi-vend with special one

* Update forgottenship.dm

* Cybersun hardsuit doesn't slow you down as said in uplink desc.

* NPC + Area sounds.

Elite Assault Officer projectile sound changed from pulse.ogg to laser.ogg.
Added ambient sounds for all areas.

* Good day sir

Lowered the amount of ores you get.

* assignedrole

Let admins know that this particular shitter is the cybersun captain!

* Weight'n'Cost of ruins fixed in another PR

* Update code/modules/uplink/uplink_items.dm

Co-Authored-By: Bobbahbrown <bobbahbrown@gmail.com>

* Cost/Weight of ALL space ruins changed

* Thanks to fikou

* Only cap's spawner leaves empty-sleeper now

* if(policy)

* Revert "Cost/Weight of ALL space ruins changed"

This reverts commit fa343547f0dcf225710895f50ac2bbf32dc07b5d.

* Fixup

* Minor fix in attempt to fix some stuff

* Update code/modules/ruins/spaceruin_code/forgottenship.dm

Thanks trollbreeder.

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* Update code/modules/ruins/spaceruin_code/forgottenship.dm

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* [Grammar] THE captain!

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* grammar review man

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* "A" vs "The"

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* [Grammar] "an"

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* Update uplink_items.dm

* Update code/modules/ruins/spaceruin_code/forgottenship.dm

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>
2020-04-18 11:16:27 +02:00
Akrilla
555b156edc Virgin immovable rods are no longer stopped by the chad railing (#50349)
Fixes #50288

Railings are also the only thing that has a snowflake canpass
2020-04-18 11:00:02 +12: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
PKPenguin321
f9d79b43ab optable initialize too 2020-04-06 18:01:50 -07:00
spookydonut
5cb83ce64e Merge pull request #50401 from Mickyan/curtain_opaque
Makes certain curtains block your view when closed, new curtain type
2020-04-06 16:52:36 +08:00
Mickyan
218dc6f6af crafting 2020-04-05 15:36:39 +02:00
Mickyan
bb348295df curtain 2020-04-05 01:57:22 +02:00
Ryll Ryll
5c174800fb Grenades and projectiles can have shrapnel and embed, all carbons can suffer embeds, some bullets can ricochet, sizable refactor of embedding (#49634)
About The Pull Request

It annoyed me that we have a perfectly good frag grenade item, and a perfectly good shrapnel component, but no crossover episode between the two. This remedies that, and does a lot, lot more.

dreamseeker_2020-03-30_05-01-13.png

dreamseeker_2020-03-30_05-01-26.png

Big points:

    Adds new component: pellet_cloud, which can be used by ammo casings, guns, and landmines to spray shrapnel and display aggregate hit messages ("You're hit by 6 buckshot pellets!" vs "You're hit by the buckshot pellet in the X" x6). All gun ammo that shoot multiple pellets now use this component on firing.
    Adds stingbangs, premium less-lethal grenades that shoot off lots of stinger pellets, to cargo. Frag grenades are also reworked to have smaller booms, but shoot off lots of shrapnel shards. You can jump on top of these grenades to absorb a portion of the shrapnel to save those around you! There's an achievement for dying this way, called "Look Out, Sir!"
    Projectiles can now embed items/shrapnel. Adds .38 DumDum ammo to cargo that does less damage and has negative armor pen, but can embed in people. This is the only ammo that currently embeds.
    Bullets can now ricochet off walls, structures, and machinery (harder surfaces are more likely to ricochet). Only standard .38 and Match Grade .38/.357/L6 ammo can ricochet, with Match Grade being much better at ricocheting. You can buy Match Grade .38 from cargo and Match Grade L6 ammo from the nuke uplink, while Match .357 is admin only.
    Armor now protects you from harmful embeds, taking the better of the bullet/bomb armor on the affected limb. Armor penetration can modify this of course, and many blunt embeds like stingbangs and DumDum bullets are significantly worse if you have even 1 armor.

Other misc fixes/changes

    Refactored the embed element a bunch and fixed it creating new elements for every instance rather than expected bespoke behavior. There are new /obj/item helpers for modifying and adding embedding.
    Fixes #49989: Spears can no longer embed in turfs cause their sprite is annoying to me, it's generally harder for most things to embed in turfs
    Fixes #49741: New carbon helpers for removing embedded objects
    Fixes #46416: Handles embedded objects getting qdel'd or moved while embedded
    Renamed the old shrapnel component for RPG loot to MIRV to avoid confusion
    Repathed frag grenades from under minibombs to under base grenades, and added explosion vars to base grenades

Why It's Good For The Game

Fixes a bunch of janky design with embeds, adds lots of new avenues for projectile and grenade variety, ricochets and collateral damage are fun!
Changelog

🆑 Ryll/Shaps
add: Adds stingbangs to cargo (and one in the sec vendor premium), premium less-lethal grenades that shoot off a giant swarm of stingball pellets to help incapacitate swarms of people in tight quarters. You can jump on top of a live one to be a hero and absorb a bunch of shrapnel, same with frag grenades. There's even an achievement for dying to a grenade you jumped on!
add: Projectiles can now embed in people! Or at least grenade shrapnel and the new .38 DumDum ammo, now available in cargo, can. DumDum rounds excel against unarmored targets, but are pricey and do poorly against armored targets.
add: Bullets can now ricochet! Or at least, standard .38 and the new .38/L6 Match Grade ammo can. Match Grade ammo is finely tuned to ricochet easier and seek targets off bounces better, and can be purchased from cargo (for the .38) or nuke ops uplink (for the L6), but standard .38 ammo has a chance to ricochet as well.
tweak: Frag grenades now have smaller explosions but shoot off a bunch of devastating shrapnel, excellent for soft targets!
tweak: Shotguns and other multi-pellet guns now print aggregate messages, so you'll get one "You've been hit by 6 buckshot pellets!" rather than 6 "You've been hit by the buckshot pellet in the X!" messages. Bye bye lag!
balance: Armor can now protect against embedding weapons, taking the best of either the bullet or bomb armor for the limb in question away from the embed chance. Some weapons are better at piercing armor than others!
/🆑
2020-04-03 16:58:38 +13: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
14b7e63415 A bold new era of hydroponics (Large department rework/update) (#50001)
Shoutout to skog for helping me fine tune a lot of the ideas for this as well as convincing me to do it anyway. Feel free to send me your adoration and glory (once this is actually balanced and tested out so I can work out the like 1000 little runtimes and bugs this will surely have.)
About The Pull Request

Lets Start with everything that DIDN'T change.
Plants still have all their unique qualities. That includes chems, traits, all that good stuff.
Plant stats have been unchanged, with an exception I'll bring up later.

Cool. Onto everything else.
Changes to hydroponics trays.

Trays now have a new feature that visually you may be very familiar with. By Ctrl Clicking a tray, it activates Autogrow. Autogrow uses a HEAVY amount of power per tray, but in return it automatically maintains the plant contained within, limited nutrient loss, adding a gradual amount of water per process, and keeps pests and weeds at bay. Ideally you would only be using this on high maintenance plants, or if you need to leave your department for a few minutes. Having all your trays on Autogrow is an excellent way to kill your APC cell in a matter of seconds, even on a robust power setup.

Trays no longer use **Nutrient Points.** Instead, each tray has an internal reagent holder that basically holds a beaker for your plant's nutrients. In exchange, the tray now determines the gradual stat changes of plants based on nutrients within that nutrient tank. That's right, no more dumping chemicals into the tray to reach 100 potency in a matter of minutes. You can, however, use reagent mixes in order to improve plant stats in a satisfying way. Still, with each tray having a default of 10 reagents maximum in the tank, it places a greater impetus on upgrading trays if want to really get the most of a specific chemical composition.

If you realize you need to change the nutrients in the tank, you can Alt Click to empty the whole tank at once.
Seed Changes

All plants now have a new stat, Instability. (It was originally titled stability so I'm changing it here but yes it is now called instability) Contrary to the name, the higher the stability of the plant, the more likely that your plant will see radical changes. Plants with a low stability will not see much difference, but as you go higher and higher you will start seeing the plant automatically mutate with harsher ramifications. At 60 Stability, the plant has a chance to automatically mutate it's species. At 80 Stability, assuming you can prevent the plant from mutating beforehand, the plant has a chance to receive random plant traits similar to strange seeds. That's right! You can now be free from the tyranny of the strange seed market!

Plants are now affected differently by pests and weeds. Instead of outright killing plants, they will instead heavily lower a plant's yield and potency instead. This also allows for plants that have been left for a few minutes to outright die far less than they were before, but at the same time encourage using autogrow when AFK within the department.

When growing a plant however, you have something new to consider. Plants will now pollinate adjacent seeds in trays, which will bleed off adjacent stats to other plants. Primarily, this affects your core stats. like potency, yield, also stability. If you have 2 plant with high and low potency, they'll bleed their stats off into each other as they grow. This allows for interesting mechanical gameplay between nutrient choices, stability, and adjacency. Some plants have naturally high stability that can bleed off of other plants (Corn, Wheat, and Weeds), while others have naturally low stability and can help bring plants back into a maintainable stability threshold if you just want to harvest the plant itself.

Pollination at high levels of stability can also cause the adjacent plants to receive chemical traits from each other. This allows for plants to share chemical traits without having an insane level of control afforded by the DNA manipulator. However, careful manipulation of plant reagents is difficult to do perfectly, and should be done carefully, as well as experimentally.

For a more controlled trait experience however, we have Plant Grafts. Plant grafts are obtained by using the new secateurs, or sheers, that comes with the botanist's default kit. When a plant is ready to harvest, you can cut off a plant graft, which carries several of the plant's stats and qualities with it. When transplanted, you can share the unique traits of several plants into a new host. These traits are mostly the physical traits you're most likely familiar with, like bio-luminescence, slippery skin, liquid contents, the works. You can also store plant grafts if there's a specific trait build you'd like to eventually get to. Since you need to fully grow a plant to graft it, the process of obtaining several unique traits for a plant will result in more types of plants needing to be grown as a result.

Alright, this leads up to what you're probably guessing. DNA manipulator for plants is dead. Even if it's really good, being able to Frankenstein a dozen different plants together without even growing half of them is kinda lame, you have to admit. The new trait and chemical controls are a bit more robust overall to compensate for this.

image
Why It's Good For The Game

Chemical dependence hydroponics is dead.
Genefreak maxed out stats plants are dead.
The Tyranny of Pests and Weeds killing plants for cooperating with the station is dead.
Ambrosia Gaia is now no longer the staple plant of hydroponics, as earthblood trays are dead.
Plant mutations are now easier to come by, and can be achieved within 2 plant generations assuming you're not crossbreeding and using readily available chems.
Chefs, and by extension bartenders, get a wider array of plant's each to work with.
Botanists are no longer required to acquire a chem dispenser at shift-start to acquire mutated plants.
Crosspollination, mutation, and grafting allows for a more interesting dynamic in improving plant stats, as opposed to just clicking buttons. It also rewards planning and developing system for growing plants.
Changelog

🆑
add: Plants can now Cross-Pollinate, via adjacency. This causes plant stats of average into each-other.
add: Plants now have a new stat, Instability. Instability allows for gradual mutations to a plant's stats at certain thresholds, and a chance of mutation, or gaining new random traits at even higher thresholds.
add: Plants can be grafted when ready to harvest, and grafts can be applied to plants in order to share unique traits, or share stat changes.
del: The Plant DNA Manipulator is dead. Long Live the DNA manipulator.
tweak: Hydroponics trays now have their own internal beaker for holding chemical reagents. As such, chemical affects on plants are gradual, and slowly alter seed stats over generations.
balance: Several chemicals are adjusted to match the new system. Experiment!
/🆑
2020-04-03 16:56:25 +13:00
Fikou
a59e4fb1b5 merges civilian and service departments (#50142)
* merges the service and civilian departments

* yee haw
2020-03-26 22:05:28 +08:00
moo
1a40fbc57d Update votingbox.dm (#50193) 2020-03-25 02:21:00 +08:00
Rob Bailey
2f127f8b95 More glowing stuff (#50109)
* vending machine framework

* wip

* all vending masks

* more glowing stuff

* dynamic unsetting of luminosity

* use define
2020-03-22 23:38:50 -03:00
Rohesie
906d6f3d24 [READY] Fireman carry QoL changes (#49733)
* Fireman carry

* Change requests.

* doc
2020-03-22 18:00:56 -04:00
81Denton
45917da07a Merge pull request #49964 from uomo91/psychologist
Psychologist
2020-03-21 21:37:05 +01:00
EgorDinamit
da3cdd8169 [Ready] Syndicate Forgotten Ship ruin. Balance+Bug fix. (#50120)
* Balance+Bug fix.

* Update forgottenship.dmm

* Update forgottenship.dmm

* Removes rogue table

* Give uranium to plebs.

* Beakers+Few chameleon stuff

* Fluff text rebalance. Allow people to leave the ship as long as it is protected.

* Grammar fix, I guess

* Le grammar

* Replaced interrogation room with medbay. Added tactical medkit(1) to med-vendor and 5 basic medkits to the same vendor. Additional ores, loot.

* Surgery disk update

* O2 canisters to maints area

* GPS signal

* Update code/game/objects/structures/ghost_role_spawners.dm

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

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-03-21 16:59:22 -03:00
ArcaneMusic
d68ea7748e Improves the feedback on vend-a-trays. (#50061) 2020-03-21 10:18:06 -03:00