Commit Graph

730 Commits

Author SHA1 Message Date
Leshana
ec86a98e16 [PORT] Refactor the gameticker controller into SSticker (#6994)
* 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.
2020-04-25 12:26:54 -07:00
Leshana
720e820ba1 Slightly clean disposal pipe construction code.
Portetd from YW, this replaces many hard coded constant numbers with defines for readability.
Also refactors the disposals pipe dispenser to use pipe recipes in a similar way that the atmos pipe dispenser does.
Also adds icon states to the pipe_recipe type since it was easily available in the source port and can be useful.
2020-04-25 15:17:58 -04:00
Atlantiscze
51083ed119 Tweaks SMESRATE to original value
- Didn't notice the original value differed from value used on Bay. This brings it back so capacity remains unchanged
2020-04-21 22:46:47 +02:00
ShadowLarkens
54a8a5823d Saycode Overhaul -- Multilingualism (#6956)
* Port ParadiseSS13/Paradise#2100 - Saycode refactor

* Removed unused old carbon slimes code

* Port ParadiseSS13/Paradise#5099 - Saycode part 2

* Ported ParadiseSS13/Paradise#7170's /datum/browser Check Known Languages

* Port ParadiseSS13/Paradise#9240 - Get rid of alt_name in favor of GetAltName()

* Port ParadiseSS13/Paradise#10330 - You can now use multiple languages in one message

* Addressed Atermonera's review.

Translators now print the full message if they find any languages within the
message that the user doesn't understand, minus languages it cannot translate.

Additionally, the combine_message proc has been significantly simplified
by eliminating an ugly tree structure with the help of a little helper
proc.

The removal of the extra span inside each piece doesn't seem to have
visually changed the messages in any other way than changing where the
wordwrap happens, strangely enough. Must be something in IE's code being
picky about invisible elements. On the bright side, it splits *later*
than it did before, thus reducing the lines a message will take up by a
tiny amount.

Also, a bunch of things now have the 'filter_say' class from
PolarisSS13/Polaris#6998. Since span classes with no definition are
totally valid and just don't do anything, this PR does **not** depend on
that PR being merged first.

* Always gotta be one
2020-04-20 01:11:53 -07:00
Atlantiscze
78925e2993 Ports over power-related enhancements and tweaks i coded for Bay a while back
- Please fasten your seatbelts, this will be a long one as it joins few older Bay PRs into one.

1. Ports https://github.com/Baystation12/Baystation12/pull/12626
- SMES units may now be damaged and destroyed. Charged SMES units fail quite violently. Damage can be fixed by welding tool.
- PSUs completely refactored, ghetto variant no longer exists.
- Cell rack PSUs now can be considered a hybrid between large battery charger and a SMES. They actually use the cells to store power (so you can hot-swap the cells to get more juice simply via the UI without deconstructing the whole machine), but in comparison to SMES have poor throughput and capacity in general (cells are simply too small). They are also somewhat limited in configuration options (lacks the precision electronics of a SMES). Better matter bin lets you put in more cells, up to 9.
- Cell rack PSU also has a mode that allows charge-balancing all inserted batteries (moves energy around so each battery has the same charge %)

2. Ports https://github.com/Baystation12/Baystation12/pull/11977
- SMES units now have full load balancing capability, getting rid of that annoying "One SMES charges at full, other SMES gets nothing" problem. If insufficient power is available on input, all inputting SMESes will now charge at same percentage. If more SMESes power a single output, they will all output equal percentage of their setting.
- This appears to have a pleasant side effect of fixing the issue where SMESes could starve APCs of energy. SMESes are ALWAYS last to input power on a powernet.
- This also appears to have fixed weird values displayed in SMES output/input load readings in the UI. By weird values i mostly mean inputs/outputs actually higher than the SMES is set to have.

3. Ports https://github.com/Baystation12/Baystation12/pull/18137
- SMES units (and subtypes, therefore effectively also PSUs from previous entry) can now have more than one terminal. This effectively allows a setup where two (or more) sources feed a single SMES, which then feeds the output. SMESes can not exceed input setting even with multiple terminals.
- Typical example of use in practice would be SMES that runs something important (for example an AI, telecomms, pick whatever you want). It could have one input from the power grid, and second input from a PACMAN generator set up nearby as a backup. Before the generator would have to be wired into main grid, therefore main grid would siphon off power from it. Now the generator can be separate and dedicated for whatever use you want.
2020-04-17 08:26:29 +02:00
Leshana
5dbf08b462 Refactor the Open Space controller into MC Subsystem
- Basically just refactor doWork() into fire() with the capablity to return in the middle with MC_TICK_CHECK.
- Move some vars around to be more organized.
- Only functional change is that when a turf is queued twice in one cycle, the second queue moves it to the end of the list instead of it being in the queue twice
2020-04-14 09:38:23 -04:00
Atermonera
974919151b Merge pull request #6967 from VOREStation/pol-pipes
Add 2 new pipe types
2020-04-12 23:00:41 -07:00
Atermonera
32a573f5cc Merge pull request #6878 from Mechoid/ATaleofBlobsandMen
A Tale of Blobs and Man
2020-04-12 22:34:33 -07:00
Atermonera
527370ca4f Merge pull request #6982 from VOREStation/vplk-fix-vv-lists
Fix VV on lists
2020-04-10 23:56:38 -07:00
Mechoid
001d5b091f Merge branch 'master' of https://github.com/PolarisSS13/Polaris into ATaleofBlobsandMen
# FixConflicts:
#	polaris.dme
2020-04-09 22:55:42 -07:00
Atermonera
94178864cf Adds preference to output description_info with examine text (#6969)
* Adds preference to output description_info with examine text

* includes the defines file
2020-04-09 22:20:45 -07:00
Atermonera
ef785a5627 Increases SSjobs init priority so it's accessible earlier (#6955) 2020-04-09 22:18:35 -07:00
Atermonera
e399e21434 Merge pull request #6950 from VOREStation/pol-maphelp
Improves space edge-of-map behavior and add mapping tools
2020-04-08 23:09:56 -07:00
Aronai Sieyes
765e6cb1a0 Looking glass holodeck (#6958)
* Fix mines qdel

* Looking Glass Holodecks

* Fix console html tag

* DME update
2020-04-08 11:57:15 -07:00
Leshana
5c12bd5dea Fix links and options on VV list page.
- 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.
2020-04-07 00:32:13 -04:00
Leshana
37232bbe91 Micro-optimize GET_TYPEID 2020-04-07 00:31:18 -04:00
Leshana
85ebeeef1f Fix VV editing numeric entries in lists
- 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.
2020-04-07 00:31:05 -04:00
Aronai Sieyes
b3be065ae4 Port: Merge pull request 6900 from VOREStation/vplk-overmap-events
Overmap Events
2020-04-06 17:54:26 -04:00
Aronai Sieyes
1abf90b306 Add 2 new pipe types 2020-04-05 22:50:11 -04:00
Neerti
ba56f7951f Hopefully fixes conflicts. 2020-04-05 17:07:37 -04:00
Aronai Sieyes
736626c94d Improve space map edges 2020-04-02 10:42:27 -04:00
Atermonera
eae8cade90 Merge pull request #6912 from VOREStation/aro-mapload
[PORT] Speed up map load significantly
2020-04-01 20:25:17 -07:00
Atermonera
957a95fba7 Merge pull request #6902 from VOREStation/vplk-ssalarm
Convert alarm_manager into SSalarm subsystem.
2020-03-30 17:40:24 -07:00
Aronai Sieyes
f204ae9385 2 new mech equipments (#6889)
* Adds atom/movable cloaking framework

* Mecha omni-shield generator

* Mecha cloaking generator

* Clean up various mech code and allow overrides lower

* DME update

* Adds fighters

* Missed a color check in colorable gunpods

* Update code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/lurker.dm

Co-Authored-By: Novacat <35587478+Novacat@users.noreply.github.com>

Co-authored-by: Novacat <35587478+Novacat@users.noreply.github.com>
2020-03-29 14:53:56 -07:00
Neerti
88b4e47e8b Fixes merge conflicts again. 2020-03-28 19:06:14 -04:00
Leshana
8da8e3e0b1 Convert alarm_manager into SSalarm subsystem.
- Switch to using MC_TICK_CHECK and replace all references.
- Optimize stat panel display by caching the active alarms.
2020-03-28 01:20:34 -04:00
ShadowLarkens
6b802b61e8 Port VOREStation PR 6914 Speed up map load significantly
- 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>
2020-03-27 20:37:02 -04:00
Atermonera
dfda8ea952 Merge pull request #6900 from VOREStation/vplk-sssupply
Converted old supply_controller to SSsupply
2020-03-27 14:37:31 -07:00
Aronai Sieyes
715de43f35 VChat: Redone chat output done in Vue.js (#6761)
* 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>
2020-03-27 14:07:28 -07:00
Atermonera
73a1f8ed03 Merge pull request #6888 from VOREStation/vplk-overmap-skybox
Port Overmap Skybox, Ships, Sectors, and Boats
2020-03-27 14:05:28 -07:00
Neerti
87c53a75af Updates to master and makes gravity event code be current. 2020-03-26 04:10:51 -04:00
Leshana
8c1ab54467 Converted old supply_controller to SSsupply
- Removed the old processController process and refactored it into a subsystem
- Updated references from supply-controller to SSsupply
- Changed from 1.5 points per 30 seconds to 1 point per 20 seconds.  Same rate of 3 per min, but avoids fractional points.
2020-03-25 00:32:10 -04:00
Atermonera
2e623e5aa8 Merge pull request #6854 from Mechoid/XenoarchExpansion
Xenoarch Expansion
2020-03-24 18:42:15 -07:00
Mechoid
4ae0bc1cbd Tweaks re: Ater 2020-03-24 16:06:04 -07:00
Mechoid
48c54fc43b More blob work. Blob core chunk added. 2020-03-24 14:26:27 -07:00
Leshana
c8d64783cc Simplify skybox parallax code and add support for scaling for larger client.view sizes.
- Hooked up skybox to recalculate it's scaling when the view changes.
 - Added constant defines to clarify where the magic numbers are coming from.
2020-03-23 20:19:28 -04:00
Leshana
9007a3aad9 Ported Basic Overmap Functionality
- Ports the overmap, ships, sectors, and "landable" ships from baystation.
- Ports necessary computers to control ships and overmap shuttles.
- Shims missing machine and computer functionality pending future enhancements.
- Includes required new sprites and sounds.
2020-03-23 20:19:27 -04:00
Leshana
5f8bc01ce3 Ports Skybox Parallax
- Port based on Baystation's implementation and customized for our code and usages.
- Switched space icon_state permutation to a "dust" overlay that is permutated the same way. As an overlay, the dust can be *above* the parallax planes. Space turfs are now white to allow skybox to BLEND_MULTIPLY onto them.
- Added skybox hud effect that replaces background space turfs with an image moved to create a parallax effect.
- Added skybox subsystem to generate and manage skybox parallax images, and lots of images for it!
2020-03-23 20:19:27 -04:00
Leshana
c2d16acdca Always call update_use_power() instead of directly setting the use_power var.
- This will let us react to the change appropriately.
- While we're here, lets define some constants so we can stop using bare numbers.
- Always use those constants when calling update_use_power()
2020-03-21 16:40:22 -04:00
Neerti
33657c9e11 Event system rewrite started. 2020-03-19 07:31:30 -04:00
Mechoid
a8a09a11ce Xenoarch Expansion Work 2020-03-13 12:26:53 -07:00
Leshana
748ea0a98f Fixes and additional mapping convenience for landmark shuttles.
- Improvement to web-shuttle: Don't update docking controller until jump() is completed.
  - It is now consistent with autodock behavior (for better or worse)
- Add shuttle process_state to enable processing of web shuttle autopilot.
- Convert Arrivals shuttles to be a subtype of /datum/shuttle/autodock/ferry
- Default shuttle landmarks flags to SLANDMARK_FLAG_AUTOSET
  - Made this safe and backwards compatible by having SLANDMARK_FLAG_AUTOSET not overwrite already specified base_turf or base_area
2020-03-13 00:27:30 -04:00
Leshana
85d3cbfa12 Replaced "area" shuttles with "landmark" shuttles.
Largely ported from the work done at Baystation in Baystation12#17460 and later commits.

 - Shuttles no longer require a separate area for each location they jump to.
   Instead destinations are indicated by landmark objects, which are not necessarily exclusive to that shuttle.
   This means that more than one shuttle could use the same docking port (not at the same time of course).
 - Enhanced shuttle control computers to use nanoui if they didn't.
 - Organizes shuttle datum code a bit better so there is less re-inventing the wheel in subtypes.
 - Allows the possibility of shuttles (or destinations) that start on late-loaded maps.
 - Deprecate the "extra" shuttle areas that are no longer needed and update shuttle areas in unit tests

This all required a bit of infrastructure improvements.

 - ChangeArea proc, for changing the area of a turf.
 - Fixed lighting overlays actually being able to be destroyed.
 - Added a few utility macros and procs.
 - Added "turf translation" procs which are like move_contents_to but more flexible.

(cherry picked from commit c837078105)
2020-03-13 00:26:08 -04:00
Atermonera
4d4a4262c2 Merge pull request #6775 from Mechoid/Robotics_Expansion_RIG-ged_and_Ready
Robotics Expansion: RIG-ged and Ready
2020-03-11 12:55:36 -07:00
listerla
02f97a116e Adds ecigs and vaping (#6753)
* Adds ecigs and vaping

* Uncomments ssobj

Co-authored-by: lemon <lemon@localhost.localdomain>
2020-03-06 07:09:24 -08:00
Neerti
24fbd0b87e Half-Refactors Jobs (#6762)
* Somewhat cleans up a piece of job code, makes new ID computers not be awful.

* Changes ROLE_ defines to DEPARTMENT_ to be clearer. Backports the new ID computer's assignment section of its UI to the old ID computer.

* Swaps back to southern cross map.

* Removes a block of commented code.
2020-03-03 13:27:37 -08:00
Mechoid
69752c1c48 Move Rig modules to more granular files. Add RIG components to robotics mechfab, plus incredibly basic belt-voidsuit RIG. Add Graphite, made by compressing coal, used heavily in RIG components. 2020-03-01 02:41:40 -08:00
Atermonera
37af18b86b Merge pull request #6733 from VOREStation/pol-aitweaks
Readd some AI features and improve AI buildmode
2020-02-26 17:14:50 -08:00
Aronai Sieyes
717a4cc585 Add buildmode AI status indicators 2020-02-23 11:52:34 -05:00
Neerti
54a75927ff Commiting my work before I do a stupid thing, just in case. 2020-02-20 21:21:38 -05:00