-You cannot spread diseases which are marked as SPECIAL or NON_CONTAGIOUS via blood injections.
-Carp no longer drift in space.
-Captain helmet now protects you from facehuggers.
-All humanoid aliens can now Regurgitate.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4946 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
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
New variables:
var/use_to_pickup = if 1, the storage item also works like satchels, which means you can use it on something else to pick it up.
var/display_contents_with_number = if 1, the items in the storage item are grouped by type with the number of items being displayed. See the screenshot.
var/allow_quick_empty = if 1 on creation, it adds a verb that allows you to empty the item with one click
var/allow_quick_gather = if 1 on creation, it adds a verb which allows you to switch between pick-up methods. one-per-click or all-on-tile. Same as satchels worked. use_to_pickup must be 1 for any of that to matter.
var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile
New procs:
/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0)
- Returns 0 or 1, depending on whether the item W can be inserted
/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W as obj)
- Inserts the item into the storage item and calls all the procs it needs to. Doesn't check whether the item can fit tho, tha'ts what can_be_inserted() is for.
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location)
- Removes item W from the storage object and sets it's loc to new_location or get_turf(src) if one is not provided.
/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S as obj)
- Called after the object has been removed from the storage item S. The object's loc is already set to the new one.
/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S as obj)
- Called after the object has been inserted into the storage item S. The object's loc is already set to S.
I made satchels work on this new code. The rest will be added to it soon. See the screenshot.
Screenshot:
http://www.kamletos.si/new%20satchels.png
This is yet another big change and it is very possible that bugs will come from it. Please report them to me or on the tracker.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4451 316c924e-a436-60f5-8080-3fe189b3f50e
New defines in setup.dm:
This revision changes the following things:
- Hot is no longer defined as 'higher temperature than 310.15K' but is defined as 'higher temperature than my body temperature'. The opposite applies for cold.
- Removed heat_transfer_coefficient and protective_temperature
- Added heat_protection and cold_protection flag variables to obj/item, which define which areas of your body are protected from heat.
- Added max_heat_protection_temperature and min_cold_protection_temperature which define up to which temperature the item protects when worn (NOTE that it only protects on the locations specified by the heat_protection flags!) and down to which temperature it protects from the cold.
- REMEMBER! hot and cold were redefined to mean 'which way your body temperature should be moving based on the air around you'.
- Each tick, your body now 'corrects' your body temperature towards 310.15K which is the ideal temperature. The correction is max( difference/12, 10 ), so either a twelfth of the difference between your body temperature and 310.15K, or 10K, whichever is higher. This ensures your body temperature stabilizes over time.
- Most notable changes in the amount of protection you get from common items are these: Space suits now ONLY protect from cold and fire suits now ONLY protect from heat. Now what this means is obviously that firesuits will be useless in space, but also that if you find yourself in a fire with a high body temperature and you put a firesuit on, your temperature will no longer stagnate at the high temperature, due to temperature not going up nor down, but rather it will get lower. Instead it will be protected from rising, it will however gradually get lowered by your body's 'auto-correct' attempts, as described in the last point. Additionally, if you wear a fire suit and enter an area with a good temperature (for isntance 290K) and you have a high body temperature, due to just escaping from a fire, the fire suit will not make your body temperature stagnate. Because it does not protect you from cold, and cold being defined as 'colder than your body temperature', you will actually successfully cool down to the optimal temperature.
- The opposite applies to space suits. They protect from cold and don't protect from heat. If you find yourself in space and your temperature drops and put on the space suit with your temperature still low, you will recover over time. If you enter an area with a good temperature, you will recover faster, since the space suit does not protect you from heat.
- In short, space suits are now better at dealing with space and fire suits are better at dealing with fires.
- You will NEED a fire helmet to be protected from heat and you will NEED a space suit helmet to be protected from cold. There is no 'but'. Fire helmets are red or white hardhats, found in all fire closets.
- The 'heat up' coefficients are defined in setup.dm, they are:
- - head = 30%
- - lower and upper torso = 15% each = 30%
- - legs and arms = 7.5% each = 30%
- - feet and hands = 2.5% each = 10%
- Gloves cover hands
- Shoes cover feet
- Space-worthy jumpsuits cover legs, arms, upper and lower torso
- Space suits cover legs, arms, hands, feet, upper and lower torso
- Headgear covers heads
- Removed the HEADSPACE and SUITSPACE flags, due to being moved to the new variables. This frees up the flag value 4.
. The amount of damage heated gas and heated areas do can now be set in human/life.dm. The values are: (The different levels are based on breath temperature or body temperature.)
#define HEAT_DAMAGE_LEVEL_1 2
#define HEAT_DAMAGE_LEVEL_2 4
#define HEAT_DAMAGE_LEVEL_3 8
#define COLD_DAMAGE_LEVEL_1 1
#define COLD_DAMAGE_LEVEL_2 2
#define COLD_DAMAGE_LEVEL_3 4
//Note that gas heat damage is only applied once every FOUR ticks.
#define HEAT_GAS_DAMAGE_LEVEL_1 2
#define HEAT_GAS_DAMAGE_LEVEL_2 4
#define HEAT_GAS_DAMAGE_LEVEL_3 8
#define COLD_GAS_DAMAGE_LEVEL_1 1
#define COLD_GAS_DAMAGE_LEVEL_2 2
#define COLD_GAS_DAMAGE_LEVEL_3 4
The speed at which your body temperature raises or falls can be altered with the following defines:
#define BODYTEMP_AUTORECOVERY_DIVISOR 12
#define BODYTEMP_AUTORECOVERY_MINIMUM 10
#define BODYTEMP_COLD_DIVISOR 6
#define BODYTEMP_HEAT_DIVISOR 6
The divisors determins by how big a difference between your body temperature and the surrounding air (or 310.15 in the case of autorecovery) will your body temperature change. The autorecovery_minimum means what the minimum recovery is, if difference / 12 is less than 10, it will recover by 10.
Was all this needed to fix Issue 44? Yes..... yes... it was... Some things are consequences of decisions made while fixing it, but all of it was necessary to completely fix the issue. I found it did not remain on the tracker for this long for nothing.
I'm sorry for the essay, but there was a lot of work involved and a lot of changes happened, so I had to write a lot...
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4428 316c924e-a436-60f5-8080-3fe189b3f50e
Everything related to clothing should now be defined in modules/clothing. I'm almost certain there's clothing code hidden elsewhere but this should be the vast majority of it finished.
Everything is set up related to the object types themselves (meaning paths.)
So all hats will be in modules/clothing/head, all gloves will be in modules/clothing/gloves, ect...
I've removed 'modules/clothing/random.dm' and 'objects/items/clothing.dm' which both seemed to just be a place where people would put stuff they were too lazy to find a proper home for.
I've also moved files that had no, or very few blocks of code into more catagorized areas.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4388 316c924e-a436-60f5-8080-3fe189b3f50e
-Made inhands for hardsuit helmets
-Due to feedback, the Nuke Op pinpointer will change modes on its own when the nuke is armed/disarmed. (As such, the toggle verb was removed) This should also help with the issue of both modes trying to run at the same time.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4290 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
-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
Replaced the obj variable var/see_face. It was used to determine whether something (namely masks/hats) hid your identity. Replaced with the HIDEFACE bitflag for var/flags_inv variable. Moved the var/flags_inv variable from atom/ to obj/item/ as only /obj/item/ can be in your inventory in the first place.
Fixed get_visible_name() so it takes into account any item on the var/head when deciding if your face is obscured. (While I'm at it, just dump a comment here if there's anything that should hide your face which doesn't and I'll add the flag.)
Removed the var/alien_egg_flag variable from mob/living/carbon/ and replaced it with the XENO_HOST bitflag for var/status_flags variable. You can now suicide whilst impregnated with a xeno (since you will chestburst even after death, that restriction is no longer necessary).
Any mob/living descendent can ghost even when not dead. However, ghosting whilst not dead results in the ghost eing unable to return to it's body for the remainder of the round. (It has a warning popup)
The suicide verb can only be used by humans when they can move and are not cuffed. These verbs will be totally replaced very soon with the 'fun' IC suicides I'm working on. Suicide is largely redundant given that anybody can ghost now, just didn't want to jump the gun in removing it.
Known Issues:
We've got var/flags_inv, var/slot_flags which could possibly be merged as they both deal with obj/items, although I'm not sure if we can fit oth into the 16-bit limit. Just something to look into.
There are bitflags GLASSESCOVERSEYES, MASKCOVERSEYES, HEADCOVERSEYES, MASKCOVERSMOUTH, HEADCOVERSMOUTH in the var/flags variable which should really be merged with or moved alongside the very similar flags in var/flags_inv. Comments next to the defines suggest as much.
You can borg dead/clientless brains but can't remove the brain fromt he borg once you realise it's a dud. >.<
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4072 316c924e-a436-60f5-8080-3fe189b3f50e
-Nuke Op personal closets updated: Red spacesuits replaced with syndicate hardsuits. Bulky riot shield replaced with collapsible energy shield. Plain breathmasks replaced with face-hiding syndicate gasmasks. (For those worried about the mask's impact on stealth, you still start with a normal breathmask in your internals box.)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3994 316c924e-a436-60f5-8080-3fe189b3f50e
Several head objects path changed so they are not helmets, head means can fit on your head, helmet was securities helmets, space helmets currently still helmet.
Cult restricted job list now has the sec force + cap because you can’t convert them as is.
AI removed from protected traitor jobs as malf is currently effectively out of commission.
A Protected list was added to changling.
Removed the furry mob files that were not checked.
Moved two unchecked files to unused
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3896 316c924e-a436-60f5-8080-3fe189b3f50e
-Swapped Shower and Laundry rooms. Showers are now next to fitness, and laundry is near all the clothing lockers.
-reverted ZIS suits back to hardsuits after much deliberation in coderbus
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3847 316c924e-a436-60f5-8080-3fe189b3f50e
-Fixed turret controls not working in AI upload and telecoms
-Made sunglasses less dorky-looking
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3733 316c924e-a436-60f5-8080-3fe189b3f50e
Replaced engineering rig suits with sexy new environment suits, sprites courtesy
of Baystation 12.
Fixed Erro's backpack derp- backpacks are wearable once again.
Added a obj/structure ex_act(), blob_act(), and meteorhit().
Made gasmasks block visibility of glasses and ears.
Fixed being able to wear plasma tanks on your back.
Fixed the gas mixer sprite not lining up with horizontal pipes correctly.
Removed a bunch of pointless text()s from a few files. I was going to get rid of
all of them, but I gave up after a while. Most of the diffs are this.
Revision: r3662
Author: petethegoat
Fixed Erro's backpack derp- backpacks are wearable once again.
Added a obj/structure ex_act(), blob_act(), and meteorhit().
Made gasmasks block visibility of glasses and ears.
Fixed being able to wear plasma tanks on your back.
Fixed the gas mixer sprite not lining up with horizontal pipes correctly.
Removed a bunch of pointless text()s from a few files. I was going to get rid of all of them, but I gave up after a while. Most of the diffs are this.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3662 316c924e-a436-60f5-8080-3fe189b3f50e
- The singularity now regularly emits radiation, making it actually dangerous to go into the PA room without protection.
- Made the hoods of suits be less effective at consuming radiation than the body of the suit.