Commit Graph

122 Commits

Author SHA1 Message Date
phil235 91839f5f70 Action buttons will now only update when needed instead of every Life().
The action buttons now update their icon instantly.
Fixes versions of pickup(),equipped() and dropped not calling the parent.
Fixes drone not being able to remove a defib from their storage.
You can now cycle the mime mask by clicking it in your hand.
The action buttons for hardsuit and hooded suits now only appears when you're wearing the suit.
Created two mob helper procs getBeltSlot() and getBackSlot().
Created /datum/species/proc/on_species_loss() to handle stuff when our race change, currently only used by jelly and slime race to remove their exotic blood from our reagents and to remove slime people's action buttons.
2016-02-22 00:34:59 +01:00
phil235 d3ee910211 Makes effect system code more OOP.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
2015-10-21 23:28:29 +02:00
Razharas 297c5d7d4e Merge pull request #12247 from CosmicScientist/ThreeGrammarFixes
Cigs, urinals, infrared lasers, oh my!
2015-10-10 03:29:42 +03:00
CosmicScientist 58f6c961e4 Cigs, urinals, infrared lasers, oh my! 2015-10-08 22:45:09 +01:00
phil235 832e650ffc Trashbag can pick up ammo casings and reagent_containers/food/drinks again.
Dipping a lit cigarette into a reagent container heats up the liquid (like every other heat sources) and only unlit cigarette can be dipped to absorb the liquids now.
2015-10-08 01:26:55 +02:00
Cheridan e1b16b057c Merge pull request #11964 from Delimusca/durrymunchin
ease-of-use smoking improvements
2015-09-24 22:26:22 -05:00
xxalpha f493bff99c Fixed merge. 2015-09-24 03:26:52 +01:00
xxalpha 655b1a77c7 Replaced refactored is_hot() to be an atom proc. 2015-09-24 01:12:38 +01:00
unknown 5a798a7210 cig lighting user feedback 2015-09-23 15:25:35 -06:00
unknown e971423dc6 removed targetzone checks from smoking stuff 2015-09-23 15:16:11 -06:00
bear1ake f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
Razharas c9870a0fef Merge pull request #10834 from bgobandit/lighterfluff
Fixes lighter-related bugs.
2015-07-26 13:09:12 +03:00
bgobandit 717be49a3c Fixes lighter-related bugs. 2015-07-24 11:00:23 -04:00
phil235 d72cbcaf2f - fixes handcuff overlay on monkey not showing.
- Fixes the lack of handcuff icon on the hand screen object for alien humanoids..
- fix legcuff overlay not showing on monkey.
- fixes fire overlay for monkey, aliens and cyborg, no longer looks human shaped.
- Made the regenerate_icons's subprocs at the carbon level more OOP.
2015-07-17 01:15:21 +02:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
Cheridan 61d5425c3f Merge pull request #10503 from phil235/RevolverMisfireFix
Fixes for lighter, heart attack, defib, light fixture and other stuff
2015-07-11 19:01:04 -05:00
phil235 7307079f8b Fixes stripping an item from someone not checking if the item is still there after the delay.
Same fix for pocket picking and removing embedded item.
Adding a warning message when trying to put an item on someone in the wrong slot.
Fixes loyalty implant message upon destruction being sent to wrong/dead people.
Fire on mob will now slowly be consumed (no more forever on fire corpse).
Some work on fire related proc.
Can't lit a mob on fire with a lighter that isn't lit.
Removing duplicate code in species.dm.
You can no longer heal your burns by ingesting clf3 and dousing yourself with water repeatedly.
simplified micro/macro explosive implant's timed explosion code.
2015-07-10 22:29:06 +02:00
phil235 53a7b37a94 Modified detective revolver isn't deleted anymore when it misfires.
Heart attack: Moved heart attack var (and changed related code accordingly) from carbon to human since non humans have no use for it. I also added some feedback message when you recover from a heart attack.
Added a click cooldown on touching a light fixture.
burning yourself with a lighter now burns only the arm holding the lighter.
Fixes incorrect message when defibbing heart attack patient.
2015-07-10 00:18:35 +02:00
Cheridan 604bcdef68 Merge pull request #10206 from Dorsisdwarf/smokeforyourhp
Buffs capacity of cigars to be greater than cigarettes, removes fucking stupid messages from nicotine.
2015-06-29 22:20:51 -05:00
phil235 e8d3deafab Merge branch 'master' of https://github.com/tgstation/-tg-station into AcidFix
Conflicts:
	code/modules/clothing/masks/gasmask.dm
2015-06-28 15:22:21 +02:00
Dorsisdwarf db5a0109d6 Buffs capacity of cigars to be greater than cigarettes, removes fucking stupid messages from nicotine, buffs nicotine slightly. 2015-06-27 18:04:43 +01: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
Jordie0608 51106be4ec replaced icon with image 2015-06-14 17:49:45 +10:00
Jordie0608 77b2e54de7 code improvement and overlays for fancy storage, dropper, syringe and lighter 2015-06-10 18:58:19 +10:00
Jordie0608 8329b10890 Merge branch 'master' of https://github.com/tgstation/-tg-station into bugsarethemotheroffeatures 2015-05-20 01:16:16 +10:00
Jordie0608 2b9c8ac98c fixes autolathe making stacks, fuel > welding fuel, fixes some non-blue medical icons 2015-05-17 01:58:46 +10:00
Martin Kemp 91ae33adf4 Fixed lighter text typo
Fixes tgstation/-tg-station#9496
2015-05-15 10:47:15 +01:00
xxalpha 0220817b0c Fix lighter/dropped runtime that happened once.
That was no fix. It doesn't need fixing.
2015-05-12 23:45:22 +01:00
phil235 1875f3a9c2 Merge pull request #9377 from Jordie0608/thebackpackistherealmagicitemhere
Group of fixes
2015-05-09 16:23:46 +02:00
Jordie0608 f85b3735bd group of fixes 2015-05-07 00:40:26 +10:00
xxalpha 96ab44536d Fixed smoking pipe messages. Fixed emptying empty pipes.
Improved check.
2015-05-04 22:34:08 +01:00
kingofkosmos 3304ffa45f span fixes 2015-04-24 20:52:01 +03:00
kingofkosmos 1d14471d00 Ellipses to waiting messages. Warning-spanclasses to failing messages with an exclamation mark. 2015-04-24 20:50:50 +03:00
xxalpha 843ee71f1d Removed new zippos. Changed color list. 2015-03-01 22:27:27 +00:00
xxalpha 4b9bc1b233 Adds grayscale lighters and two new zippo styles.
Cleaned up proc.
2015-02-28 23:39:50 +00:00
Remie Richards 5fc7af7fbf attackby() now has an argument containing the parameters of the click that called it. Items placed on tables now center their icon where the user clicked. this is NOT true for racks, since racks look organised in their sprite.
Items reset their pixel_x and pixel_y values on pickup.
2015-02-19 13:02:43 +00:00
phil235 135293bedf Fixes object processing list by replacing "SSobj.processing.Add" by "SSobj.processing |= " to avoid having duplicated objects in the list, meaning the objects would be processed more than once per iteration.
Fixes Alien embryo processing that was processed twice.
2015-02-14 14:18:49 +01:00
dannno c18f485b17 fix shit, make bible suicide sacrifice you to your deity 2015-02-02 15:13:17 -05:00
dannno c48bf44a47 framework for a future "suicide hotline" job 2015-02-01 19:44:54 -05:00
Iamgoofball f527d53e3e Increases the cigarette chemical cap as per request by @Miauw62 2015-01-12 19:01:52 -08:00
Iamgoofball 493dd27679 Merge branch 'master' of https://github.com/tgstation/-tg-station into byond
Conflicts:
	code/modules/reagents/Chemistry-Machinery.dm
	code/modules/reagents/reagent_containers/glass/bottle.dm
2015-01-11 09:53:49 -08:00
iamgoofball 221385f884 Merge branch 'master' of https://github.com/tgstation/-tg-station into byond
Conflicts:
	code/modules/reagents/Chemistry-Reagents.dm
2015-01-01 11:51:43 -08:00
carnie a029a49392 SubSystem rewrite
Misc:

+Fixes unreported issue with initializing lighting on a specific zlevel

+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.

+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)

+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.

+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.

+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.

+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.

-Removed 'quadratic lighting', can add this back at some point. Sorry.

+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.

+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.

-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.

+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)

+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.

-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.

_OK, NOW THE ACTUAL INTERESTING STUFF_

Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker

Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.

Many system-specific global variables have been refactored into

All tickers which previously used world.timeofday now use world.time

some subsystems can iterate before round start. this resolves the issue with votes not working pregame
2014-12-31 13:25:41 +00:00
phil235 25188e441b Little fix. 2014-12-18 18:00:17 +01:00
phil235 e132f206cf derp. 2014-12-17 22:47:50 +01:00
phil235 bbb8eae106 Adding candle, flare and torch to is_hot() proc, fixing energy/blade returning false for it.
Refactoring cig lighting code a bit.
Refactoring the attack_self() procs of weapon/melee/energy and its children.
Fixed energy axe suicide code typo.
Energy axe now makes noise when toggle on/off, just like esword.
2014-12-17 22:32:40 +01:00
iamgoofball 42973c8b67 Goon Chemistry Commit 2 2014-11-29 17:15:57 -08:00
phil235 b5cfe103a9 You can now light someone's cigarette in his mouth with a lit match (just like with lighters or lit cigarettes) 2014-11-24 18:12:32 +01:00
Incoming 7ac7ecb277 Summon Events Initial Commit: See the pull for complete details 2014-08-21 20:05:41 -04:00
Firecage fc4c299252 Lighting cigarettes with flares/torches
Signed-off-by: Firecage <firecage@hotmail.com>
2014-07-16 16:34:42 +02:00