Commit Graph

27 Commits

Author SHA1 Message Date
giacomand@gmail.com
6a2d78bc94 -Killed the updateDialog lag. I added a check to see if there were any mobs to update, if not it will stop checking until a user uses the machine again. I had to replace all the machine = src and machine = null with procs to help make it manageable. I believe this is one of the culprits causing the server to lag as the round goes on, as more players will interact with machines.
-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
2012-10-25 19:15:51 +00:00
Kortgstation@gmail.com
d85e161c4d Fixed checking for assassination targets. It checked for them on 8 or higher, the away mission Z is 7.
A number of computers no longer work on Z7 (away mission).

-AI upload
-Security cameras
-Crew monitoring computer
-Comms console
-Robotics console
-Security records

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4699 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-16 04:36:58 +00:00
elly1989@rocketmail.com
73e5c38a56 Preparations for reducing the number of processing machines at round-start. There are currently 8000 or so at round start, this was already pruned to 2800ish by doohl's stuff.
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
2012-09-02 20:32:01 +00:00
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
sieve32@gmail.com
459c558898 -Make holodeck eswords a child of obj/item/weapon/holo instead of regular eswords, clumsy check removed as a result, and you can no longer do things like cutting through walls or doors or what have you. (Fixes Issue 665)
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.

r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds

[VGTG]

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-23 00:48:51 +00:00
ericgfwong@hotmail.com
627e5e295d -Telecoms now has its own style of doors, to be more visibly unique from Space Station 13
-Added new Create Classified Report button for admins. It's a more discreet way for Centcom to communicate with the heads of staff without announcing it to the entire crew.
-Uncommented admin notices for cyborg lockdowns/releases

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4091 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-16 19:44:05 +00:00
ericgfwong@hotmail.com
c93200ed5f -Added salt and pepper to kitchen
-A few changes to admin stuff:
--Set-Play now auto-disables deadchat visibility. Set-Observe still auto-enables deadchat visiblity
--Emagging/overriding the holodeck now logs
--Removed Admin Notices for emagging and locking down cyborgs (still logs normally)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4085 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-16 09:14:52 +00:00
johnsonmt88@gmail.com
52dd7b3af5 Cleaning up machine process()s
But first! Unrelated to process():
- Only humans and monkeys can move into sleepers.
- Immovable rods no longer delete themselves if they hit a shuttle. Instead they act as if the shuttle doesn't exist. This should help cut down on rods deleting themselves before going through the station.

And now back to our regularly scheduled programming...

Removed process() that were doing nothing from:
- Dispenser(the one that dispenses O2 and Plasma tanks)
- Robotic Fabricators
- Crew Monitoring computer

Reworked hydroponic's process(). 
- Merged if statements together since most of them lacked "else if"s or were duplicate checks.
- Changed a while loop into a for loop as sloppy coding or an admin var-editing could cause an infinite loop.

Removed a sleep(100) { process() } from the operating table's constructor as the MC will call process() regardless.

Cleaned up shieldgen.dm
- Changed a while loop into an if statement. The loop was unnecessary
- Moved some stuff around so it's not nearly as confusing.
- Standardized the proc and variable definitions.
- These are not currently in-game but they are amazing items. I'll see about sorting out their bugs and getting them in proper working order.

Removed a for(var in world) from
- cleanbot process()
- floorbot process()

Removed computer/engine/process() from robot/computer code
- /obj/machinery/computer/engine does not exist in the first place...

Note: These are only some of the machinery process()s. I didn't want to potentially break too much at once. More to come.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4017 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-08 19:40:10 +00:00
elly1989@rocketmail.com
48088b79d9 ugh...this was horrible. I'm really sorry if I fucked anything up, I was literally going braindead towards the end.
Replaced every l_hand = and r_hand = and all that if(hand) crap to use standardised procs. This means we can use procs like Dropped() reliably as they will always be called when things are dropped.

Thorough documentation to come. But generally, if you want a mob's icons to update after deleting something in the inventory...use drop_from_inventory(the_thing_you_wanna_drop) just before deleting it. If you wanna put something in a mob's hands use put_in_hands() (or one of the variants). It'll try putting it in active hand first, then inactive, then the floor. They handle layers, overlays, screenlocs calling various procs such as dropped() etc for you. Easy

mob.equipped() is now mob.get_active_hand() because there was another totally unrelated proc named equipped() and stuff was confusing.

Weakening was made instantaneous.

Minor optimisations for human/handle_regular_status_updates(). I'll port these changes over to the other mobs next. Basically it should stop it constantly incrementing every status effect even after death.

umm... bunch of overlays related fixes... I think that's everything. :/

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3900 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-23 21:24:45 +00:00
baloh.matevz@gmail.com
c2c7a3bcda - Variable declaration standardization. Big commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3671 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-25 19:26:36 +00:00
quartz235@gmail.com
d22c7cd6d5 Fixin runtimes and wooing the hot womenfolk
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3340 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-23 00:45:53 +00:00
VivianFoxfoot@gmail.com
5cf9243b20 In line with the current test of modifications to borgs, traitor borgs can no longer be blown by a robotics console if they hack themselves. Lockdowns have a mechanic to prevent meta.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3273 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-11 21:44:40 +00:00
VivianFoxfoot@gmail.com
d4eb845626 Adds a new config option called 'Tensioner'. If enabled, if the tensioner thinks the round is going too slow (Not enough deaths and explosions, pretty much, atm) it suggests adding more antagonists. Unless overriden by an admin (any holder) it automatically creates antagonists from a random round type. Feedback and round-end conditions (except for nuke team) will not (should not) function for additional antagonists.
Tratior borgs who hack themselves cannot be blown by their AI.
The AI can now open doors with shift+click, bolt them with ctrl+click, and shock them with alt+click
Adds a new wire to doors that controls the time delay before they close.  If pulsed, they close like a sliding glass door.  If cut, they do not close by themselves.  
Borgs who have died, ghosts, and are then blown up will now have their ghosts properly transfered to their dropped MMIs.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3269 316c924e-a436-60f5-8080-3fe189b3f50e
2012-03-11 20:08:31 +00:00
mport2004@gmail.com
b5944308c7 Moved most of the computer defines into the proper code file.
Moved a few of the computers into their own files.
Security records now shows rank on the browse screen.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2909 316c924e-a436-60f5-8080-3fe189b3f50e
2012-01-03 21:16:48 +00:00
rastaf.zero@gmail.com
4f7030a426 Jack Rost updates:
-more dismantable consoles:
--Teleporter
--Supply ordering console
--Supply shuttle console
--Power Monitor
-new circuit boards (both constructable and destructable)
--Supply ordering console (programming 2)
--Supply shuttle console (programming 3)
--Outpost Status Display(programming 2)
--Operating Computer (programming 2, biotech 2)
-R&D Console circuit now requires programming 4 (was 6).


Balagi updates:
-Trash bag: works as mining satchels but for trash.
-Started redesign computers code
-fixed candles sprites
-trashbag now has "in hands" sprite
-fixed emagging supply shuttle console

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1883 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-18 19:17:58 +00:00
rastaf.zero@gmail.com
e074166845 Added sanitize() to verb/me().
Enabled adminlogging of using robotic console.
Some admin messages are duplicated to log file now.
Fixed bug with ghosts sometimes not hearing people.
WIP stuff from Nikie:
a sprite for detective's armor
an alternative sprite for SWAT armor


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1391 316c924e-a436-60f5-8080-3fe189b3f50e
2011-04-06 08:47:51 +00:00
n3ophyt3@gmail.com
4368bc7564 Borged traitors can no longer hack themselves with a robotics terminal.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1207 316c924e-a436-60f5-8080-3fe189b3f50e
2011-03-18 22:46:11 +00:00
n3ophyt3@gmail.com
f5350a0119 Fixed up Deeaych's round-start cyborgs, they no longer spawn on the title screen
As a side effect of fixing this, since digging into the related code to make it not the case would be a chore and a half, round-start cyborgs are capable of being traitors, receiving the same objective/law set as an AI would. Much like a traitor AI, they can use a robotics terminal to hack themselves to unlock the emag module, at the cost of RED ANTENNA ROUGE BORG.

It has been suggested that they get additional perks, such as immunity to robotics terminal detonation/lockdown, but I am wary of adding such things right off the bat. We shall see.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1204 316c924e-a436-60f5-8080-3fe189b3f50e
2011-03-18 21:06:38 +00:00
n3ophyt3@gmail.com
f10af06a6b Monkeys can now be stungloved
Cyborgs got a makeover
  Standard model now gets an energy sword when emagged
  Engineering model
    RCDs now run on cell charge for engyborgs
    Emagged engyborgs get the functional equivalent of stungloves
  Security model gets a laser when emagged
  Janitor model 
    Spraybottle contents slowly refill at the cost of cell charge
    Emagged janitors get a spraybottle full of space lube
  Brobot
    Bottle contents slowly refill at the cost of cell charge
    Emagged brobots get a bottle of Mickey Finn's Special Brew

Traitor/malf AIs can 'emag' their borgs with the robotics terminal (subject to removal/conversion to malf module should it prove hilariously overpowered)
  

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@634 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-16 03:11:49 +00:00
n3ophyt3@gmail.com
1b4d6517c7 You can now stick IDs in PDAs.
If you look at your PDA window, there should be an option to stick an ID in, like with some computers.
  While carrying an ID, a PDA can be used for almost everything an ID can.
    While ID scanners can read cards through a PDA, it is difficult to shove a PDA into the ID slot on some computers.
    It is possible I missed some functions, but I was quite thorough in my sweep through the code.
    In the event of PDA destruction, any inserted ID is ejected unharmed.

It is now possible to stick PDAs in your jumpsuit's ID slot.
  Since PDAs are named, you can disguise yourself as someone else using one.
  Beepsky/ED-209 can see through a PDA disguise if you stick your real ID in for access.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@592 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-12 04:37:39 +00:00
n3ophyt3@gmail.com
7d2226d249 Got my borg lockdown working as desired. Borgs so disabled are now able to talk (and robotalk), but unable to move or interact with things.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@540 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-05 19:10:09 +00:00
n3ophyt3@gmail.com
793e5702f1 Added the ability to lock down a borg with the robot terminal
I am very much unhappy with the current state of the lockdown, as it leaves the robot unable to speak (and thus unable to explain itself), but I have thus far been unable to find an easy way to leave it unable to act while still able to speak

Cyborgs can no longer use the robot terminal against cyborgs that aren't themselves

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@538 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-05 07:29:36 +00:00
n3ophyt3@gmail.com
8e899a72ad The roboticist terminal now requires you to have roboticist access to blow borgs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@532 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-04 07:34:03 +00:00
daelith.rhedynfre
05540df7c8 -Updated the magivend so it is no longer map based and it now has its own unique sprite
-Added red wizard robes as a hackable item to the new magivend. Functions as normal robes.
-Gave the robotics console a unique sprite, and modified the solars sprite so that it fit with the power monitor console.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@527 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-03 21:15:02 +00:00
n3ophyt3@gmail.com
a9c3178c7e Admins can now track who killswitched a cyborg.
The roboticist terminal now lets you see what AI a cyborg is linked to.

The global cyborg killswitch now properly updates when stopped mid-timer.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@236 316c924e-a436-60f5-8080-3fe189b3f50e
2010-10-01 21:20:42 +00:00
n3ophyt3@gmail.com
26bc2276f4 Fixed a bunch of the runtime errors cropping up in the server logs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@175 316c924e-a436-60f5-8080-3fe189b3f50e
2010-09-26 01:55:42 +00:00
only.lurking
662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00