machine.process() now uses a return value to remove itself from the processing machines list. This is more efficient and will help reduce costs especially at round start where some 5000+ machines were removed from the list using first-find. Now there is no searching involved. Instead of machines.Remove(src) just do .=PROCESS_KILL that will return the flag to the proc which called it (the MC) and trigger its removal from the list. If you're deleting something don't even bother removing it from the machines list, there is no need to.
Simplified the last_processed stuff for the MC. It's now a single variable rather than 3. It is simply a typepath rather than a reference to an object (this is so it works even if said object is deleted)
MC stats in admin status_panels now show the length of the processing lists (indicated by #). I've just realised I forgot to mention what the abbreviations are:
The less obvious ones are: Dis=diseases; Net=pipes; Pnet=powernets; Mch=Machines; Tick=the game-mode ticker.
Beach-water now uses an overlay image rather than a separate object.
Fixed a typo in the shuttle console.
Hydroponics trays no longer use first-find within their process() for checking the plant is in the tray (why is that even there anyway? talk about lazy)
Removed some junk/placeholder procs like organ/proc/process() return
Removed newscasters from the processing machines lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4603 316c924e-a436-60f5-8080-3fe189b3f50e
Supply_packs ow use paths rather than strings. This is because paths for some of the items have changed with recent updates which was causing the strings to become invalid, but the compiler does not check them. Now that they are paths, the compiler will warn you. Fixes a number of runtimes with supply_packs/shuttle. A number of items that were meant to spawn in supply crates that were affected by this now spawn again. (stuff like grenades, spray bottles, etc)
Added a damp rag to the janitorial closet.
Added ammonia to the hydro crate (removed 2 bottles of pest-spray and increased cost slightly to offset)
Moved explosion2.dm to WIP/carn/Explosion2.dm
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4601 316c924e-a436-60f5-8080-3fe189b3f50e
-Updated Xeno's 'stalking' stance, courtesy of WJohnston
-Small change to the security console animation, so instead of being 44 individual frames, it's just 7 with appropriate delays
-Extra sanity check for mech fabs, hopefully that would clear up runtimes from parts disappearing while building
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4600 316c924e-a436-60f5-8080-3fe189b3f50e
-Made the required 200 amount a variable, called max_grown.
-Larva can now bite simple animals to get some grown amount.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4597 316c924e-a436-60f5-8080-3fe189b3f50e
•Centralised network, eliminated needless loops and worked out a better way than process(), since newscasters are a lot.
•Added Access News Network adminverb, which gives absolute freedom over the network. Check the Fun tab.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4595 316c924e-a436-60f5-8080-3fe189b3f50e
- 'usr' was used in place of 'src' which caused problems since the AI's emp_act() can call ai_call_shuttle().
Added comments to mob/attackby and changed a magic number into the #define we have set for it.
Simple animals must now be manually added to a proc before admins can animalize players into them. Hopefully this will encourage coders who make new simple animals to test them being player-controlled before they allow them to become admin-spawnable.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4594 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed a problem where TG was using this sequential master_controller but I had removed a spawn where master_controller.process() was called because I was working with the default master_controller. This problem was causing the master_controller to prevent the lighting_controller.process() ever running properly because it was hogging the current thread (thread isn't the right word there, not sure what you call it....stack?)
Added debugging to both the lighting_controller and master_controller. http://filesmelt.com/dl/debugging.png
Both lighting_controller and master_controller may be deleted to terminate their processes (this is done via the restart controller verb. This allows for clean restarts without 'doubling up' (where, for instance, the master_controller would be running more than one instance).
lighting_controller has a prototype recovery proc which is called by the "restart controller - lighting" verb. It's basically an overly paranoid version of process() which will only transfer light_sources to the replacement controller if they don't runtime. It's not needed at the moment as the process() has yet to runtime.
master_controller has the beginnings of self pruning lists. This method using list.Cut(index,index+1) is faster than doing list.Remove(thing) all over the place (the latter iterates through the list to find the thing).
Added more detailed time-measurements for the master_controller. It now displays the processing costs (in real-world seconds) of each part of the master_controller's cycle.
The stat panel only updates for mobs actually -looking- at the stat panel.
Explosion debugging is now hidden behind a if(Debug2). To have it print that data to world.log just click the DebugGame verb
debug controller and restart controller verbs are now both GameAdmin rank. Not sure how they got split up.
Fixed another cause of dark splotchy space turfs. (turf/wall/ex_act was replacing the turf with space and then deleting that new space turf)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4593 316c924e-a436-60f5-8080-3fe189b3f50e
- Added a link to a few useful tools that get printed along with the gender change warning. The tools are (?), (PM), (VV) and (JMP)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4589 316c924e-a436-60f5-8080-3fe189b3f50e
-Added two more grenades inside the EMP kit.
-Made reagents, which react to turf, require a certain number of volume before affecting the turf. For instance, you need 5 units of Thermite on a wall now.
-Added an EMP pulse recipe. It will react immediately on the mixing of the required reagents, which are Uranium and Iron. A grenade with 50 units of Uranium and Iron will act the same as an ordinary EMP grenade, with 10/20 range. Less or more reagents will change the range.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4588 316c924e-a436-60f5-8080-3fe189b3f50e
Simple_animal fixes:
- Mice now properly get added to the mob list.
- Simple animals no longer use emotes if they have a client attached.
- Bears no longer run their AI stuff if they have a client attached.
This means that admins can now use the 'Animalize' button to turn players into mice and bears!
Map fixes:
- That window near arrival shuttle is back where it is supposed to be.
- Nuke op shuttle has red floors again.
- Holodeck's beach program once again has a beach.
- The beach once again is a beach.
- Re-added plating in the centcomm control room (where A.L.I.C.E. is.)
Changelog updated.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4583 316c924e-a436-60f5-8080-3fe189b3f50e
This brings down a bunch of defines from /code/defines/obj.dm unto their appropriate files.
I've moved morgue.dm from game/machinery into game/objects/structures since that file contains no machines.
I've reorganized the objects/items/stacks folder and made a 'sheets' and 'tiles' folder to keep things separate
I've separated stool_chair_bed.dm into its own folder which now contains the files: stools.dm, chairs.dm, bed.dm and alien_nests.dm to make it a little easier to go through.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4582 316c924e-a436-60f5-8080-3fe189b3f50e
Moved the extinguisher_closet .dm file out of the locker folder and into the structures folder.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4581 316c924e-a436-60f5-8080-3fe189b3f50e
Glass shard
Broken bottle
Sord/Claymore/Katana
Cult blade
Kitchen knife/Butcher's cleaver
Nettle/Death nettle
Hatchet
Thank you carn for testing this for me :)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4580 316c924e-a436-60f5-8080-3fe189b3f50e
I've tested each mobtype with this and didn't see any issues but as always, it's possible that I've missed something. If it's an issue let me know. If it's a critical issue, go ahead and revert.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4578 316c924e-a436-60f5-8080-3fe189b3f50e
Basically these numbers get added directly to movement values.
run_delay and walk_delay affect all mob's walk/run speeds before their mob-specific modifiers take effect. Make this number higher to slow things down, make it lower to speed things up.
human_delay, robot_delay, monkey_delay, alien_delay, metroid_delay and animal_delay will affect those mobs specifically. So if you'd like humans to slow down but you don't want robots to suffer, just raise the value of human_delay! Same as before, raise the number to slow things down, lower it to speed it up.
Note: most mobs already run as fast as byond will let them.
Although these are config options. It is possible to adjust these values in-game. The values will reset at the end of the round however.
To adjust the values in-game you must be a high enough level admin to have access to the 'Debug' tab. Open the Debug tab and select 'Debug Controller". In the popup list, select "Configuration". The variables will have the same name as those in the config options.
Note: The values will act a little differently between servers with ticklag compensation turned on and those which have it turned off.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4576 316c924e-a436-60f5-8080-3fe189b3f50e
Removed a shed-load of lights. Mainly ones right next to eachother and a whole bunch from the mining asteroid (it's a mining site not a god damn stadium!) Number of light_sources at round start has nearly halved.
Fixed the title-screen again because apparently it didn't commit last time.
Fixed some more broken icon_states
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4575 316c924e-a436-60f5-8080-3fe189b3f50e
-Made nuke ops require at least 20 players. I did this because 15 wasn't low enough and it is a 5 heavily manned organized team vs 10 crew members who are just going along their own business.
-Made the spells only target living mobs. This was because the spells were listing the AI eye as a target.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4573 316c924e-a436-60f5-8080-3fe189b3f50e
-AI has to double click to move by turf.
-If more than a certain number of alarms are triggered, the AI and Cyborg will instead receive a message saying how many alarms have been triggered and of which type, they will then get a link to the "view alarms" proc. This also counts for cleared alarms.
-Fixed an issue with creating turfs and it not showing up on the camera.
-Modified the "Communication Blackout" event. It will now notify the AI that comms are down, if it is var/silent. Increased the EMP duration for telecomm machines.
-Updated the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4572 316c924e-a436-60f5-8080-3fe189b3f50e
Doctor's Delight, the miracle drug, now requires tricordrazine to brew.
Fixes Issue 858. The text is now gender sensitive.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4571 316c924e-a436-60f5-8080-3fe189b3f50e
With this I added a toggle to the acceleration. Using it will stop the AI Eye from gaining speed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4570 316c924e-a436-60f5-8080-3fe189b3f50e
The following runtime has occured 12 time(s).
runtime error: Cannot read null.buckled
proc name: manual unbuckle (/obj/structure/stool/bed/nest/manual_unbuckle)
source file: nest.dm,18
usr: null
src: the alien nest (/obj/structure/stool/bed/nest)
Forgot to check if user still existed after a spawn() delay.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4568 316c924e-a436-60f5-8080-3fe189b3f50e
Moved some of the sprites into cryogenics.dmi- Cryogenic2.dmi is full of random shit, someone should probably look at it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4567 316c924e-a436-60f5-8080-3fe189b3f50e
-Tracking now works like it has again. The else if weren't working because the "else if human" check would make them pass all of it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4563 316c924e-a436-60f5-8080-3fe189b3f50e
-Sorted the following admin commands/verbs:
Get Key, Get Mob, Jump to Area, Jump to Key, Jump to Mob, Player Panel, Player Panel New, Send Mob, Show Player Panel, Show Traitor Panel
-Because of the recent player poll, electrified grilles will now shock you when you bump into them.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4560 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed an issue when pressing jump links as an AI, for air alarms/power alarms.
-Changed the empty room to a Cyborg Station room. It has two recharging stations and a computer frame.
-Moved around some Telecomms machines.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4559 316c924e-a436-60f5-8080-3fe189b3f50e
Unfortunately I had to disallow certain animal types until they can be fixed.
- Mice: I know, it sucks. Mice were the reason I started making this button to begin with, and it's something that both players and admins are requesting. The problem is that when a mob is turned into a mouse, for some reason it becomes impossible to pull up their player panel. If that gets fixed, I'll allow this button to turn players into mice.
- Space Bears: The bear's AI does not seem to turn off when it is player controlled. Basically the bear will automatically maul nearby players to death and spam emotes regardless of the player's actions or inaction.
- Parrots: They are unfinished. They have no sprite, no movement and are completely untested. They were one of Poly's creations that never ended up getting finished. I like the idea of parrots though, someone should work on them!
- Space Worms: Another unfinished project. Currently they drop new space worms when the player moves and you can end up eating your own tail. Eating your tail drops a new space worm and regenerates your tail. I only spent about 15 seconds as a space worm, so there are probably more issues.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4557 316c924e-a436-60f5-8080-3fe189b3f50e
Removed the infra sensor, as it was buggy, and, to be perfectly honest, utterly pointless.
Slightly improved and moved dice code.
Fixes issue 366.
Fixes issue 317.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4555 316c924e-a436-60f5-8080-3fe189b3f50e
Reduced the Login delay for new_players. It stays because it protects against rapid connect/disconnects sending resources repeatedly, it's just a lot less annoying now.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4554 316c924e-a436-60f5-8080-3fe189b3f50e
runtime error: list index out of bounds
proc name: attack (/obj/item/weapon/gun/projectile/russian/attack)
runtime error: Cannot read null.loc
proc name: Topic (/mob/living/silicon/pai/Topic)
I've also added Pewter to the list of spriters.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4553 316c924e-a436-60f5-8080-3fe189b3f50e
This cleans up all of the files in code/game/objects/items/weapons. Meaning that the re-organizing part of this endeavour is complete. All that is left is to start dragging down all of the object definitions from code/defines/ into their proper places.
While I'm certain this is all good, I'll apologize now if files or paths end up broken.
Again: Make sure your .dme is up to date! Delete it if necessary to SVN Upload it to the current revision.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4550 316c924e-a436-60f5-8080-3fe189b3f50e