Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

God save the bitrunner #412

Merged
merged 60 commits into from
Oct 6, 2023
Merged

Conversation

dwasint
Copy link
Collaborator

@dwasint dwasint commented Oct 1, 2023

About The Pull Request

Why It's Good For The Game

Changelog

🆑
/:cl:

jlsnow301 and others added 30 commits September 30, 2023 19:02
[Design doc](https://hackmd.io/@shadowh4nd/r1P7atPjn)

Adds a new supply role centered on short dungeon-esque runs with a focus
on unifying the job with the fun part. Some virtual domains are combat
related, some are silly, some focus on "objectives". Avatar health is
linked to your physical presence and retries are limited.

<details>
<summary>Photos, WIP</summary>

Net pod stasis

![netpod](https://github.com/tgstation/tgstation/assets/42397676/d99073a4-2438-4600-83c0-cafb7b3fee55)

Server loaded

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304774976278759/dreamseeker_N14j6dwLcK.gif)

Server cooldown

![](https://cdn.discordapp.com/attachments/1131433451841662996/1135304775945179217/dreamseeker_NkIwWLJZma.gif)

the quantum console UI
![Screenshot 2023-08-05
105742](https://github.com/tgstation/tgstation/assets/42397676/3a45feaf-8c80-46b2-81c9-355932d1b014)

Cyber police antag page
![Screenshot 2023-08-16
205303](https://github.com/tgstation/tgstation/assets/42397676/fc28bcdd-2a2a-487b-927c-904f224c1b89)

A safehouse

![image](https://github.com/tgstation/tgstation/assets/42397676/c22ac115-4e00-432a-aeeb-b6afdb1ef750)

Domain info page, every domain gets this (and sometimes help text)
![Screenshot 2023-08-04
141859](https://github.com/tgstation/tgstation/assets/42397676/ba9ed6d9-a318-4466-b246-d2da0fa05676)

Me getting steamrolled in one of the missions

![syndicant](https://github.com/tgstation/tgstation/assets/42397676/3eb3099a-f9b2-4431-854d-50d8cad9b7f0)

Ghost roles getting notified that server is kicking them out
![Screenshot 2023-08-04
135454](https://github.com/tgstation/tgstation/assets/42397676/edab916c-6255-4b83-b2e7-155df2f03aab)

Players enjoying the new combat missions
![Screenshot 2023-08-05
005727](https://github.com/tgstation/tgstation/assets/42397676/e302a66f-610d-4fe1-82e0-7c8aec3913ea)

Players exploring some of the virtual maps
![Screenshot 2023-08-06
220919](https://github.com/tgstation/tgstation/assets/42397676/75a92a0b-6aa1-4bac-8fd1-c9fb47c955da)

(Not part of the PR, but)
![Screenshot 2023-08-06
221527](https://github.com/tgstation/tgstation/assets/42397676/012475ec-bfa5-4fd3-9dcb-31d222bb7bef)

New bitrunner vendor

![dreamseeker_V62h2BGdEl](https://github.com/tgstation/tgstation/assets/42397676/37ca8f69-f75e-45c9-b324-e6b31696c7b7)

</details>

Content, firstly, and moreso being supply department content.

The framework that this implements is a great (preauthorized)
replacement for two systems which are collecting dust: BEPIS and the
gateway. They integrate into this system and it's a direct upgrade.

This adds a way for the players on station to generate materials (if
that remains). The nice part about it is that I can throw balance and
believability to the wind, as unlike its unrelated predecessor VR or
away missions, bitrunning entirely washes its hands of the map and mobs
each reboot.

It offers a very expandable map framework to add content and it's all
fairly well documented.

I'd like to add a feature that represents the idea that jobs don't have
to be mundane and "external" jobs can stay tied to the main gameplay
loop.

jlsnow301, kinneb, mmmiracles, ical92, spockye
:cl:
add: Adds Bitrunning to supply department- a semi-offstation role that
rewards teamwork.
add: Adds new machines to complement the job- net pod, quantum server,
quantum consoles, and the nexacache vendor.
add: Adds several new maps which can be loaded and unloaded at will.
add: Some flair for the new bitrunning vendor.
add: Adds a new antagonist for the virtual domain only. Short lived
ghost role that fights bitrunners.
del: Removes the BEPIS machine, moves its tech into the Bitrunning
vendor.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: MMMiracles <[email protected]>
Co-authored-by: Ical <[email protected]>
Co-authored-by: spockye <[email protected]>
Co-authored-by: Watermelon914 <[email protected]>
Co-authored-by: Zephyr <[email protected]>
…(#77786)

Adds multi-z support for lazy templates
Also fixes some improper use and placement for turf flags

Shadow needs/wants this for bit runner maps.
Turf flags are also why lava has been generating in places it shouldnt.
(inside of ruins)
:cl:
fix: Lava can no longer occasionally generate inside of previously
loaded templates and breach and/or destroy shit
/:cl:

---------

Co-authored-by: Jeremiah <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
…248)

[Removes the pretense of relative multiz
levels](tgstation/tgstation@0293fdc)

Our multiz system does not support having a z level that is only
connected one way, or which goes down backwards or anything like that.

That's a fiction of the trait system, the actual backend has never
really supported this.

This pr removes the assumptions we were making backend around this, and
uses that to save cpu time.

I am also converting multiz_levels from an assoc list to a pure one,
which saves significantly on access times and cleans up the code
somewhat.

Also I'm making the get_below/get_above procs into macros, for the sake
of cpu time.

[Converts the starlight disease to use BYOND's directional defines
instead of our
own](tgstation/tgstation@7d698f0)

To some extent spurred on by
DaedalusDock/daedalusdock#298, tho it was known
before

Faster multiz code, faster init, etc etc etc
…(#77786)

Adds multi-z support for lazy templates
Also fixes some improper use and placement for turf flags

Shadow needs/wants this for bit runner maps.
Turf flags are also why lava has been generating in places it shouldnt.
(inside of ruins)
:cl:
fix: Lava can no longer occasionally generate inside of previously
loaded templates and breach and/or destroy shit
/:cl:

---------

Co-authored-by: Jeremiah <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
Having used the painting UI to kill some time during long rounds for a
decent chunk of the past year, the need of a quicker and less tedious
way to fix a misclick or mistake like drawing over the wrong pixel has
become clear to me, as well as getting some feedback on the palette
component I made last year.

As the title suggests, this PR adds an eye-dropper function to the
canvas. Right-Click a pixel on the canvas, and the painting tool will
copy its color. Simple as, works on both finished and unfinished
paintings.

As a bonus, you can also right-click one of those selectable
white/colored squares on the color scheme near the bottom of the UI (if
using spraycan/palette) to change its color without having to go back to
main game window and a radial menu.

EDIT: With the tooltip added to the UI, I can say it's ready.

This PR aims to add better options to change colors on the go and
improve the user experience on the painting UI.

:cl:
qol: Adds a eye-dropper-like right-click function to the painting canvas
UI. Right-Click a pixel on the canvas while holding a painting tool to
have it copy its color.
qol: Also adds a right-click function to the color palette at the bottom
of the UI to allow users to set its colors without having to alternate
between the game window and the UI.
qol: Lastly, a tooltip has been added near the top-left corner of the
same UI to let players know of these features.
/:cl:
A grid is shown while the user is holding a painting tool on an editable
canvas. This is achieved by drawing empty rectangles after the filled
ones are placed whenever the canvas is updated and if requirements are
met.

It's by no mean perfect, especially since the strokeStyle is a mere
"#888888" hexcolor, the contrast may get low around colors of similar
lightness. But I don't think I've much the strength to seek out a
fancier solution to a peeve that's hardly a botherance anyway while the
canvas is still mostly white.

I've also had a maintainer suggest me to make a toggle to
disable/enable. I talked a bit how that'd be a bit more complex to
integrate but not much so frankly, although switching hands or putting
away the tool already works for that. That said, I'm willing to do it if
player feedback suggests such toggle should be integrated.
Adds cliffs to the game! They're tiles usable for mapping to make
mountainy area's and cliffs! I don't have any sprites for them yet, so
just imagine it's a cliff really hard

![image](https://github.com/tgstation/tgstation/assets/7501474/ab0f31b6-93d7-4964-8b9c-4fb3c774647a)

THESE DO NOT REPLACE MULTI-Z AND NEVER WILL! They're just a neat way to
add more depth to the game. You can’t really add 10 different z’s for
one mountain, so this can be used to help map area’s with depth without
overusing z-levels

They've been mapped into the top part of the icebox outside. There's not
a good way to do sides of cliffs yet (will need some thinking), so
they're mapped in such a fashion where it doesn't matter much. Later,
this area above icebox can be expanded with properly done side-cliffs,
something like in stardew-valley would work for our grid-system:

![image](https://github.com/tgstation/tgstation/assets/7501474/007964cc-49d5-489c-9a43-2140f29239ce)

Longer demonstration: https://www.youtube.com/watch?v=Eig4jXNZZRQ

Eventually, I'll redo mapgen and add 3x3 icebox (definitely not coping)

The incredible flatness of icebox drives me insane. While multi-z is
great at giving it more depth, the actual terrain itself is still
completely flat. Adding cliffs let's us add 'soft-mountains', which does
wonders for making an area feel more alive

(And I absolutely adore snowy mountains)

:cl:
add: Adds cliffs to the north of icebox. Try not to fall of of them!
/:cl:
<details>
  <summary>Additional images (now outdated)</summary>

https://github.com/tgstation/tgstation/assets/7501474/572dc749-596c-4cab-9693-43c2270aca96

![image](https://github.com/tgstation/tgstation/assets/7501474/e12236d1-fda8-406a-858b-84a9fe5b4dc7)

![image](https://github.com/tgstation/tgstation/assets/7501474/264ae9d8-2f84-4133-8eb3-29e8df6c976e)

![image](https://github.com/tgstation/tgstation/assets/7501474/15a7f378-b595-4d7b-b948-d405916cb431)

![image](https://github.com/tgstation/tgstation/assets/7501474/b058a184-9fd5-4fa9-b0de-9f687bdf4e43)

</details>

---------

Co-authored-by: Jacquerel <[email protected]>
jlsnow301 and others added 17 commits October 1, 2023 16:29
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
small tweaks for bitrunning

- ability disks grant a huge power spike which should let me balance
megafauna health more closely to the real thing
- added a check for bit avatars to skip dynamic midround checks
- more info for netpods mostly

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
fixes #78513
fixes #78575
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
add: Netpods and quantum servers now have more examination info
fix: You no longer lose antag status if you receive it in the vdom.
fix: Beach bar shouldn't have visible atmos piping anymore.
fix: Adds more lighting to the vaporwave vdom level.
balance: Buffed vdom megafauna health to compensate for new ability
disks.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
Bitrunning releated fixes
---------

Co-authored-by: LemonInTheDark <[email protected]>
## About The Pull Request
I hate this ruin with passion. HOW ARE YOU SUPPOSED TO DO IT WITHOUT A
CROWBAR?!? but I digress. this fixes runtimes when the code tried to
spawn pre-/basic/ clown typepath and missing baseturf. you can't space
the VDOM with mining bananium anymore
## Why It's Good For The Game
less bugs good, gbp good.
## Changelog
:cl:
fix: Fixes missing baseturfs and clowns in mining planet VDOM..
/:cl:
## About The Pull Request

The bitrunner PR has removed the BEPIS machine, but kept two BEPIS disks
as a possible reward. However, the base BEPIS disks may contain
duplicate data. Originally, the BEPIS dispensed a Reformatted version of
the disks, which on spawn remove their tech from the spawn list,
ensuring that any future BEPIS disks would not contain duplicates of
this purchased data. Therefore, I have removed the cheaper version,
after discussing this with jlsnow301.

Of course, your expensive disk can still contain data that was in a base
disk found in space, or worse, mailed to a scientist, and eventually,
you will run out of techs to purchase, but these are separate issue.

I have also added the orphaned minor rewards to the same console, with
prices suggested by @ArcaneMusic, who has also suggested that I should
set all prices to be derived from the crew paycheck define, however,
none of the product vendors use this, so I think I would like to do all
of those in one go in a separate PR.

The reasoning behind the prices:

- Survival Pen: Not too disruptive, it just lets you dig. 150, lets
round it up. Worth 100, or 1 star when not express ordered.
- Spray on gloves: prevents shocks 10 times, cleaning also uses up
charges, uses up glove slots. Potentially disruptive item. 750 or 500
when not express ordered.
- Party pod: Mainly drugs, beer and recolouring chems, with potential of
poisoning. 750 or 500 when not express ordered as while it is something
silly you can do during downtime, you should do a bit of hunting for
crates before you get this.
- Polycircuit: Actually very good item for engineers, so they have to
carry less stuff around. They would still get bleed from using it, if
someone interrupts them, but that doesn't matter much. 8 uses of
circuits, adds up to little more than half sheet of materials, which is
vastly smaller than the mineral amounts you get from the crates. 150, or
100 when not expressed ordered, just because of the versatility, and
taking up only one slot in the inventories. Much cheaper than the
original proposed one.

Still thinking about how to reintroduce the "Make Buck" Doe, I will try
to reintroduce them in a different PR.

## Why It's Good For The Game

Its bad when a bitrunner buys an expensive disk, only to realize its
contents are the same as the cheaper disk they bought due to RNG.

The silly items from the BEPIS shouldn't be lost. The prices are fair
because you are giving up your precious domain loot points that you
could use to give a gun to your avatar to buy a silly spray-on glove.

## Changelog

:cl:
add: Added the BEPIS' minor rewards as purchasable products to the
bitrunning order console.
del: Removed the base BEPIS disk from the bitrunner console
/:cl:
@Camriod
Copy link
Contributor

Camriod commented Oct 2, 2023

Could use some species support.
Maybe in the same menu as the outfits?

Hell just give it a character creator

dwasint and others added 7 commits October 4, 2023 00:12
Fixes tgstation/tgstation#76065
Fixes tgstation/tgstation#73860

![firefox_woFR1lmIQq](https://github.com/tgstation/tgstation/assets/13398309/e9b48e8d-4c0d-484f-b57e-94f06a456934)

tgstation/tgstation#74453 _cough_

So it turned out that no emissive blocker overlays were being added to
mobs because `blocks_emissive` being `FALSE` no longer means that it
doesn't block emissives.

We have to check for `EMISSIVE_BLOCK_NONE` instead after the
optimization from the linked PR.

![dreamseeker_I9MuQEUjcC](https://github.com/tgstation/tgstation/assets/13398309/3a507c28-59e3-4276-b4f1-0babdcf952f1)

<details><summary>Fixes the window mesh prisons</summary>

![dreamseeker_wkCElt1Znp](https://github.com/tgstation/tgstation/assets/13398309/b9bb22a0-99f2-4ffa-ae32-6bc734be8353)

![dreamseeker_vhqFYt5X11](https://github.com/tgstation/tgstation/assets/13398309/b7364472-71c9-43e0-9ba8-bbb4bd5b489d)

</details>

<details><summary>No more of the weird partial transparency with buttons
and the like</summary>

![dreamseeker_IweBhZRpa3](https://github.com/tgstation/tgstation/assets/13398309/04938001-6201-45b0-9caa-5a305b40e116)

![dreamseeker_PK06VGj28o](https://github.com/tgstation/tgstation/assets/13398309/c482228b-988a-4861-8037-204471f2408e)

</details>

:cl:
fix: fixes mobs missing most of their emissive blockers
/:cl:
@dwasint dwasint merged commit 2393299 into Monkestation:master Oct 6, 2023
17 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants