* Porting Fixes
- Ores now properly initialize
- Spawned in characters now have languages set
* Update ore.dm
* More Hard Delete Fixes
* Fixes compile issue
- Fixes Paper and font tags stacking across rounds, as shown in: 
- Fixes Persistence being always-on because of if("persistence_enabled") config.persistence_enabled = 1. As explained:
> it's on by default, which means config.txt will be read and if it's not there it stays at 1. If it is there,it gets set to 1. There is no way to disable it
- Adds config options to enable/disable **Persistence for Maploaded objects**, as well as a verb to toggle such.
- Adds Persistence to config.
Currently IGNORE_MAPLOAD for Persistance is **Disabled.**
Maploaded objects/dirt/etc will be saved by persistence, preserving current behavior.
You will need to update config.txt with the following lines:
\## Uncomment this to DISABLE persistence
\#PERSISTENCE_DISABLED
\## Uncomment this to DISABLE maploaded trash/paper/etc from being saved by the persistence system.
\#PERSISTENCE_IGNORE_MAPLOAD
Adds a HUD for observers
Adds a HUD for rigs and mechs
Adds up/down buttons for AI hud
Add more tg style alerts
Fix some bugs with the tg alerts
Improve icon_states usage by caching it
Redo how respawning works, add a button to ghost hud for it
* Move gameticker to subsystem folder before editing to track history thru rename.
* Refactor the gameticker into SSticker
- Instead of independently spawn'd while/sleep loops, it stores its state and lets the MC fire it.
- Convert relative path indentation procs to absolute path as per modern style standards.
- Break apart the inner loops into separate procs so you can see what is actually going on.
- It now shows up in MC tab, along with stats about what phase it is in.
* Revamp Start Now admin verb to actually wait until init is done before starting.
* Update Lobby stat panel to show voting and server init status.
* Fix: Only call autogamemode vote once.
* Spawn statistic_cycle off to not sleep SSticker.
* Add SStickere changelog
* Change to use to_world and add wrapping spans.
* Added filtering spans by specific request of Polaris.
- Fixes the dropdown options of the /list VV page to actually do anything.
- Fixes the E,C,- links next to each list entry on the /list VV page to actually do anything.
- Fixes the Refresh link on the /list VV page to actually refresh.
- Previously attempting to edit a list entry with a Number value would runtime. Unless you were in a particular set of circumstances, which could lead to even weirder effects like unexpected associatead values being set.
- Also cleaned up the experience by removing options from popup prompts that would inevitably lead to runtime errors.
- Set initialized = FALSE on unsimulated turfs that need to intialize.
- Most of area/New() to initialize
- Faster lookup of self-init on atoms
- Split air alarm and fire alarm files, move new to initialize
- Tweak decals and opacity
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
- There is a new option in the player panel labeled "Send back to
Lobby", which will send a given player back to the lobby.
- The player panel also has a shortcut to the "Spawn Character" verb.
- Finally, there's a new config option that disables the warning
message about multikeying if two mobs with the same CID are found;
this option should NOT be enabled if multikeying is prohibited by the
server rules. It is simply a developer tool, as multikeying is
sometimes necessary to test new features that require two clients
interacting.
* Better notifications
* Add buttons to del/move tabs in edit mode
* Add a <span> to emotes
* Fix duplicate IDs in VChat and add more logging
* VChat: Redone chat output in Vue.js
* Ported tg asset cache
* VChat DME Update
* Replace \image macro with bicon()
* NanoUI Subsystem Fixes
Don't do this, the asset subsystem does this for you
* Allow narrate/globalnarrate shenanigans
Allows HTML if your entire thing is HTML
* Disable bicon() icon object cache, and create text tag cache
* Ore Scanner is written incorrectly
Only revealed by vchat
* Fixes 2 VChat bugs
* Underline links in VChat
* Fix LOOC color
* VChat Improvements
Hopefully, anyway.
- Arbitrary font size setting
- Line height setting
- Multiple crush settings
- Rewrote how tabs work hopefully for performance
- Hidden messages are actually put elsewhere
- Attempts to correct chat backlog restore on rejoin
* Surgery steps to use <span>
* Some VChat Tweaks
- Chat remains between client reconnects if your client didn't close (so things like using the reconnect button, or autoreconnects at round end when that feels like working)
- The client doesn't send pings to the server, the server sends pings to the client. This fixes AFK measurements for AFK kick purposes.
- Turn latency indicator into a green/red indicator to show if you're connected, and when clicked will perform a one-time ping (and block doing it again for 10 seconds). It will display '?ms' if it never got a reply, or '999ms' if it did, but it was over 1s.
* Include date in filename for VChat log save
* Merge pull request #6767 from Cyantime/patch-2
Change chat export naming scheme
* Adds VChat tab saving
Saves every time you enter/exit edit mode. Persists between rounds, VChat reloads via verb, etc.
* Fix chat exporting when someone has used unicode
Only affects clients still using 512
* Use CLIENT_FROM_VAR for ease of code reading
* Update code/modules/client/asset_cache.dm
Co-Authored-By: Novacat <35587478+Novacat@users.noreply.github.com>
* Fix runtime when client disconnects before vchat loads
* Fix polaris version of command reports
* Fix LOOC color in oldchat
* Put some styles in various adminpm messages
* Round info and advanced who spans
* Fix missing tag-end
* Maybe fix images for linux and statpanel but also doom everyone
Co-authored-by: ShadowLarkens <ShadowLarkens@users.noreply.github.com>
Co-authored-by: Novacat <35587478+Novacat@users.noreply.github.com>
- Added world.change_fps() proc to safely change world.fps
- Its important that SStimer be informed whenever world.tick_lag or world.fps change, so always use the proc, never set the var directly!