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
Cleaned up the files themselves.
Everything in code/game/objects should now be in proper files or places with the exception of the files in the /weapons/ sub-folder.
There's two instances of me not following the exact file structure.
- /obj/item/brain has been moved to a file in mob/living/carbon/brain
- /obj/item/clothing/mask/facehugger has been moved into mob/living/carbon/alien/special
Both of these may not make sense according to the object structure, but they do make sense logically. If it's a problem just move them.
Next up: Finish the files in the weapon folder, then start moving defines down.
My god I hope I havent broken everything.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4547 316c924e-a436-60f5-8080-3fe189b3f50e
runtime error: Cannot execute null.apply effect().
proc name: on hit (/obj/item/projectile/energy/floramut/on_hit)
source file: special.dm,85
Moved ninja gloves into the gloves sub-folder in clothing instead of space suits.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4545 316c924e-a436-60f5-8080-3fe189b3f50e
You have to stand still while lethally choking someone. It takes time to get into that lethal choke. When you are lethaling choking someone, they are still concious until the lack of oxygen knocks them out.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4542 316c924e-a436-60f5-8080-3fe189b3f50e
It's now very slightly better than a Beepsky Smash.
- Amasec nerfed slightly because of how easy it is to make.
- Modified various descriptions, some were duplicates, others were inaccurate/just plain terrible.
- Updated the Changelog with my changes and added finally added myself to the coder list.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4540 316c924e-a436-60f5-8080-3fe189b3f50e
It's a gun that fires meteors! Admin spawn only.
They do not shoot 'real' meteors, they shoot a projectile that acts like meteors.
Note: The meteor projectile calls 'meteorhit()' which some objects and turfs do not have, so some things won't really be affected by them.
The gun itself has a potato battery, meaning it starts with a charge of 100 and has a maximum charge of 300. It costs 100 to fire and recharges 100 every 5 ticks.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4538 316c924e-a436-60f5-8080-3fe189b3f50e
Comments for lighting:
Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas
by using the var/tag variable and moving turfs into the contents list of the correct sub-area.
Unlike sd_DAL however it uses a queueing system. Everytime we call a change to opacity or luminosity
(through SetOpacity() or SetLuminosity()) we are simply updating variables and scheduling certain lights/turfs for an
update. Actual updates are handled periodically by the lighting_controller. This carries additional overheads, however it
means that each thing is changed only once per lighting_controller.processing_interval ticks. Allowing for greater control
over how much priority we'd like lighting updates to have. It also makes it possible for us to simply delay updates by
setting lighting_controller.processing = 0 at say, the start of a large explosion, waiting for it to finish, and then
turning it back on with lighting_controller.processing = 1.
Unlike our old system there is a hardcoded maximum luminosity. This is to discourage coders using large luminosity values
for dynamic lighting, as the cost of lighting grows rapidly at large luminosity levels (especially when changing opacity
at runtime)
Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to
have larger memory requirements than our previous system but hopefully it's worth the hassle for the greater control we
gain. Besides, there are far far worse uses of needless lists in the game, it'd be worth pruning some of them to offset
costs.
Known Issues/TODO:
admin-spawned turfs will have broken lumcounts. Not willing to fix it at this moment
mob luminosity will be lower than expected when one of multiple light sources is dropped after exceeding the maximum luminosity
Shuttles still do not have support for dynamic lighting (I hope to fix this at some point)
No directional lighting support. Fairly easy to add this and the code is ready.
When opening airlocks etc, lighting does not always update to account for the change in opacity.
Explosions now cause lighting to cease processing temporarily.
Moved controller datums to the code/controllers directory. I plan on standardising them.
"Master","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI" controller datums can be accessed via the debug controller verb (used to be the debug master controller verb)
Supply shuttle now uses a controller datum. Shuttles tend to arrive up to 30 seconds late, this is not a bug.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4537 316c924e-a436-60f5-8080-3fe189b3f50e
-Made telecomms look symmetrical again.
-Added the telecommunication blackout event to the RNG. Admins can trigger it and they have an option to alert the crew.
-AI can now properly use their multitool. (forgot to uncomment)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4536 316c924e-a436-60f5-8080-3fe189b3f50e
-I've added some cameras to rooms that should have cameras but were previously depending on other camera's using their X-Ray vision in order to see into a room.
-AIs have a multitool in their contents that they can use to interact with the telecommunication machines.
-Added "Follow" for observers. Works the same as AI tracking without checking if they can track.
-Added a range to how far Cyborgs can interact with machines. This is to stop Cyborgs from interacting with machines through cameras, which could be used to easily disable the AI.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4531 316c924e-a436-60f5-8080-3fe189b3f50e
-Changed the air assimilation for ReplaceWithFloor() and ReplaceWithPlating() so that it doesn't count non-floors/non-space turfs against the average.
-Commented them as well
Fixes Issue 851
-Standardized AIbots a bit, primarily with vars, attackby(), emag() and such (Mostly excludes M.U.L.E.'s though)
-AIbots now have a maintenece panel on them, which can be opened after unlocking the access panel by using a screwdriver
-The bots are now repaired by opening the maint panel and using a welder
-Emagging the access panel will unlock it permanatly, and emagging it with the maint panel open will trigger the emag behavior
-Floorbots will actually pull up tiles when emagged, 90% to just pull up the plating (And add it to the tile stock), and 10% to replace the floor with lattice
-When destroyed, floorbots will actually drop all the tiles they have stored, not just 1
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4528 316c924e-a436-60f5-8080-3fe189b3f50e
-Gave back the miner borg stun arm to account for the smaller improvement for drills
-Fixed an issue where I accidentally made borg emag modules invisible
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4525 316c924e-a436-60f5-8080-3fe189b3f50e
-Added a proc for cyborg modules to 'rebuild', which makes it possible to remove items from the modules without clogging up the module menu
-Made the emag for minerborgs work better as a result
-Gave borgs their special radios back
-Fixed an apparently ancient bug where everything inside a borg will appear on the screen (MMI, cell, radio, etc...). It wasn't complex at all and I can't believe no one had fixed it yet.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4524 316c924e-a436-60f5-8080-3fe189b3f50e
-TCommsat machines no longer use their Z level to check if they can receive the signal or not. Instead, they use listening_level. It defaults to 0 for machines that don't change the value. If it is 0 when the telecomms machine's New() is called it will set itself to it's Z level.
-This allows you to manually change the value to other Z levels. I call this an off-site relay. I've added an off-site relay on the satelitte for the station and removed the one in the communications room.
-Players can create an offsite relay with two receivers, two broadcasters and, if necessary, a relay. Why two receivers and broadcasters? Otherwise any player can go to the Ruskie/Mining relays and turn them into off-site relays for the station! It would harm the TCommsat's usefulness. Instead, you will have to setup another broadcaster and receiver if you want to do that. Though it may be pointless, if someone sabotages the Commsat they would have destroyed/depowered the other machines there too.
-About the option to have an offsite relay, there is only a single Z level that you can lock onto at the moment and that's the station. Gameplay wise, the TCommsat is orbiting the station and if we do get the away missions then it would not make sense for the TCommsat's broadcaster/receiver signal to be able to pickup there. More sense if the Receivers and Broadcasters from there
are sent here... maybe. I don't know, seems more fun this way.
-Fixed an issue that doesn't let the Engineer Borg (or Borgs with multitools) be able to link machines with their multitool module.
-All-In-Ones do not have a Z level restriction. They can pick up ALL signals and send ALL signals (to Z levels 1-10)
-Fixed an issue with the player being unable to remove frequencies from the filter.
-Added support for additional interaction options for certain machines. To use it, create a new Options_Menu() and Options_Topic(href, href_list) for your machine.
-Added EMP_ACT to Telecommunication Machines. I've also added an event called "telecommunications_blackout()", it will loop through all telecomm machines, in telecomms_list, and EMP_ACT them. The EMP will last 2 minutes. Currently only admins can use it.
-Fixed issue 831
-Changed the map. The station no longer has the station relay, it is now on the Satellite. There's an empty room now, it should be used for something after the feature freeze.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4522 316c924e-a436-60f5-8080-3fe189b3f50e
The singularity can no longer stunlock dead or unconscious people.
tgstation.dme updated since one of the files were removed
Changelog updated to put the 'have a bug to report?' bit to a spot just above where coders put their changes.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4521 316c924e-a436-60f5-8080-3fe189b3f50e
Removed some pointless, unused objects. (i'm looking at you, rubber chicken without a sprite)
Added a few new "features"- lighting cigs with igniters, and toggle-able bedsheets.
Slightly improved the cow gib sprite because if I don't commit it now I'll revert it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4517 316c924e-a436-60f5-8080-3fe189b3f50e
There are many files, folders and chunks of code in areas that make absolutely no sense and thanks to the defines being located mostly in a completely separate file, it can be damn-near impossible to find something. Before moving defines to where the rest of their code is located; I'm going to move some code around into places that actually make sense to begin with. I'll mainly be focusing on the code/game/objects folder.
This commit mainly lays the groundwork for the work I'll be doing by adding in the effects, structures, decals and turfs folders. I'll slowly be moving appropriate files and code into these folders. I may end up moving machinery into 'objects' and mech stuff into its own module folder but I'll ask for some opinions on coderbus before doing that.
I've also gotten rid of the /magic/ folder. I've moved the library stuff into its own folder in modules/library, the cult stuff is now in gamemode/cult with the rest of it and musician.dm is now in objects/structures since the piano is a structure apparently.
I think I've got the hang of how DM and SVN handles folders and files but it's quite possible that something will break simply by svn committing it oddly. Please let me know if that's the case!
Remember to clean compile.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4513 316c924e-a436-60f5-8080-3fe189b3f50e
Items equipped with the 'equip' button now update the player's hands. Unfortunately since the procs it uses forces an update_icons() call, using the equip button will now call it twice.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4512 316c924e-a436-60f5-8080-3fe189b3f50e
Next up, objects! One day we'll be able to click on something in the object tree, and actually end up where all the object code is.
I standardized robot/life.dm while I was at it.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4510 316c924e-a436-60f5-8080-3fe189b3f50e
Station-heads who are monkied now count as 'dead' for round completion.
- This previously applied to revheads but not station heads.
Changed get_all/living_heads to pull from the mob list instead of the player list.
- It was causing players to get skipped by the check-antag verb admins have if they were disconnected.
Runtime fix by Erro for:
runtime error: Cannot execute null.show inv().
proc name: done (/obj/effect/equip_e/human/done)
source file: inventory.dm,562
usr: Nodrak Davis (/mob/living/carbon/human)
src: the human (/obj/effect/equip_e/human)
call stack:
the human (/obj/effect/equip_e/human): done()
the human (/obj/effect/equip_e/human): process()
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4509 316c924e-a436-60f5-8080-3fe189b3f50e
- The problem was actually down to an ancient bug, which wrongly calculates the temperature of tiles with very little gas on them - tiles exposed to space. Space suits protect down to a temperature of 2.0K, space is 2.7K, which I assumed to be the lowest temperature anywhere. Unfortunately I forgot about this bug at the time, which can cause the gas temperature on tiles with little air to even hit negative kelvins (Nobel prize, plox). This happens relatively often, each floor tile that meets the criteria experiences this about once every 50 ticks and if you're standing on it when it happens, your cold protection will be 0%, because the temperature on the tile will be lower than 2.0K. Everything will be fine in the next tick cold-protection-wise, but your body temperature is already lowered to under the damage threshold by then.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4498 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes Issue 827
-Added a sound to conjure spells for artificers, to provide feedback and be less confusing.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4497 316c924e-a436-60f5-8080-3fe189b3f50e
- Added a message_admins() message which is sent if a character setup mismatch is detected to help diagnose the problem.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4496 316c924e-a436-60f5-8080-3fe189b3f50e
All credits to the author for this handy little script.
I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work.
To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders"
If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed it being possible to drag-drop any storage item to either hand from.. anywhere... You can now only do that if the backpack is somewhere on you.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4485 316c924e-a436-60f5-8080-3fe189b3f50e
- Fixed an issue where the monkey's slot_l_hand and slot_r_hand slot identifiers were being assigned to the two pieces of the 'swap hand' button instead of the actual hand screen items. Not tomention them being the wrong way around...
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4482 316c924e-a436-60f5-8080-3fe189b3f50e
- Adds logging for throwing. Pulling and grabbing does not need to be logged in detail, since kill-intent grabbing is logged already.
- Something broke throwing, which made it runtime. This also fixes that.
- Fixes the problem of applying wires to a stack of glass, which only contains one piece of glass using wires, deleting the glass piece and not spawning a light tile. A call of the glass' use(1) was misplaced, which had the chance of deleting the object, thus stopping the proc, before it spawned the light tile.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4478 316c924e-a436-60f5-8080-3fe189b3f50e