Commit Graph

31134 Commits

Author SHA1 Message Date
Fikou edbab1e818 adds the meat clown (#50622)
* adds the meat clown

* funnier
2020-04-24 22:28:44 +08:00
spookydonut 9db363b992 Merge pull request #50627 from willox/dupe_fixes
Fix instances of duplicate variable definitions in types
2020-04-24 22:27:15 +08:00
spookydonut a334a455e5 Merge pull request #50628 from willox/exports
cargo exports no longer include subtypes when they shouldn't
2020-04-24 22:24:04 +08:00
RaveRadbury 4eb77bd0b5 Fan Hud (#50649)
* Should be ready to test

The compiler is throwing a tantrum so I'm committing here to debug.

* Merges hud.dmi with upstream

* adjustments

fixes some typos, adds a blank hud image for fanpinless crew

* It builds

* runtimes

it doesn't actually work yet, just compiles

* Progress

More runtimes removed

* It all works, runtimes sorted

pins made to not go above suit

* Update code/game/data_huds.dm

Adds Rohesie's suggestion

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

* Makes requested change

Thanks Rohesie!

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

* Makes requested changes

Thank you Rohesie!

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-24 00:10:00 -03:00
Qustinnus 204a4b55f6 Mining skill affects PKA again but only when used on rocks. (#50535)
* PKA

* haha imagine if that got merged
2020-04-23 19:16:01 -03:00
Fikou 4230492e77 adds the improvised pickaxe (#50534) 2020-04-23 18:47:48 -03:00
Archanial d80e059a55 Cult stun nerf (#50522)
* gonereducedtoatoms

* Icannotspellplesnofunofme

* bloodgone

* staminaloss
2020-04-23 18:02:35 -03:00
spookydonut 2b66dfbc61 Fixes "thats" in a few item descriptions. (#50520)
* Fixes "thats".

* /obj/item/pickaxe/rusted

Co-authored-by: spookydonut <github@spooksoftware.com>
2020-04-24 01:16:56 +08:00
Fikou 6b85530a8c fixes my stupid (#50595) 2020-04-24 01:16:33 +08:00
Fikou 4a5f5dbfe3 only carbons can now use the slap and circle emote + exploit fix (#50616)
* fixes

* only carbons can now use the slap and circle emote

* this should fix it

* im reatrd
2020-04-24 01:11:15 +08:00
spookydonut e573878ff3 /obj/item/pickaxe/rusted 2020-04-24 01:07:40 +08:00
spookydonut f60c57c14a Merge pull request #50541 from EgorDinamit/fluffwrench
Small fix for Forgottenship ruin.
2020-04-24 00:53:22 +08:00
spookydonut 72617ed483 Who roped me into this. (#50537) 2020-04-24 00:51:57 +08:00
Qustinnus f8a99c28a7 removes confusing bitflag in research.dm part 2: no webeditalaroo (#50536)
* epic kevinz moment

* extra checks

* done

* fixes

* forgot this one

* webedit
2020-04-24 00:50:47 +08: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
Bobbahbrown 2d03a01fe0 Ninja Suit Initialization Refactor + Cleanup (#50563)
* ninja cleanup

* documentation

* missed these
2020-04-24 00:42:02 +08:00
Iamgoofball c681d26252 He sold on the cargo shuttle? Bugfix eet. (#50599) 2020-04-24 00:39:21 +08:00
spookydonut 2303d750cf Merge pull request #50604 from ArcaneMusic/cashlogging
Basic economy logging.
2020-04-24 00:38:08 +08:00
spookydonut 66c336c535 Merge pull request #50614 from actioninja/hydrotray-runtime
Fixes a runtime on hydroponics trays
2020-04-24 00:37:07 +08:00
spookydonut a00778f16e Add EYE_STAB to item_flags (#50556)
* Add EYE_STAB to item_flags

* add to surgicaldrill and scalpel
2020-04-23 12:28:37 +02:00
William Wallace c909880118 cargo exports no longer include subtypes when they shouldn't 2020-04-23 05:21:27 +01:00
William Wallace d93942a53a serving tray and cafeteria tray designs now have unique type paths 2020-04-23 04:05:59 +01:00
William Wallace 37b2a53315 remove duplicate minbodytemp var from 'king of the goats' 2020-04-23 04:04:52 +01:00
William Wallace 5e6c3a9c72 remove duplicate custom_price definitions from drinking glass & shot glass 2020-04-23 04:04:18 +01:00
William Wallace 0039686bf5 families: beat cops spawn with correct backpack (removing duplicate var) 2020-04-23 04:02:41 +01:00
William Wallace 8b0dbcc3eb micro battery export no longer overridesnano battery export 2020-04-23 03:59:45 +01:00
William Wallace 4ca90810c9 Shambler's vendor now has correct light color (fixing typo) 2020-04-23 03:59:02 +01:00
Arkatos1 321294a5cb Dominate & Abyssal Gaze are now a pointed spells (#50621)
* Simple turf aim assist

* Abyssal Gaze, Dominate pointed spells, can_target cleanup

* Cleanup

* Icon cleanup and fixes

* Duplicit check

* Update code/modules/spells/spell_types/construct_spells.dm

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

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-22 16:39:17 -03:00
Fikou 564620c14d changes cult sprites + radials (#50620)
* makes cult sexy

* turns cult sprites into sex

* gurgr

* hola

* final commit maybe

* FUCK

* shit

* a

* walla walla bing bong

* man fuck

* i didnt even know you could do this wtf

* new sounds from actioninja

* ahoy spongebob

* yeah

* bazinga

* should be finished

* oops
2020-04-22 11:57:00 -03:00
spookydonut 1dc685af42 Merge pull request #50578 from trollbreeder/mapeditoricons
Adds icons for gibspawners and mob_spawns to help with mapmaking
2020-04-22 18:57:02 +08:00
spookydonut 17bd8c2099 Merge pull request #50576 from Fikou/patch-1
you can now make honeybuns again
2020-04-22 18:50:06 +08:00
spookydonut e0bd402f03 Merge pull request #50584 from jacklecroy/ramadan
Adds foreign calendar datum and fixes Ramadan holidays
2020-04-22 18:48:54 +08:00
actioninja 703274cf02 Fixes a runtime on hydroponics trays 2020-04-22 02:10:12 -07:00
Iamgoofball 1e417ef119 Removes Metalgen Recipe (#50552)
* Fixes the economy.

* Update others.dm
2020-04-22 00:55:15 -03:00
ArcaneMusic 9d1ecb188d Fixes merge conflict 2020-04-21 21:09:56 -04:00
ArcaneMusic b20683b1e0 Merge remote-tracking branch 'upstream/master' into cashlogging 2020-04-21 21:02:38 -04:00
ArcaneMusic 0e2dfb6cc3 I think this is the thing for public logging? 2020-04-21 20:28:38 -04:00
ArcaneMusic 4e1f479132 Adds bepis cash lost to the aether as well. 2020-04-21 17:41:49 -04:00
ArcaneMusic ddee742ad9 Basic econ logging 2020-04-21 17:37:15 -04:00
ArcaneMusic dc89ef0239 Turbotany version 1.2 (#50513)
* EVERYTHING. Check the changelog.

* Minor species change, spade fits on plant belt.

* Local man blind, news at 11.

* Longrange pollenation, and fixes pill composting.
2020-04-21 02:12:49 -07:00
trollbreeder 3a3bbfb0c3 Removes soul from icon names 2020-04-21 09:40:52 +02:00
Jack LeCroy 2860850635 Add foreign calendar datum
Converted Hebrew calendar to a child of this datum
Foreign calendar is an easy way to support other
calendar systems for the purpose of holidays.
Added Islamic calendar and fixed Ramadan to
be more accurate than it currently is.
2020-04-20 18:22:38 -04:00
Ghilker 9532dbd2a8 Hydrogen Gas (#50510)
* new PR no tgui bundle build yet

* tgui bundle built

* atmos.dmi conflict fix 2

* balancing

* tgui bundle fix
2020-04-20 14:47:22 -03:00
Aleksej Komarov d327e3a148 Uh oh, curly brackets in DM #50497 2020-04-20 20:39:54 +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
Fikou f9f89dde90 count cannoli 2020-04-20 10:07:21 +02:00
Ghilker 3703d9d039 Remove exploity way of using pumps and scrubbers (#50542)
I added to portable pumps and scrubbers the same limit t1 canisters have in terms of heat and pressure (5000 K and 50000 Kpa). In hindsight i should've added this in the same PR as the canisters but i forgot about those and i see people use those instead of making t2 and t3 canisters.
Edit: i changed how the damage is calculated, it now uses a clamp() between 5 and 50 so that there will be no more instances where the damage is so low that is discarded and no damage is done
Why It's Good For The Game

Add the intended behaviour for all gas containers thinked in the Tiered Canisters PR to Portable Pumps and Scrubbers
Changelog

cl
add: Added heat and pressure limit to portable pumps and scrubbers
tweak: changed the damage calculation from a max() to a clamp() between 5 and 50
tweak: reduced max pressure output of t3 canisters to the same as t2
/cl
2020-04-20 08:46:59 +12:00
trollbreeder 111860c9b3 La la la, maphelpers ftagn!
Gibspawners and mob_spawn objects now have icons. There's also unique icons for assistant, cook, engineer, miner, etc. corpses. Also sets the invisibility of delayed mob spawns to 101 so it doesn't show up. Also adds a name for basetype mob spawns.
2020-04-19 20:48:01 +02:00
Aleksej Komarov 9506ea340d Do not allow ghosts to change shared tgui state. 2020-04-19 21:15:10 +03:00
Aleksej Komarov 2979838c38 Fixes, Reworks, New Tabs and General Misery 2020-04-19 19:38:55 +03:00