Ports Polaris' integrated electronics system, whichallows for Roboticists & Electricians/Engineers to build custom devices and machines for a variety of purposes.
Converts all reagent containers to use Initialize, fixes the hand-chew cool down so it's no longer for everyone, and moves the suit sensor Z-level to the global.dm right above the station name so anyone else using the code can't miss it.
Closes#3363Closes#3361Closes#3362
Adds the ability to upgrade the following:
- Sleepers
- The ore processor
- All cooking appliances (Minus the microwave)
- Tesla Coil
Also makes components not spawn in machines until they are needed (When they are being upgraded) to reduce the objects generated. Adds some new macro's and converts some istypes to use them. And moves stock parts into their own file.
changes:
Fixed#3203.
Tajara or Unathi CEs now get gloves that actually fit them.
OOs now respect direction changes from their mimicked object.
Replaced all references to trange() with RANGE_TURFS().
Replaced all references to is_type_in_oview() with locate() in oview().
Fixed a runtime caused by recursive explosions falling off the edges of the map.
Carp despawn now works properly with the new asteroid turfs.
Carp despawn now uses WEAKREF instead of SOFTREF.
Added tick-checks to the carp migration event.
Vaurca now have the IS_VAURCA reagent_tag.
Cleaned up butanol alien handling a bit.
changes:
Converted all clothing types to Initialize.
Added some missing destroys to some custom items.
Char setup now forcibly initializes the mannequin's contents if SSatoms has not finished yet.
/obj/item/clothing/under no longer does in icon_states() in New().
Machinery objects' component_parts list is now automatically populated with the types in the component_types list. Types can have an associated number which is interpreted as an instruction to spawn that number of that type. This eliminates a few Initialize() procs, and simplifies others.
Example:
component_types = list(
/obj/foo/bar,
/obj/baz = 2
)
Other changes:
Cable coils will now no longer force a stack size of 30 when created without their stack size passed as a parameter - this fixes anonymous types not working correctly with cable coils.
-fixes #3218
-fixes #3213
Fixes a messed up table at telescience
Fixes a wrong cable at engineering
Fixes a broken uplink item
Fixes a wrong named camera
Changes the location of the heister and merc shuttles in the under station z level to be near the engine pipe area
Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
Fixes#3108Fixes#2953Fixes#3091Fixes#3102
Fixes the syringe gun at medical being the wrong type
Place the bomb range a bit more away from the launching room, to avoid damage to it
Fix a bug with table grabs
Remove the extra ion rifle from the armory and the emp grenades, because, it seems those are really excessive, as seen in the HK event rounds
-removes the plasma cutter from the ce and eva's suit, replacing it with a drill that fills the same purpose of the old plasma cutter
-adds more access restriction to the rigs as whole
-adds actuators to the terminator rig
-adds the cmo labcoats to the locker
-fixes #3097
-fixes #3098
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.
I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.
Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.
Ports Baystation12/Baystation12#12658
Changing how the calculation of armor works , instead of just being a check if it is protected fully, half or nothing. Making armor more reliable and less rng dependant.
Also, uranium meteors will irradiate nearby people when they explode.
Pretty much fixes hostiles mobs that had a ranged attack being unable to use it if they are controlled by a player, so, we can have human controlled cavern dwellers and combat drones(in case of adminbus).
Also, fixes a broken design that needed mutagen and being able to transfer reagens to species without blood using an iv.
changes:
Converted storage objects to Initialize().
Removed timer from storage New/Initialize in favor of LateInitialize.
Removed some pointless src from storage objects.
Fixed GC of some screen objects used by storage objects.
Changed storage objects' filling to be done by fill() instead of New()/Initialize().
Medkits actually work this time!
This makes it possible to get the railgun and decloner eaiser. It's still rare and costly. Also made it possible to get the mech teleporter (It's really not as good as some people think) by using antag items to get bluespace research up to 6. Also removed a duplicate decloner fab.
changes:
Machinery now uses machinery_process() instead of process(), allowing machines to be put into SSprocessing-style lists in addition to the machinery list.
Automatic power calculations now involve less proc-calls.
-gives a sprite to the leg actuators, mounted kinect gun and mounted termal drill
-adds regular actuators to the mecha fabricator, with enough tech and materials
-gives the ert leader the military version of the actuators, while the rest gets regular ones
-tweaks some modules around the hardsuits
Merges the NanoUI subsystem with Nanomanager, as well as cleans up some nanomanager code.
Most of the files in this commit are changed as a result of removing the nanomanager global in favor of the SSnanoui global.
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.
* this is probably important
* Remove cascade disabling SSgarbage
* Fixed a bug where dust() did not qdel the target mob
* Misc fixes
* Fix decals surviving break-to-plating
* Subsystem flag tweaks
* Apparently subsystems are new'd before config is.
* Fix paper icons
* Speculative fix for insane lag
* Better machinery stat
* Make organs not use SSoverlay
* Misc bugfixes & tweaks
* Nightmode fixes
* Changelog for SMC
* Port /tg/'s improved MC crash handling
* Add some more SS Recover() procs
* supply_controller -> SScargo
* More New() -> Initialize()
* pAI and robot construction overlays
* Fix cargo unit tests
* Merge the DMM Suite's atom/New() into atoms_init
* Lighting pre-baking
* Lighting initialization logging
* Fix some bad SS init orders
* Fix SSlighting logging; rename Processes to MC
* Speculative fix for insane GC lag
* Prebaked openturf/icon_smooth & fix lighting prebake
* SS init status; SSatoms LATEQDEL
* Fix bug with MC init stat panel
* Fix parallax
* Misc
* Ignore SS_NO_DISPLAY during init
* apparently this is important
* REEEEEE
* Image GC fixes; broadcaster radio-new sanity
* RCON Cleanup
* Move pAI recruiter into subsystem
* Move global solars list into sun subsystem
* Make chickens not use a global
* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup
* Speed up space init a little
* Fix bad timer flags on floor drying
* Subsystem panic-restart verb for mins
* Explosion speedup
* Minor subsystem & MC logging tweaks
* SSopenturf improvements
* Make pipenet actually initialize (whoops)
* Minor tweaks
* Implement lighting rounding
* comments are hard okay
* Minor lattice tweaks
* Fix some timer issues & better closet init
* Timer sanity
* Request console tweaks + Storage init sanity
* Minor SSmachiner RCON improvements
* Further reduce world-start timer count
* Standardize subsystem logging
* Garbage hard delete profiling from /tg/
* Timer hang detection & recovery
* Log machines that sleep in process() and fuck up SSmachinery
* Fix an issue with external airlocks sleeping in process()
* Failsafe logging
* Minor tweaks
* Revert "Request console tweaks + Storage init sanity"
This reverts commit 98d3579e35.
* Re-implement RC changes
* Fix SQL FT saving
* Fix SSmachinery sleep in disposals
* Minor SS tweaks
* Paper fixes
* Blood drying fixes
* Merge gameticker and SSticker
* Minor global list init cleanup
* Lagcheck biogenerator & bags
* Tweak SScargo init order; RIG Initialize()
* Caching tweaks
* Remove rogue comma
* Initialize fixes
* Lighting destroy cleanup
* Fix emagging airlocks
* Initial SSicon implementation
* Tweaks & Fixes
* Fire + Air alarm queued icon updates
* Overlays + Queued icon cleanup
* Runtime & background fixes
* Kill some meaningless set statements
* Kill some image qdels
* Bump up lighting rounding val
* Fix adv. scanner destroy runtimes
* Remove unneeded icon update limiting
* Move icon smoothing into helpers
* Show a warning if DM 510 compiles without memory leak hack enabled
* Re-organize subsystems & MC defines a little
* Airlock SFX
* Log of Changes
* Make SSicon_update disable itself when not doing anything
* Fix respawn verb runtime when used early in server-init
* Add more information to MC's stat_entry()
* Replace direct refernces to gcDestroyed with QDEL* macros
* plant_controller -> SSplants
* More plant tweaks
* Add more humor to changelog
* Move parallax globals into SSparallax
* Lighting responsiveness tweaks
* Fix parallax init order & better MC init panel stat
* Make mobs GC
* More overlays + Remove intercom spawn()
* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.
* Update changelog
* Mob GC tweaks
* Del() cleanup
* Fix insomniac ZAS connection edges
* Minor pAI cleanup
* Convert more things to SSoverlay; fix duplicated overlay in field gens
* SM Bluespace turf tweaks
* Update SSgarbage debug globals list
* Human-type qdel tweaks
* Subsystem suspension; stat_entry improvements
* SQL Statistics cleanup
* Fix runtimes with ambrosia
* More disable() -> suspend(); fix nightmode again
* Human qdel fix; minor tweaks
* Update turbolift to work with StonedMC
* Make lifts use timers instead of a subsystem
* Make SSassets start earlier
* Convert the radio controller into a subsystem
* Fix some missing CHECK_TICKs in asteroid generation
* MC stat tweaks; make shouldnt_see a typecache
* Kill some redundant debug-controller entries
* radio_controller -> SSradio
* Better SSgarbage hard-del logging from /tg/ upstream
* Logging tweaks + GELF
* Misc client caching improvements
* Slime SSoverlay
* Oven icon fixes
* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.
* Holder tweaks + Welding tool Initialize()
* Fix some bad subsystem logging
* Fix suit cooling units spawning without cells
* Starlight tweaks
* Gibber infinite gib fix
* More SSoverlay stuff
* Make crates use CUT_OVERLAY_IN
* Make SSarrivals suspend instead of disable
* Make openturf use split/phased tick checks
* Speculative fix for unwet timer runtimes
* Blood overlay tweaks/fixes
* Update crusher to play nice with SMC + SSoverlay
* Openturf improvements and fixes
* Minor turbolift tweaks
* Lighting performance improvements + ChangeTurf tweaks
* this is probably important
* Fix wall weld noises on changeturf
* More ChangeTurf tweaks
* Explosion tweaks
* Pre-game lobby tweaks
* Openturf tweaks
* Prevent admins from starting the game before init finishes
* Fix Travis
* Kill an unused var
* Fix ChangeTurf runtimes on openturfs
* Fixes
* Browser datum fixes, asset caching
* Update changelog
* Changelog
* Lobby tweaks
* Ticker tweaks; kill ticker var
* Further lobby tweaks
* Cascade tweaks
* air_master -> SSair
* Reduce overhead from radio autosay
* alarm_manager -> SSalarm
* bomb_processor -> SSexplosives
* corp_regs -> SSlaw
* ZAS overlay fixes
* Small wall icon optimization
* Fix effects master
* Assembly tweaks
* Megavend fixes
* Shuttle fixes
* Camera alert performance improvements
* Fix some world.log spam from lighting overlays
* Fix some Initialize() procs
* Openspace responsiveness tweaks
* Make HE pipes animate through openturfs
* Kill a spawn
* Crusher for the new map
* Use Power
* Updated the sprites
* Pre-Start Time change and more messages
* Added Changelog
* Update app_presets.dm
* Sprites for the maint hatch. And some overlay changes
* Fixed maint hatch not closing
Port of Baystation12/Baystation12#13264
Large PR to put into Master, but the bug is really annoying and since it affect a traitor item, an often used one, I'll take the risk.
Fixes#1956
Fixes explosives implants and lawgiver not working.
changes:
Fixed a bug where the Circuit Imprinter & the Protolathe tried to new() a material name instead of the material's type on deconstruct. This fixes a runtime preventing deconstruction when the machine contained materials.
Fixes#2080.
-moves skeleton minions,wizard familiars and syndicate borgs to the ghost trap system
-allow syndicate command and deathsquid to deploy their suit fully when equipped
-fix some wrong hardsuit modules names in rd
-fix immortal skeletons being able to spam immortality
-removes the alien death proc
-fix items not dropping when hands, feet or heads are cut off
-removes the paint from cargo spam
Trying to work off some of the older bugs on the issues list:
Fix faxmachine getting stuck on "0 seconds remaining". There may be a process scheduler issue which causes a long polling interval for the faxmachine's process()-method.
Replace newline in crew record notes with <BR> when generating the records in the filing cabinets.
Surround crew record notes with "preformatted text" HTML tags on PDA / pAI screens.
When constructing protolathes or circuit imprinters, transfer the reagents contained in the beakers to internal reagent container upon completion.
Fix suspension field generator not clearing the qdel'd suspension_field reference. This fixes being unable to unwrench the generator, too.
Fix wallet sprite still showing an empty wallet when inserting a guest pass.
-add reflection and parry to the wizard rune sword
-tweaks and add more things to the custom loadout
-remove the linebin and thermals from cargo
-add exosuit paint kits and some other things to cargo spawn
-re-add the non slip flag to skrells
- Fixes#1890
-adds more hats
-beastmen botanists now get some snowflake gloves
-unathi are now poisoned by alcohol, at jackboot's request
-fix smacking people against toilets having no delay
-fix some visible message issues and wrong date in the sink and shower
-removed being able to select bst gear using chameleon clothing
-fix some grammer
-fix vaurca voidsuits having an outdated species
Fixes#1790Fixes#1791
Fixes a number of issues with robot sprites, chem master machine, and surgery steps
The issue with borg sprites was caused by duplicate calls to ..()
Ive standardised robot module parent calls to the top of the function
Fixed the chemmaster not depositing pills in bottles properly. I added a new add_to_storage proc to storage.dm which is just a simple, safe means of putting stuff in stuff. it handles the checking.
Fixed some issues with surgery. A few surgery steps had incorrect "open" var ranges defined which was causing organ repair surgery to be interfered with
Also removed screwdriver from the list of bone mending tools, and added duct tape instead as the ghetto alternative. And allowed energyswords + chainswords to be used for cutting open ribs. theyre already useable for amputation
Fixed an incorrect return var for surgery that was making surgeons able to attack their patients on help intent. Shouldnt happen anymore
And also fixed the experimental welder being un-makeable at the protolathe.
changes:
Removed shim for old spark system.
Converted all calls to old spark system with calls to new one.
Processor-based effects are no longer pooled, as it had minimal performance impact and was breaking things.
Tweaked some visible_messages for rogue drones.
PB effects' handling of location is now done at the /datum/effect_system level.
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.
changes:
New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.