Conflicts:
	README.txt
	SQL/tgstation_schema.sql
	baystation12.dme
	code/ATMOSPHERICS/components/unary/vent_pump.dm
	code/ATMOSPHERICS/pipes.dm
	code/FEA/FEA_airgroup.dm
	code/FEA/FEA_fire.dm
	code/FEA/FEA_gas_mixture.dm
	code/FEA/FEA_turf_tile.dm
	code/TriDimension/Pipes.dm
	code/WorkInProgress/buildmode.dm
	code/WorkInProgress/organs/organs.dm
	code/WorkInProgress/virus2/Disease2/analyser.dm
	code/WorkInProgress/virus2/Disease2/biohazard destroyer.dm
	code/WorkInProgress/virus2/Disease2/cureimplanter.dm
	code/WorkInProgress/virus2/Disease2/diseasesplicer.dm
	code/WorkInProgress/virus2/Disease2/dishincubator.dm
	code/WorkInProgress/virus2/Disease2/isolator.dm
	code/WorkInProgress/virus2/Disease2/monkeydispensor.dm
	code/WorkInProgress/virus2/analyser.dm
	code/WorkInProgress/virus2/antibodies.dm
	code/WorkInProgress/virus2/base.dm
	code/WorkInProgress/virus2/biohazard destroyer.dm
	code/WorkInProgress/virus2/cureimplanter.dm
	code/WorkInProgress/virus2/curer.dm
	code/WorkInProgress/virus2/diseasesplicer.dm
	code/WorkInProgress/virus2/dishincubator.dm
	code/WorkInProgress/virus2/isolator.dm
	code/WorkInProgress/virus2/monkeydispensor.dm
	code/datums/ai_laws.dm
	code/datums/configuration.dm
	code/datums/datumvars.dm
	code/datums/diseases/alien_embryo.dm
	code/datums/diseases/appendicitis.dm
	code/datums/diseases/robotic_transformation.dm
	code/datums/diseases/xeno_transformation.dm
	code/datums/helper_datums/getrev.dm
	code/datums/helper_datums/teleport.dm
	code/datums/helper_datums/tension.dm
	code/datums/mind.dm
	code/datums/mixed.dm
	code/datums/shuttle_controller.dm
	code/datums/spell.dm
	code/datums/spells/ethereal_jaunt.dm
	code/datums/spells/genetic.dm
	code/datums/spells/wizard.dm
	code/defines/area/Space Station 13 areas.dm
	code/defines/atom.dm
	code/defines/global.dm
	code/defines/mob/dead/observer.dm
	code/defines/mob/living/carbon/alien.dm
	code/defines/mob/living/carbon/alien_humanoid.dm
	code/defines/mob/living/carbon/carbon.dm
	code/defines/mob/living/carbon/metroid.dm
	code/defines/mob/living/carbon/monkey.dm
	code/defines/mob/living/living.dm
	code/defines/mob/living/silicon/ai.dm
	code/defines/mob/living/silicon/robot.dm
	code/defines/obj.dm
	code/defines/obj/closet.dm
	code/defines/obj/clothing.dm
	code/defines/obj/clothing/costume.dm
	code/defines/obj/computer.dm
	code/defines/obj/costume.dm
	code/defines/obj/decal.dm
	code/defines/obj/door.dm
	code/defines/obj/hydro.dm
	code/defines/obj/machinery.dm
	code/defines/obj/storage.dm
	code/defines/obj/supplypacks.dm
	code/defines/obj/toy.dm
	code/defines/obj/vending.dm
	code/defines/obj/weapon.dm
	code/defines/procs/AStar.dm
	code/defines/procs/command_name.dm
	code/defines/procs/dbcore.dm
	code/defines/procs/forum_activation.dm
	code/defines/procs/gamehelpers.dm
	code/defines/procs/helpers.dm
	code/defines/procs/icon_procs.dm
	code/defines/procs/station_name.dm
	code/defines/procs/statistics.dm
	code/defines/turf.dm
	code/game/algorithm.dm
	code/game/area/areas.dm
	code/game/asteroid/artifacts.dm
	code/game/atom_procs.dm
	code/game/cellautomata.dm
	code/game/dna.dm
	code/game/events/EventProcs/clang.dm
	code/game/events/EventProcs/dust.dm
	code/game/events/EventProcs/ninja_abilities.dm
	code/game/events/EventProcs/ninja_equipment.dm
	code/game/events/EventProcs/space_ninja.dm
	code/game/events/EventProcs/spacevines.dm
	code/game/gamemodes/blob/blob.dm
	code/game/gamemodes/blob/blob_finish.dm
	code/game/gamemodes/blob/blob_report.dm
	code/game/gamemodes/blob/theblob.dm
	code/game/gamemodes/changeling/changeling.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/changeling/modularchangling.dm
	code/game/gamemodes/changeling/traitor_chan.dm
	code/game/gamemodes/cult/cult.dm
	code/game/gamemodes/cult/cult_items.dm
	code/game/gamemodes/cult/cult_structures.dm
	code/game/gamemodes/events.dm
	code/game/gamemodes/events/black_hole.dm
	code/game/gamemodes/events/miniblob.dm
	code/game/gamemodes/factions.dm
	code/game/gamemodes/game_mode.dm
	code/game/gamemodes/gameticker.dm
	code/game/gamemodes/malfunction/malfunction.dm
	code/game/gamemodes/meteor/meteor.dm
	code/game/gamemodes/meteor/meteors.dm
	code/game/gamemodes/nuclear/nuclear.dm
	code/game/gamemodes/nuclear/nuclearbomb.dm
	code/game/gamemodes/nuclear/pinpointer.dm
	code/game/gamemodes/objective.dm
	code/game/gamemodes/revolution/revolution.dm
	code/game/gamemodes/sandbox/h_sandbox.dm
	code/game/gamemodes/sandbox/sandbox.dm
	code/game/gamemodes/setupgame.dm
	code/game/gamemodes/traitor/traitor.dm
	code/game/gamemodes/wizard/rightandwrong.dm
	code/game/gamemodes/wizard/soulstone.dm
	code/game/gamemodes/wizard/spellbook.dm
	code/game/gamemodes/wizard/spells.dm
	code/game/gamemodes/wizard/veilrender.dm
	code/game/gamemodes/wizard/wizard.dm
	code/game/hud.dm
	code/game/jobs/access.dm
	code/game/jobs/job/captain.dm
	code/game/jobs/job/civilian.dm
	code/game/jobs/job/civilian_chaplain.dm
	code/game/jobs/job/engineering.dm
	code/game/jobs/job/job.dm
	code/game/jobs/job/medical.dm
	code/game/jobs/job/science.dm
	code/game/jobs/job/security.dm
	code/game/jobs/job/silicon.dm
	code/game/jobs/job_controller.dm
	code/game/jobs/jobs.dm
	code/game/machinery/Beacon.dm
	code/game/machinery/OpTable.dm
	code/game/machinery/Sleeper.dm
	code/game/machinery/alarm.dm
	code/game/machinery/atmo_control.dm
	code/game/machinery/atmoalter/area_atmos_computer.dm
	code/game/machinery/autolathe.dm
	code/game/machinery/biogenerator.dm
	code/game/machinery/bots/bots.dm
	code/game/machinery/bots/cleanbot.dm
	code/game/machinery/bots/ed209bot.dm
	code/game/machinery/bots/floorbot.dm
	code/game/machinery/bots/medbot.dm
	code/game/machinery/bots/mulebot.dm
	code/game/machinery/camera.dm
	code/game/machinery/cell_charger.dm
	code/game/machinery/cloning.dm
	code/game/machinery/computer/HolodeckControl.dm
	code/game/machinery/computer/Operating.dm
	code/game/machinery/computer/ai_core.dm
	code/game/machinery/computer/arcade.dm
	code/game/machinery/computer/atmos_alert.dm
	code/game/machinery/computer/buildandrepair.dm
	code/game/machinery/computer/card.dm
	code/game/machinery/computer/cloning.dm
	code/game/machinery/computer/communications.dm
	code/game/machinery/computer/computer.dm
	code/game/machinery/computer/crew.dm
	code/game/machinery/computer/hologram.dm
	code/game/machinery/computer/law.dm
	code/game/machinery/computer/medical.dm
	code/game/machinery/computer/message.dm
	code/game/machinery/computer/pod.dm
	code/game/machinery/computer/power.dm
	code/game/machinery/computer/prisoner.dm
	code/game/machinery/computer/robot.dm
	code/game/machinery/computer/security.dm
	code/game/machinery/computer/shuttle.dm
	code/game/machinery/constructable_frame.dm
	code/game/machinery/deployable.dm
	code/game/machinery/door_control.dm
	code/game/machinery/doors/airlock.dm
	code/game/machinery/doors/airlock_electronics.dm
	code/game/machinery/doors/brigdoors.dm
	code/game/machinery/doors/door.dm
	code/game/machinery/doors/firedoor.dm
	code/game/machinery/doors/poddoor.dm
	code/game/machinery/doors/unpowered.dm
	code/game/machinery/doors/windowdoor.dm
	code/game/machinery/flasher.dm
	code/game/machinery/gateway.dm
	code/game/machinery/hologram.dm
	code/game/machinery/hydroponics.dm
	code/game/machinery/kitchen/gibber.dm
	code/game/machinery/morgue.dm
	code/game/machinery/newscaster.dm
	code/game/machinery/pipe/construction.dm
	code/game/machinery/pipe/pipe_dispenser.dm
	code/game/machinery/portable_turret.dm
	code/game/machinery/recharger.dm
	code/game/machinery/rechargestation.dm
	code/game/machinery/requests_console.dm
	code/game/machinery/shieldgen.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/suit_storage_unit.dm
	code/game/machinery/syndicatebeacon.dm
	code/game/machinery/telecomms/broadcaster.dm
	code/game/machinery/telecomms/logbrowser.dm
	code/game/machinery/telecomms/machine_interactions.dm
	code/game/machinery/telecomms/telemonitor.dm
	code/game/machinery/telecomms/traffic_control.dm
	code/game/machinery/teleporter.dm
	code/game/machinery/turrets.dm
	code/game/machinery/vending.dm
	code/game/magic/cultist/ritual.dm
	code/game/magic/cultist/runes.dm
	code/game/magic/library.dm
	code/game/magic/musician.dm
	code/game/master_controller.dm
	code/game/mecha/combat/combat.dm
	code/game/mecha/combat/gygax.dm
	code/game/mecha/equipment/mecha_equipment.dm
	code/game/mecha/equipment/tools/tools.dm
	code/game/mecha/equipment/weapons/weapons.dm
	code/game/mecha/mech_fabricator.dm
	code/game/mecha/mecha.dm
	code/game/mecha/mecha_construction_paths.dm
	code/game/mecha/mecha_wreckage.dm
	code/game/mecha/medical/medical.dm
	code/game/mecha/medical/odysseus.dm
	code/game/mecha/working/ripley.dm
	code/game/objects/alien/facehugger.dm
	code/game/objects/alien/resin.dm
	code/game/objects/bodybag.dm
	code/game/objects/closets.dm
	code/game/objects/closets/emergency.dm
	code/game/objects/closets/extinguisher.dm
	code/game/objects/closets/fireaxe.dm
	code/game/objects/closets/firecloset.dm
	code/game/objects/closets/fitnesscloset.dm
	code/game/objects/closets/janitor.dm
	code/game/objects/closets/kitchen.dm
	code/game/objects/closets/nuclear.dm
	code/game/objects/closets/secure/bar.dm
	code/game/objects/closets/secure/cargo.dm
	code/game/objects/closets/secure/engineering.dm
	code/game/objects/closets/secure/hydroponics.dm
	code/game/objects/closets/secure/medical.dm
	code/game/objects/closets/secure/personal.dm
	code/game/objects/closets/secure/scientist.dm
	code/game/objects/closets/secure/secure_closets.dm
	code/game/objects/closets/secure/security.dm
	code/game/objects/closets/syndicate.dm
	code/game/objects/closets/wardrobe.dm
	code/game/objects/contraband.dm
	code/game/objects/crates.dm
	code/game/objects/devices/PDA/PDA.dm
	code/game/objects/devices/PDA/cart.dm
	code/game/objects/devices/PDA/chatroom.dm
	code/game/objects/devices/aicard.dm
	code/game/objects/devices/flash.dm
	code/game/objects/devices/flashlight.dm
	code/game/objects/devices/paicard.dm
	code/game/objects/devices/scanners.dm
	code/game/objects/devices/taperecorder.dm
	code/game/objects/devices/traitordevices.dm
	code/game/objects/door_assembly.dm
	code/game/objects/effect_system.dm
	code/game/objects/electricchair.dm
	code/game/objects/explosion.dm
	code/game/objects/gibs.dm
	code/game/objects/grille.dm
	code/game/objects/items.dm
	code/game/objects/items/blueprints.dm
	code/game/objects/items/candle.dm
	code/game/objects/items/clothing.dm
	code/game/objects/items/food.dm
	code/game/objects/items/helper_procs.dm
	code/game/objects/items/item.dm
	code/game/objects/items/robot_items.dm
	code/game/objects/items/robot_parts.dm
	code/game/objects/items/tk_grab.dm
	code/game/objects/items/weapons/AI_modules.dm
	code/game/objects/items/weapons/RCD.dm
	code/game/objects/items/weapons/RSF.dm
	code/game/objects/items/weapons/cameras.dm
	code/game/objects/items/weapons/cards_ids.dm
	code/game/objects/items/weapons/cigs_lighters.dm
	code/game/objects/items/weapons/clown_items.dm
	code/game/objects/items/weapons/dna_injector.dm
	code/game/objects/items/weapons/explosives.dm
	code/game/objects/items/weapons/flamethrower.dm
	code/game/objects/items/weapons/grenades.dm
	code/game/objects/items/weapons/hand_lablers.dm
	code/game/objects/items/weapons/hydroponics.dm
	code/game/objects/items/weapons/implants/implant.dm
	code/game/objects/items/weapons/implants/implantcase.dm
	code/game/objects/items/weapons/implants/implantchair.dm
	code/game/objects/items/weapons/implants/implanter.dm
	code/game/objects/items/weapons/implants/implantfreedom.dm
	code/game/objects/items/weapons/implants/implantnanoaug.dm
	code/game/objects/items/weapons/implants/implantpad.dm
	code/game/objects/items/weapons/kitchen.dm
	code/game/objects/items/weapons/manuals.dm
	code/game/objects/items/weapons/medical.dm
	code/game/objects/items/weapons/mops_cleaners.dm
	code/game/objects/items/weapons/papers_bins.dm
	code/game/objects/items/weapons/stunbaton.dm
	code/game/objects/items/weapons/surgery_tools.dm
	code/game/objects/items/weapons/swords_axes_etc.dm
	code/game/objects/items/weapons/table_rack_parts.dm
	code/game/objects/items/weapons/tools.dm
	code/game/objects/items/weapons/twohanded.dm
	code/game/objects/items/weapons/wrappingpaper.dm
	code/game/objects/mineral_doors.dm
	code/game/objects/radio/beacon.dm
	code/game/objects/radio/electropack.dm
	code/game/objects/radio/encryptionkey.dm
	code/game/objects/radio/headset.dm
	code/game/objects/radio/intercom.dm
	code/game/objects/radio/radio.dm
	code/game/objects/secstorage/sbriefcase.dm
	code/game/objects/secstorage/ssafe.dm
	code/game/objects/stacks/glass.dm
	code/game/objects/stacks/metal.dm
	code/game/objects/stacks/stack.dm
	code/game/objects/stacks/wood.dm
	code/game/objects/stool.dm
	code/game/objects/storage/backpack.dm
	code/game/objects/storage/belt.dm
	code/game/objects/storage/bible.dm
	code/game/objects/storage/briefcase.dm
	code/game/objects/storage/lockbox.dm
	code/game/objects/storage/storage.dm
	code/game/objects/storage/uplink_kits.dm
	code/game/objects/structures.dm
	code/game/objects/tables_racks.dm
	code/game/objects/tank.dm
	code/game/objects/tanks/emergency.dm
	code/game/objects/tanks/jetpack.dm
	code/game/objects/toys.dm
	code/game/objects/transfer_valve.dm
	code/game/objects/uplinks.dm
	code/game/objects/watercloset.dm
	code/game/objects/weapons.dm
	code/game/objects/windoor_assembly.dm
	code/game/objects/window.dm
	code/game/prisonshuttle.dm
	code/game/smoothwall.dm
	code/game/sound.dm
	code/game/step_triggers.dm
	code/game/structure/structure.dm
	code/game/supplyshuttle.dm
	code/game/throwing.dm
	code/game/topic.dm
	code/game/turf.dm
	code/game/vehicles/airtight/airtight.dm
	code/game/vehicles/airtight/land.dm
	code/game/vehicles/airtight/space.dm
	code/game/vehicles/vehicle.dm
	code/game/verbs/ooc.dm
	code/game/verbs/sound.dm
	code/game/verbs/suicide.dm
	code/game/verbs/who.dm
	code/game/vote.dm
	code/modules/admin/IsBanned.dm
	code/modules/admin/NewBan.dm
	code/modules/admin/admin.dm
	code/modules/admin/admin_investigate.dm
	code/modules/admin/admin_memo.dm
	code/modules/admin/admin_verbs.dm
	code/modules/admin/banjob.dm
	code/modules/admin/create_mob.dm
	code/modules/admin/create_object.dm
	code/modules/admin/create_turf.dm
	code/modules/admin/player_panel.dm
	code/modules/admin/verbs/MC.dm
	code/modules/admin/verbs/adminhelp.dm
	code/modules/admin/verbs/adminjump.dm
	code/modules/admin/verbs/adminpm.dm
	code/modules/admin/verbs/adminsay.dm
	code/modules/admin/verbs/atmosdebug.dm
	code/modules/admin/verbs/cinematic.dm
	code/modules/admin/verbs/deadsay.dm
	code/modules/admin/verbs/debug.dm
	code/modules/admin/verbs/diagnostics.dm
	code/modules/admin/verbs/getlogs.dm
	code/modules/admin/verbs/mapping.dm
	code/modules/admin/verbs/massmodvar.dm
	code/modules/admin/verbs/modifyvariables.dm
	code/modules/admin/verbs/onlyone.dm
	code/modules/admin/verbs/playsound.dm
	code/modules/admin/verbs/possess.dm
	code/modules/admin/verbs/pray.dm
	code/modules/admin/verbs/randomverbs.dm
	code/modules/admin/verbs/striketeam.dm
	code/modules/admin/verbs/striketeam_syndicate.dm
	code/modules/assembly/assembly.dm
	code/modules/assembly/signaler.dm
	code/modules/chemical/Chemistry-Machinery.dm
	code/modules/chemical/Chemistry-Tools.dm
	code/modules/client/client defines.dm
	code/modules/client/client procs.dm
	code/modules/clothing/costume.dm
	code/modules/clothing/gimmick.dm
	code/modules/clothing/glasses.dm
	code/modules/clothing/glasses/glasses.dm
	code/modules/clothing/glasses/hud.dm
	code/modules/clothing/gloves.dm
	code/modules/clothing/head/hardhat.dm
	code/modules/clothing/jumpsuit.dm
	code/modules/clothing/mask.dm
	code/modules/clothing/shoes.dm
	code/modules/clothing/spacesuit.dm
	code/modules/clothing/spacesuits/captain.dm
	code/modules/clothing/spacesuits/miscellaneous.dm
	code/modules/clothing/spacesuits/ninja.dm
	code/modules/clothing/spacesuits/rig.dm
	code/modules/clothing/spacesuits/syndi.dm
	code/modules/clothing/spacesuits/void.dm
	code/modules/clothing/suit.dm
	code/modules/clothing/suits/armor.dm
	code/modules/clothing/suits/bio.dm
	code/modules/clothing/suits/bomb.dm
	code/modules/clothing/suits/detective.dm
	code/modules/clothing/suits/fire.dm
	code/modules/clothing/suits/heavy.dm
	code/modules/clothing/suits/hos.dm
	code/modules/clothing/suits/labcoat.dm
	code/modules/clothing/suits/miscellaneous.dm
	code/modules/clothing/suits/wiz_robe.dm
	code/modules/clothing/uniforms/lawyer.dm
	code/modules/critters/critter.dm
	code/modules/critters/critter_AI.dm
	code/modules/critters/critters.dm
	code/modules/critters/hivebots/hivebot.dm
	code/modules/flufftext/Dreaming.dm
	code/modules/flufftext/Hallucination.dm
	code/modules/flufftext/TextFilters.dm
	code/modules/food/food.dm
	code/modules/food/meat.dm
	code/modules/food/recipes_microwave.dm
	code/modules/maps/SwapMaps.dm
	code/modules/maps/dmm_suite.dm
	code/modules/maps/fromdmp.dm
	code/modules/maps/randomZlevel.dm
	code/modules/maps/reader.dm
	code/modules/maps/writer.dm
	code/modules/mining/machine_processing.dm
	code/modules/mining/machine_stacking.dm
	code/modules/mining/machine_unloading.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mine_turfs.dm
	code/modules/mining/mint.dm
	code/modules/mining/ores_materials_coins.dm
	code/modules/mining/satchel_ore_boxdm.dm
	code/modules/mob/dead/death.dm
	code/modules/mob/dead/observer/observer.dm
	code/modules/mob/death.dm
	code/modules/mob/living/blob/blob.dm
	code/modules/mob/living/carbon/alien/alien.dm
	code/modules/mob/living/carbon/alien/death.dm
	code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
	code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
	code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
	code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
	code/modules/mob/living/carbon/alien/humanoid/death.dm
	code/modules/mob/living/carbon/alien/humanoid/hud.dm
	code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
	code/modules/mob/living/carbon/alien/humanoid/life.dm
	code/modules/mob/living/carbon/alien/humanoid/login.dm
	code/modules/mob/living/carbon/alien/humanoid/queen.dm
	code/modules/mob/living/carbon/alien/larva/death.dm
	code/modules/mob/living/carbon/alien/larva/hud.dm
	code/modules/mob/living/carbon/alien/larva/larva.dm
	code/modules/mob/living/carbon/alien/larva/life.dm
	code/modules/mob/living/carbon/alien/larva/login.dm
	code/modules/mob/living/carbon/alien/larva/powers.dm
	code/modules/mob/living/carbon/alien/special/_main.dm
	code/modules/mob/living/carbon/alien/special/snakeman.dm
	code/modules/mob/living/carbon/brain/MMI.dm
	code/modules/mob/living/carbon/brain/brain.dm
	code/modules/mob/living/carbon/brain/death.dm
	code/modules/mob/living/carbon/brain/hud.dm
	code/modules/mob/living/carbon/brain/life.dm
	code/modules/mob/living/carbon/brain/say.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/human/death.dm
	code/modules/mob/living/carbon/human/emote.dm
	code/modules/mob/living/carbon/human/examine.dm
	code/modules/mob/living/carbon/human/hud.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/human/human_attackalien.dm
	code/modules/mob/living/carbon/human/human_attackhand.dm
	code/modules/mob/living/carbon/human/human_damage.dm
	code/modules/mob/living/carbon/human/human_defense.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/login.dm
	code/modules/mob/living/carbon/human/say.dm
	code/modules/mob/living/carbon/human/whisper.dm
	code/modules/mob/living/carbon/metroid/death.dm
	code/modules/mob/living/carbon/metroid/examine.dm
	code/modules/mob/living/carbon/metroid/life.dm
	code/modules/mob/living/carbon/metroid/login.dm
	code/modules/mob/living/carbon/metroid/metroid.dm
	code/modules/mob/living/carbon/metroid/powers.dm
	code/modules/mob/living/carbon/monkey/death.dm
	code/modules/mob/living/carbon/monkey/examine.dm
	code/modules/mob/living/carbon/monkey/hud.dm
	code/modules/mob/living/carbon/monkey/life.dm
	code/modules/mob/living/carbon/monkey/login.dm
	code/modules/mob/living/carbon/monkey/monkey.dm
	code/modules/mob/living/carbon/monkey/powers.dm
	code/modules/mob/living/damage_procs.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/living_defense.dm
	code/modules/mob/living/login.dm
	code/modules/mob/living/say.dm
	code/modules/mob/living/silicon/ai/ai.dm
	code/modules/mob/living/silicon/ai/death.dm
	code/modules/mob/living/silicon/ai/examine.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/ai/login.dm
	code/modules/mob/living/silicon/ai/move.dm
	code/modules/mob/living/silicon/death.dm
	code/modules/mob/living/silicon/decoy/death.dm
	code/modules/mob/living/silicon/pai/death.dm
	code/modules/mob/living/silicon/pai/hud.dm
	code/modules/mob/living/silicon/pai/pai.dm
	code/modules/mob/living/silicon/pai/recruit.dm
	code/modules/mob/living/silicon/pai/software.dm
	code/modules/mob/living/silicon/robot/death.dm
	code/modules/mob/living/silicon/robot/emote.dm
	code/modules/mob/living/silicon/robot/examine.dm
	code/modules/mob/living/silicon/robot/hud.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/silicon/robot/login.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/silicon/robot/robot_modules.dm
	code/modules/mob/living/silicon/robot/say.dm
	code/modules/mob/living/silicon/robot/wires.dm
	code/modules/mob/living/silicon/say.dm
	code/modules/mob/living/simple_animal/life.dm
	code/modules/mob/login.dm
	code/modules/mob/logout.dm
	code/modules/mob/mob.dm
	code/modules/mob/mob_cleanup.dm
	code/modules/mob/mob_defines.dm
	code/modules/mob/mob_grab.dm
	code/modules/mob/mob_helpers.dm
	code/modules/mob/mob_movement.dm
	code/modules/mob/mob_transformation_simple.dm
	code/modules/mob/new_player/login.dm
	code/modules/mob/new_player/new_player.dm
	code/modules/mob/new_player/preferences.dm
	code/modules/mob/new_player/preferences_setup.dm
	code/modules/mob/new_player/savefile.dm
	code/modules/mob/new_player/sprite_accessories.dm
	code/modules/mob/organ/organ.dm
	code/modules/mob/organ/organ_external.dm
	code/modules/mob/organ/pain.dm
	code/modules/mob/say.dm
	code/modules/mob/screen.dm
	code/modules/mob/simple_animal/crab.dm
	code/modules/mob/transform_procs.dm
	code/modules/paperwork/clipboard.dm
	code/modules/paperwork/filingcabinet.dm
	code/modules/paperwork/folders.dm
	code/modules/paperwork/handlabeler.dm
	code/modules/paperwork/paper.dm
	code/modules/paperwork/paperbin.dm
	code/modules/paperwork/pen.dm
	code/modules/paperwork/photocopier.dm
	code/modules/paperwork/stamps.dm
	code/modules/power/antimatter/computer.dm
	code/modules/power/antimatter/engine.dm
	code/modules/power/antimatter/fuel.dm
	code/modules/power/apc.dm
	code/modules/power/cable.dm
	code/modules/power/cable_heavyduty.dm
	code/modules/power/cell.dm
	code/modules/power/generator.dm
	code/modules/power/generator_type2.dm
	code/modules/power/gravitygenerator.dm
	code/modules/power/lighting.dm
	code/modules/power/port_gen.dm
	code/modules/power/sd_DynamicAreaLighting.dm
	code/modules/power/singularity/collector.dm
	code/modules/power/singularity/containment_field.dm
	code/modules/power/singularity/emitter.dm
	code/modules/power/singularity/field_generator.dm
	code/modules/power/singularity/generator.dm
	code/modules/power/singularity/investigate.dm
	code/modules/power/singularity/particle_accelerator/particle.dm
	code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
	code/modules/power/singularity/particle_accelerator/particle_chamber.dm
	code/modules/power/singularity/particle_accelerator/particle_control.dm
	code/modules/power/singularity/particle_accelerator/particle_emitter.dm
	code/modules/power/singularity/particle_accelerator/particle_power.dm
	code/modules/power/singularity/singularity.dm
	code/modules/power/smes.dm
	code/modules/power/solar.dm
	code/modules/power/switch.dm
	code/modules/power/turbine.dm
	code/modules/projectiles/ammunition.dm
	code/modules/projectiles/gun.dm
	code/modules/projectiles/guns/energy.dm
	code/modules/projectiles/guns/energy/laser.dm
	code/modules/projectiles/guns/energy/nuclear.dm
	code/modules/projectiles/guns/energy/pulse.dm
	code/modules/projectiles/guns/energy/special.dm
	code/modules/projectiles/guns/energy/stun.dm
	code/modules/projectiles/guns/projectile.dm
	code/modules/projectiles/guns/projectile/pistol.dm
	code/modules/projectiles/guns/projectile/revolver.dm
	code/modules/projectiles/guns/projectile/shotgun.dm
	code/modules/projectiles/projectile.dm
	code/modules/projectiles/projectile/beams.dm
	code/modules/projectiles/projectile/bullets.dm
	code/modules/projectiles/projectile/change.dm
	code/modules/projectiles/projectile/special.dm
	code/modules/reagents/Chemistry-Holder.dm
	code/modules/reagents/Chemistry-Reagents.dm
	code/modules/reagents/Chemistry-Recipes.dm
	code/modules/recycling/conveyor2.dm
	code/modules/recycling/disposal-construction.dm
	code/modules/recycling/disposal.dm
	code/modules/recycling/sortingmachinery.dm
	code/modules/research/designs.dm
	code/modules/research/destructive_analyzer.dm
	code/modules/research/message_server.dm
	code/modules/research/protolathe.dm
	code/modules/research/rdconsole.dm
	code/modules/research/rdmachines.dm
	code/modules/research/research.dm
	code/modules/research/server.dm
	code/modules/scripting/AST/Operators/Binary Operators.dm
	code/modules/scripting/Implementations/Telecomms.dm
	code/modules/scripting/Parser/Keywords.dm
	code/modules/scripting/Scanner/Tokens.dm
	code/modules/scripting/stack.dm
	code/modules/security levels/keycard authentication.dm
	code/modules/security levels/security levels.dm
	code/setup.dm
	code/stylesheet.dm
	code/unused/AI_Visibility.dm
	code/unused/Ultralight.dm
	code/unused/airtunnel.dm
	code/unused/beast/bodypart.dm
	code/unused/conveyor.dm
	code/unused/disease2/analyser.dm
	code/unused/disease2/base.dm
	code/unused/disease2/biohazard destroyer.dm
	code/unused/disease2/cureimplanter.dm
	code/unused/disease2/curer.dm
	code/unused/disease2/diseasesplicer.dm
	code/unused/disease2/dishincubator.dm
	code/unused/disease2/isolator.dm
	code/unused/disease2/monkeydispensor.dm
	code/unused/dna.dm
	code/unused/gamemodes/deathmatch.dm
	code/unused/jobs.dm
	code/unused/mining/datum_processing_recipe.dm
	code/unused/mining/spaceship_builder_unused.dm
	code/unused/new_year.dm
	code/unused/spacecraft/manufacturing.dm
	code/unused/spacecraft/shipcore.dm
	config/README feedback.txt
	config/admins.txt
	config/config.txt
	config/rules.html
	data/mode.txt
	html/add-to-changelog.html
	html/archivedchangelog.html
	html/changelog.css
	html/changelog.html
	html/changelog.js
	icons/effects/blood.dmi
	icons/effects/genetics.dmi
	icons/misc/fullscreen.dmi
	icons/mob/AI.dmi
	icons/mob/alien.dmi
	icons/mob/animal.dmi
	icons/mob/back.dmi
	icons/mob/belt.dmi
	icons/mob/blob.dmi
	icons/mob/critter.dmi
	icons/mob/dam_human.dmi
	icons/mob/eyes.dmi
	icons/mob/feet.dmi
	icons/mob/hands.dmi
	icons/mob/head.dmi
	icons/mob/human.dmi
	icons/mob/human_face.dmi
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
	icons/mob/livestock.dmi
	icons/mob/mask.dmi
	icons/mob/mecha.dmi
	icons/mob/mob.dmi
	icons/mob/monkey.dmi
	icons/mob/robots.dmi
	icons/mob/screen1.dmi
	icons/mob/screen1_Midnight.dmi
	icons/mob/screen1_Orange.dmi
	icons/mob/screen1_alien.dmi
	icons/mob/screen1_old.dmi
	icons/mob/suit.dmi
	icons/mob/uniform.dmi
	icons/mob/zone_sel.dmi
	icons/obj/Cryogenic2.dmi
	icons/obj/aibots.dmi
	icons/obj/ammo.dmi
	icons/obj/atmos.dmi
	icons/obj/bureaucracy.dmi
	icons/obj/card.dmi
	icons/obj/cigarettes.dmi
	icons/obj/closet.dmi
	icons/obj/clothing/glasses.dmi
	icons/obj/clothing/gloves.dmi
	icons/obj/clothing/hats.dmi
	icons/obj/clothing/masks.dmi
	icons/obj/clothing/shoes.dmi
	icons/obj/clothing/suits.dmi
	icons/obj/clothing/uniforms.dmi
	icons/obj/computer.dmi
	icons/obj/contraband.dmi
	icons/obj/decals.dmi
	icons/obj/device.dmi
	icons/obj/doors/DoorHazard.dmi
	icons/obj/doors/door_assembly.dmi
	icons/obj/drinks.dmi
	icons/obj/engine.dmi
	icons/obj/food.dmi
	icons/obj/grenade.dmi
	icons/obj/gun.dmi
	icons/obj/harvest.dmi
	icons/obj/hydroponics.dmi
	icons/obj/items.dmi
	icons/obj/janitor.dmi
	icons/obj/library.dmi
	icons/obj/lighting.dmi
	icons/obj/machines/field_generator.dmi
	icons/obj/machines/gateway.dmi
	icons/obj/machines/mining_machines.dmi
	icons/obj/machines/particle_accelerator.dmi
	icons/obj/meter.dmi
	icons/obj/mining.dmi
	icons/obj/objects.dmi
	icons/obj/paper.dmi
	icons/obj/pda.dmi
	icons/obj/pipes/disposal.dmi
	icons/obj/plants.dmi
	icons/obj/power.dmi
	icons/obj/projectiles.dmi
	icons/obj/robotics.dmi
	icons/obj/seeds.dmi
	icons/obj/singularity.dmi
	icons/obj/stationobjs.dmi
	icons/obj/stock_parts.dmi
	icons/obj/storage.dmi
	icons/obj/structures.dmi
	icons/obj/surgery.dmi
	icons/obj/syringe.dmi
	icons/obj/tank.dmi
	icons/obj/terminals.dmi
	icons/obj/toy.dmi
	icons/obj/vending.dmi
	icons/obj/watercloset.dmi
	icons/obj/weapons.dmi
	icons/obj/wizard.dmi
	icons/turf/areas.dmi
	icons/turf/floors.dmi
	icons/turf/walls.dmi
	interface/interface.dm
	interface/skin.dmf
	maps/Antiqua.dmm
	maps/RandomZLevels/assistantChamber.dmm
	maps/RandomZLevels/fileList.txt
	maps/tgstation.2.0.9.dmm
	sound/AI/animes.ogg
	sound/AI/newroundsexy.ogg
	sound/AI/newroundsexy2.ogg
	sound/effects/adminhelp.ogg
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM.sln
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.Designer.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Form1.resx
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Program.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/AssemblyInfo.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.Designer.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Resources.resx
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.Designer.cs
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties/Settings.settings
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/UnstandardnessTestForDM.csproj
tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug/UnstandardnessTestForDM.vshost.exe.manifest
	tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt
	tools/expand_filedir_paths.py
	tools/readme.txt

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-08-22 04:00:11 +10:00
1232 changed files with 108006 additions and 78117 deletions
@@ -1,8 +1,5 @@
/obj/item/weapon/implant
name = "implant"
desc = "An implant. Not usually seen outside a body."
icon = 'items.dmi'
icon_state = "implant"
var/implanted = null
var/mob/imp_in = null
color = "b"
@@ -14,14 +11,15 @@
proc/activate()
return
proc/implanted(source as mob)
return
// What does the implant do upon injection?
// return 0 if the implant fails (ex. Revhead and loyalty implant.)
// return 1 if the implant succeeds (ex. Nonrevhead and loyalty implant.)
proc/implanted(var/mob/source)
return 1
proc/get_data()
return
proc/hear(message, source as mob)
return
trigger(emote, source as mob)
@@ -31,61 +29,19 @@
activate()
return
attackby(obj/item/weapon/I as obj, mob/user as mob)
..()
if (istype(I, /obj/item/weapon/implanter))
if (I:imp)
return
else
src.loc = I
I:imp = src
// del(src)
I:update()
return
implanted(source as mob)
return
implanted(mob/source)
return 1
get_data()
return "No information available"
hear(message, source as mob)
return
/obj/item/weapon/implant/uplink
name = "uplink implant"
desc = "A micro-telecrystal implant which allows for instant transportation of equipment."
var/activation_emote = "chuckle"
var/obj/item/device/uplink/radio/uplink = null
New()
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
uplink = new /obj/item/device/uplink/radio/implanted(src)
..()
return
implanted(mob/source as mob)
activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
source.mind.store_memory("Uplink implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted uplink implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
return
trigger(emote, mob/source as mob)
if(emote == activation_emote)
uplink.attack_self(source)
return
/obj/item/weapon/implant/tracking
name = "tracking implant"
desc = "An implant which relays information to the appropriate tracking computer."
name = "tracking"
desc = "Track with this."
var/id = 1.0
@@ -107,15 +63,11 @@ Implant Specifics:<BR>"}
return dat
//Nuke Agent Explosive
/obj/item/weapon/implant/dexplosive
name = "explosive implant"
desc = "A military grade micro bio-explosive. Highly dangerous."
var/activation_emote = "deathgasp"
var/coded = 0
New()
verbs += /obj/item/weapon/implant/dexplosive/proc/set_emote
/obj/item/weapon/implant/explosive
name = "explosive"
desc = "And boom goes the weasel."
get_data()
var/dat = {"
@@ -132,7 +84,7 @@ Implant Specifics:<BR>"}
trigger(emote, source as mob)
if(emote == activation_emote)
if(emote == "deathgasp")
src.activate("death")
return
@@ -143,25 +95,11 @@ Implant Specifics:<BR>"}
if(src.imp_in)
src.imp_in.gib()
proc/set_emote()
set name = "Set Emote"
set category = "Object"
set src in usr
if(coded != 0)
usr << "You've already set up your implant!"
return
activation_emote = input("Choose activation emote:") in list("deathgasp","blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
usr.mind.store_memory("Explosive implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
coded = 1
verbs -= /obj/item/weapon/implant/dexplosive/proc/set_emote
return
/obj/item/weapon/implant/chem
name = "chemical implant"
desc = "A micro-injector that can be triggered remotely."
name = "chem"
desc = "Injects things."
allow_reagents = 1
get_data()
@@ -210,33 +148,33 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty
name = "loyalty implant"
desc = "An implant which contains a small pod of nanobots which manipulate host mental functions to induce loyalty."
name = "loyalty"
desc = "Makes you loyal or such."
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen Employee Management Implant<BR>
<b>Name:</b> Nanotrasen Employee Management Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be much more loyal to the company.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's mental functions.<BR>
<b>Special Features:</b> Will prevent and cure most forms of brainwashing.<BR>
<b>Integrity:</b> Degradation can occur within nanobots, re-application may be necessary to ensure full cooperation."}
<b>Integrity:</b> Implant will last so long as the nanobots are inside the bloodstream."}
return dat
implanted(M as mob)
if(!istype(M, /mob/living/carbon/human)) return
implanted(mob/M)
if(!istype(M, /mob/living/carbon/human)) return 0
var/mob/living/carbon/human/H = M
if(H.mind in ticker.mode.head_revolutionaries)
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of NanoTrasen try to invade your mind!")
return
H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of Nanotrasen try to invade your mind!")
return 0
else if(H.mind in ticker.mode:revolutionaries)
ticker.mode:remove_revolutionary(H.mind)
H << "\blue You feel a surge of loyalty towards NanoTrasen."
return
H << "\blue You feel a surge of loyalty towards Nanotrasen."
return 1
/obj/item/weapon/implant/adrenalin
@@ -270,235 +208,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
return
implanted(mob/source as mob)
implanted(mob/source)
source.mind.store_memory("A implant can be activated by using the pale emote, <B>say *pale</B> to attempt to activate.", 0, 0)
source << "The implanted freedom implant can be activated by using the pale emote, <B>say *pale</B> to attempt to activate."
return
//BS12 Explosive
/obj/item/weapon/implant/explosive
name = "explosive implant"
desc = "A military grade micro bio-explosive. Highly dangerous."
var/phrase = "supercalifragilisticexpialidocious"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Robust Corp RX-78 Intimidation Class Implant<BR>
<b>Life:</b> Activates upon codephrase.<BR>
<b>Important Notes:</b> Explodes<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
<b>Special Features:</b> Explodes<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
hear_talk(mob/M as mob, msg)
hear(msg)
return
hear(var/msg)
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
msg = sanitize_simple(msg, replacechars)
if(findtext(msg,phrase))
if(istype(imp_in, /mob/))
var/mob/T = imp_in
T.gib()
explosion(get_turf(imp_in), 1, 3, 4, 6, 3)
var/turf/t = get_turf(imp_in)
if(t)
t.hotspot_expose(3500,125)
del(src)
implanted(mob/source as mob)
phrase = input("Choose activation phrase:") as text
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
phrase = sanitize_simple(phrase, replacechars)
usr.mind.store_memory("Explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
/obj/item/weapon/implant/death_alarm
name = "death alarm implant"
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
var/mobname = "Will Robinson"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
process()
var/mob/M = imp_in
var/area/t = get_area(M)
if(isnull(M)) // If the mob got gibbed
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
a.autosay("states, \"[mobname] has died-zzzzt in-in-in...\"", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
else if(M.stat == 2)
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
if(istype(t, /area/syndicate_station) || istype(t, /area/syndicate_mothership) || istype(t, /area/shuttle/syndicate_elite) )
//give the syndies a bit of stealth
a.autosay("states, \"[mobname] has died in Space!\"", "[mobname]'s Death Alarm")
else
a.autosay("states, \"[mobname] has died in [t.name]!\"", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
implanted(mob/source as mob)
mobname = source.real_name
processing_objects.Add(src)
/obj/item/weapon/implant/compressed
name = "compressed matter implant"
desc = "Based on compressed matter technology, can store a single item."
var/activation_emote = "sigh"
var/obj/item/scanned = null
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
trigger(emote, mob/source as mob)
if (src.scanned == null)
return 0
if (emote == src.activation_emote)
source << "The air glows as \the [src.scanned.name] uncompresses."
var/turf/t = get_turf(source)
src.scanned.loc = t
del src
implanted(mob/source as mob)
src.activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
/*// --------------------LASERS WORK FROM HERE, AUGMENTATIONS SHIZZLE----------------------
/obj/item/weapon/implant/augmentation/thermalscanner
name = "Thermal Scanner Augmentation"
desc = "Makes you see humans through walls"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen Thermal Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be able to see lifeforms through life using thermal.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's eye functions.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
implanted(M as mob)
if(istype(M, /mob/living/carbon/human))
vision_flags = SEE_MOBS
invisa_view = 2
usr << "You suddenly start seeing body temperatures of whoever is around you."
else
usr << "This implant is not compatible!"
return
/obj/item/weapon/implant/augmentation/mesonscanner
name = "Meson Scanner Augmentation"
desc = "Makes you see floor and wall layouts through walls."
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen Meson Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be able to see floor and wall layouts through walls.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's eye functions.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
implanted(M as mob)
if(istype(M, /mob/living/carbon/human))
vision_flags = SEE_TURFS
usr << "You suddenly start seeing body temperatures of whoever is around you."
else
usr << "This implant is not compatible!"
return
/obj/item/weapon/implant/augmentation/medicalhud
name = "Medical HUD Augmentation"
desc = "Makes you see the medical condition of a person."
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen Med HUD Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be able to see the medical condition of a person.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's eye functions.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
implanted(M as mob)
if(istype(M, /mob/living/carbon/human))
src.hud = new/obj/item/clothing/glasses/hud/health(src)
usr << "You suddenly start seeing body temperatures of whoever is around you."
else
usr << "This implant is not compatible!"
return
/obj/item/weapon/implant/augmentation/securityhud
name = "Security HUD Augmentation"
desc = "Makes you see the Security standings of a person."
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen Sec HUD Implant<BR>
<b>Life:</b> Ten years.<BR>
<b>Important Notes:</b> Personnel injected with this device tend to be able to see the security standings of a person.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's eye functions.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
implanted(M as mob)
if(istype(M, /mob/living/carbon/human))
var/obj/item/clothing/glasses/hud/security/hud = null
src.hud = new/obj/item/clothing/glasses/hud/security(src)
usr << "You suddenly start seeing body temperatures of whoever is around you."
else
usr << "This implant is not compatible!"
return*/
return 1
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/weapon/implantcase
name = "Glass Case"
@@ -25,7 +25,7 @@
..()
if (istype(I, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.equipped() != I)
if (user.get_active_hand() != I)
return
if((!in_range(src, usr) && src.loc != user))
return
@@ -68,7 +68,7 @@
/obj/item/weapon/implantcase/tracking
name = "Glass Case- 'Tracking'"
desc = "A case containing a tracking implant."
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-b"
@@ -80,9 +80,9 @@
/obj/item/weapon/implantcase/explosive
name = "Glass Case- '(BIO-HAZARD) BIO-detpack'"
name = "Glass Case- 'Explosive'"
desc = "A case containing an explosive implant."
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-r"
@@ -96,7 +96,7 @@
/obj/item/weapon/implantcase/chem
name = "Glass Case- 'Chem'"
desc = "A case containing a chemical implant."
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-b"
/obj/item/weapon/implantcase/chem/New()
@@ -108,7 +108,7 @@
/obj/item/weapon/implantcase/loyalty
name = "Glass Case- 'Loyalty'"
desc = "A case containing a loyalty implant."
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-r"
@@ -116,14 +116,3 @@
src.imp = new /obj/item/weapon/implant/loyalty( src )
..()
return
/obj/item/weapon/implantcase/death_alarm
name = "Glass Case- 'Death Alarm'"
desc = "A case containing a death alarm implant."
icon = 'items.dmi'
icon_state = "implantcase-b"
New()
src.imp = new /obj/item/weapon/implant/death_alarm( src )
..()
return
@@ -1,9 +1,9 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/machinery/implantchair
name = "Loyalty Implanter"
desc = "Used to implant occupants with loyalty implants."
icon = 'implantchair.dmi'
icon = 'icons/obj/machines/implantchair.dmi'
icon_state = "implantchair"
density = 1
opacity = 0
@@ -116,7 +116,7 @@
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.pulling = null
M.stop_pulling()
M.loc = src
src.occupant = M
src.add_fingerprint(usr)
@@ -133,10 +133,11 @@
if(istype(imp, /obj/item/weapon/implant/loyalty))
for (var/mob/O in viewers(M, null))
O.show_message("\red [M] has been implanted by the [src.name].", 1)
imp.loc = M
imp.imp_in = M
imp.implanted = 1
imp.implanted(M)
if(imp.implanted(M))
imp.loc = M
imp.imp_in = M
imp.implanted = 1
implant_list -= imp
break
return
@@ -1,6 +1,6 @@
/obj/item/weapon/implanter
name = "implanter"
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implanter0"
item_state = "syringe_0"
throw_speed = 1
@@ -12,46 +12,37 @@
/obj/item/weapon/implanter/update()
if (imp)
icon_state = "implanter1"
if (src.imp)
src.icon_state = "implanter1"
else
icon_state = "implanter0"
src.icon_state = "implanter0"
return
/obj/item/weapon/implanter/attack(mob/M as mob, mob/user as mob)
if (!istype(M, /mob/living/carbon))
return
if (user && imp)
if (M != user)
user.visible_message("\red \The [user] tries to implant \the [M] with \the [src]!","\red You try to implant \the [M] with \the [src]!")
else
user.visible_message("\red \The [user] tries to implant [user.get_visible_gender() == MALE ? "himself" : user.get_visible_gender() == FEMALE ? "herself" : "themselves"] with \the [src]!","\red You try to implant yourself with \the [src]!")
if(!do_mob(user, M,60))
return
if(hasorgans(M))
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
if(target.status & ORGAN_DESTROYED)
user << "What [target.display_name]?"
return
if(!target.implant)
target.implant = list()
target.implant += imp
imp.loc = target
if (M != user)
user.visible_message("\red \The [user] implants \the [M]'s [target.display_name] with \the [src]!","\red You implant \the [M]'s [target.display_name] with \the [src]!")
else
user.visible_message("\red \The [user] implants [user.get_visible_gender() == MALE ? "his" : user.get_visible_gender() == FEMALE ? "her" : "their"] own [target.display_name] with \the [src]!","\red You implant your [target.display_name] with \the [src]!")
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src] ([imp]) by [user] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src] ([imp]) to implant [M] ([M.ckey])</font>")
log_admin("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
message_admins("ATTACK: [user] ([user.ckey]) implanted [M] ([M.ckey]) with [src].")
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
imp.imp_in = M
imp.implanted = 1
imp.implanted(M)
imp = null
icon_state = "implanter0"
if (user && src.imp)
for (var/mob/O in viewers(M, null))
O.show_message("\red [user] is attemping to implant [M].", 1)
var/turf/T1 = get_turf(M)
if (T1 && ((M == user) || do_after(user, 50)))
if(user && M && (get_turf(M) == T1) && src && src.imp)
for (var/mob/O in viewers(M, null))
O.show_message("\red [M] has been implanted by [user].", 1)
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src.name] ([src.imp.name]) by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])</font>")
log_attack("<font color='red'>[user.name] ([user.ckey]) implanted [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
user.show_message("\red You implanted the implant into [M].")
if(src.imp.implanted(M))
src.imp.loc = M
src.imp.imp_in = M
src.imp.implanted = 1
src.imp = null
update()
return
@@ -60,7 +51,7 @@
name = "implanter-loyalty"
/obj/item/weapon/implanter/loyalty/New()
imp = new /obj/item/weapon/implant/loyalty( src )
src.imp = new /obj/item/weapon/implant/loyalty( src )
..()
update()
return
@@ -68,10 +59,10 @@
/obj/item/weapon/implanter/explosive
name = "implanter (E)"
name = "implanter-explosive"
/obj/item/weapon/implanter/explosive/New()
imp = new /obj/item/weapon/implant/explosive( src )
src.imp = new /obj/item/weapon/implant/explosive( src )
..()
update()
return
@@ -83,38 +74,4 @@
src.imp = new /obj/item/weapon/implant/adrenalin(src)
..()
update()
return
/obj/item/weapon/implanter/compressed
name = "implanter (C)"
icon_state = "cimplanter0"
/obj/item/weapon/implanter/compressed/New()
imp = new /obj/item/weapon/implant/compressed( src )
..()
update()
return
/obj/item/weapon/implanter/compressed/update()
if (imp)
var/obj/item/weapon/implant/compressed/c = imp
if(!c.scanned)
icon_state = "cimplanter0"
else
icon_state = "cimplanter1"
else
icon_state = "cimplanter2"
return
/obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob)
var/obj/item/weapon/implant/compressed/c = imp
if (c.scanned == null)
user << "Please scan an object with the implanter first."
return
..()
/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item) && imp)
imp:scanned = A
A.loc.contents.Remove(A)
update()
return
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/weapon/implant/freedom
name = "freedom"
@@ -9,7 +9,7 @@
New()
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
src.activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
src.uses = rand(1, 5)
..()
return
@@ -23,6 +23,18 @@
if (source.handcuffed)
var/obj/item/weapon/W = source.handcuffed
source.handcuffed = null
source.update_inv_handcuffed()
if (source.client)
source.client.screen -= W
if (W)
W.loc = source.loc
dropped(source)
if (W)
W.layer = initial(W.layer)
if (source.legcuffed)
var/obj/item/weapon/W = source.legcuffed
source.legcuffed = null
source.update_inv_legcuffed()
if (source.client)
source.client.screen -= W
if (W)
@@ -30,15 +42,13 @@
dropped(source)
if (W)
W.layer = initial(W.layer)
source.update_clothing()
return
implanted(mob/source as mob)
activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
implanted(mob/source)
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
return
return 1
get_data()
@@ -9,7 +9,7 @@
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Cybersun Industries Nano-Robotic Biological Augmentation Suite<BR>
<b>Life:</b> Infinite. WARNING: Biological chances are irreversable.<BR>
<b>Life:</b> Infinite. WARNING: Biological changes are irreversable.<BR>
<b>Important Notes:</b> <font color='red'>Illegal</font>. Subjects exposed to nanorobotic agent are considered dangerous.<BR>
<HR>
<b>Implant Details:</b><BR>
@@ -19,27 +19,12 @@
return dat
implanted(mob/M as mob)
if(!istype(M, /mob/living/carbon/human)) return
var/mob/living/carbon/human/H = M
H.augmentations.Add(augmentation) // give them the mutation
H << "\blue [augment_text]"
if(istype(src, /obj/item/weapon/implant/nanoaug/eswordsynth))
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
H.mind.store_memory("Freedom nanoaugmentation can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
H << "The nanoaugmentation implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
implanted(mob/M)
if(!istype(M, /mob/living/carbon/human)) return 0
M.augmentations.Add(augmentation) // give them the mutation
M << "\blue [augment_text]"
if(istype(src, /obj/item/weapon/implant/nanoaug/radar))
H << "<font color='#FF0000'>Red</font color> blips on the map are Security."
H << "White blips are civlians."
H << "<font color='#3E710B'>Monochrome Green</font color> blips are cyborgs and AIs."
H << "<font color='#238989'>Light blue</font color> blips are heads of staff."
H << "<font color='#663366'>Purple</font color> blips are unidentified organisms."
H << "Dead biologicals will not display on the radar."
spawn()
H.start_radar()
return
return 1
/obj/item/weapon/implant/nanoaug/strength
@@ -52,6 +37,20 @@
augmentation = RADAR
augment_text = "You begin to sense the presence or lack of presence of others around you."
implanted(mob/M)
if(..())
M << "<font color='#FF0000'>Red</font color> blips on the map are Security."
M << "White blips are civlians."
M << "<font color='#3E710B'>Monochrome Green</font color> blips are cyborgs and AIs."
M << "<font color='#238989'>Light blue</font color> blips are heads of staff."
M << "<font color='#663366'>Purple</font color> blips are unidentified organisms."
M << "Dead biologicals will not display on the radar."
spawn()
var/mob/living/carbon/human/H = M
H.start_radar()
return 1
return 0
/obj/item/weapon/implant/nanoaug/electrichands
name = "Electric Hands"
augmentation = ELECTRICHANDS
@@ -62,6 +61,14 @@
augmentation = ESWORDSYNTH
augment_text = "Your hands throb and pulsate. They feel sharper, and strangely hot."
implanted(mob/M)
if(..())
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
M.mind.store_memory("Freedom nanoaugmentation can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
M << "The nanoaugmentation implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
return 1
return 0
trigger(emote, source as mob)
if(emote == activation_emote)
src.activate(source)
@@ -71,7 +78,7 @@
var/obj/item/weapon/melee/energy/blade/swordspawn = new /obj/item/weapon/melee/energy/blade
if(!source.get_active_hand())
source.put_in_hand(swordspawn)
source.put_in_hands(swordspawn)
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, source.loc)
@@ -1,9 +1,9 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/weapon/implantpad
name = "implantpad"
desc = "Used to modify implants."
icon = 'items.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "implantpad-0"
item_state = "electronic"
throw_speed = 1
@@ -26,15 +26,11 @@
attack_hand(mob/user as mob)
if ((src.case && (user.l_hand == src || user.r_hand == src)))
if (user.hand)
user.l_hand = src.case
else
user.r_hand = src.case
src.case.loc = user
src.case.layer = 20
user.put_in_active_hand(case)
src.case.add_fingerprint(user)
src.case = null
user.update_clothing()
src.add_fingerprint(user)
update()
else