Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
Adds a new machine to telecomms, which contains special PDAs corresponding to each department on the station. Sending a PDA message to one of these PDAs will duplicate it to everyone in the department the PDA is assigned to. It determines what department someone is in by cartridge type.
Adds cartridges for several jobs that were missing them, for the purposes of being recognized as being in a department. The cartridges otherwise do nothing.
New circuitboard to build the new pda multicaster. It can also be deconstructed with the standard machinery deconstruction steps of screwdriver > crowbar.
General:
Bots are now /mob/living/bot. They support player control fully. Just in
case an admin feels like letting a ghost take control of beepsky or
something.
Since they are bots, spooders and whatnot will attack them.
They now don't need an open panel to be emagged.
Spawns replaced with do_after, meaning that they will stop
injecting/cleaning/repairing/arresting if pulled away.
Medbot:
Emagger is added to ignore list.
Will now inject spaceacilin regardeless of disease type and level.
Previously: only if disease was past stage 1 or airbone.
Cleanbot:
Patrolling rewritten. They now find a closest beacon, and go to the NEXT
beacon after the closest one.
They will not wiggle out when pulled.
They will now ignore (for a while) the gibs they make if odd button is
pressed.
They will now freely claim cleanables. Previously, they would not target
ones targeted by other bots.
Floorbot:
This was a helluva buggy one.
They will now build bridges (but still won't do random repairs) in space
area.
They will now build bridges even if the tile directly next to them in
that direction is tiled.
They will now ignore for a while a tile they can't reach. This is to
stop them from hopelessly targeting tiles under grilles for upgrades and
getting stuck.
They will now slowly (200 ticks for a tile) build new tiles on their
own.
They will now preserve tile's icon when repairing it like a player
would.
They will now place first rods, then tile when fixing space breaches.
Rod costs two tiles.
When emagged, they will first always tear off the tile, then will (over
triple the normal amount of time) breach the tile to space. There are
noticeable warnings for both actions.
Secbot:
Will no longer run away to patrol when panel is open.
Now deals stamina damage instead of instastuns.
Small delay between approaching the target and stunning them.
Laserbots axed.
Removed their weird EMP act.
Will no longer stun lying people, just cuff.
They will also demand surrenderring (lying down) before smacking you. If
target moves, or 5 seconds pass, it will attack.
Farmbot:
It's alive!
It has settings to: water trays, refill its own water, uproot weeds, add
nutriment (ammonia, internal synthesizer), collect produce, and remove
dead plants.
- This fixes missing powernet sensor entries in engineer PDAs.
- This is done by reimplementing old system, that instead connected to consoles. Bleh.
- New system connects directly to sensors, but offers only very limited amount of information (ie. console is 5x better and nicer, this is intentional before someone begins yelling it's a bug!)
- Power monitor is now /computer/ subtype
- Different rounding of values in power monitor display
- Unfortunately, PDA power monitoring for engineers is broken and probably won't be fixed as it relies on old powernet monitoring computers. Laptops work OK
The PowerON cart will now display the area that the power monitor is located to make it clear that you're looking at the power monitor, not the actual power net. This comes up when multiple power monitors have the same name.
Resolves an issue where the PDA would throw a runtime and a client side error when attempting to communicate with a power monitor that wasn't connected to a power net.
Since we no longer have to send data on first UI view we can remove those
checks and only look at the data we need to send when we need to send it.
Also fixed a couple of the links on the status display function.
Creates NanoUI for the PDA and Syndicate Uplink.
New features:
Crew manifest now sorted with department heads at the top.
Can select individual conversations and delete individual conversations among PDA's
Powernet Monitor much more simple now and easier to read.
Janitorial supplies locator now includes Janicart.
Items will actually refresh if you click "Refresh"
Some other changes:
Captain's PDA cartridge now has all access (added janitor access and quartermaster access)
With the conversation change I had to change how tnote (the variable that holds PDA messages works.
Setup the message server to use the new methods.
Removed procs that will no longer be used (UI generation procs from old UI methods)
Commented everything the best I can.
Created HORRIBLE, TERRIBLE lists. But it's pretty much required because that's how nanoUI rolls.
Created a variable on the uplink called NanoUI items, this list is created upon creation of the
uplink.
I included the functionality for Mimes and Clowns for our downstream servers that have those.
Added Gas Scanner function to atmos and science carts
Added spare atmos PDA cart to CE office
Fixed engineering break room tile icons
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5407 316c924e-a436-60f5-8080-3fe189b3f50e
-Added missing door to chemistry
-Added missing welding goggles to R&D
-Fixed piping error that caused toxins mixing to bug out
-Added more biohazard shutters to Science
-Reversed direction of toxins mixing pipes
-Re-enabled reagent scanner function in toxins PDAs
-Added missing disposal pipe under Mining Dock door
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5308 316c924e-a436-60f5-8080-3fe189b3f50e
-Changed the focus from the high-res scanner to the regular scanner. It will simply scan the fingerprints and display them to the detective. For extra functionality, it'll store it's findings in a log and then you can print it out in a report by using attack_self().
-Detectives can now use the medical computer.
-Removed the pda forensic scanning functionality.
-Got rid of now useless high-res scanner computer. Got rid of the now useless fingerprint cards.
-Added a medical computer to the detective's office and replaced the useless medical cabinet with an empty one.
Other
-Got rid of diseases magically moving down a stage.
-Optimized playsound()
-Added an attack_self() to sprayers so that you can change the reagent use of them between 5 and 10.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5168 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 526. MMI-Mech issues
MMIs can now change intent. There's no feedback, but they can at least function properly now in mechs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5098 316c924e-a436-60f5-8080-3fe189b3f50e
-Atmos delay is now based on active players, to help fight lag for massive player rounds.
-Changed some for(blah in world) loops to use the correct lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e