- Refactors action button backend
- Action buttons are no longer checked on Life(), items are responsible
for adding/removing/updating them.
- Item action buttons are no longer a static action_button_name define,
items define actions_types, which is a list of paths.
- Items can now have multiple action buttons.
- This is handled by new arguments to ui_action_click, the first
parameter is the user, the second is the path of the action datum
that was invoked.
- Refactored how internals function
- You may now directly switch internals without breaking anything.
- The internals icon has been updated to be more consistent.
- Added action buttons for jetpacks
- Added action buttons for oxygen tanks
- Uses-based implants now qdel() themselves when they run out of uses.
This is somewhat a buff to traitor implants, but it's such a minor
change. The actual reasoning is so that the action buttons are properly
removed.
- Fixed a bug with the "Boo" spell which resulted in IsAvailable failing
for certain ghosts.
- You can now shift-click on movable HUD elements to reset them to the
proper position (thank fucking christ)
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
- Also adds ABSTRACT and NODROP flags in preparation for removal of
canremove and abstract vars.
- Sorts some of the setup.dm flags so they're in order.
- Replaces 'flags & 2' in policetape.dm with pass_flags & PASSTABLE,
should have the same effect.
Adds a variable to hats to determine how likely they are to fall off. Makes them fall off with the given probability when disarmed (some percentage of the time) or when the character falls. Space helmets, bio hoods, helmets, radiation helmets, etc, are unlikely to fall off
Conflicts:
code/game/gamemodes/cult/cult_items.dm
code/modules/clothing/clothing.dm
code/modules/clothing/head/hardhat.dm
code/modules/clothing/head/helmet.dm
code/modules/clothing/head/jobs.dm
code/modules/clothing/head/misc.dm
code/modules/clothing/head/misc_special.dm
code/modules/clothing/suits/bio.dm
code/modules/clothing/suits/utility.dm
code/modules/events/tgevents/holiday/xmas.dm
code/modules/mob/mob.dm
New define - AGONY. Used as an effect (Like STUN, WEAKN, etc) to cause HALLOSS. Allows use of HALLOSS projectiles without having to worry about them shattering windows/grilles. Future use? Torture tools, pain inducers for interrogation, 'Be Good' modules, Meme, etc.
HALLOSS now regens while standing up (2 per tick), and laying down (Resting, unconscious, paralyzed - 6 per tick). This fixes the 'real damage + HALLOSS = forever crit'.
Sticking a gun in your mouth (Non-stun, damage inducing) and pulling the trigger kills you.
Icon adjustments.
-Fixed #2005 (for sure!)
-Fixed the stacking of brightness. Now the most bright item turned ON will be the one where the user gets its luminosity of.
-Cleaned the code a bit. Now only one var controls the on/off switch of light, and another holds the value of brightness when on.
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 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
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
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
-Added pumpkin pie and slices. Made with 5 milk, 5 sugar, 1 pumpkin, 1 flour, 1
egg.
-Added carved pumpkins/jackolanterns. Carve them with any of the usual things
you use to carve things. They work similarly to hardhats.
-Eating corn now makes corn cobs. Carve them with a saw, a knife, or a hatchet
to make a corncob pipe. Set up class for smoking pipes to make it easy for
others to add more pipes as desired.
-Added the bit of transparency to biohelmets that they were always supposed to
have, fixed the scientist helmet being over too far by 1 pixel when facing right
(OCD)
Revision: r3389
Author: d_h2...@yahoo.com
Date: Apr 1, 2012