This converts the machine and mob processes to the SMC. Additionally, it
adds the Atom subsystem, which handles all Initialize() calls in place
of the old gameticker. Due to incompatibility with our atmospherics
(FUCK OUR ATMOSPHERICS FOR FUCKING EVER JESUS CHRIST WHO THE FUCK MADE
THIS PIECE OF GODDAMN SHIT) atmospherics machines do not use
Initialize() as they should, instead opting for a custom atmos_init
proc that the air controller handles.
This commit adds the Nightshift lighting mode from /tg/. From 19:00 to
07:00 in station time, the station will go into a reduced-lighting mode,
with dimmed lights across the station.
In conjunction with this, there is a new configuration option to start
the shift time at a random time other than 12:00, so that players are
more likely to experience a night shift (as opposed to having to have a
7 hour round).
Adds arcade carpet to (obviously) the arcade
- Credit to Goonstation for the arcade carpet sprites
Adds arcade carpet as a prize in the prize counter.
Adds a security camera and holopad to Metastation pad
Adds stools to both arcades and rearranges the arcade games in the
Cyberiad arcade
This commit ports /tg/'s move refactor.
The throwing system has been replaced entirely, removing the necessity
of throw_at_fast and resolving multiple outstanding issues, such as
crossbows being unusable.
Spacedrifting has also been upgraded to function with the new throwing
system. It is now it's own process.
Tickcomp has been killed, and the config values have been adjusted to
more or less match live Paradise.
All mobs now share a common Bump() proc. There are only four mobtypes
which do not, including humans and simple animals. With the exception
of mob types that do not ever want to Bump() or be Bumped(), they should
call the parent proc.
Human movement slowdown has been moderately tweaked in how it stacks effects;
It shouldn't be significantly different from a player perspective.
Mobs will now spread fire if they bump into another mob. I don't want to set
the world on fiiiire, I just want start a flame in your heart~
For player facing changes: Input delay has been reduced by roughly ~50ms for
any direction keys, by advantage of a previously unknown flag on byond verbs
which allow them to operate independently from the tick rate of the server.
You may need to clear your interface.dmf file if you have a custom skin for
this change to function.
Two new terminals have been added just outside the holodeck, capable to
projecting holograms of your Nano-Mobs for you to pit in battle against
your rival (or your other Nano-Mobs).
Battling is turn-based, with each side choosing to either attack,
recall, or surrender (if they don't have a mob on the field). Reducing
your rival's Nano-Mob to 0 health will down it, earning your mob
valuable battle experience and even increasing it's level! Surrendering
ends the battle, but does not grant experience as the battle was not
completed.
Additionally, Medical has provided a brand new Nano-Mob Hunter GO!
Restoration Terminal for use in their lobby area. Simply swipe any
Nano-Mob card through and it will be restored to full health instantly!
Adds a cooldown to the manual reboot command, to prevent anti-fun
comdoms from endlessly rebooting to lock crew out of the game.
In the event of the game server being knocked offline, the manual reboot
can be used even if it was on cooldown from a previous restart. This
still initiates a fresh cooldown.
Removes server instability, random disconnects, and server crash due to
trap mobs / high player count
Trap mobs are now capped just like normal spawns
- If a trap mob is created that would push the total number of trap mobs
over this limit, the server will remove the oldest trap mob (effectively
replacing it)
Changes health from a list using magic numbers to an associated list for
readability (doesn't make sense to have two vars for what little uses
this)
Converts mob displaying to use the alternate appearance system, to allow
for a per-mob control over visibility
- Only will show for mobs that are holding a PDA with a game client that
is connected to the game server.
- Nanomobs properly are concealed from player mobs after being interacted
with (capture/escape), PDA dropped, or game client disconnection
- Game client will disconnect from game server when you change the active
PDA app (including going to PDA main menu) and/or eject the game cartridge
Also finished my thought in that one comment. It's about time I-
Adds catch modifier support, track wild captures
Adds support for capture modifiers:
- These modifiers adjust the "effective run chance" of the mob,
potentially making it easier or harder to capture a mob based on the
total modifier
- Attempting to capture a mob in melee (running up and smacking it with
pda in hand) now grants a 20% capture bonus (reduces mob's effective run
chance by 20)
- Attempting to capture a mob at range (throwing the pda) does not grant
a bonus
- Support is in place for a client-based catch modifiers, to allow for
possible things such as bonuses or penalties from things like "item
cards" or achieving X number of captures. This is not currently planned
for this PR
Adds tracking of how many wild mobs you have captured to the game UI.
Mobs from trading cards will not increase this value, only mob you
captured from the wild will.
- Bragging rights for now, but could be used for a future "milestone"
system to earn bonuses
More cleanup and fixes
Thrown PDAs now properly trigger capture attempts
Mobs now properly consider their type preferences for spawning (may need
to up whitelist bonus weight)
Mobs no longer will spawn in holodeck areas, since this results in them
sometimes spawning on z2 in the holodeck source "templates"
show_message replaced with audible_message
Spawn area selection cleanup
Mobs will no longer attempt to spawn in the derelict solars,
constructionsite solars, or the unused /area/construction subtypes (the
base type is used, just not the subtypes as far as I can tell)
- Mobs will also avoid spawning on turfs that are not on the station
z-level, in the event an area is mistakenly mapped onto additional
z-levels or something
Changes to spawn selection:
- Elemental types now have a set of area and turf black/whitelists to
eliminate copy-pasted ones for same-type mobs
- Mobs still have their own black/whitelists to further customize their
spawn preferences beyond their elemental type preferences
- Whitelisted areas/turfs now increase weight by 4 per whitelist they
are on
- Blacklisted areas/turfs now decrease weight by 2 per blacklist they
are on (if the ending weight is less than 1, the area/turf is removed
from consideration)
- Creation of weighted lists for area and turf selection moved to
separate procs for readability
- Spawn area selection now uses pickweight
Elemental Types now use the defines instead of hardcoded paths for their
lists
- Fixed a mistake with Rock Type resistances improperly including Grass
and not including Flying