Commit Graph

19 Commits

Author SHA1 Message Date
phil235 a029f2852a Merge branch 'master' of https://github.com/tgstation/-tg-station into AcidFix
Conflicts:
	code/modules/reagents/Chemistry-Reagents/Blob-Reagents.dm
2015-06-24 21:15:09 +02:00
Iamgoofball a8ec1c76df Merge branch 'master' of https://github.com/tgstation/-tg-station into graphics
Conflicts:
	code/ATMOSPHERICS/atmospherics.dm
	code/game/machinery/computer/computer.dm
	code/game/objects/items/weapons/explosives.dm
	code/game/objects/structures/crates_lockers/closets/fireaxe.dm
	code/game/objects/structures/musician.dm
	code/game/objects/structures/tables_racks.dm
	code/game/objects/structures/window.dm
2015-06-23 12:54:26 -07:00
phil235 5242108c4d a few fixes 2015-06-22 01:39:32 +02:00
phil235 b0cd6d34b1 Lots of work on acids, smoke, foam, reagents reaction() proc.
- fixed the fraction argument in reaction(...., INGESTED, fraction) so the proper amounts of each reagent react, not all of it.
- slight optimization of datum/reagents/reaction()
- small optimization /datum/reagent/proc/reaction_mob
- the smoke's reagents no longer do direct transfer upon crossed()/move() but uses "reagents.reaction( mob, TOUCH)" only.
- fixes no ingesting smoke if it's in the dark.
- removed block gas smoke effect flag from clown mask and other non "actual" gas mask.
- refactor how protection against touched chems being absorbed is done. get_permeability_protection() to get that protection. No more

simple RNG get touched or not, now the amount that touches you depends on your protection and the volume in question.
- changes acid_act to take volume into account.
- chem_smoke now uses process() just like foam, we remove the reaction from crossed() and Move(), it's only done in process() now.
- optimization of effect/smoke, OOP! And now all smoke effects use objprocessing instead of shitty sleep/spawn
- removed mob var/coughedtime.
- add a volume check to item/acid_act(), there's a threshold to be able to melt and then a probability to melt (acidpwr&volume).
- greatly lowered the amount of reagent in the smoke from dead blobspore (so the volume isn't enough for melting)
- human/acid_act(): damage to limbs depends on acidpwr&volume.
- fixes metalfoam not working.
- smoke powder: only one start() call.
- Amound of smoke objects depends on amount of smoke recipe created.
- Adds an argument to add_reagent() to block automatic call of handle_reaction()
- When using reagents/proc/trans_to(), reactions are now only handled after every reagent is transfered and not before.
- Amount of smoke objects depends on amount of smoke reagent created.
- radius of foam reaction depends on amount of foam reagent created.
- The amount of other reagents inside the smoke/foam decides the life expectancy of the effect.
- The amount of reagents in each small smoke cloud/foam cell depends on the amount of other reagents in the initial reaction but also

how much smoke/foam was created (more smoke means dilution of the reagents).
- smoke/foam's reagent reaction on mob decreases the life expectancy of the effect (to avoid reagent duplication)
- The amount of reagent reacting with atoms is less if the life expectancy is high.(to avoid reagent duplication)
- The amount of movement from the smoke now depends on the number of smoke clouds created.
- removing some useless code in chem_grenade/prime().
- When calling human/acid_act(), item acid melting chance lowers after each each successful melt in the list, some of the acid is

"used" to melt that item so the next items have a lower chance to melt (to make melting every clothing harder).
- remove the banned reagent list from sprays, not needed anymore now that acid is nerfed.
- chem_grenade reaction, if there's no reagent left after reaction (smoke/foam/etc, reagents cleared) you don't get the steam effect

and immediate reaction with all atoms around the grenade explosion. (Fixes foam cleaner grenade deleting bloodstains around it as soon

as the grenade explodes, even if the foam hasn't reached the tile yet).
- melted storage items now drop their content instead of deleting everything.
2015-06-22 00:35:24 +02:00
Iamgoofball c2256d41fc BAR NOW SHOWS UP ON THE OBJECT YOU'RE INTERACTING WITH 2015-06-13 13:58:08 -07:00
Incoming afc368e66c Adds some basic scaling, ~10% of crew, to shadowlings. 2015-06-13 01:31:53 -04:00
Firecage 3a826fe13c Changes alot of datum/ to /datum/ 2015-05-31 02:40:54 +02:00
Xhuis 04c84b53bb Fixes an issue with shadowling round end 2015-05-10 01:33:22 -04:00
Incoming 23cc8c7db0 All modes now choose their antagonists before they choose jobs. A new mind attached list, restricted_roles, will keep incompatible jobs out of rotation.
Players who would otherwise qualify to play as an implanted job will spawn as the most wanted not implanted job they qualify for if they are an onstation antagonist. If they don't qualify for any job in this way depending on preferences they will either spawn as an assistant or a random job (which also makes sure they don't end up in an incompatible job).

Note this doesn't impact late join antagonists or mulligan antagonists. Roundstart only.
2015-05-05 23:29:03 -04:00
Incoming c4f6d85b44 Any roundtype can now take advantage of continuous/non-continuous settings as well as the mulligan antag system. (as a reminder at this point the mulligan system only creates lings and/or traitors)
A generic check for antags now exists in check_finished, and overrides a lot of checks in specific modes. Specific checks are still needed if you have special means of determining antag viability (blob cores), or things to do when specific antags die (summon events).

In situations where mulligans are on but fail, the round will usually lurch on as "extended" but in wizard/malf/blob/ragin mages the round will end then and there. This mirrors current behavior.

Config settings are fully customizable and for the most part defaults mirror existing behaviors:

Revolution, Shadowling, Gang, Ragin Mages and Monkey are noncontinuous and will end with the death of all antagonists.

* There is a change here in shadowling in that rounds with living thralls but no living shadowlings will continue until the thralls are delt with, as they can still raise their dead master.

* Abductors not ending with the death of all ayyliens if there are still probe victims around is likewise a change. If the dev of abduction would rather have it default the other way, we can do that.

* Monkey being noncontinuous is a change, but given how monkey mode works, it really only makes sense.

All modes that are continous use the mulligan system by default, remember that this will only come into effect if EVERY antagonist dies, so modes with many antagonists are very likely to only mulligan extremely rarely because if even one isn't slaughtered and is instead brigged or otherwise neutralized nonfatally the mulligan will never come. A nice little bonus for security not to kill everyone!

Fixes a bug where shuttle stranding could occur in continous rev modes (not something on by default)

Probably buggy as hell in initial commit. Please no quick merge
2015-04-24 15:40:42 -04:00
Caden Depatie 8866e6b878 fixes shadowling veil not resetting luminosity 2015-04-18 23:38:57 -04:00
Xhuis 5075909757 More bug fixes 2015-04-14 14:23:30 -04:00
Xhuis 21e8564210 One more define 2015-04-13 21:15:14 -04:00
Xhuis f6c8b3bfc5 Replaces fonts with spans, adds defines 2015-04-13 19:42:50 -04:00
Xhuis f6011468db Removes unnecessary colon 2015-04-13 19:14:05 -04:00
Xhuis 87541dabc2 Progress 2015-04-13 19:12:29 -04:00
Xhuis 9c752683ef Shadowling update one 2015-04-13 16:46:49 -04:00
Xhuis 2005e8da66 Fixes Human? in the spawn races tab 2015-04-12 12:15:08 -04:00
Xhuis c9338f7212 Shadowling: RELEASE EDITION 2015-04-11 11:42:02 -04:00