62 Commits

Author SHA1 Message Date
FabianK3 9bb1d61c64 Add Foreign Service Officer alt title to consular role (#21822)
# Summary

This PR adds the alt title "Foreign Service Officer" to the consular
role. The alt title can only be selected if the citizenship is set to
"Sol Alliance".

PR is a commission for the_ill_fated and has been pre-approved by human
lore.

## Changes

- Added logic to allow alt titles to be locked to citizenship. It
follows the same logic as faction locking.
- Added "Foreign Service Officer" to the consular role, locked to "Sol
Alliance" citizenship.

## Preview

<img width="874" height="40" alt="Screenshot 2026-02-06 211249"
src="https://github.com/user-attachments/assets/8a017db9-38af-4f57-a9bb-54d8aa5b6c59"
/>
2026-02-16 21:08:21 +00:00
SabreML ec22fccc6a TGUI Faction Select (#21737)
## Description
Hello! First PR here so I figured I'd do a big one ~~and stress out the
maintainers as quickly as possible~~. :)

While going through the process of creating a character the 'faction
select' UI stuck out to me as *functional*, but difficult to parse
visually and pretty dated looking by modern SS13 standards. (Not too
bad, but you know what I mean)
The new version is realistically *bit* too flashy for what it is (a
single-use interface hidden away in the character creation menu), but it
was very good practise for me to get back into DM/TGUI programming so it
works out either way.

I'm very happy to implement any feedback or suggested changes that could
help improve it.

## Actual Description
This PR replaces the old HTML 'faction select' interface with a new TGUI
one, and also cleans up and fixes some adjacent code I bumped into while
working on it.

A couple of notes about the current version:
* The 'Citizenship Check' line is currently non-functional and will
always show a checkmark. I know a lot of the corporations have specific
backgrounds/origins they won't hire people from, but I wasn't sure where
exactly that's enforced in code, if at all.
(I noticed `/datum/faction` has a `blacklisted_citizenship_types`
variable, but it's currently unused.)
* De-adminning or changing species doesn't immediately update the UI to
reflect the changes, you have to click on something new to trigger an
update manually. This doesn't have any actual consequences since I made
sure to sanitise everything, but it is a visual thing.

## Screenshots

<details><summary><b>Collapsed so it doesn't take up so much
room:</b></summary>

### Before
<img width="752" height="482" alt="xziPCYXbkn"
src="https://github.com/user-attachments/assets/334e0609-c2e3-4a33-92ad-15120b78ab35"
/>

### After
<img width="900" height="645" alt="NT"
src="https://github.com/user-attachments/assets/476702c7-c83c-4fee-a2cd-34d912468903"
/>

### Unathi attempting to join Zeng-Hu (Button disabled)
<img width="900" height="645" alt="Unathi fail"
src="https://github.com/user-attachments/assets/c5a256c1-5531-4cbe-8198-27411c1aab9a"
/>

### Faction Pages
<details><summary><b>Stellar Corporate Conglomerate</b></summary>
<img width="900" height="645" alt="SCC"
src="https://github.com/user-attachments/assets/6e8bdb64-a220-41d4-a503-1268f9f93a30"
/>

</details>
<details><summary><b>Nanotrasen</b></summary>
<img width="900" height="645" alt="NT"
src="https://github.com/user-attachments/assets/1ff107b5-7b3e-40e2-8f86-390ce29e165b"
/>

</details>
<details><summary><b>Hephaestus Industries</b></summary>
<img width="900" height="645" alt="HI"
src="https://github.com/user-attachments/assets/6fc23159-990d-4de2-9745-827e11ca0442"
/>

</details>
<details><summary><b>Idris Incorporated</b></summary>
<img width="900" height="645" alt="II"
src="https://github.com/user-attachments/assets/366a9824-81f1-4dd1-b385-4fa3968e39e0"
/>

</details>
<details><summary><b>Orion Express</b></summary>
<img width="900" height="645" alt="OE"
src="https://github.com/user-attachments/assets/5588f0fe-d6c3-44b4-8297-cca4ed991bd8"
/>

</details>
<details><summary><b>Private Military Contracting Group</b></summary>
<img width="900" height="645" alt="PMCG"
src="https://github.com/user-attachments/assets/a3dc6540-bfde-4fb2-939d-11e066b1e316"
/>

</details>
<details><summary><b>Zavodskoi Interstellar</b></summary>
<img width="900" height="645" alt="ZI"
src="https://github.com/user-attachments/assets/a8c2c33d-7138-4164-a9f1-6a2dc3eb3e61"
/>

</details>
<details><summary><b>Zeng-Hu Pharmaceuticals</b></summary>
<img width="900" height="645" alt="ZHP"
src="https://github.com/user-attachments/assets/4535ba80-efcb-4e50-9396-299bc16db2b5"
/>

</details>
<details><summary><b>Independent</b></summary>
<img width="900" height="645" alt="Independent"
src="https://github.com/user-attachments/assets/dcf7b46c-edce-4104-a4f5-000479a9f963"
/>

</details>
<hr>
</details>

## Changelog
- rscadd: "Revamped the 'Faction Select' UI in the occupation menu of
character setup."
- bugfix: "Fixed changing species in character setup not resetting your
faction if it became invalid."
  - Not player-facing:
- Fixed the TGUI dev server not working by bumping up the 'source-map'
version. You still have to manually refresh the interface with Ctrl+R or
Ctrl+F5 but it actually links now.
- Added a `wiki_page` variable to each faction to allow for it to be
manually set rather than being exclusively based on the name. (Mostly
just futureproofing)
- Added some line breaks to the faction descriptions to make them more
easily readable.

---------

Signed-off-by: SabreML <57483089+SabreML@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-01-26 23:39:22 +00:00
harry 04bc9fbd13 516 compatibility for browsers (#20652)
this is a bit of

https://github.com/cmss13-devs/cmss13/pull/8646
https://github.com/cmss13-devs/cmss13/pull/8875
https://github.com/cmss13-devs/cmss13/pull/8606
https://github.com/cmss13-devs/cmss13/pull/8607
https://github.com/cmss13-devs/cmss13/pull/8359
https://github.com/cmss13-devs/cmss13/pull/7860
( and thus https://github.com/ParadiseSS13/Paradise/pull/25105
https://github.com/ParadiseSS13/Paradise/pull/25205
https://github.com/ParadiseSS13/Paradise/pull/25363
https://github.com/ParadiseSS13/Paradise/pull/26423 and
https://github.com/ParadiseSS13/Paradise/pull/26433 )
https://github.com/tgstation/tgstation/pull/89766

in order to work properly - using the efficient storage method, instead
of the byond json method - github pages needs to be enabled and built
from the gh-pages branch. because yeah

---------

Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
2025-03-26 21:41:18 +00:00
Fluffy 3185c10cf1 516 internal links (#20428)
Convert all (appropriate) links to use the required `byond://` for 516

Added a grep to detect incompatible ones
2025-02-20 22:54:10 +00:00
Fluffy 0ae0b10764 Refactored all the backslash ref and ref() calls to use REF() instead (#19847)
Refactored all the backslash ref and ref() calls to use REF() instead.
Added a linting for raw ref proc calls.
2024-09-13 10:17:32 +00:00
FlamingLily 4bce8201c3 Creates a framework for per-faction Alt Titles (#19671)
Creates a framework to restrict certain alt titles to certain factions.

As an example and natural logical consequence:
"Corporate Reporter" can only be used by Corporate employees
"Freelance Journalist" can only be used by Independent crew

I plan to use this system in a later PR.

---------

Signed-off-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com>
2024-07-27 12:45:29 +00:00
Fluffy 3dc4cce9c2 Minor span refactoring (#19177)
Minor span refactoring
2024-05-19 16:37:29 +00:00
RustingWithYou 1506f1a50d Departmental Event Jobs (#18245)
* event jobs: the test of faith

no horizon spawns

engineering name fix

* event jobs 2: they work now
2024-02-09 12:18:15 +00:00
Fluffy e867030c2e Update MC (#18112)
* sdf

* fsda

* fuck

* fuck2

* toolz

* sdaf

* sdfa

* saf

* sdfa

* sdfa

* sdf

* sdfa

* temp rename

* temp rename

* temp rename

* sdaf

* the pain is immensurable in the land of byond

* the curse of rah

* safd

* sadf

* sadf

* gf

* asf

* fssdfa

* sfd

* sadf

* sfda

* brah

* brah

* it's easier for you to fix this

* ffs

* brah

* brah
2024-01-06 17:03:57 +01:00
Matt Atlas cadd19beac Ports the TG globals controller and converts globals. (#18057)
* SDQL2 update

* fix that verb

* cl

* fix that

* toworld

* this is pointless

* update info

* siiiiick..

* vv edit update

* fix that

* fix editing vars

* fix VV

* Port the /TG/ globals controller.

* part 1

* part 2

* oops

* part 3

* Hollow Purple

* sadas

* bsbsdb

* muda na agaki ta

* ids 1-15

* 16-31

* 41-75

* bring me back to how things used to be before i lost it all

* the strength of mayhem

* final touches

* cl

* protect some vars

* update sdql2 to use glob

* stuff?

* forgot that is not defined there

* whoops

* observ

* but it never gets better

* a

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2023-12-26 01:16:02 +00:00
RustingWithYou 90c883f3d2 Multiple Consular/Representative Framework (#17853)
* auto-blacklisting for consulars

* proper blacklist list

* changelog

* oops

* corprep

* Update code/game/jobs/job/job.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* roundstart spawn checks

* Update code/game/jobs/job/job.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

* Update code/game/jobs/job/job.dm

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>

---------

Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
2023-12-05 11:37:01 +00:00
Cody Brittain c6605e9b1c Added apprentice alt-titles for Security and Engineering (#16917)
* Added apprentice alt-titles for Security and Engineering

* CL

* Update html/changelogs/GeneralCamo - Cadet Alt Titles.yml

* Fix build

* Added age restrictions for intern alt-titles per code review

* Fix missing parameter in character setup (broke per-species alt title age restrictions)
2023-08-10 11:47:41 +00:00
Fluffy b183188689 Better logging (#16164)
* Initial

* Cleared duplicates

* More work, get rid of log_error

* more

* log_debug() to macro LOG_DEBUG

* More work

* More

* Guh

* Maybe better?

* More work

* gah

* Dear lord

* *inserts swears here*

* gdi

* More work

* More

* dear lord

* fsdfsdafs

* rsdaf

* sadfasf

* sdafsad

* fgsd

* small fuckup fix

* jfsd

* sdafasf

* gdi

* sdfa

* sfdafgds

* sdafasdvf

* sdfasdfg

* sdfsga

* asdf

* dsfasfsagf

* ihibhbjh

* fsadf

* adfas

* sdafsad

* sdfasd

* fsda

* vhb

* asf

* for arrow

* removed source file-line logging, added header for tgui
2023-08-05 21:53:11 +00:00
Matt Atlas 31956c7eb0 Rock the UI Away - Removes VueUI and adds TGUI (#16509)
* tgui the beginning

* binaries and the like

* Bring in the last of it

* Example radio UI

* delete example

* NTOS Main Menu, start on manifest, tgui states

* tasks.json

* gunnery ui pt 1

* okay

* fix everything

* scss update

* oops

* manifest gigablast

* downloader part 1

* download prt 2

* NTOSDownloader final

* mfw committing to_worlds

* gunnery console pt2

* i cooked

* targeting (finished)

* one vueui down

* voting ui almost done

* MY MIND FEELS LIKE AN ARCH ENEMYYYY

* voting ui down

* photocopier

* ntos config + download fixes

* photocopier 2

* refactor define

* NTOS client manager + fixes

* fax machine final (it also uses toner now)

* marching forwards... left behind...

* ntnrc part 1

* canister

* add quotes

* portable pumps pt1 + more backgrounds

* oops

* finish the portable pump

* freezers

so I'll keep on pushing forward... you haven't seen the last of me... oooooooh...

* doors ui pt1

* finish doors UI (forgive me wildkins it's a bit of shitcode)

* vitals monitor, make things use labeled lists, new backgrounds

* mais j'envoyé aucun mayday...

* maglock pt1

* pour ça je me suis perdu...

* infrared

* fix that

* prox sensor pt1

* prox sensor

* signaler (this was actually pretty hard)

* atmos control pt1

* atmos control pt1.1

* atmos pt 2

* fuel injector

* multitool UI

* jammer

* list viewer

* APC

* portgen

* targeting console updates + SMES ui

* new themes, shield generator

* supermatter

* Add ore detector and (shitty) NTNet Relay

* orderterminal pt1

* orderterminal pt2

* smartfridge

* Add (air-)tank GUI update ore detector size

* Adds Transfer Valves

* Add AtmoScrubber

* analyzer pt1

* weapons analyzer pt2

* bodyscanner pt1

* bodyscanner pt2

* fix this shitcode

* seed storage

* appearance changer

* appearance changer final

* sleeper pt1

* sleeper

* gps

* vehicles

* chem dispenser

* lily request

* holopad

* tgui modules pt1

* ppanel

* damage menu

* fixes

* im here too now

* follow menu, search bars

* quikpay

* quikpay fixes

* circuit printer

* ppanel

* ppanel updates

* pai

* turret controls (i want to kill myself)

* tweak

* remove the boardgame

* guntracker

* implant tracker

* penal mechs

come close to me, come close to me

* chem codex

* pai radio

* doorjack

* pai directives

* signaler removal, sensors

* ghost spawner

* spawnpoint

* fixes

* teleporter

* one more to the chopping block

* account database

* remove divider

* scanner, atmos

* latejoin ui pt1

* latejoin

* records pt1

* RECORDS UI DONE

* delete interpreter & records

* CHAT FUCKING CLIENT

* data updates

* fix some things

* final UI, log

* basic nanoui fix

* antag panel

* remove vueui

* atm update

* vending update

* warrants, cameras

* ntmonitor

* time comes for all

* preserve this legacy

* bring that back (oops)

* rcon, ui auto update for computer UIs, remove rcon computers

* alarm monitoring (a bit broke and also todo: add custom alarm monitoring programs to a few consoles)

* A LIKE SUPREME

* a

* power monitor

* lights on

* fuck this code, fuck nanoui modules, and fuck nanoui

* LEAVE IT OH SO FAR BEHIND

* fix alarm monitoring for synths

* I SAW IN YOU WHAT LIFE WAS MISSING

* comms console

* idcard and record updates

* turn the light on

* arcade

* pt2

* news browser

* static

* crusher

* f

* COULD I JUST SLEIGH THE GOLD FROM THE BALLS? I'M SO FRUSTRATED OH COULD YOU TELL? IF I HEAR ONE MORE VUEUI OR ONE NANOUI I'M GONNA LOSE IT SO LET ME GOOOOOOOOOOOOOOOOO

* codeowners & suit sensors

* html ui style removal

* make lint happy

* resist and disorder

* i slowly get up and turn off the noise, already fed up...

* pleaseeeeeeeeeeeeeee

* THE CREDIT LARP IS NECESSARY

* i hold the keys

* RISE UP

* fix that?

* harry's suggestions xoxo

* runtime fix pt2

* You are the only thing that I still care about

* adds build workflow

* Update update_tgui.yml

* adds some needed steps

* ATM

* misc fixes and tweaks

* fixes 2

* make newscasters usable and fix use power on freezers

* turret control is clearer

---------

Co-authored-by: John Wildkins <john.wildkins@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
Co-authored-by: Geeves <ggrobler447@gmail.com>
Co-authored-by: harryob <me@harryob.live>
2023-06-25 19:03:33 +02:00
Wowzewow (Wezzy) 112981b0c8 Centers faction select button (#15911)
also fiddles with some text a little. I hate menu UI.
2023-03-01 17:52:45 +01:00
Matt Atlas dd482c63af Update the codebase to 515. (#15553)
* Update the codebase to 515.

* edit that

* WHOOPS

* maor

* maybe works

* libcall and shit

* do that too

* remove that

* auxtools isnt updated so get rid of it

* actually remove auxtools lol

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2023-01-23 21:21:37 +01:00
Wowzewow (Wezzy) 3913b4f26d Some Corporate Liaison alt titles (#14581) 2022-09-06 12:35:44 +02:00
Werner d21cc48c2a Pushes a missing commit from (#14144) 2022-08-28 02:14:47 +02:00
Werner 5b09177482 Adds the HRA (#14144) 2022-08-27 23:19:27 +02:00
Wildkins 0313f735be Fixed new characters unable to select a faction (#14692) 2022-08-21 22:57:20 -03:00
Wowzewow (Wezzy) 09f188c495 Improves faction selection screen (#14300) 2022-06-18 13:16:00 +02:00
Wildkins 2bb8db37b9 Clean up runtime errors, fix VueUIs opening offscreen (#14025)
* Clean up runtime errors, fix VueUIs opening offscreen

* woops

* myazaki is based
2022-05-20 18:36:14 +02:00
Wildkins 09b6aa747f Implement species-based age restriction for jobs (#13806) 2022-05-10 12:59:02 +02:00
Wildkins c746304fba Optimize lobby readied playerlist (#13546) 2022-04-20 21:48:01 +02:00
Matt Atlas 01a4a39608 Fixes a job selection runtime. (#13438) 2022-04-11 12:04:52 +02:00
mikomyazaki 9f9ac45230 Replaces all references to a 'civilian' department with 'service'. Also fixes operations colour on the late join menu. 2022-04-07 19:02:02 +01:00
Casper3667 567da024d0 fixes people being unable to play as NT (#13064) 2022-02-02 19:35:58 +01:00
Casper3667 1d309ef966 Fixes the ability to join a job as the wrong faction (#13059) 2022-02-02 16:47:35 +01:00
Jiří Barouš 37cbb8fdb8 Categorized latejoin menu and made it into VueUI, improved crew manifest logic and made Verb manifest same as VueUI program, Job fixes (#10470) 2020-11-12 17:08:31 +01:00
Matt Atlas d4666caaac Ports Goonchat from Baystation. (#9635)
changes:

    rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
    rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
    rscadd: "You can change icon style to any font on your system."
    tweak: "The game window has been altered a bit to adjust for this."
    rscdel: "Removed skin style prefs as they are no longer used."
2020-09-24 23:06:04 +03:00
Geeves b433b66a8a Consular and Representative Split (#9954) 2020-09-19 12:11:57 +02:00
mikomyazaki 4e0e08c447 Factions may now have their own specific job blacklists for species + some blacklists (#9532)
* Factions may now have their own specific job blacklists for species.

* Fixes CL blacklists for NT, EPMC, Heph, Idris, Zavod and Zeng-Hu

* Update changelog.

Co-authored-by: ParadoxSpace <takyahasu@gmail.com>
2020-08-20 22:27:15 +02:00
mikomyazaki 16c17f0e08 Alt title display on the character setup menu now looks different. (#9595)
Now displays like this instead of wasting an extra table row per job:
2020-08-12 21:59:27 +03:00
Matt Atlas f3c2b5316f Ported MAP preferences from Vore + custom preview backgrounds. (#9300)
Todo:

Figure out the big empty space thing

SQL
2020-07-09 18:09:13 +03:00
Erki f9de37b568 Fixes #5778 (#8804)
Well this was a dumbass mistake. But what happened is that I sent a pointer to a string instead of the string itself. The result was interesting, but non-functional.

Fixes #5778.
2020-05-03 10:45:17 +03:00
Alberyk bf404fa459 Revert "Necropolis IPCs (#8334)" (#8369) 2020-02-29 21:30:37 -03:00
ParadoxSpace f558570592 Necropolis IPCs (#8334) 2020-02-29 14:04:08 +01:00
mikomyazaki 6074224d00 dreamchecker (#8233)
Implements dreamchecker plus fixes all errors
2020-02-16 20:42:32 +02:00
Alberyk ebd8640a52 Fixes age restrictions not working when jobs were restricted by species (#7931)
- fixes #7928
2020-01-06 22:54:44 +02:00
Matt Atlas f5a2ff1bcd Langserver Fixes (#7740) 2019-12-22 17:51:24 +02:00
Alberyk 13138756b5 Enforces species jobs restrictions through mechanics (#7691) 2019-12-18 23:13:41 +01:00
MarinaGryphon 300d0fc8d8 Fixes Alt Title Age Requirements (#7130)
Job age requirements now take into account alt titles. Alt titles are automatically limited to only ones a character is old enough for.
    The latejoin screen now shows what alt-title you have selected.
    The occupation preferences screen now functions differently if only one alt-title is available, or if the base job is not available.
    Tidies up the job age requirement system.
2019-10-09 23:07:52 +03:00
Matt Atlas 3ac40451e1 Mechanically enforces minimum age requirements for jobs (#7106)
Pretty much a port of Baystation12/Baystation12#27197
2019-10-06 21:47:04 +03:00
Karolis 61f6e5a6c1 Styles basic HTML UIs (#7001) 2019-09-24 00:42:15 +04:00
Werner 612bb40e30 Removes the option to join as random job. (#6886) 2019-09-08 12:24:42 +03:00
Erki b435a8f573 Faction updoots (#6765) 2019-07-24 21:09:16 +02:00
Erki bd2d9a184d Better factions and contractors (#6493)
Intent of this PR: make factions actually matter.

How we're going to do this:

Make factions limit job choices.
Make factions have alternative loadouts that override job uniforms
Make factions be visible in the employment records.
Revert existing faction loadout options or put them behind a preference, in favour of new shit.
2019-07-16 00:21:34 +03:00
MarinaGryphon 9923213335 Journalism/Newscaster Overhaul, Take One (#4857)
Newscaster stories can now be multiple lines long and contain pencode formatting.
You can now post and view comments on individual newscaster stories.
Newscaster stories have slightly neater styling.
You can now like and dislike newscaster stories, and these are tracked per-story.
Journalists are now their own role, with a Security Correspondent alt-title.
The merchandise store (when has it ever been used?) has been replaced with a journalist's office.
The journalist has a pet spiderling in a jar, named Peter. He's harmless. Probably.
2018-06-17 12:18:15 +03:00
Erki ba57b5a5e5 Preferences SQL tests (#4016) 2017-12-29 15:57:31 -06:00
Lohikar d5f7bc76a7 Preferences HTML cleanup (#3301)
changes:

Changed a lot of string building to use lists & Join() - this should reduce the number of strings generated at runtime.
Fixed a bug where the incidents menu was not populated.
Changed color boxes to use CSS & divs instead of one-cell tables.
2017-08-17 12:22:20 +03:00