-equip_to_appropriate_slot will now return whether it's successful or not.
-Fixed the receivers and broadcasters being the wrong preset.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4250 316c924e-a436-60f5-8080-3fe189b3f50e
-Broadcasters, receivers and relays do not produce heat anymore.
-The station/DJ station's relays only need a single broadcaster/receiver now.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4245 316c924e-a436-60f5-8080-3fe189b3f50e
-Added in the proper list stuff for changeling stasis
-Added a verb to the debug list (Game Admin+) to check the mob lists instead of requiring the item (Works the same way)
Fixes Issue 708
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4240 316c924e-a436-60f5-8080-3fe189b3f50e
- Robots being deleted passed the mmi object to the mob list instead of the mmi's brainmob
- DNA injectors were checking for a user, but not for a mob.
- DNA computers would try to modify the dna of a mob that no longer existed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4239 316c924e-a436-60f5-8080-3fe189b3f50e
Basically if a mob is alive, it'll run a set of procs and if it's dead, it'll skip them.
I've also done a couple minor tweaks to metroids including minimal optimization and moving their targetting stuff out of life.dm() and into handle_targets(). That part isnt really necessary but it helps clean up the life() proc.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4238 316c924e-a436-60f5-8080-3fe189b3f50e
- Hopefully addressed the concerns about the ultra-darkness. Night vision, mesons, thermals and material scanners now make you see through darkness. (Lighting code does not affect you)
- Ghosts get a "toggle darkness" verb, which changes their see_invisibility. When the toggle is enabled, ghosts cannot see other ghosts. This is due to invisibility.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4235 316c924e-a436-60f5-8080-3fe189b3f50e
-Added the new Mining Borg's jetpack sprite, thanks to WJohnston.
-Sorted the observer list for mobs.
-Updated the changelog.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4233 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed the problem of mousetraps staying armed after a mouse triggered them
- Fixed the problem which made the following text appear when runtime splats a mouse: "Runtime Runtime SPLATS the mouse."
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4225 316c924e-a436-60f5-8080-3fe189b3f50e
PDAs now need to be in a Z level with a functioning Relay/Comms Network in order to send messages. It will also send uncompressed (scrambled) messages like you would with the ordinary voice messages.
I've gotten rid of the "in world" check for blackboxes, when there can only be one.
You can now easily send test signals to see if Telecomms is functioning for an atom. test_telecomms()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4222 316c924e-a436-60f5-8080-3fe189b3f50e
The main problem is: if a mind is transferred to a ghost, objectives that have that mind as a target will treat the ghost as the target mob. Which is clearly a problem. This should fix exploits where people could force people to win/lose objectives via ghosting, gibbing, etc.
It should also eliminate any other weird bugs like the one Nodrak fixed a while ago where pais would keep their mind....meaning they were like, a cultist pai or something and could rat antags out to its owner using the HUD.
Removed some conditions from objectives (like those pertaining to the thunderdome) as they were bait for meta. >ghost >teleport to thunderdome >antag fails the objective she completed
Resolves issue 662
Fixes a few instances of original_name becomming null (there's still loads)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4214 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 699 - in-hands for pipes are removed when placing a pipe back in the dispenser.
Fixes issue 684 - Evidence bag code simplified a bit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4213 316c924e-a436-60f5-8080-3fe189b3f50e
Fixed putting ammo in RCDs, resolves issue 696. Removed a little spam-text from RCDs too.
Removed some dyslexia from spesscash.
added an undef for LEGCUFF_LAYER
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4209 316c924e-a436-60f5-8080-3fe189b3f50e
Alright, added in list stuff to the alien's New() to handle it, and while I was at it I reworked add_to_mob_list() to actually be useful and used that in some places instead (It just takes into account everything for the lists, so that should be a bit more robust.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4203 316c924e-a436-60f5-8080-3fe189b3f50e
Lockers and crates now holy a maximum of 20 objects.
This is to prevent players from dragging a locker into a populated area and opening it; resulting in clients with a weaker connection to lock up and crash. I realize this is an inconvenience for botanists but players being able to intentionally crash other players takes priority.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4195 316c924e-a436-60f5-8080-3fe189b3f50e
Screenshot: (Upper left)
http://www.kamletos.si/object%20ui%20action%20buttons.png
There can be a maximum of 5 of these buttons shown at any one time.
Currently the following items have a UI button associated with them:
- Flashlights
- Hardhat
- RIG suits
- Welding masks
- Jetpacks
To add more buttons, add a button icon_state to icons/mob/screen1_action.dmi, then set the variable icon_action_button to the icon state of the icon you just added. This is all you need to do if you want the default action to be taken when the button is clicked, which is attack_self(). If you don't want the default, you can redefine the ui_action_click() proc. A call of ..() will call attack_self(), so mind when you use that.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4193 316c924e-a436-60f5-8080-3fe189b3f50e
While I was at it, implemented the attack sounds for simple animals, most importantly constructs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4189 316c924e-a436-60f5-8080-3fe189b3f50e
Instead of 'x has been attacked with y by z' it now reads 'x has been 'y.attack_verb-ed' with y by z'!
Example:
Monkeyman has been bashed in the head with a riot shield by Nodrak!
or
Monkeyman has been stabbed in the chest with an energy sword by Nodrak!
- Every obj now has a list named "attack_verbs"
- When declaring an object, just use attack_verb = list("verb1", "verb2") and so on to initialize the list for that specific item.
- I've added a bunch of these to a ton of items already, feel free to modify or add more. Just try to stay away from gimmicky verbs (clown stuff being the exception.)
clothing.dm and spawner.dm only had a single definition in each of them, so their definitins have been moved to obj.dm and their original dm files deleted. I'm not sure about spawner but clothing had all of its other definitions removed recently.
radio.dm was a completely blank file, so it was removed.
Changelog updated
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4182 316c924e-a436-60f5-8080-3fe189b3f50e
-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
- Reduced metroid sight range from 12 to 7.
- Reduced metroid target hunting range from 30 to 7.
- Removed unnecessary loops and checks.
- I didn't do much with AIprocess() but it could really use some more work.
Cleaned out unnecessary checks from porta_turret process() and reduced the range from 12 to 7.
Removed handle_virus_updates from brains, metroids and aliens since there are no viruses that affect them.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4174 316c924e-a436-60f5-8080-3fe189b3f50e
-Gave all the new hardsuits actual inhands, instead of all of them using the rig one.
-Changed a good bit of Brain/MMI damage processing, now an MMI will never go unconscious, and it will not be deafened/blinded by explosions or whatever (Since the MMI acts as senses). However, it does mean they are vulnerable to emps, with all kinds of fun effects (impaired vision, hearing, the ability to speak, the ability to speak PROPERLY)
Fixes Issue 655
-Also gave MMIs some emotes, things like blinking lights, alarms, beeping and booping, etc...
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4168 316c924e-a436-60f5-8080-3fe189b3f50e
-Made a 'default' save slot (D), and whenever you connect it automatically selects the default slot to load from, but manually selecting a different slot will allow you to play on that one before it returns to default.
-Added the ability to name your save slots with the '*'. Names can be up to 16 characters and contain letters, numbers, and basic symbols
-The preview icon on the preference screen now takes into account any job you have set on high, and dresses up the icon accordingly. If assistant is set to 'yes', or AI/Cyborg are on high it will put the icon in a grey suit (So you can still customize).
Solves Issue 667 as well
I tested a good bit with other people's saves, so I'm pretty confident it won't bork savefiles. And before anyone asks, the icon blending didn't make any noticeable lag, since icon procs are client-side.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4159 316c924e-a436-60f5-8080-3fe189b3f50e
- Split the items in the engivend vending machine into the engivend machine, which retained the circuitboards, belts and got power cells; and the YouTool vending machine, which has tools and gloves and such.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4157 316c924e-a436-60f5-8080-3fe189b3f50e
- Replaced all the .pulling = object instances with start_pulling() and stop_pulling(). Use these from now on.
- Ian and Runtime will now no longer move when being pulled
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4155 316c924e-a436-60f5-8080-3fe189b3f50e
- Standardized critter proc declarations
- Added an AdjustBruteLocc() proc to simple animals
- Fixed the bug where simple animals would move when bumped, even when buckled
- Added space bears. They have some decently complex AI which revolves around stances, which include idle, alert, attack, attacking and tired. They are quite a fun little thing. Sprites were in code forever.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4153 316c924e-a436-60f5-8080-3fe189b3f50e
-Optimized the Grey Tide event.
-Added a world clock for observers.
-Late joiners can now see the number of jobs being taken up before choosing their job.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4149 316c924e-a436-60f5-8080-3fe189b3f50e
-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
-Added light flickering
-Ghosts can now make lights flicker a little bit with a minute cooldown. (People voted for it http://www.kamletos.si/tgdb/ingamepolls.php)
-PDAs are sorted correctly on the Message Monitor
-Added some light flickering to the following events: High levels of radiation, Grey Tide virus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4143 316c924e-a436-60f5-8080-3fe189b3f50e
As such the same rules apply to all mobs now. They all make noise as they exit the vent. They can all be blocked by welded vents. They all cannot carry items through (except implants and facehuggers). They all have a delay in arriving at their destination.
This removes any meta "Vent noise! Must be aliums cos monkeys don't have that code!". Fixes a bug that stopped ventcrawl working. And, best of all, you can vent-crawl to any connected vent..not just one per area. :3
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4137 316c924e-a436-60f5-8080-3fe189b3f50e
-Changed the class type of donuts. donut/normal is now the regular donut. All other donuts have been made this way. (I.E: donut/chaos)
-Hopefully the merged records proc will now not spit out runtimes.
-You cannot enter a name without any character now. This way you can also click on the link.
-Added some coloured caps to their respected coloured wardrobes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4123 316c924e-a436-60f5-8080-3fe189b3f50e
ABOUT THE DEVICE
This is a device supposedly to be used by Janitors and Janitor Cyborgs which will
allow them to easily replace lights. This was mostly designed for Janitor Cyborgs since
they don't have hands or a way to replace lightbulbs.
HOW IT WORKS
You attack a light fixture with it, if the light fixture is broken it will replace the
light fixture with a working light; the broken light is then placed on the floor for the
user to then pickup with a trash bag. If it's empty then it will just place a light in the fixture.
HOW TO REFILL THE DEVICE
It will need to be manually refilled with glass.
If it's part of a robot module, it will charge when the Robot is inside a Recharge Station.
EMAGGED FEATURES
NOTICE: The Cyborg cannot use the emagged Light Replacer and the light's explosion was nerfed. It cannot create holes in the station anymore.
I'm not sure everyone will react the emag's features so please say what your opinions are of it.
When emagged it will rig every light it replaces, which will explode when the light is on.
This is VERY noticable, even the device's name changes when you emag it so if anyone
examines you when you're holding it in your hand, you will be discovered.
It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy
access to them, and only one of them can emag their device.
The explosion cannot insta-kill anyone with 30% or more health.
-Changed the broken bottle item icon to "broken_beer"
-Made the flavour text, for hitting yourself on the haad with a bottle, better.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4108 316c924e-a436-60f5-8080-3fe189b3f50e
Projectiles now last 50 ticks then dissipate.
- This is to prevent people from firing these into space causing large amounts of projectiles to be processed needlessly.
Re-coded the cremator's cremate(), it should not lock up any more.
Removed a duplicate attackby() in pill bottles. They should now be able to pick up all pills on a tile properly.
- Fixes Issue 490
- Thanks to Zelacks for pointing this out.
Handcuffed mobs who are being dragged by another player can now move when the puller is stunned or paralysed.
Ashes are now decal/cleanable and can be mopped up by janitors
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4103 316c924e-a436-60f5-8080-3fe189b3f50e
-Improved the Message Monitor UI to make it easier to use.
-Added a Message Monitor in Tech Storage, hopefully so it will be used more. You will still need the key to use it.
-You need the key to turn servers on/off remotely via the Message Monitor.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4099 316c924e-a436-60f5-8080-3fe189b3f50e