Commit Graph

59 Commits

Author SHA1 Message Date
Arokha Sieyes
47ccc655db Deprecate the stream operator 2020-02-12 19:38:43 -05:00
Novacat
466516b066 Revert "Un-kevinzes nanoui and chemistry subsystems back into processes for greater good" 2019-04-08 15:24:27 -04:00
Heroman
b11015107c REVERT of nanoui/chemistry becoming subsystems (temp) 2019-04-05 13:30:32 +10:00
kevinz000
6415e4193f [READY]Makes a bunch of processes subsystems instead 2019-03-27 16:03:51 -04:00
Atermonera
de65c3c643 NanoUI now processes again 2018-08-25 21:13:16 -07:00
Anewbe
17a5b70d38 Hacked borgs can no longer be locked down 2017-11-21 23:19:57 -06:00
Arokha Sieyes
0fe43a1f2b Removes all the hard references to computer.dmi
I assume these were all lazy copy-pasting. We're changing computer icons to another set in a file we'll keep separate, and these completely pointless references are annoying. They should inherit this from the `/computer/` level, which they do. Has no effect on Polaris, but cleans up code that shouldn't exist.
2017-04-19 16:54:16 -04:00
Anewbe
38ed1e6431 Removes the Robot Console's ability to blow up borgs 2016-07-10 02:18:24 -05:00
Jon
931719b336 Removes traitor check 2016-04-12 02:20:28 +01:00
Jon
327d4ba11b Fixes lockdown for Autotraitor synths. 2016-04-12 00:29:13 +01:00
Jon
2389b1d997 Part 1 of a lockdown fix.
Borgs now show the correct operational status/lock-unlock button in the UI.
Autotraitor borgs can still be locked down. This doesn't fix that.
2016-04-11 23:22:38 +01:00
Datraen
8075c3abcc Adds a check to prevent traitor cyborgs from being able to hack other cyborgs.
Prevents traitor AIs from hacking other AI's borgs.
2016-03-15 23:10:09 -04:00
Datraen
5d4ad7aa89 Fixes a potential runtime error. 2016-03-14 07:45:47 -04:00
Datraen
1b40fb3bfe Traitor Borg lockdown, blowing-up fixed; can now self-hack. 2016-03-12 17:03:28 -05:00
Jon
51585edcbd Traitor check change. 2016-02-06 02:47:39 +00:00
Jon
1d620f31e9 Traitor synths now cannot be locked down. Locking one down notifies them that an attempt was made, and /shows/ them as locked down on the robotics console. 2016-02-05 23:37:16 +00:00
PsiOmegaDelta
7ce27f76fd Macro refactoring.
Turns several of the is* procs into istype defines.
2015-09-16 12:57:14 +02:00
PsiOmegaDelta
87d4cf4f68 Computers are now overlay based.
Computers now use an overlay based system, instead of demanding a full set of icons (on, off, broken) for every different computer.
Partially ports ParadiseSS13/Paradise#1468 which is a port of tgstation/-tg-station#9931.
2015-07-07 17:23:49 +02:00
GinjaNinja32
dfd871f168 code/machinery, fix for code/antagonist merge string causing false positive 2015-05-30 14:05:32 +01:00
Atlantis
b0334ac331 isrobot() fix, attempt two 2015-05-20 12:22:33 +02:00
Atlantis
5592534ecc Revert "isrobot() fix"
This reverts commit 61c0eaa4a3.
2015-05-20 12:18:23 +02:00
Atlantis
61c0eaa4a3 isrobot() fix 2015-05-19 17:44:51 +02:00
Atlantis
4149fead4e Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into nanocrusade-two 2015-05-19 17:39:43 +02:00
Atlantis
3008087a95 Suggestions + Changelog
- Implements PsiOmegaDelta's suggestions
- Adds changelog
2015-05-19 17:39:25 +02:00
Mloc
7780287d3a mood lighting for computers
Signed-off-by: Mloc <colmohici@gmail.com>
2015-05-10 20:54:29 +01:00
Atlantiscze
21fb94bb27 Robot Control Console v2
- Bugfix - Cyborgs can no longer lock/unlock other cyborgs or themselves. They can still self destruct themselves via the console.
- Bugfix - Antag AI hacking now properly shows apropriate button
- Modified UI a little.
2015-04-30 22:34:36 +02:00
Atlantis
8595b25e48 NanoUI for Robot Control Console v1 2015-04-11 17:04:29 +02:00
PsiOmega
dfd83f787a Fixes #8258.
Main correction is the removal of Topic() in code/game/machinery/computer/computer.dm.
Issue introduced in #7617 where I stated multiple times this Topic()-return value was incorrect.

Ensures that computers return the correct value after the ..() check.
2015-02-25 09:47:50 +01:00
Amunak
158573f066 Corrects names of computers, code formatting, updated computer descriptions.
Everything in game/machinery/computers/ and modules/shuttles should now have properly (de)capitalized names. Computer, board and research names should now be coherent, too. Adds a research for employment records circuit board.
2014-12-14 05:00:38 +01:00
Zuhayr
90d65aed57 Removed attack_paw, attack_animal and attack_slime. 2014-11-13 17:15:29 +10:30
Walter0o
7416d26197 robot computer emagging exploit fix
so an emagged borg can in turn emag all others ?
the more you know.
seems extremely OP to me but i am just closing the exploit, not changing the game.
2014-07-31 10:38:34 +02:00
Zuhayr
4da14198cf Stops drones from self-destructing or being locked down by the RD console. 2014-05-12 13:06:18 +09:30
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