139 Commits

Author SHA1 Message Date
MrMelbert e0bdfc3f5f Dynamic Rework (#91290)
Implements https://hackmd.io/@tgstation/SkeUS7lSp , rewriting Dynamic
from the ground-up

- Dynamic configuration is now vastly streamlined, making it far far far
easier to understand and edit

- Threat is gone entirely; round chaos is now determined by dynamic
tiers
   - There's 5 dynamic tiers, 0 to 4.
      - 0 is a pure greenshift.
- Tiers are just picked via weight - "16% chance of getting a high chaos
round".
- Tiers have min pop ranges. "Tier 4 (high chaos) requires 25 pop to be
selected".
- Tier determines how much of every ruleset is picked. "Tier 4 (High
Chaos) will pick 3-4 roundstart[1], 1-2 light, 1-2 heavy, and 2-3
latejoins".
- The number of rulesets picked depends on how many people are in the
server - this is also configurable[2]. As an example, a tier that
demands "1-3" rulesets will not spawn 3 rulesets if population <= 40 and
will not spawn 2 rulesets if population <= 25.
- Tiers also determine time before light, heavy, and latejoin rulesets
are picked, as well as the cooldown range between spawns. More chaotic
tiers may send midrounds sooner or wait less time between sending them.

- On the ruleset side of things, "requirements", "scaling", and
"enemies" is gone.
- You can configure a ruleset's min pop and weight flat, or per tier.
- For example a ruleset like Obsession is weighted higher for tiers 1-2
and lower for tiers 3-4.
- Rather than scaling up, roundstart rulesets can just be selected
multiple times.
- Rulesets also have `min_antag_cap` and `max_antag_cap`.
`min_antag_cap` determines how many candidates are needed for it to run,
and `max_antag_cap` determines how many candidates are selected.

- Rulesets attempt to run every 2.5 minutes. [3]

- Light rulesets will ALWAYS be picked before heavy rulesets. [4]

- Light injection chance is no longer 100%, heavy injection chance
formula has been simplified.
- Chance simply scales based on number of dead players / total number
off players, with a flag 50% chance if no antags exist. [5]

[1] This does not guarantee you will actually GET 3-4 roundstart
rulesets. If a roundstart ruleset is picked, and it ends up being unable
to execute (such as "not enough candidates", that slot is effectively a
wash.) This might be revisited.

[2] Currently, this is a hard limit - below X pop, you WILL get a
quarter or a half of the rulesets. This might be revisited to just be
weighted - you are just MORE LIKELY to get a quarter or a half.

[3] Little worried about accidentally frontloading everything so we'll
see about this

[4] This may be revisited but in most contexts it seems sensible.

[5] This may also be revisited, I'm not 100% sure what the best / most
simple way to tackle midround chances is.

Other implementation details

- The process of making rulesets has been streamlined as well. Many
rulesets only amount to a definition and `assign_role`.

- Dynamic.json -> Dynamic.toml

- Dynamic event hijacked was ripped out entirely.
- Most midround antag random events are now dynamic rulesets. Fugitives,
Morphs, Slaughter Demons, etc.
      - The 1 weight slaughter demon event is gone. RIP in peace.
- There is now a hidden midround event that simply adds +1 latejoin, +1
light, or +1 heavy ruleset.

- `mind.special_role` is dead. Minds have a lazylist of special roles
now but it's essentially only used for traitor panel.

- Revs refactored almost entirely. Revs can now exist without a dynamic
ruleset.

- Cult refactored a tiny bit.

- Antag datums cleaned up.

- Pre round setup is less centralized on Dynamic.

- Admins have a whole panel for interfacing with dynamic. It's pretty
slapdash I'm sure someone could make a nicer looking one.

![image](https://github.com/user-attachments/assets/e99ca607-20b0-4d30-ab4a-f602babe7ac7)

![image](https://github.com/user-attachments/assets/470c3c20-c354-4ee6-b63b-a8f36dda4b5c)

- Maybe some other things.

See readme for more info.

Will you see a massive change in how rounds play out? My hunch says
rounds will spawn less rulesets on average, but it's ultimately to how
it's configured

🆑 Melbert
refactor: Dynamic rewritten entirely, report any strange rounds
config: Dynamic config reworked, it's now a TOML file
refactor: Refactored antag roles somewhat, report any oddities
refactor: Refactored Revolution entirely, report any oddities
del: Deleted most midround events that spawn antags - they use dynamic
rulesets now
add: Dynamic rulesets can now be false alarms
add: Adds a random event that gives dynamic the ability to run another
ruleset later
admin: Adds a panel for messing around with dynamic
admin: Adds a panel for chance for every dynamic ruleset to be selected
admin: You can spawn revs without using dynamic now
fix: Nuke team leaders get their fun title back
/🆑

(cherry picked from commit 4c277dc572)
2025-06-26 20:12:17 -04:00
harry 9aefd83689 makes various uis more compatible with high dpi monitors, adds a preference for smaller windows (#90418)
## About The Pull Request
various uis (tgui-say, vv, player panel, anything using
`/datum/browser`) would not correct for dpi. they now do

we also have a preference to allow you to have smaller windows that are
zoomed out, instead of larger windows that are not zoomed

#### of note, this does require a small change to the usage of css
viewport units, like `vh` and `vw`. they need to be fed through the
`vp(100vw)` function first. there was only one such unit in the codebase

on 4k monitor with 200% scaling:

fixed (pref on default)

![BiygmRan0QqxOMqL@2x](https://github.com/user-attachments/assets/1bdbc93c-1cd4-4a17-bf18-6cca7a5df032)

pref disabled

![DUWSVJNXt3xuQJEy@2x](https://github.com/user-attachments/assets/1b87ed9e-0498-44c4-ab1b-2c0321e70ce0)


## Why It's Good For The Game
516 fucked with uis again and this unfucks them a bit

## Changelog
🆑
qol: there's a new UI preference called UI scale which allows people
that use windows scaling to have their UIs original size with the
contents zoomed out, instead of the default, which is the UIs being
larger with the contents "normal" size
fix: various UIs did not respect windows scaling, they now do
/🆑

---------

Co-authored-by: harryob <55142896+harryob@users.noreply.github.com>
2025-04-29 17:41:07 -06:00
Kapu1178 b9c803a9d8 Base implementation of /datum/persistent_client (#89449)
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).

Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.

Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.
2025-03-12 16:47:54 -04:00
John Willard 2e4d70afe5 Updates href uses for 516 (#88699)
## About The Pull Request

Was just scrolling through the Paradise github since they seem to have
more work done for 516 to see if there's anything I can port over, found
this and thought why not.

Ports parts of https://github.com/ParadiseSS13/Paradise/pull/25105
Specifically, updaing all hrefs to use the internal ``byond://``, and
adding it to grep.

## Why It's Good For The Game

More work towards 516.

## Changelog

Nothing player-facing.
2024-12-24 11:42:20 -08:00
John Willard 611c48be40 Monkeys now use height offset (and monkey tail works) (#81598)
This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).

This reverts a lot of changes from
https://github.com/tgstation/tgstation/pull/73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.

I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).

Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):

Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)
2024-04-09 02:36:31 -05:00
san7890 25229440c6 Adds Mob Tag data to log messages + player panel (#79994)
## About The Pull Request

Closes #79969 

In administration, things shouldn't be _required_ to have unique names.
I think that searching by ckey/key in logs should still work fine but I
can see the value in having the mob tag (which is also exposed in places
like `debug.log`, and in public spots too like `hallucinations.html`)
being added with all this data for even more trimming if you wanna find
all the rule-breaking stuff someone does as a very specific mob.

Anyways, the player details datum tracks both the name as well as the
mob tag in an associated list that we can access in order to do work
with it in stuff like the player panel.

We do this by the following
* Rework the player details list to be associated, as well as updating
all instances of the proc that sets this list.
* Make the code for handling duplicates a bit more explicit so it
actually works.
* Make the formatting in the player panel better as well.
* Also add the mob tag information to wherever we might need to log it
via a new proc `key_name_and_tag()`
* Also adds this information to the per-player player panel

## Why It's Good For The Game

Better administration tools, should be more helpful when it comes to
filtering as well as post-mortem cross-comparison for coders in order to
find out exactly _which_ mob was problematic when looking at debug.log
or whatever you may have.

```txt
[2023-11-28 01:25:37.434] GAME-SAY: San7890/(Katie Yossarian) (mob_2759) (DEAD) "deez nuts" (Primary Tool Storage (138,140,2))
[2023-11-28 01:25:39.478] GAME-SAY: San7890/(Katie Yossarian) (mob_2759) (DEAD) "as big chungus" (Primary Tool Storage (138,140,2))
[2023-11-28 01:25:40.617] GAME: *no key*/(Katie Yossarian) (mob_2759) *no key*/(Katie Yossarian) is no longer owning mob Katie Yossarian(/mob/dead/observer) (Primary Tool Storage (138,140,2))
[2023-11-28 01:25:40.618] GAME-ACCESS: Mob Login: San7890/(Katie Yossarian) was assigned to a /mob/living/carbon/human
[2023-11-28 01:25:40.624] GAME: San7890/(Katie Yossarian) (mob_2760) Client San7890/(Katie Yossarian) has taken ownership of mob Katie Yossarian(/mob/living/carbon/human) (Primary Tool Storage (138,140,2))
[2023-11-28 01:25:42.305] GAME-EMOTE: *no key*/(chasm lobstrosity) (mob_88) chitters. (Lavaland Wastes (126,178,3))
[2023-11-28 01:25:42.435] GAME-SAY: San7890/(Katie Yossarian) (mob_2760) "i hate it here" (Primary Tool Storage (138,140,2))
[2023-11-28 01:25:43.058] GAME-COMPAT: ADMIN: San7890/(Katie Yossarian) admin ghosted.
```


![image](https://github.com/tgstation/tgstation/assets/34697715/bbcfb021-2d1f-4e6b-8844-63c6ea4e4bd1)


![image](https://github.com/tgstation/tgstation/assets/34697715/8ae02f7c-8b68-45f9-94c0-41d679bc0b69)

this was taken over three rounds ignore discrepancies

i'm rather fond of having this information in the per-player panel
because otherwise you need to
A) scroll through the F6 window until you find your match
B) pull up three different VV windows

## Changelog

🆑
admin: The Player Panel should now contain the unique mob tag associated
to a certain mob that a player might inhabit at one time, which is
stored on their player details datum on their client (which is
guaranteed to always exist).
admin: The "Old Names" details of a player is now visible in their own
personal per-player player panel.
/🆑
2023-12-01 05:58:47 +00:00
san7890 73d526c797 Adds localhost case to the Player Panel (#79999)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/34697715/2fd2b8fd-dc86-4150-8f0f-b8ac6a5dc03c)

This always confused me debugging on local, the thing in the parenthesis
is supposed to the be the IP Address of the client currently in the mob.
However, local hosts have a `null` IP Address (BYOND thing). So, let's
add handling to this so this little thing won't be so confusing anymore
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/34697715/b365e107-cfcf-497c-92da-f5930666cbb0)

Better.
## Changelog
Not really relevant.
2023-11-29 10:27:03 -05:00
carlarctg d86550773b Valentines and ERTs will no longer get mood boosts from traitor moodener items (#78597)
## About The Pull Request

Valentines and ERTs will no longer get mood boosts from traitor moodener
items

Closes #73432

## Why It's Good For The Game

bugge

## Changelog

🆑
fix: Valentines and ERTs will no longer get mood boosts from traitor
moodener items
/🆑
2023-09-27 17:02:11 +01:00
Furior a887bacec1 Fix: player panel encoding (#75584)
## About The Pull Request
Fixes ?typo? in player panel html. Now non English text looks fine.

## Why It's Good For The Game
Forks that allow non English names now can see them in player panel
properly.

## Changelog

🆑
admin: If you are on a downstream server using non-Latin fonts (e.g.
Cyrillic) for character/job names: The player panel encoding has been
fixed so it should show up properly for you now.
/🆑
2023-05-22 10:32:17 -06:00
Jacquerel 0fe4dea03f Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)
## About The Pull Request

There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.

I left out the two others which are already in PR, I'm not stealing your
GBP.

Fixes https://github.com/tgstation/tgstation/issues/68881

## Why It's Good For The Game

Consistency, mostly. 
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.

There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.

alright here goes

## Changelog

🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑
2023-03-17 13:47:07 -06:00
Jeremiah 872e64fb05 Adds spaces around logical operators (#72603)
## About The Pull Request
Part of a prior PR that was closed (#72562). This version does not add
the check in CI.
## Why It's Good For The Game
The work is already done, so I figured why not.
## Changelog
N/A Nothing player facing

Co-authored-by: Jeremiah Snow <jlsnow301@pm.me>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-16 16:56:35 -08:00
Ryll Ryll 071b6f05e8 Misc admin tools improvements (#63665)
About The Pull Request

This PR makes a few small tweaks to admin tools that I think frequent users may appreciate.

    Adds the "Find Updated Panel" button to the player panel, which bring up that ckey's newest PP if one exists. Useful for when the person you're inspecting has changed mobs so you don't have to search for their new mob to get their new panel.
    Adds VV and TAG links to all the entries in the Get-Contents right click verb. This should make checking and editing someone's gear easier, since you don't have to VV the person -> their satchel -> their survival box -> their oxygen tank for example, you can just click the VV link for the tank directly.
    Lets you ignore punctuation in the F6 player search menu. This was a request, so if you have a silicon named "H.E.R.A.", you can now pull it up by just searching "hera". Also ignores spaces, but I doubt that'll cause any issues.
2022-01-12 18:58:32 +13:00
oranges 53367e6f37 Fixes bug in playerpanel javascript relating to cyborgs (#63425)
Introduced by #63357, this caused the player panel mouseover behaviour
to stop working and malfunction.

I also added a big warning to the job defines so that people don't think
it's easy to just wander in and rename all the jobs for fun
2021-12-15 21:12:27 +00:00
John Willard 2834383245 Makes all default job titles, defines. (#63357)
Jesus christ we were just waiting for someone to misspell something eh?
2021-12-14 17:48:46 -08:00
Ghilker b95c0366a4 _HELPERS/unsorted.dm has been sorted (#61882)
bring code up to latest standards, move many procs to named files inside _HELPERS
no idea where to put some of these procs, help is appreciated
made more files to contain some unique code, deleted unsorted.dm, we can rest now
2021-10-05 20:22:57 +01:00
Qustinnus f66ca34626 Refactors monkeys into a species (#55614)
Changes monkeys from carbon subtype to species.
2020-12-30 16:30:15 +01:00
jdawg1290 62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
MrDoomBringer ceea9b6793 [Ready] Skillcapes II: Revenge of the broken github: A Skill Menu Special: New Sprites Edition (#50656)
* 10K hours

60,000 minutes
hahah


sure if you want a trailing newline i can do that


default cloak gets default skill


lazy list and no equip good


necessary ig


Update code/datums/skills/_skill.dm

Co-Authored-By: nemvar <47324920+nemvar@users.noreply.github.com>
Update code/datums/skills/gaming.dm

Co-Authored-By: Angust <46400996+Angustmeta@users.noreply.github.com>
WIP PDA skill monitor program


hacky fixes till i refactor skills


refactors skills a bit, adds admin skill edit menu


If you have a failing, it's that you're always demanding perfection

...IF you have a failing
i think that's it for the admin skill manger


appeases lord flord


bruh


level names


FUCK!!


unga


Update code/modules/vehicles/vehicle_key.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/topic.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Apply suggestions from code review

frick

Co-authored-by: Rohesie <rohesie@gmail.com>
EOL and dumb spaces


more rohsie bait


tgui: Query Windows Registry for BYOND cache directory

hell yeah brother


update tgui and dmi


CLRF and bat file


typo ig

* tgui and new janicloak that i accdiently changed on another branch

* jani

* gamer cloak

* trim trailing whitespace

* tgui

* bruh

* variable renaming
2020-05-25 21:46:22 -03:00
AnturK 108cd4da9f Fixes player panel handling " (#49793) 2020-03-09 19:08:48 -07:00
MrPerson 12eecfd181 Makes raw HTML and browser datum popups UTF-8 aware (#49066)
* Makes raw HTML and browser datum popups UTF-8 aware

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

* Fixed new_player.dm

* Fucking filing cabinets
2020-02-01 22:14:31 +01:00
nervere d04fd9417c removes unused secrets panel button, fixes a button in the global player panel (#43427)
* fixes secrets topic check_antagonist

* removes code related to check_antagonist topic that doesn't work or does nothing

* changes the name of the button in the secrets panel

* removes old secrets panel topic check_antagonist

* player panel antag button no longer relies on secrets topic

* player panel antag button no longer relies on secrets topic

* readds something i shouldnt have removed
2019-04-03 18:21:26 +02:00
AnturK e08d3df0be Fixes player panel filtering. 2018-10-29 08:27:54 +01:00
AnturK 9306d01f6f Adds old name tracking to player panel, cleans up some name assignments. 2018-10-25 20:39:51 +02:00
vuonojenmustaturska ece7de4fb2 Admin borg panel (#36990)
* borgpanel

* wip borg upgrades

* some more

* lockdown

* Update borgopanel.ract

* Update borgopanel.ract

* Update borgpanel.dm

* fuggin borg upgrades :DDD

* more compile, less whatever

* meaningless churn

* and we're done

* usr, vtec

* Update borgopanel.ract

* Update borgpanel.dm

* many squid are cool

* reviews

* coerce to client, much nicer this way

* add admin logging

* review stuff
2018-04-08 11:46:27 -04:00
kevinz000 c43c84f5f5 logging (#36818) 2018-03-29 20:09:36 -04:00
ShizCalev ee18d6f8e2 Fixes clockwork sigil candidate runtime, cleans up some jobban checks with defines (#34907)
* Cleanup

* .

* Synced special_role & factions with role defines

* Revert

* more cleanup

* fix
2018-02-04 03:03:34 -06:00
AnturK e38e6b8fa4 Antag Panel / Check antagonists Refactor (#34236)
* Antag Panel & Friends Refactor

* Prettfying

* Removes abduction also blob from default configs.

* Ninja fixes

* Ninjafix

* First draft of the new check_antags

* I love coding without compiler

* Yes

* Fixes

* Check_antags part  2

* Fixes and cleanup

* Okay should be good now.

* Adds simple no move & no tc syndie for events

* Integrates toggle objective pr

* Why i even bother.

* Offer mob shows all antags

* Some minor visual stuff

* Proper name for the helper
2018-01-19 09:43:23 -05:00
Tad Hardesty f2dbe5cf13 Replace explicit z-level checks with defines (#33829)
* Replace explicit z-level checks with defines

* Rename turf_z_is_planet for consistency

* Use TRUE/FALSE in onSyndieBase
2017-12-29 14:40:06 -05:00
More Robust Than You 6b642d220f Renames /datum/objective_team to /datum/team 2017-12-18 07:30:31 -05:00
AnturK 3ac9d24cb0 Nuke Op Datumization (#32680)
* Nuke Op datumization.

* Whoops

* Fixes use_tag for nukes. Only syndiebomb uses one.

* Fixing rebase stuff

* How many times

* Cleanup
2017-11-29 13:52:58 -05:00
oranges ac8864b6e3 Merge pull request #31947 from AnturK/yarr
How does this work:
Station receives a communication extorting current cargo point, if they answer yes the points are just gone and nothing of interest happens.

If station refuses to pay or is silent for 3 minutes, pirate shuttle spawns somewhere in space.

    There's an internal GPS onboard so crew will always be able to follow the shuttle.
    Crew of 3, moderately armed. (Balance pending)
    Shuttle engines have 3 minute cooldown between jumps.
    Special shuttle equipment will block cargo and emergency shuttles from leaving and slowly steal the points.
2017-11-13 22:18:37 +13:00
AnturK 70d0357b33 Ling datum antag standarization. (#32183)
* Ling datum standarization.

* Removal of redundant file

* Ok
2017-11-05 20:32:37 -05:00
AnturK cd1c4f9df9 Pirate Event 2017-11-04 17:33:45 +01:00
Emmett Gaines 825ab4def4 [512] The great \ref purge (#31824)
* The great \ref purge

* cleanup
2017-10-28 17:20:04 -04:00
KorPhaeron 7034a22e78 Blob fixes (#31913)
* Blob alarm sounds

* Fixes antag panel and blob report being sent too early

* Assigning fix

* Keeps announcement for use in false alarm
2017-10-21 21:07:55 +02:00
KorPhaeron be748e3323 Disentangles blob from blob mode/removes blob mode (#31780)
* Disentangles blob from blob mode

* Observer examine

* Fixes runtimes

* Blob now has infinite points in critical mass and will consume the entire station visually

* Different icon

* Blob event more common

* All overminds get to pick their core location

* Blobs block the shuttle

* Not sure when controller would be different from overmind
2017-10-18 21:55:28 -04:00
AnturK bfc5a2cca8 Datum rev & related upgrades to base datum antag (#31630)
* Datum rev & related upgrades to base datum antag

* Actually starts objective tracking

* Grammer & clumsy removal things

* unifies file names

* Fixes heads displaying in every mode

* This is why i ask for reviews

* KILL ME

* proper antag detection

* Fixes admin de-revving

* Sanity

* Fix conflicts

* Fixes instant roundend

* Fixes flashes

* Waits until setup is done to declare roundend.
2017-10-18 20:25:42 +13:00
kevinz000 c3c9a48efa Update player_panel.dm 2017-09-30 22:30:05 -07:00
Jordan Brown 4178c209f1 Configuration datum refactor (#30763)
* Configuration datum refactor

* More WIP

* New easier on the eyes format

* More WIP

* Finished config.txt

* Fucktons more WIP

* The end of conversion draws near...

* Add all this shit

* Done converting entries finally

* Hunting down compile errors

* More WIP

* MORE CONVERSIONS

* More WIP

* More WIP

* Oh shit only 90 errors this time!

* IT COMPILES!!!

* Fixes world start runtimes
2017-09-29 15:36:51 +13:00
ShizCalev 74f5a8c904 DisplayTimeText mk2 (#30969)
* Adds new helper, DisplayTimeText

* Removed unused define

Thought it would've been nice to have for the future, but I guess it's
fine to go without it.

* CBB

* Revamp

* Early returns

* More cleanup

* Proc cleanup

* Makes fraction only show if seconds is < 1

* Last cleanup

* Revert

* Corrected incorrect round time.

Dunno how nobody ever caught that it was incorrect on live servers, gg.
2017-09-24 19:58:58 -04:00
pubby 1e4d1ca42f Traitorbro gamemode (#30344)
A dead-simple traitor variant.

It's like traitor, except instead of an uplink you get a buddy: your blood brother. You must team up with your brother to complete your objectives. It runs along side regular traitor mode, thus the name "traitorbro".
2017-09-18 11:02:23 +12:00
Jordan Brown e5929eb15b More admin auth fixes (#30688) 2017-09-14 13:16:23 -03:00
Jordan Brown 84b1e3d71e [s] Adds a security token to all admin hrefs (#29839)
There's a certain issue of people spoofing real byond links to admins. Now all links should come with a generated key that is validated when the Topic is run.

Added DEBUG_ADMIN_HREFS to debug this system while we test it (Allows hrefs without tokens and complains about it in the logs)

Just add [HrefToken()] as a parameter to all admin hrefs. Anything that ends up running through VV or Holder will be verified
2017-09-09 12:15:53 +10:00
Joan Lung e83d72219d Soft crit, except not terrible (#30262)
* Soft crit, except a little bit harder.

* tweak

* 👌

* why was this even in here

* no radios in critical

* fix that too

* keep to original logic

* not very smart, really

* tip: do nothing tgui-side that you can do code-side, because we can't do defines in tgui

* blood trail

* can't do blood trails

* how does this even work

* harsher slowdown and more obscured vision

* it really puts it into perspective; you're fucking dying.

* stat_attack

* stop fuckin whispering into radios or whatever it is you're doing

* more fixes

* fix

* fix

* fix the radio shit

* bikeshed?
2017-09-04 18:58:34 -05:00
MoreRobustThanYou c48def94d8 Removes gangs (#30056) 2017-08-31 17:31:49 -03:00
Jordan Brown af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00
ShizCalev 45d3d52af7 Made some object lists less terrible to read (#29304)
* spaces

* more spaces

* last ones
2017-07-18 10:44:29 -04:00
ExcessiveUseOfCobblestone 8a5c7989b5 Cult Master is now given a Suffix in Check Antags (#28445)
* Create player_panel.dm

* does the leoz
2017-06-16 17:09:03 -04:00
Robustin 1a76285d1c Decentralization and Gang Clothes 2017-05-12 00:54:09 -04:00
Mike Long 4687dd0117 Devil refactor+small revamp (#26815)
Hello, with PR #26717 merged, I think it's a good time to add devils to the standardized antag datum system.

This PR is mostly a refactor, which shouldn't be noticed by the playerbase. Changes that might be noticed are below.

🆑
tweak: Modified chances for returning someone's soul using an employment contract. Now everyone has a chance, not just lawyers and HoP.
add: Particularly brain damaged people can no longer sign infernal contracts properly.
tweak: Infernal contracts for power no longer give fireball, and instead give robeless 'lightning bolt' spell.
add: Devils can now sell you a friend, for the cost of your soul.
tweak: The codex gigas should now be easier to use, and less finicky.
del: The codex gigas no longer sintouches readers.
/🆑
2017-05-10 22:02:17 +12:00