Commit Graph

80 Commits

Author SHA1 Message Date
Joan Lung
ce13143d9d Replaces yet more istypes with helpers (#20806)
* uses more istype helpers

* oranges is inefficient
2016-10-10 17:48:35 +13:00
phil235
5f835bfc26 Obj damaging system, acid damage, and fire damage refactor (WIP) (#20793)
Please refer to #20867 and #20870 for a easier view of the changes. Those two PRs show all meaningful changes (hopefully) and doesn't show the files changed with just 3 lines changed.

This PR does three things:

    It makes all children of /obj/ use the same damage system.
    Previously to make your new machine/structure be destroyable you needed to give it a var/health, and its own version of many damage related proc such as bullet_act(), take_damage(), attacked_by(), attack_animal(), attack_hulk(), ex_act(), etc... But now, all /obj/ use the same version of those procs at the /obj/ level in code/game/obj_defense.dm. All these obj share the same necessary vars: obj_integrity (health), max_integrity, integrity_failure (optional, below that health level failure happens), and the armor list var which was previously only for items, as well as the resistance_flags bitfield. When you want your new object to be destroyable, you only have to give it a value for those vars and maybe override one proc if you want a special behavior but that's it. This reorganization removes a lot of copypasta (most bullet_act() version for each obj were nearly identical). Two new elements are added to the armor list var: fire and acid armor values.
    How much damage an obj take depends on the armor value for each damage category. But some objects are INDESTRUCTIBLE and simply never take any damage no matter the type.
    The armor categories are:
    -melee(punches, item attacks, xeno/animal/hulk attacks, blob attacks, thrown weapons)
    -bullet
    -laser
    -energy (used by projectiles like ionrifle, taser, and also by EMPs)
    -bio (unused for this, only here because clothes use them when worn)
    -rad (same)
    -bomb (self-explanatory)
    -fire (for fire damage, not for heat damage though)
    -acid
    For machines and structures, when their health reaches zero the object is not just deleted but gets somewhat forcedeconstructed (the proc used is shared with the actual deconstruction system) which can drops things. To not frustrates players most of these objects drop most of the elements necessary to rebuild them (think window dropping shards). Machines drop a machine frame and all components for example (but the frame can then be itself smashed to pieces).
    For clothes, when they are damaged, they get a "damaged" overlay, which can also be seen when worn, similar to the "bloody" overlay.

    It refactors acid. See #20537.
    Some objects are ACID_PROOF and take no damage from acid, while others take varying amounts
    of damage depending on their acid armor value. Some objects are even UNACIDABLE, no acid effect can even land on them. Acid on objects can be washed off using water.

    It changes some aspect of damage from fires.
    All /obj/ can now take fire damage and be flammable, instead of just items. And instead of having just FLAMMABLE objs that become ON_FIRE as soon as some fire touch them (paper), we now have objects that are non flammable but do take damage from fire and become ashes if their health reaches zero (only for items). The damage taken varies depending on the obj's fire armor value and total health. There's also still obj and items that are FIRE_PROOF (although some might still be melted by lava if they're not LAVA_PROOF).
    When a mob is on fire, its clothes now take fire damage and can turn to ashes. Similarly, when a mob takes melee damages, its clothes gets damaged a bit and can turn to shreds. You can repair clothes with cloth that is produceable by botany's biogenerator.

    It also does many minor things:
        Clicking a structure/machine with an item on help intent never results in an attack (so you don't destroy a structure while trying to figure out which tool to use).
        I moved a lot of objects away from /obj/effect, it should only be used for visual effects, decals and stuff, not for things you can hit and destroy.
        I tweaked a bit how clothes shredding from bombs work.
        I made a machine or structure un/anchorable with the wrench, I don't remember which object...
        Since I changed the meaning of the FIRE_PROOF bitflag to actually mean fire immune, I'm buffing the slime extract that you apply on items to make them fire proof. well now they're really 100% fire proof!
        animals with environment_smash = 1 no longer one-hit destroy tables and stuff, we give them a decent obj_damage value so they can destroy most obj relatively fast depending on the animal.
        Probably a million things I forgot.

If you want to know how the damage system works all you need is the three obj vars "obj_integrity", "max_integrity", "integrity_failure", as well as the armor list var and the resistance_flags bitfield, and read the file obj_defense.dm
2016-10-10 11:14:59 +13:00
Joan Lung
bdcb16113a Adds a few turf istype helpers (#20754)
* a very calming act
when the world is too much, too fast

* i'm tired
but i have to be efficient, infinite

* lick your lips at the sight of me
a fantasy made reality
2016-10-01 19:25:46 +02:00
Joan Lung
aaa55ad081 Merge pull request #20696 from ExcessiveUseOfCobblestone/smokelogcondense
Condenses Smoke Notification for Admins
2016-09-29 15:00:29 -04:00
phil235
194398cbbd Merge branch 'master' of https://github.com/tgstation/-tg-station into PreliminaryDamageRefactor
# Conflicts:
#	code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
#	code/game/objects/effects/portals.dm
2016-09-29 01:44:27 +02:00
phil235
2d2975f783 Some preliminary changes before the damage refactor PR. The changes here do absolutely nothing gamewise.
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review.

Introduces the resistance_flags bitflag that replaces unacidable and burn_state.
Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
2016-09-27 22:33:08 +02:00
phil235
6809603669 Changes obj/effect/blob,spider,swarmer,energy_net,spacevines to be ob/structures instead, since you can hit and destroy them.
Adds a large ash and large molten item decal (for future use)
simplifies decal/cleanable/replace_decal() code a bit.
Changes construction() proc to on_construction() for consistency, same for deconstruction().
Made a deconstruct() proc for machinery and computer (also for future use).
2016-09-27 19:58:27 +02:00
ExcessiveUseOfCobblestone
5ed5566dbf modified: _maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm
modified:   _maps/RandomZLevels/Academy.dmm
 	modified:   _maps/RandomZLevels/caves.dmm
 	modified:   _maps/RandomZLevels/research.dmm
 	modified:   _maps/map_files/MetaStation/MetaStation.dmm
 	modified:   _maps/map_files/MiniStation/cargopacks.dm
 	modified:   _maps/map_files/TgStation/tgstation.2.1.3.dmm
 	modified:   _maps/map_files/generic/z2.dmm
 	modified:   code/__DEFINES/clothing.dm
 	modified:   code/__DEFINES/flags.dm
 	modified:   code/__DEFINES/hud.dm
 	modified:   code/__DEFINES/is_helpers.dm
 	modified:   code/__DEFINES/layers.dm
 	modified:   code/__DEFINES/machines.dm
 	modified:   code/__DEFINES/misc.dm
 	modified:   code/__DEFINES/role_preferences.dm
 	modified:   code/__DEFINES/say.dm
 	modified:   code/__DEFINES/wires.dm
 	modified:   code/__HELPERS/global_lists.dm
 	modified:   code/__HELPERS/matrices.dm
 	modified:   code/__HELPERS/mobs.dm
 	modified:   code/__HELPERS/type2type.dm
 	modified:   code/__HELPERS/unsorted.dm
 	modified:   code/_globalvars/lists/flavor_misc.dm
 	modified:   code/_onclick/click.dm
 	modified:   code/_onclick/hud/_defines.dm
 	modified:   code/_onclick/hud/alien.dm
 	modified:   code/_onclick/hud/alien_larva.dm
 	modified:   code/_onclick/hud/fullscreen.dm
 	modified:   code/_onclick/hud/hud.dm
 	modified:   code/_onclick/hud/human.dm
 	modified:   code/_onclick/hud/monkey.dm
 	modified:   code/_onclick/hud/other_mobs.dm
 	modified:   code/_onclick/hud/robot.dm
 	modified:   code/_onclick/hud/screen_objects.dm
 	modified:   code/controllers/subsystem/minimap.dm
 	new file:   code/controllers/subsystem/orbit.dm
 	modified:   code/controllers/subsystem/spacedrift.dm
 	modified:   code/controllers/subsystem/ticker.dm
 	modified:   code/datums/diseases/advance/advance.dm
 	modified:   code/datums/diseases/advance/symptoms/damage_converter.dm
 	modified:   code/datums/diseases/advance/symptoms/heal.dm
 	modified:   code/datums/hud.dm
 	modified:   code/datums/mind.dm
 	modified:   code/datums/outfit.dm
 	modified:   code/datums/wires/airalarm.dm
 	modified:   code/datums/wires/airlock.dm
 	modified:   code/datums/wires/apc.dm
 	modified:   code/datums/wires/autolathe.dm
 	modified:   code/datums/wires/explosive.dm
 	modified:   code/datums/wires/particle_accelerator.dm
 	modified:   code/datums/wires/radio.dm
 	modified:   code/datums/wires/suit_storage_unit.dm
 	modified:   code/datums/wires/vending.dm
 	modified:   code/datums/wires/wires.dm
 	modified:   code/game/area/Space_Station_13_areas.dm
 	modified:   code/game/area/areas.dm
 	modified:   code/game/atoms_movable.dm
 	modified:   code/game/data_huds.dm
 	modified:   code/game/gamemodes/antag_spawner.dm
 	modified:   code/game/gamemodes/blob/blob.dm
 	modified:   code/game/gamemodes/blob/blobs/core.dm
 	modified:   code/game/gamemodes/clock_cult/clock_items.dm
 	modified:   code/game/gamemodes/clock_cult/clock_machines.dm
 	modified:   code/game/gamemodes/clock_cult/clock_mobs.dm
 	new file:   code/game/gamemodes/clock_cult/clock_powerdrain.dm
 	modified:   code/game/gamemodes/clock_cult/clock_scripture.dm
 	modified:   code/game/gamemodes/clock_cult/clock_structures.dm
 	modified:   code/game/gamemodes/cult/ritual.dm
 	modified:   code/game/gamemodes/cult/runes.dm
 	modified:   code/game/gamemodes/cult/talisman.dm
 	modified:   code/game/gamemodes/game_mode.dm
 	deleted:    code/game/gamemodes/handofgod/_handofgod.dm
 	deleted:    code/game/gamemodes/handofgod/actions.dm
 	deleted:    code/game/gamemodes/handofgod/god.dm
 	deleted:    code/game/gamemodes/handofgod/objectives.dm
 	deleted:    code/game/gamemodes/handofgod/powers.dm
 	deleted:    code/game/gamemodes/handofgod/structures.dm
 	modified:   code/game/gamemodes/miniantags/abduction/abduction_gear.dm
 	modified:   code/game/gamemodes/miniantags/revenant/revenant_blight.dm
 	modified:   code/game/gamemodes/miniantags/slaughter/slaughter.dm
 	modified:   code/game/gamemodes/nuclear/nuclearbomb.dm
 	modified:   code/game/gamemodes/wizard/soulstone.dm
 	modified:   code/game/machinery/computer/computer.dm
 	modified:   code/game/machinery/doors/windowdoor.dm
 	new file:   code/game/machinery/limbgrower.dm
 	modified:   code/game/machinery/machinery.dm
 	modified:   code/game/machinery/recharger.dm
 	modified:   code/game/machinery/syndicatebomb.dm
 	modified:   code/game/machinery/vending.dm
 	modified:   code/game/mecha/mecha_defense.dm
 	modified:   code/game/mecha/working/ripley.dm
 	modified:   code/game/objects/effects/decals/Cleanable/aliens.dm
 	modified:   code/game/objects/effects/decals/Cleanable/humans.dm
 	modified:   code/game/objects/effects/decals/Cleanable/misc.dm
 	modified:   code/game/objects/effects/decals/Cleanable/robots.dm
 	modified:   code/game/objects/effects/decals/cleanable.dm
 	modified:   code/game/objects/effects/decals/crayon.dm
 	modified:   code/game/objects/effects/effect_system/effects_smoke.dm
 	modified:   code/game/objects/effects/overlays.dm
 	modified:   code/game/objects/effects/step_triggers.dm
 	modified:   code/game/objects/items.dm
 	modified:   code/game/objects/items/blueprints.dm
 	modified:   code/game/objects/items/devices/PDA/PDA.dm
 	modified:   code/game/objects/items/devices/chameleonproj.dm
 	modified:   code/game/objects/items/devices/megaphone.dm
 	renamed:    code/game/gamemodes/handofgod/items.dm -> code/game/objects/items/religion.dm
 	modified:   code/game/objects/items/robot/robot_items.dm
 	modified:   code/game/objects/items/stacks/stack.dm
 	modified:   code/game/objects/items/weapons/cigs_lighters.dm
 	modified:   code/game/objects/items/weapons/grenades/grenade.dm
 	modified:   code/game/objects/items/weapons/grenades/spawnergrenade.dm
 	modified:   code/game/objects/items/weapons/implants/implant_loyality.dm
 	modified:   code/game/objects/items/weapons/kitchen.dm
 	modified:   code/game/objects/items/weapons/melee/energy.dm
 	modified:   code/game/objects/items/weapons/melee/misc.dm
 	modified:   code/game/objects/items/weapons/mop.dm
 	modified:   code/game/objects/items/weapons/storage/belt.dm
 	modified:   code/game/objects/items/weapons/storage/uplink_kits.dm
 	modified:   code/game/objects/items/weapons/tools.dm
 	modified:   code/game/objects/items/weapons/vending_items.dm
 	modified:   code/game/objects/items/weapons/weaponry.dm
 	modified:   code/game/objects/objs.dm
 	modified:   code/game/objects/structures/crates_lockers/closets/fitness.dm
 	new file:   code/game/objects/structures/divine.dm
 	modified:   code/game/objects/structures/flora.dm
 	modified:   code/game/objects/structures/fluff.dm
 	modified:   code/game/objects/structures/grille.dm
 	modified:   code/game/objects/structures/kitchen_spike.dm
 	modified:   code/game/objects/structures/tables_racks.dm
 	renamed:    code/game/gamemodes/handofgod/traps.dm -> code/game/objects/structures/traps.dm
 	modified:   code/game/objects/structures/window.dm
 	modified:   code/game/turfs/simulated/dirtystation.dm
 	modified:   code/game/turfs/simulated/floor/fancy_floor.dm
 	modified:   code/game/turfs/simulated/floor/light_floor.dm
 	modified:   code/game/turfs/simulated/floor/misc_floor.dm
 	modified:   code/game/turfs/simulated/floor/plating.dm
 	modified:   code/game/turfs/turf.dm
 	modified:   code/modules/admin/player_panel.dm
 	modified:   code/modules/admin/verbs/onlyone.dm
 	modified:   code/modules/admin/verbs/pray.dm
 	modified:   code/modules/assembly/flash.dm
 	modified:   code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm
 	modified:   code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
 	modified:   code/modules/awaymissions/capture_the_flag.dm
 	modified:   code/modules/cargo/packs.dm
 	modified:   code/modules/client/client_colour.dm
 	modified:   code/modules/client/preferences.dm
 	modified:   code/modules/client/preferences_savefile.dm
 	modified:   code/modules/clothing/clothing.dm
 	modified:   code/modules/clothing/glasses/glasses.dm
 	modified:   code/modules/clothing/glasses/hud.dm
 	modified:   code/modules/clothing/spacesuits/hardsuit.dm
 	modified:   code/modules/clothing/suits/miscellaneous.dm
 	modified:   code/modules/clothing/suits/wiz_robe.dm
 	modified:   code/modules/clothing/under/jobs/civilian.dm
 	modified:   code/modules/clothing/under/shorts.dm
 	modified:   code/modules/events/holiday/halloween.dm
 	modified:   code/modules/events/shuttle_loan.dm
 	modified:   code/modules/food_and_drinks/food/snacks/meat.dm
 	modified:   code/modules/food_and_drinks/food/snacks_burgers.dm
 	modified:   code/modules/food_and_drinks/food/snacks_other.dm
 	modified:   code/modules/food_and_drinks/kitchen_machinery/processor.dm
 	modified:   code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
 	modified:   code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm
 	modified:   code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm
 	modified:   code/modules/holodeck/areas.dm
 	modified:   code/modules/holodeck/turfs.dm
 	modified:   code/modules/jobs/job_types/cargo_service.dm
 	modified:   code/modules/mining/abandoned_crates.dm
 	modified:   code/modules/mining/lavaland/necropolis_chests.dm
 	modified:   code/modules/mining/machine_vending.dm
 	modified:   code/modules/mining/mine_areas.dm
 	modified:   code/modules/mining/mine_turfs.dm
 	modified:   code/modules/mob/dead/observer/observer.dm
 	modified:   code/modules/mob/inventory.dm
 	modified:   code/modules/mob/living/carbon/alien/larva/life.dm
 	modified:   code/modules/mob/living/carbon/carbon.dm
 	modified:   code/modules/mob/living/carbon/carbon_defense.dm
 	modified:   code/modules/mob/living/carbon/human/human_defense.dm
 	modified:   code/modules/mob/living/carbon/human/inventory.dm
 	modified:   code/modules/mob/living/carbon/human/life.dm
 	modified:   code/modules/mob/living/carbon/human/species.dm
 	modified:   code/modules/mob/living/carbon/human/species_types.dm
 	modified:   code/modules/mob/living/carbon/human/update_icons.dm
 	modified:   code/modules/mob/living/carbon/inventory.dm
 	modified:   code/modules/mob/living/carbon/life.dm
 	modified:   code/modules/mob/living/carbon/monkey/punpun.dm
 	modified:   code/modules/mob/living/carbon/say.dm
 	modified:   code/modules/mob/living/carbon/update_icons.dm
 	modified:   code/modules/mob/living/death.dm
 	modified:   code/modules/mob/living/life.dm
 	modified:   code/modules/mob/living/living.dm
 	modified:   code/modules/mob/living/say.dm
 	modified:   code/modules/mob/living/silicon/ai/life.dm
 	modified:   code/modules/mob/living/silicon/login.dm
 	modified:   code/modules/mob/living/silicon/pai/life.dm
 	modified:   code/modules/mob/living/silicon/robot/login.dm
 	modified:   code/modules/mob/living/silicon/robot/robot.dm
 	modified:   code/modules/mob/living/silicon/robot/robot_modules.dm
 	modified:   code/modules/mob/living/simple_animal/friendly/cockroach.dm
 	modified:   code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/hostile.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
 	modified:   code/modules/mob/living/simple_animal/hostile/skeleton.dm
 	modified:   code/modules/mob/living/simple_animal/simple_animal.dm
 	modified:   code/modules/mob/mob.dm
 	modified:   code/modules/mob/mob_helpers.dm
 	modified:   code/modules/mob/new_player/new_player.dm
 	modified:   code/modules/mob/new_player/sprite_accessories.dm
 	modified:   code/modules/mob/transform_procs.dm
 	modified:   code/modules/modular_computers/computers/item/computer.dm
 	modified:   code/modules/modular_computers/computers/item/computer_components.dm
 	modified:   code/modules/modular_computers/computers/item/computer_damage.dm
 	modified:   code/modules/modular_computers/computers/item/computer_power.dm
 	modified:   code/modules/modular_computers/computers/item/computer_ui.dm
 	modified:   code/modules/modular_computers/computers/item/processor.dm
 	modified:   code/modules/modular_computers/computers/item/tablet.dm
 	modified:   code/modules/modular_computers/computers/machinery/console_presets.dm
 	modified:   code/modules/modular_computers/computers/machinery/modular_computer.dm
 	modified:   code/modules/modular_computers/computers/machinery/modular_console.dm
 	deleted:    code/modules/modular_computers/documentation.dm
 	new file:   code/modules/modular_computers/documentation.md
 	modified:   code/modules/modular_computers/file_system/program.dm
 	modified:   code/modules/modular_computers/file_system/programs/antagonist/dos.dm
 	modified:   code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
 	modified:   code/modules/modular_computers/file_system/programs/card.dm
 	modified:   code/modules/modular_computers/file_system/programs/configurator.dm
 	modified:   code/modules/modular_computers/file_system/programs/file_browser.dm
 	modified:   code/modules/modular_computers/file_system/programs/ntdownloader.dm
 	modified:   code/modules/modular_computers/file_system/programs/ntnrc_client.dm
 	modified:   code/modules/modular_computers/file_system/programs/nttransfer.dm
 	modified:   code/modules/modular_computers/hardware/CPU.dm
 	modified:   code/modules/modular_computers/hardware/_hardware.dm
 	modified:   code/modules/modular_computers/hardware/battery_module.dm
 	modified:   code/modules/modular_computers/hardware/card_slot.dm
 	modified:   code/modules/modular_computers/hardware/hard_drive.dm
 	modified:   code/modules/modular_computers/hardware/network_card.dm
 	modified:   code/modules/modular_computers/hardware/portable_disk.dm
 	modified:   code/modules/modular_computers/hardware/printer.dm
 	modified:   code/modules/modular_computers/hardware/recharger.dm
 	modified:   code/modules/modular_computers/laptop_vendor.dm
 	new file:   code/modules/orbit/orbit.dm
 	modified:   code/modules/power/lighting.dm
 	modified:   code/modules/power/supermatter/supermatter.dm
 	modified:   code/modules/power/tesla/coil.dm
 	modified:   code/modules/power/tesla/energy_ball.dm
 	modified:   code/modules/projectiles/ammunition.dm
 	modified:   code/modules/projectiles/ammunition/ammo_casings.dm
 	modified:   code/modules/projectiles/ammunition/energy.dm
 	modified:   code/modules/projectiles/ammunition/special.dm
 	modified:   code/modules/projectiles/firing.dm
 	modified:   code/modules/projectiles/guns/energy/kinetic_accelerator.dm
 	modified:   code/modules/projectiles/guns/energy/stun.dm
 	modified:   code/modules/projectiles/projectile.dm
 	modified:   code/modules/projectiles/projectile/beams.dm
 	modified:   code/modules/projectiles/projectile/bullets.dm
 	modified:   code/modules/projectiles/projectile/energy.dm
 	modified:   code/modules/projectiles/projectile/reusable.dm
 	modified:   code/modules/projectiles/projectile/special.dm
 	modified:   code/modules/reagents/chemistry/machinery/pandemic.dm
 	modified:   code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
 	modified:   code/modules/reagents/chemistry/reagents/drink_reagents.dm
 	modified:   code/modules/reagents/chemistry/reagents/other_reagents.dm
 	modified:   code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
 	modified:   code/modules/reagents/chemistry/reagents/toxin_reagents.dm
 	modified:   code/modules/reagents/chemistry/recipes.dm
 	modified:   code/modules/reagents/chemistry/recipes/pyrotechnics.dm
 	modified:   code/modules/reagents/chemistry/recipes/toxins.dm
 	modified:   code/modules/reagents/reagent_containers/glass.dm
 	new file:   code/modules/research/designs/limbgrower_designs.dm
 	modified:   code/modules/research/designs/weapon_designs.dm
 	modified:   code/modules/research/research.dm
 	modified:   code/modules/stock_market/computer.dm
 	modified:   code/modules/surgery/bodyparts/bodyparts.dm
 	modified:   code/modules/surgery/bodyparts/dismemberment.dm
 	modified:   code/modules/surgery/bodyparts/helpers.dm
 	modified:   code/modules/surgery/organs/augments_arms.dm
 	modified:   code/modules/surgery/organs/augments_chest.dm
 	modified:   code/modules/surgery/organs/organ_internal.dm
 	modified:   config/tips.txt
 	modified:   html/changelog.html
 	modified:   html/changelogs/.all_changelog.yml
 	deleted:    html/changelogs/AutoChangeLog-pr-20404.yml
 	deleted:    html/changelogs/AutoChangeLog-pr-20419.yml
 	deleted:    html/changelogs/AutoChangeLog-pr-20447.yml
 	deleted:    html/changelogs/AutoChangeLog-pr-20467.yml
 	deleted:    html/changelogs/AutoChangeLog-pr-20479.yml
 	modified:   icons/effects/blood.dmi
 	new file:   icons/effects/bubblegum.dmi
 	modified:   icons/effects/effects.dmi
 	modified:   icons/mob/hud.dmi
 	modified:   icons/mob/human_parts_greyscale.dmi
 	modified:   icons/mob/inhands/items_lefthand.dmi
 	modified:   icons/mob/inhands/items_righthand.dmi
 	modified:   icons/mob/mask.dmi
 	modified:   icons/mob/mutant_bodyparts.dmi
 	modified:   icons/mob/screen_gen.dmi
 	modified:   icons/mob/screen_midnight.dmi
 	modified:   icons/mob/screen_operative.dmi
 	modified:   icons/mob/screen_plasmafire.dmi
 	modified:   icons/mob/screen_retro.dmi
 	modified:   icons/mob/screen_slimecore.dmi
 	modified:   icons/mob/suit.dmi
 	modified:   icons/mob/uniform.dmi
 	modified:   icons/obj/clothing/glasses.dmi
 	modified:   icons/obj/clothing/masks.dmi
 	modified:   icons/obj/clothing/suits.dmi
 	modified:   icons/obj/food/burgerbread.dmi
 	modified:   icons/obj/food/food.dmi
 	new file:   icons/obj/machines/limbgrower.dmi
 	modified:   icons/obj/modular_tablet.dmi
 	modified:   icons/obj/projectiles.dmi
 	modified:   icons/obj/weapons.dmi
 	modified:   interface/skin.dmf
 	new file:   sound/effects/pop_expl.ogg
2016-09-26 12:40:26 -04:00
nullbear
2a58dd54a9 Adds explosion helper proc w/ diminishing returns (#20319)
* Adds new explosion proc

Adds a new proc for calling explosions, which uses 'power' instead of a
set of ranges.

Power (1 - 100) is based on minimum explosions size (0, 0, 1) to maximum
explosion size (5, 10, 20)

Formula keeps explosions within a 'sane' range. So while it is possible
to bypass maxcap using this, it will require a LOT of work.

I've done some balance testing, and a halfcap (2,5,10) can be made using
a double bluespace beaker of water and potassium. A (3,7,14) can be made
using black powder, and the largest bluespace grenade explosion can be
made using nitroglycerine, at (6, 12, 24) which is only slightly larger
than maxcap.

You can check out https://www.desmos.com/calculator/pgfz0gqqxf to see
how the explosive power affects range. T is 'units of explosion' and P
is a multiplier. Multipliers for explosive reagents are: water/potass =
1/10, black powder/meth = 1/6, nitroglycerin = 1/2.

* Clarity Changes

Renames dynamic explosion proc for clarity.

Makes dyn_x explosions scaleable with DYN_EX_SCALE variable.

Adds debug dyn_x verbs, and a dyn_x drop_bomb proc to fun admin verbs.

* Adjusts formula

better efficiency and readability.

Adds debug proc for changing explosion scale.

Adds a comment containing common power/explosion sizes.

* oops
2016-09-11 20:46:26 +12:00
Joan Lung
fb9f2a6bb5 Tweaks smoke and foam layers 2016-09-04 17:57:29 -04:00
Joan Lung
266bacf4c8 Bubblegum now charges past its target's location 2016-09-03 12:09:08 -04:00
PKPenguin321
86aeb63205 three months in the making 2016-08-23 18:17:55 -07:00
Jack Edge
7aef42ae8b spawn() removal on effects_*.dm 2016-06-25 17:50:47 +01:00
Kyle Spier-Swenson
0d6bbbb412 stop the pills (#18703)
* RedPills Processing

Now you have to use START_PROCESSING(SSname, thing) (and STOP_PROCESSING)

* Fixes a minor bug.
2016-06-20 12:07:44 +02:00
Remie Richards
fda2c699fc Automatic conversion via Regex 2016-06-11 18:37:48 +01:00
TechnoAlchemist
6878e9fddb Adds luminosity to lasers and sparks. (#18090) 2016-05-31 21:18:09 -05:00
Joan Lung
2cfb2d8eed Layers are now defines (#17949)
* Layers are now defines

* this looks better

* GAS_phil_LAYER

* no message

* remove the three unneeded defines

* no message
2016-05-27 22:16:21 +02:00
Joan Lung
6fc1d4fde4 Blobs can no longer eat the supermatter (#17205)
* Blobs can no longer eat the supermatter

* phil'd

* phil'd
2016-04-29 20:29:20 +02:00
phil235
0caa59b21a First commit of this big PR
These are the files with just tiny tweaks. Mostly modify an object's attackby so it does "return ..()" instead of "..()".
If there are other things in this commit, the PR's description will explain them.
2016-04-24 20:26:24 +02:00
MrStonedOne
5098a3c884 Made more sleeps use stoplag
This buffs a few things, but makes them handle lag better and tick at the rate of world.tick_lag without causing lag
2016-04-05 11:08:28 -07:00
duncathan
eeb0119acb Merge branch 'master' of https://github.com/tgstation/-tg-station into turfs
Conflicts:
	code/game/gamemodes/nuclear/nuclearbomb.dm
	code/modules/mob/mob_movement.dm
	code/modules/recycling/conveyor2.dm
2016-03-30 22:55:00 -06:00
duncathan
e86cf0f280 praise the good lord, for the game finally compiles 2016-03-29 19:04:37 -06:00
duncathan
3f1375ba39 Merge branch 'master' of https://github.com/tgstation/-tg-station into turfs
Conflicts:
	_maps/RandomZLevels/Cabin.dmm
	_maps/RandomZLevels/beach2.dmm
	_maps/RandomZLevels/caves.dmm
	_maps/RandomZLevels/research.dmm
	_maps/RandomZLevels/snowdin.dmm
	_maps/RandomZLevels/undergroundoutpost45.dmm
	_maps/map_files/DreamStation/dreamstation04.dmm
	_maps/map_files/EfficiencyStation/EfficiencyStation.dmm
	_maps/map_files/MetaStation/MetaStation.v41I.dmm
	_maps/map_files/MiniStation/MiniStation.dmm
	_maps/map_files/TgStation/tgstation.2.1.3.dmm
	_maps/map_files/generic/z4.dmm
	_maps/templates/lavaland_surface_automated_trade_outpost.dmm
	_maps/templates/lavaland_surface_biodome_winter.dmm
	_maps/templates/lavaland_surface_prisoner_crash.dmm
	_maps/templates/lavaland_surface_seed_vault.dmm
	code/controllers/subsystem/air.dm
	code/game/asteroid.dm
	code/game/atoms.dm
	code/game/gamemodes/nuclear/nuclearbomb.dm
	code/game/machinery/computer/arcade.dm
	code/game/objects/effects/aliens.dm
	code/game/objects/effects/overlays.dm
	code/game/objects/items/apc_frame.dm
	code/game/objects/structures/false_walls.dm
	code/game/objects/structures/girders.dm
	code/game/turfs/simulated.dm
	code/game/turfs/simulated/floor/fancy_floor.dm
	code/game/turfs/simulated/floor/mineral_floor.dm
	code/game/turfs/simulated/floor/plating.dm
	code/game/turfs/simulated/river.dm
	code/game/turfs/simulated/walls_misc.dm
	code/game/turfs/simulated/walls_reinforced.dm
	code/modules/admin/verbs/buildmode.dm
	code/modules/atmospherics/environmental/LINDA_turf_tile.dm
	code/modules/events/spacevine.dm
	code/modules/flufftext/Hallucination.dm
	code/modules/holodeck/turfs.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mine_turfs.dm
	code/modules/mob/interactive.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/simple_animal/bot/floorbot.dm
	code/modules/mob/living/simple_animal/guardian/guardian.dm
	code/modules/mob/living/simple_animal/hostile/hostile.dm
	code/modules/mob/mob_movement.dm
	code/modules/power/singularity/narsie.dm
	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
	code/modules/research/server.dm
2016-03-29 14:46:06 -06:00
AndrewJacksonThe2nd
40e766c6d0 AAAAAAAAAAAAAAAAA 2016-03-27 12:04:33 -07:00
AndrewJacksonThe2nd
f54132e74b Foam and Conveyor Belts now process as fast as possible, Adds the Fast Process subsystem 2016-03-25 03:56:01 -07:00
MrStonedOne
09fb8c2b10 Explosions and singulo use spiral range (and other changes) 2016-03-15 03:39:41 -07:00
duncathan
5bf31463da removes simulated turfs; adds space gas mixture for space 2016-03-10 17:27:01 -06:00
phil235
8b2708ff9a Replaces holo tape and holo tape projector with holo barrier and holo barrier projector (children of the janitor's holosign creator). 2016-02-19 02:34:57 +01:00
phil235
8b11d87b1d Merge branch 'master' of https://github.com/tgstation/-tg-station into VisionUpdateRefactor
Conflicts:
	code/ATMOSPHERICS/components/unary_devices/cryo.dm
	code/_onclick/hud/alert.dm
	code/_onclick/hud/hud.dm
	code/datums/mutations.dm
	code/datums/wires/robot.dm
	code/game/atoms.dm
	code/game/gamemodes/blob/overmind.dm
	code/game/machinery/alarm.dm
	code/game/machinery/machinery.dm
	code/game/machinery/suit_storage_unit.dm
	code/game/objects/items/weapons/tanks/tanks.dm
	code/game/objects/items/weapons/tools.dm
	code/game/objects/structures/morgue.dm
	code/modules/admin/verbs/adminjump.dm
	code/modules/atmospherics/machinery/atmosmachinery.dm
	code/modules/mob/inventory.dm
	code/modules/mob/living/carbon/alien/humanoid/death.dm
	code/modules/mob/living/carbon/alien/larva/death.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/human/human_damage.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/species.dm
	code/modules/mob/living/carbon/human/species_types.dm
	code/modules/mob/living/carbon/life.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/life.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/ai/ai.dm
	code/modules/mob/living/silicon/ai/death.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/pai/death.dm
	code/modules/mob/living/silicon/pai/pai.dm
	code/modules/mob/living/silicon/robot/death.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/silicon/silicon.dm
	code/modules/mob/living/simple_animal/guardian/guardian.dm
	code/modules/mob/login.dm
	code/modules/mob/mob.dm
	code/modules/projectiles/gun.dm
	code/modules/reagents/chemistry/reagents/blob_reagents.dm
	tgstation.dme
2016-02-04 14:34:45 +01:00
phil235
81ce777ec2 - you now only see turfs when inside gas pipes.
- I renamed some vars of datum/hud to be more selfexplanatory
- Moved all datum/hud mob code into the hud folder.
- fixed alien's zone selection button not using the correct sprites.
- I removed the update_hud() proc (that needed to be removed).
- Fixed a typo in /mob/living/carbon/ContractDisease , using "internals" instead of "internal" (very different things)
- Fixed doTeleport() calling Entered() twice on the destination area.
- To reference a mob's selected zone, you now use a direct mob var ("H.zone_selected" instead of "H.zone_sel.selecting")
- mobs lose certain screen objects var ("healths", "zone_sel", "internals", etc) which are now vars of the mob's datum/hud instead.
- the Blind spell is now done via the blind mutation instead of the blind disabilities.
- Give to mobs a version of forceMove(), so the mob is always properly unbuckled, his pull stopped, his vision updated, etc.
- The "user" var of mob/camera/aiEye/remote is renamed to "eye_user" to avoid confusion.
- reset_view() is replaced by reset_perspective(). Now all changes to client.eye and client.perspective are done with this proc.
- I reworked /obj/machinery/computer/security code, changing camera is instantaneous now, as well as cancelling.
- I reworked /obj/machinery/computer/camera_advanced code as well.
- I changed /obj/item/mecha_parts/mecha_equipment/mining_scanner's meson view to be constant instead of by intermittent.
- Fixes not being able to use /obj/item/device/camera_bug while buckled.
- removed admin_forcemove() proc, admin force moving now uses forceMove() simply.
- Removed the client var "adminobs"
- Added var/vision_correction to glasses.
- Added a thermal_overload() proc for glasses, to remove copypasta in emp_act code.
- Remove the hal_crit mob var
- We no longer delete the mob's hud everytime he logs in.
- Added a stat == dead check in mob's metabolize() so we immediately stop metabolizing if one of the chem kills the mob.
- Being inside disposal bin lowers your vision, like wearing a welding helmet.
- removed the remote_view mob var.
- I changed advanced camera EYE, some fixes, removed unnecessary code when the eye moves, now the mob client eye properly follows the camera mob.
- fixes mob var "machine" not being nullified on logout.
- larva/death() was calling two "living_mob_list -= src"
- I made the Blind screen objects into a global_hud instead of giving one to each mob (like damage overlay).
- I untied tint and eye_blind, TINT_BLIND doesn't give you eye_blind=1.
- gave a visual overlay when inside locker (vimpaired)
- when inside disposal/gas pipes you get sight |= (BLIND|SEE_TURFS)
- glasses toggling updates (atmos meson toggle): DONE
- The new adjust procs serve to properly change eye_blind etc and call vision update procs when needed.
- I added an on_unset_machine() proc to handle perspective reset for camera consoles.
- I moved consequences of eye_check fail inside eye_check() procs themselves.
- I fixed vision updates being fucked by forceMove, especially pipe vision.
- I decided that damage overlay not appearing when dead.
- mob's hud_used is no longer deleted on each login()
- I refactored mob huds a bit, creating subtypes for each mob (/datum/hud/human)
- f12's hud toggling is now available to all mobs
- gave borgs a low_power_mode var so unpowered borg do not use stat= UNCONSCIOUS (which made things weird since you were unconscious but not blind)
- Fixed double Area entering when forced teleporting.
- I fixed larva pulling not being broken when cuffing them, and larva not seeing handcuff alert (and they can resist by clicking it)
- I removed pull updates from life() since it onyl checked for puller's incapacitation.
- I renamed camera/deactivate() to toggle_cam() to be more accurate.
- I fixed mmi brain being immortal (by removing the brain and putting it back)
- I simplified mmi brain emp damage.
2016-02-04 00:33:16 +01:00
KorPhaeron
7cebbae3f6 Foamed Metal 2016-01-24 19:40:02 -06:00
xxalpha
6aaf9c43a6 Made foam transparent and changed its layer to be above mobs. 2016-01-22 23:57:18 +00:00
duncathan
17f167bcb7 associative list 2015-12-29 13:33:12 -06:00
duncathan
a64b68f76c caches gases in more procs 2015-12-28 13:32:49 -06:00
duncathan
b18cb5fca8 making shit compile 2015-12-28 08:31:20 -06:00
phil235
8751f9afb5 derp 2015-10-21 23:48:23 +02: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
phil235
47909d525f Changes smoke to behave more like foam. Each covered tile has one smoke cloud. This makes smoke clouds much less random, especially in terms of reagent application.
Also smoke reaction now uses the TOUCH method instead of VAPOR, to differentiate smoke and foam. Mob without internals or gas masks also ingests reagents in the smoke.
Moved nanofrost smoke code to effects/effect_system/effects_smoke.dm
2015-10-15 21:52:37 +02:00
phil235
bfa06222ea Merge pull request #11830 from Aranclanos/updatetriggerthis
Removes update_triggers.dm
2015-09-19 16:47:19 +02:00
Aranclanos
caf4d7d5a5 Removes update_triggers.dm and moves the code inside of it to their respective procs. Most of the procs on this file were duplicated. 2015-09-16 21:52:25 -03:00
bear1ake
f697ae90f5 removes a bunch of .0 2015-09-10 20:57:30 +09:00
Razharas
ad9fa24d5f Merge pull request #11515 from xxalpha/PLmD_69pXpk
Tweaked foam spread logic, foam layer.
2015-09-01 18:33:22 +03:00
xxalpha
d0701c4088 Tweaked foam spread logic, foam layer.
Better

Changelog

PERFORMANCE

get_turf(loc) is still superior
2015-09-01 00:33:33 +01:00
duncathan
51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
xxalpha
b9db8ce854 A few qdel fixes. 2015-08-27 13:15:41 +01:00
phil235
d2a4024e7f reagent reaction() now use more methods. Instead of just INGEST or TOUCH, we now have INGEST (for injection, ingestion), TOUCH (for splashing), PATCH (for patch application and blob attack), and VAPOR (for smoke, foam and spray application).
- TOUCH no longer transfer reagent by default, it's now only used for touch based effect like being flammable when touched by fuel or you and your stuff being acided when touched by acid).

- PATCH does no transfer of its own (but actual patches code do make a transfer) but is used for touch effect that ignore clothes and protection (blob attacks, patches effect going through hardsuits)

- VAPOR does reagent transfer but it takes into account clothing protection

Fixes a typo in humanoid/get_permeability_prot
Fixes acid splashing on objects not destroying it. Fixes acid splashing on turf not destroying objects on the turf.

Changed damp rag smothering code a bit.

Blob Smoke now doesn't do anything.
2015-08-09 14:23:12 +02:00
phil235
6a0be8b9a3 Fixes sleeping smoke never disappearing. Also switching processing.Add(src) to processing |= src.
Makes the empty space on the chem bottles sprites clickable.
Fixes a runtime with reagent_containers/throw_impact()
2015-07-31 15:01:35 +02:00
phil235
3e9ab4e3c1 Merge branch 'master' of https://github.com/tgstation/-tg-station into SmokeFoamBuff
Conflicts:
	code/ATMOSPHERICS/atmospherics.dm
	code/__HELPERS/unsorted.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/modules/reagents/Chemistry-Recipes.dm
2015-07-16 14:09:12 +02:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
phil235
d4cdd8eaa1 iron foam is now blue steel color just like aluminium foam.
Fixes metal foam from backpack firefighter watertank.
Fixes nanofrost not freezing shut vent scrubbers.
Atmos backpack watertank now starts full of water.
Change foam layer to Objlayer +0.1 so that it is above foammetalstructure so it doesn't hide the dissolving animation and also above tables.
Buff foam and smoke: smoke/foam contains four times the amount of reagents that was inserted in them, for balancing.
Add a little more smoke clouds for tear gas grenade.
Removed the no longer needed max_lifetime smoke var.
Reagent_dispensers (watertank) now show how much reagents they have left upon examination.
Fixed some code formatting in reagent_dispensers.
Fixes nanofrost temperature lowering effect that wasn't working.
Adjusted reagent volume in blob spore smoke because of the buff.
Change to sorium and ldm: effect varies with created volume.
If you are close to a powerful vortex you are thrown, otherwise you are just moved instead.
Vortex blobs now only make you step if you are far from it when reaction hits, otherwise it throws you. The vortex blob range gets +1 to compensate. Also the range and effect depends on the reagent volume which means lower effect for blobspore smoke.
2015-07-09 19:49:06 +02:00