From 1aa4c73e8def533c550aaebd58a69f20cd4544f0 Mon Sep 17 00:00:00 2001
From: Novacat <35587478+Novacat@users.noreply.github.com>
Date: Sat, 27 Aug 2022 08:49:56 -0400
Subject: [PATCH] Revert "[MIRROR] /atom New() => Initialize() [MDB IGNORE]"
---
code/ATMOSPHERICS/atmospherics.dm | 4 +-
.../binary_devices/binary_atmos_base.dm | 4 +-
.../components/binary_devices/circulator.dm | 4 +-
.../components/binary_devices/dp_vent_pump.dm | 15 +-
.../components/binary_devices/passive_gate.dm | 12 +-
.../components/binary_devices/pump.dm | 11 +-
.../components/omni_devices/filter.dm | 4 +-
.../components/omni_devices/mixer.dm | 4 +-
.../components/omni_devices/omni_base.dm | 4 +-
.../components/trinary_devices/filter.dm | 11 +-
.../components/trinary_devices/mixer.dm | 4 +-
.../trinary_devices/trinary_base.dm | 4 +-
.../components/unary/outlet_injector.dm | 11 +-
.../components/unary/unary_base.dm | 4 +-
.../components/unary/vent_pump.dm | 10 +-
.../components/unary/vent_scrubber.dm | 4 +-
code/ATMOSPHERICS/pipes/he_pipes.dm | 4 +-
code/ATMOSPHERICS/pipes/manifold.dm | 4 +-
code/ATMOSPHERICS/pipes/manifold4w.dm | 4 +-
code/ATMOSPHERICS/pipes/pipe_base.dm | 4 +-
code/ATMOSPHERICS/pipes/simple.dm | 4 +-
code/ATMOSPHERICS/pipes/tank.dm | 41 +-
code/ZAS/Fire.dm | 4 +-
code/__defines/subsystems.dm | 7 +-
code/_helpers/turfs.dm | 2 +-
code/_helpers/unsorted.dm | 27 +-
code/_onclick/hud/ability_screen_objects.dm | 11 +-
code/_onclick/hud/screen_objects.dm | 12 +-
.../emergency_shuttle_controller.dm | 4 +-
code/controllers/subsystems/atoms.dm | 91 +--
code/controllers/subsystems/open_space.dm | 96 ---
code/controllers/subsystems/ticker.dm | 2 +-
code/controllers/verbs.dm | 5 +-
code/datums/ghost_query.dm | 8 +-
code/defines/obj/weapon.dm | 10 +-
code/game/area/Space Station 13 areas.dm | 18 +
code/game/area/ai_monitored.dm | 19 +-
code/game/area/areas.dm | 13 +-
code/game/atoms.dm | 31 +-
code/game/atoms_movable.dm | 100 +--
.../gamemodes/changeling/changeling_powers.dm | 2 +-
.../gamemodes/changeling/modularchangling.dm | 2 +-
.../gamemodes/changeling/powers/armblade.dm | 4 +-
.../game/gamemodes/changeling/powers/armor.dm | 8 +-
.../changeling/powers/bioelectrogenesis.dm | 3 +-
.../changeling/powers/electric_lockpick.dm | 3 +-
.../changeling/powers/fabricate_clothing.dm | 6 +-
code/game/gamemodes/cult/construct_spells.dm | 9 +-
code/game/gamemodes/cult/cult_structures.dm | 1 -
code/game/gamemodes/cult/narsie.dm | 9 +-
.../endgame/supermatter_cascade/portal.dm | 5 +-
code/game/gamemodes/events/black_hole.dm | 6 +-
.../gamemodes/events/holidays/Christmas.dm | 3 +
code/game/gamemodes/meteor/meteors.dm | 5 +-
code/game/gamemodes/technomancer/catalog.dm | 4 +-
code/game/gamemodes/technomancer/core_obj.dm | 9 +-
.../technomancer/devices/gloves_of_regen.dm | 4 +-
.../technomancer/devices/shield_armor.dm | 4 +-
code/game/gamemodes/technomancer/equipment.dm | 4 +-
.../game/gamemodes/technomancer/spell_objs.dm | 15 +-
.../technomancer/spells/aspect_aura.dm | 4 +-
.../technomancer/spells/aura/aura.dm | 4 +-
.../gamemodes/technomancer/spells/chroma.dm | 4 +-
.../technomancer/spells/energy_siphon.dm | 4 +-
.../technomancer/spells/flame_tongue.dm | 4 +-
.../technomancer/spells/insert/insert.dm | 10 +-
.../technomancer/spells/instability_tap.dm | 4 +-
.../technomancer/spells/modifier/modifier.dm | 4 +-
.../technomancer/spells/phase_shift.dm | 8 +-
.../gamemodes/technomancer/spells/radiance.dm | 4 +-
.../gamemodes/technomancer/spells/reflect.dm | 4 +-
.../gamemodes/technomancer/spells/shield.dm | 4 +-
.../technomancer/spells/spawner/darkness.dm | 4 +-
.../technomancer/spells/spawner/destablize.dm | 4 +-
.../technomancer/spells/spawner/pulsar.dm | 4 +-
.../technomancer/spells/warp_strike.dm | 4 +-
code/game/machinery/Beacon.dm | 4 +-
code/game/machinery/CableLayer.dm | 7 +-
code/game/machinery/OpTable.dm | 4 +-
code/game/machinery/adv_med.dm | 4 +-
code/game/machinery/ai_slipper.dm | 4 +-
code/game/machinery/air_alarm.dm | 9 +-
code/game/machinery/atm_ret_field.dm | 1 -
.../atmoalter/area_atmos_computer.dm | 2 +-
code/game/machinery/atmoalter/canister.dm | 43 +-
code/game/machinery/atmoalter/clamp.dm | 5 +-
.../atmoalter/portable_atmospherics.dm | 8 +-
code/game/machinery/atmoalter/pump.dm | 4 +-
code/game/machinery/atmoalter/scrubber.dm | 8 +-
code/game/machinery/bioprinter.dm | 2 +-
code/game/machinery/camera/camera.dm | 6 +-
code/game/machinery/camera/presets.dm | 16 +-
code/game/machinery/cloning.dm | 19 +-
code/game/machinery/computer/Operating.dm | 4 +-
code/game/machinery/computer/RCON_Console.dm | 4 +-
code/game/machinery/computer/arcade.dm | 13 +-
code/game/machinery/computer/atmos_alert.dm | 4 +-
code/game/machinery/computer/atmos_control.dm | 3 +
code/game/machinery/computer/crew.dm | 4 +-
code/game/machinery/computer/guestpass.dm | 4 +-
.../machinery/computer/shutoff_monitor.dm | 4 +-
code/game/machinery/cryo.dm | 8 +-
code/game/machinery/cryopod.dm | 20 +-
code/game/machinery/deployable.dm | 4 +-
code/game/machinery/doors/airlock.dm | 28 +-
code/game/machinery/doors/airlock_control.dm | 8 +
code/game/machinery/doors/alarmlock.dm | 7 +-
code/game/machinery/doors/door.dm | 2 +-
code/game/machinery/doors/multi_tile.dm | 4 +-
code/game/machinery/doors/windowdoor.dm | 4 +-
code/game/machinery/doppler_array.dm | 4 +-
code/game/machinery/floodlight.dm | 4 +-
code/game/machinery/floorlayer.dm | 4 +-
code/game/machinery/frame.dm | 4 +-
code/game/machinery/igniter.dm | 7 +-
code/game/machinery/machinery.dm | 11 +-
code/game/machinery/magnet.dm | 8 +-
code/game/machinery/mass_driver.dm | 2 +-
code/game/machinery/navbeacon.dm | 8 +-
code/game/machinery/nuclear_bomb.dm | 8 +-
code/game/machinery/pda_multicaster.dm | 4 +-
code/game/machinery/pipe/pipelayer.dm | 4 +-
code/game/machinery/records_scanner.dm | 3 +-
code/game/machinery/requests_console.dm | 12 -
code/game/machinery/spaceheater.dm | 4 +-
code/game/machinery/suit_storage_unit.dm | 2 +-
code/game/machinery/supplybeacon.dm | 4 +-
code/game/machinery/telecomms/broadcaster.dm | 4 +
code/game/machinery/telecomms/presets.dm | 12 +-
.../machinery/telecomms/telecomunications.dm | 40 +-
code/game/machinery/teleporter.dm | 8 +-
code/game/machinery/transformer.dm | 8 +-
.../machinery/virtual_reality/vr_console.dm | 6 +-
code/game/mecha/combat/durand.dm | 8 +-
code/game/mecha/combat/gygax.dm | 8 +-
code/game/mecha/combat/marauder.dm | 4 +-
code/game/mecha/combat/phazon.dm | 4 +-
.../game/mecha/equipment/tools/cable_layer.dm | 7 +-
code/game/mecha/equipment/tools/shield.dm | 4 +-
code/game/mecha/mecha.dm | 24 +-
code/game/mecha/mecha_parts.dm | 32 +-
code/game/mecha/mecha_wreckage.dm | 24 +-
code/game/mecha/medical/odysseus.dm | 8 +-
code/game/mecha/working/ripley.dm | 4 +-
code/game/objects/effects/alien/aliens.dm | 262 +------
code/game/objects/effects/bump_teleporter.dm | 4 +-
code/game/objects/effects/chem/chemsmoke.dm | 4 +-
code/game/objects/effects/chem/coating.dm | 5 +-
code/game/objects/effects/chem/foam.dm | 4 +-
.../objects/effects/decals/Cleanable/fuel.dm | 23 +-
.../effects/decals/Cleanable/humans.dm | 12 +-
.../objects/effects/decals/Cleanable/misc.dm | 4 +-
code/game/objects/effects/decals/cleanable.dm | 7 +-
code/game/objects/effects/decals/crayon.dm | 5 +-
.../objects/effects/decals/posters/posters.dm | 4 +-
code/game/objects/effects/effect_system.dm | 8 +-
.../objects/effects/explosion_particles.dm | 16 +-
code/game/objects/effects/gibs.dm | 14 +-
code/game/objects/effects/landmarks.dm | 165 +++--
code/game/objects/effects/landmarks_poi_vr.dm | 3 +-
code/game/objects/effects/manifest.dm | 8 +-
code/game/objects/effects/overlays.dm | 10 +-
code/game/objects/effects/prop/columnblast.dm | 8 +-
code/game/objects/effects/prop/snake.dm | 6 +-
.../objects/effects/spawners/bombspawner.dm | 36 +-
.../objects/effects/spawners/gibspawner.dm | 12 +-
code/game/objects/effects/spiders.dm | 13 +-
code/game/objects/effects/step_triggers.dm | 4 +-
.../temporary_visuals/miscellaneous.dm | 1 -
.../projectiles/projectile_effects.dm | 4 +-
code/game/objects/items.dm | 4 +-
code/game/objects/items/antag_spawners.dm | 4 +-
.../game/objects/items/devices/ai_detector.dm | 4 +-
.../devices/communicator/communicator.dm | 12 +-
code/game/objects/items/devices/defib.dm | 8 +-
code/game/objects/items/devices/flashlight.dm | 35 +-
code/game/objects/items/devices/hacktool.dm | 4 +-
.../objects/items/devices/laserpointer.dm | 8 +-
.../objects/items/devices/lightreplacer.dm | 4 +-
code/game/objects/items/devices/paicard.dm | 4 +-
.../objects/items/devices/pipe_painter.dm | 4 +-
.../objects/items/devices/radio/headset.dm | 13 +-
.../objects/items/devices/radio/intercom.dm | 24 +-
.../objects/items/devices/radio/jammer.dm | 3 +-
.../game/objects/items/devices/radio/radio.dm | 16 +-
.../objects/items/devices/scanners/health.dm | 652 +++++++++---------
code/game/objects/items/devices/spy_bug.dm | 15 +-
.../objects/items/devices/taperecorder.dm | 7 +-
code/game/objects/items/devices/tvcamera.dm | 5 +-
code/game/objects/items/devices/uplink.dm | 12 +-
code/game/objects/items/devices/violin.dm | 41 --
code/game/objects/items/glassjar.dm | 4 +-
code/game/objects/items/paintkit.dm | 1 -
code/game/objects/items/poi_items.dm | 4 +-
code/game/objects/items/robot/robot_items.dm | 8 +-
code/game/objects/items/robot/robot_parts.dm | 9 +-
.../objects/items/stacks/marker_beacons.dm | 2 +-
code/game/objects/items/stacks/stack.dm | 2 +-
code/game/objects/items/toys/toys.dm | 7 +-
code/game/objects/items/trash.dm | 9 +-
code/game/objects/items/weapons/candle.dm | 4 +-
.../objects/items/weapons/cigs_lighters.dm | 8 +-
.../circuitboards/computer/camera_monitor.dm | 12 +-
code/game/objects/items/weapons/cosmetics.dm | 3 +-
.../objects/items/weapons/dna_injector.dm | 179 +++--
code/game/objects/items/weapons/ecigs.dm | 51 +-
code/game/objects/items/weapons/explosives.dm | 4 +-
.../objects/items/weapons/flamethrower.dm | 5 +-
code/game/objects/items/weapons/game_kit.dm | 3 +-
.../objects/items/weapons/gift_wrappaper.dm | 4 +-
.../items/weapons/grenades/flashbang.dm | 26 +-
.../items/weapons/grenades/smokebomb.dm | 4 +-
.../objects/items/weapons/id cards/cards.dm | 2 +-
.../objects/items/weapons/implants/implant.dm | 8 +-
.../items/weapons/implants/implantcase.dm | 128 ++--
.../items/weapons/implants/implantchair.dm | 4 +-
.../items/weapons/implants/implantcircuits.dm | 4 +-
.../items/weapons/implants/implanter.dm | 29 +-
.../items/weapons/implants/implantfreedom.dm | 6 +-
.../items/weapons/implants/implantuplink.dm | 6 +-
code/game/objects/items/weapons/manuals.dm | 32 +-
.../objects/items/weapons/material/ashtray.dm | 20 +-
.../objects/items/weapons/material/bats.dm | 20 +-
.../objects/items/weapons/material/foam.dm | 16 +-
.../items/weapons/material/material_armor.dm | 4 +-
.../weapons/material/material_weapons.dm | 4 +-
.../objects/items/weapons/material/shards.dm | 8 +-
.../objects/items/weapons/material/thrown.dm | 4 +-
.../items/weapons/material/twohanded.dm | 4 +-
.../objects/items/weapons/melee/energy.dm | 26 +-
code/game/objects/items/weapons/melee/misc.dm | 8 +-
code/game/objects/items/weapons/mop.dm | 4 +-
code/game/objects/items/weapons/mop_deploy.dm | 3 +-
code/game/objects/items/weapons/paint.dm | 4 +-
code/game/objects/items/weapons/policetape.dm | 4 +-
.../objects/items/weapons/storage/bible.dm | 2 +
.../objects/items/weapons/storage/internal.dm | 8 +-
.../objects/items/weapons/storage/storage.dm | 5 +-
.../objects/items/weapons/storage/wallets.dm | 8 +-
code/game/objects/items/weapons/stunbaton.dm | 17 +-
code/game/objects/items/weapons/syndie.dm | 3 +-
.../objects/items/weapons/tanks/jetpack.dm | 4 +-
.../game/objects/items/weapons/tanks/tanks.dm | 24 +-
code/game/objects/items/weapons/tape.dm | 4 +-
.../objects/items/weapons/tools/combitool.dm | 4 +-
.../objects/items/weapons/tools/crowbar.dm | 4 +-
.../items/weapons/tools/screwdriver.dm | 8 +-
.../items/weapons/tools/weldingtool.dm | 17 +-
.../items/weapons/tools/wirecutters.dm | 8 +-
.../objects/items/weapons/tools/wrench.dm | 4 +-
code/game/objects/items/weapons/towels.dm | 4 +-
code/game/objects/items/weapons/weaponry.dm | 4 +-
code/game/objects/random/_random.dm | 3 +-
code/game/objects/structures/barricades.dm | 8 +-
code/game/objects/structures/barsign.dm | 4 +-
code/game/objects/structures/bonfire.dm | 16 +-
code/game/objects/structures/catwalk.dm | 6 +-
.../crates_lockers/closets/statue.dm | 8 +-
code/game/objects/structures/door_assembly.dm | 6 +-
code/game/objects/structures/electricchair.dm | 2 +-
code/game/objects/structures/extinguisher.dm | 5 +-
code/game/objects/structures/flora/flora.dm | 68 +-
code/game/objects/structures/flora/grass.dm | 12 +-
.../structures/ghost_pods/ghost_pods_vr.dm | 3 +-
.../objects/structures/ghost_pods/human.dm | 2 +-
code/game/objects/structures/girders.dm | 8 +-
code/game/objects/structures/gravemarker.dm | 4 +-
code/game/objects/structures/grille.dm | 4 +-
code/game/objects/structures/inflatable.dm | 4 +-
code/game/objects/structures/janicart.dm | 3 +-
code/game/objects/structures/mirror.dm | 5 +-
code/game/objects/structures/mop_bucket.dm | 4 +-
code/game/objects/structures/musician.dm | 366 ----------
.../objects/structures/props/beam_prism.dm | 1 -
.../game/objects/structures/props/machines.dm | 2 -
code/game/objects/structures/props/statue.dm | 3 +-
code/game/objects/structures/railing.dm | 9 +-
code/game/objects/structures/safe.dm | 5 +-
code/game/objects/structures/signs.dm | 12 +-
code/game/objects/structures/simple_doors.dm | 93 +--
.../structures/stool_bed_chair_nest/bed.dm | 21 +-
.../structures/stool_bed_chair_nest/chairs.dm | 48 +-
.../structures/stool_bed_chair_nest/stools.dm | 27 +-
code/game/objects/structures/transit_tubes.dm | 26 +-
code/game/objects/structures/watercloset.dm | 3 +-
.../objects/structures/windoor_assembly.dm | 5 +-
code/game/objects/structures/window.dm | 43 +-
code/game/socket_talk.dm | 37 +-
code/game/turfs/flooring/flooring_decals.dm | 18 +-
code/game/turfs/simulated.dm | 10 +-
code/game/turfs/simulated/dungeon/wall.dm | 9 +-
code/game/turfs/simulated/floor_types.dm | 8 +-
code/game/turfs/simulated/outdoors/snow.dm | 10 +-
code/game/turfs/simulated/wall_icon.dm | 23 +-
code/game/turfs/simulated/wall_types.dm | 202 +++---
code/game/turfs/simulated/walls.dm | 26 +-
code/game/turfs/turf.dm | 1 -
code/global.dm | 1 -
code/modules/admin/verbs/adminhelp.dm | 12 +-
code/modules/admin/verbs/mapping.dm | 3 +-
code/modules/artifice/deadringer.dm | 4 +-
code/modules/assembly/holder.dm | 4 +-
code/modules/assembly/signaler.dm | 3 +
code/modules/awaymissions/corpse.dm | 1 -
code/modules/awaymissions/exile.dm | 12 +-
code/modules/blob/blob.dm | 12 +-
code/modules/blob2/blobs/core.dm | 1 -
code/modules/blob2/blobs/node.dm | 4 +-
code/modules/blob2/core_chunk.dm | 5 +-
code/modules/blob2/mobs/spore.dm | 4 +-
code/modules/clothing/chameleon.dm | 44 +-
code/modules/clothing/clothing.dm | 12 +-
code/modules/clothing/glasses/glasses.dm | 24 +-
code/modules/clothing/head/fishing.dm | 1 -
code/modules/clothing/masks/miscellaneous.dm | 11 +-
code/modules/clothing/masks/voice.dm | 4 +-
code/modules/clothing/rings/material.dm | 72 +-
code/modules/clothing/rings/rings.dm | 8 +-
code/modules/clothing/spacesuits/breaches.dm | 4 +-
.../clothing/spacesuits/rig/modules/combat.dm | 4 +-
.../spacesuits/rig/modules/computer.dm | 4 +-
.../spacesuits/rig/modules/modules.dm | 4 +-
.../clothing/spacesuits/rig/modules/ninja.dm | 4 +-
.../rig/modules/specific/datajack.dm | 4 +-
.../spacesuits/rig/modules/specific/device.dm | 8 +-
.../rig/modules/specific/jetpack.dm | 4 +-
.../rig/modules/specific/mounted_gun.dm | 4 +-
.../rig/modules/specific/self_destruct.dm | 4 +-
.../spacesuits/rig/modules/specific/vision.dm | 4 +-
.../spacesuits/rig/modules/specific/voice.dm | 4 +-
.../spacesuits/rig/modules/utility.dm | 16 +-
.../clothing/spacesuits/rig/modules/vision.dm | 4 +-
code/modules/clothing/spacesuits/rig/rig.dm | 4 +-
code/modules/clothing/suits/hooded.dm | 4 +-
code/modules/clothing/suits/storage.dm | 8 +-
.../clothing/under/accessories/accessory.dm | 42 +-
.../clothing/under/accessories/clothing.dm | 23 -
code/modules/detectivework/tools/crimekit.dm | 4 +-
.../detectivework/tools/sample_kits.dm | 8 +-
code/modules/detectivework/tools/storage.dm | 12 +-
code/modules/economy/ATM.dm | 4 +-
code/modules/economy/Accounts_DB.dm | 4 +-
code/modules/economy/cash_register.dm | 4 +-
code/modules/economy/coins.dm | 3 +-
code/modules/economy/coins_vr.dm | 3 +-
code/modules/economy/money_bag.dm | 4 +-
code/modules/economy/retail_scanner.dm | 3 +-
.../examine/descriptions/atmospherics.dm | 4 +-
code/modules/flufftext/Hallucination.dm | 4 +-
code/modules/food/food/cans.dm | 8 +-
.../modules/food/food/drinks/drinkingglass.dm | 8 +-
code/modules/food/kitchen/gibber.dm | 5 +-
code/modules/food/kitchen/icecream.dm | 3 +-
code/modules/games/cah.dm | 4 +-
code/modules/games/cardemon.dm | 4 +-
code/modules/games/cards.dm | 4 +-
code/modules/games/dice.dm | 15 +-
code/modules/games/spaceball_cards.dm | 4 +-
code/modules/games/tarot.dm | 4 +-
code/modules/holodeck/HolodeckControl.dm | 4 +-
code/modules/holodeck/HolodeckObjects.dm | 16 +-
code/modules/holomap/station_holomap.dm | 4 +-
.../modules/hydroponics/beekeeping/beehive.dm | 8 +-
code/modules/hydroponics/grown.dm | 12 +-
code/modules/hydroponics/seed_machines.dm | 8 +-
code/modules/hydroponics/seed_storage.dm | 4 +-
.../hydroponics/spreading/spreading.dm | 10 +-
code/modules/hydroponics/trays/tray_soil.dm | 9 +-
.../core/assemblies/device.dm | 8 +-
.../core/integrated_circuit.dm | 4 +-
.../integrated_electronics/core/tools.dm | 52 +-
.../integrated_electronics/passive/power.dm | 4 +-
.../subtypes/data_transfer.dm | 14 +-
.../integrated_electronics/subtypes/input.dm | 12 +-
.../subtypes/manipulation.dm | 4 +-
.../integrated_electronics/subtypes/memory.dm | 4 +-
.../integrated_electronics/subtypes/output.dm | 8 +-
.../subtypes/reagents.dm | 4 +-
code/modules/library/lib_items.dm | 12 +-
code/modules/lighting/lighting_area.dm | 6 +
code/modules/lighting/lighting_atom.dm | 3 -
code/modules/looking_glass/lg_area.dm | 2 +-
code/modules/maps/reader.dm | 2 +-
code/modules/maps/tg/map_template.dm | 2 +-
code/modules/mining/abandonedcrates.dm | 4 +-
.../machinery/machine_input_output_plates.dm | 8 +-
.../mining/machinery/machine_stacking.dm | 8 +-
code/modules/mining/mine_turfs.dm | 9 +-
code/modules/mining/mineral_effect.dm | 4 +-
code/modules/mob/dead/corpse.dm | 7 +-
code/modules/mob/dead/observer/observer.dm | 11 +-
code/modules/mob/freelook/ai/eye.dm | 11 +-
.../mob/freelook/ai/update_triggers.dm | 4 +-
code/modules/mob/freelook/mask/eye.dm | 4 +-
.../mob/freelook/mask/update_triggers.dm | 4 +-
code/modules/mob/freelook/update_triggers.dm | 4 +-
code/modules/mob/living/bot/bot.dm | 7 +-
code/modules/mob/living/bot/cleanbot.dm | 4 +-
code/modules/mob/living/bot/farmbot.dm | 8 +-
code/modules/mob/living/bot/mulebot.dm | 4 +-
code/modules/mob/living/carbon/brain/MMI.dm | 14 +-
.../mob/living/carbon/brain/posibrain.dm | 4 +-
code/modules/mob/living/carbon/brain/robot.dm | 4 +-
code/modules/mob/living/carbon/carbon.dm | 17 +-
.../human/ai_controlled/ai_controlled.dm | 2 +-
code/modules/mob/living/carbon/human/human.dm | 7 +-
.../station/protean_vr/protean_blob.dm | 24 +-
.../human/species/xenomorphs/alien_embryo.dm | 162 -----
.../species/xenomorphs/alien_facehugger.dm | 220 ------
.../human/species/xenomorphs/xenomorphs.dm | 16 +-
code/modules/mob/living/living.dm | 8 +-
code/modules/mob/living/silicon/ai/ai.dm | 29 +-
.../living/silicon/ai/ai_remote_control.dm | 5 +
.../modules/mob/living/silicon/decoy/decoy.dm | 3 +-
code/modules/mob/living/silicon/pai/pai.dm | 20 +-
.../mob/living/silicon/pai/software.dm | 4 +-
.../mob/living/silicon/robot/component.dm | 1 -
.../mob/living/silicon/robot/drone/drone.dm | 4 +-
.../silicon/robot/drone/drone_manufacturer.dm | 3 +
.../modules/mob/living/silicon/robot/robot.dm | 4 +-
.../mob/living/silicon/robot/robot_items.dm | 10 +-
.../silicon/robot/robot_modules/event.dm | 16 +-
.../silicon/robot/robot_modules/station.dm | 138 +---
.../silicon/robot/robot_modules/swarm.dm | 29 +-
.../silicon/robot/robot_modules/syndicate.dm | 34 +-
.../subtypes/thinktank/thinktank_module.dm | 16 +-
.../mob/living/silicon/robot/syndicate.dm | 5 +-
code/modules/mob/living/silicon/silicon.dm | 4 +-
.../simple_mob/subtypes/animal/borer/borer.dm | 4 +-
.../subtypes/animal/farm animals/chicken.dm | 8 +-
.../subtypes/animal/farm animals/cow.dm | 4 +-
.../subtypes/animal/farm animals/goat.dm | 4 +-
.../subtypes/animal/passive/mouse.dm | 11 +-
.../subtypes/occult/constructs/_construct.dm | 4 +-
.../simple_mob/subtypes/vore/leopardmander.dm | 2 +-
code/modules/mob/mob_grab.dm | 12 +-
code/modules/mob/mob_planes.dm | 6 +-
code/modules/mob/new_player/new_player.dm | 7 +-
code/modules/modular_computers/NTNet/NTNet.dm | 2 +-
.../modular_computers/NTNet/NTNet_relay.dm | 7 +-
.../computers/subtypes/dev_telescreen.dm | 4 +-
.../modular_computers/hardware/_hardware.dm | 8 +-
.../hardware/battery_module.dm | 8 +-
.../modular_computers/hardware/hard_drive.dm | 4 +-
.../hardware/network_card.dm | 4 +-
.../hardware/portable_hard_drive.dm | 4 +-
code/modules/multiz/basic.dm | 7 +-
code/modules/multiz/ladders.dm | 6 +-
code/modules/multiz/pipes.dm | 4 +-
code/modules/multiz/stairs.dm | 16 +-
code/modules/multiz/turf.dm | 6 +-
code/modules/multiz/zshadow.dm | 127 ----
code/modules/organs/internal/brain.dm | 12 +-
code/modules/organs/internal/eyes.dm | 8 +-
code/modules/organs/internal/heart.dm | 4 +-
code/modules/organs/internal/kidneys.dm | 4 +-
code/modules/organs/internal/liver.dm | 4 +-
code/modules/organs/internal/lungs.dm | 4 +-
code/modules/organs/internal/voicebox.dm | 12 +-
code/modules/organs/organ.dm | 46 +-
code/modules/organs/organ_external.dm | 7 +-
code/modules/organs/organ_stump.dm | 4 +-
code/modules/organs/robolimbs.dm | 4 +-
code/modules/organs/subtypes/machine.dm | 19 +-
code/modules/organs/subtypes/xenos.dm | 20 +-
code/modules/overmap/ships/computers/ship.dm | 11 -
.../overmap/ships/engines/gas_thruster.dm | 8 +-
code/modules/overmap/ships/engines/thermal.dm | 97 ---
code/modules/paperwork/adminpaper.dm | 4 +-
code/modules/paperwork/clipboard.dm | 3 +-
code/modules/paperwork/faxmachine.dm | 4 +-
code/modules/paperwork/folders.dm | 3 +-
code/modules/paperwork/paper.dm | 37 +-
code/modules/paperwork/paperplane.dm | 2 +-
code/modules/paperwork/papershredder.dm | 4 +-
code/modules/paperwork/pen.dm | 18 +-
code/modules/paperwork/photography.dm | 5 +-
code/modules/pda/ai.dm | 8 +-
code/modules/pda/cart.dm | 2 +-
code/modules/pda/pda.dm | 15 +-
code/modules/pda/pda_subtypes.dm | 36 +-
code/modules/pda/radio.dm | 6 +-
code/modules/persistence/graffiti.dm | 4 +-
code/modules/persistence/noticeboard.dm | 4 +-
code/modules/power/antimatter/computer.dm | 4 +-
code/modules/power/antimatter/control.dm | 4 +-
code/modules/power/antimatter/engine.dm | 8 +-
code/modules/power/antimatter/shielding.dm | 9 +-
code/modules/power/apc.dm | 4 +-
code/modules/power/batteryrack.dm | 4 +-
code/modules/power/cable.dm | 25 +-
code/modules/power/cell.dm | 4 +-
code/modules/power/cells/power_cells.dm | 20 +-
.../modules/power/fusion/core/core_control.dm | 4 +-
code/modules/power/fusion/core/core_field.dm | 4 +-
.../fusion/fuel_assembly/fuel_assembly.dm | 20 +-
.../fusion/fuel_assembly/fuel_control.dm | 4 +-
.../power/fusion/gyrotron/gyrotron_control.dm | 4 +-
code/modules/power/lighting.dm | 21 +-
code/modules/power/pacman2.dm | 9 +-
code/modules/power/sensors/powernet_sensor.dm | 4 +-
.../power/sensors/sensor_monitoring.dm | 4 +-
code/modules/power/singularity/collector.dm | 4 +-
.../power/singularity/field_generator.dm | 4 +-
.../particle_accelerator/particle.dm | 10 +-
.../particle_accelerator/particle_control.dm | 4 +-
code/modules/power/singularity/singularity.dm | 4 +-
code/modules/power/solar.dm | 6 -
code/modules/power/supermatter/supermatter.dm | 6 +-
code/modules/power/terminal.dm | 4 +-
code/modules/power/tesla/coil.dm | 5 +-
code/modules/power/tesla/energy_ball.dm | 7 +-
code/modules/projectiles/ammunition.dm | 8 +-
.../projectiles/ammunition/smartmag.dm | 6 +-
code/modules/projectiles/broken.dm | 13 +-
code/modules/projectiles/brokenguns/energy.dm | 12 +-
.../projectiles/brokenguns/launcher.dm | 4 +-
.../projectiles/brokenguns/magnetic.dm | 4 +-
.../projectiles/brokenguns/projectile.dm | 24 +-
code/modules/projectiles/gun.dm | 5 +-
.../projectiles/guns/automatic_fire.dm | 14 +-
code/modules/projectiles/guns/energy.dm | 4 +-
.../projectiles/guns/launcher/pneumatic.dm | 4 +-
.../projectiles/guns/magnetic/magnetic.dm | 2 +-
code/modules/projectiles/guns/modular_guns.dm | 4 +-
code/modules/projectiles/guns/projectile.dm | 4 +-
.../projectiles/guns/projectile/automatic.dm | 4 +-
.../projectiles/guns/projectile/dartgun.dm | 10 +-
.../projectiles/guns/projectile/pistol.dm | 4 +-
.../projectiles/guns/projectile/revolver.dm | 4 +-
.../projectile/sniper/collapsible_sniper.dm | 12 +-
code/modules/projectiles/guns/vox.dm | 4 +-
code/modules/projectiles/projectile/blob.dm | 6 +-
code/modules/projectiles/projectile/energy.dm | 2 +-
.../targeting/targeting_overlay.dm | 10 +-
code/modules/random_map/automata/diona.dm | 4 +-
.../modules/reagents/machinery/chem_master.dm | 4 +-
.../machinery/dispenser/reagent_tank.dm | 6 +-
.../reagents/reactions/instant/instant_vr.dm | 136 ----
.../reagents/reagent_containers/syringes.dm | 2 +-
.../recycling/disposal-construction.dm | 4 +-
code/modules/recycling/disposal.dm | 28 +-
code/modules/research/message_server.dm | 16 +-
code/modules/research/rdconsole.dm | 4 +-
code/modules/research/research.dm | 6 +-
code/modules/research/server.dm | 5 +-
code/modules/resleeving/implant.dm | 4 +-
code/modules/shieldgen/directional_shield.dm | 4 +-
code/modules/shieldgen/emergency_shield.dm | 6 +-
code/modules/shieldgen/energy_field.dm | 4 +-
code/modules/shieldgen/handheld_defuser.dm | 2 +-
code/modules/shieldgen/sheldwallgen.dm | 10 +-
code/modules/shieldgen/shield_diffuser.dm | 5 +
code/modules/spells/spellbook.dm | 4 +-
.../modules/spells/targeted/ethereal_jaunt.dm | 6 +-
code/modules/tables/debug.dm | 7 +-
code/modules/tables/presets.dm | 108 +--
code/modules/tables/rack.dm | 39 +-
code/modules/tables/update_triggers.dm | 20 +
code/modules/turbolift/_turbolift.dm | 2 +
code/modules/turbolift/turbolift_console.dm | 4 +-
code/modules/turbolift/turbolift_map.dm | 12 +-
code/modules/vehicles/bike.dm | 8 +-
code/modules/vehicles/boat.dm | 27 +-
code/modules/vehicles/cargo_train.dm | 4 +-
code/modules/vehicles/construction.dm | 4 +-
code/modules/vehicles/quad.dm | 18 +-
code/modules/vehicles/vehicle.dm | 4 +-
code/modules/virus2/items_devices.dm | 7 +-
code/modules/vore/eating/slipvore_vr.dm | 4 +-
.../xenoarcheaology/artifacts/artifact.dm | 4 +-
.../xenoarcheaology/artifacts/autocloner.dm | 4 +-
.../xenoarcheaology/artifacts/crystal.dm | 4 +-
.../xenoarcheaology/artifacts/replicator.dm | 4 +-
code/modules/xenoarcheaology/boulder.dm | 3 +-
.../xenoarcheaology/finds/find_spawning.dm | 3 +-
code/modules/xenoarcheaology/finds/finds.dm | 6 +-
code/modules/xenoarcheaology/finds/fossils.dm | 20 +-
code/modules/xenoarcheaology/finds/special.dm | 14 +-
code/modules/xenoarcheaology/sampling.dm | 3 +-
.../tools/ano_device_battery.dm | 9 +-
.../tools/geosample_scanner.dm | 4 +-
code/modules/xenoarcheaology/tools/tools.dm | 11 +-
.../xenoarcheaology/tools/tools_pickaxe.dm | 4 +-
code/modules/xenobio/items/extracts.dm | 4 +-
.../xenobio2/machinery/gene_manipulators.dm | 4 +-
code/modules/xenobio2/mob/slime/slime.dm | 6 +-
code/modules/xenobio2/mob/xeno.dm | 10 +-
code/unit_tests/subsystem_tests.dm | 6 +-
maps/expedition_vr/beach/_beach.dm | 1 -
maps/expedition_vr/space/_debrisfield.dm | 17 +-
maps/southern_cross/overmap/sectors.dm | 8 +
maps/southern_cross/southern_cross_defines.dm | 16 +-
maps/submaps/engine_submaps/engine.dm | 3 +
.../surface_submaps/wilderness/DJOutpost3.dmm | 2 +-
.../surface_submaps/wilderness/DJOutpost4.dmm | 2 +-
maps/tether/tether_turfs.dm | 1 -
tools/Redirector/Redirector.dm | 8 +-
vorestation.dme | 1 +
599 files changed, 3329 insertions(+), 4983 deletions(-)
delete mode 100644 code/controllers/subsystems/open_space.dm
delete mode 100644 code/game/objects/items/devices/violin.dm
delete mode 100644 code/game/objects/structures/musician.dm
delete mode 100644 code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm
delete mode 100644 code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm
delete mode 100644 code/modules/multiz/zshadow.dm
delete mode 100644 code/modules/overmap/ships/engines/thermal.dm
create mode 100644 code/modules/tables/update_triggers.dm
diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm
index 0aae436dcb..a5e1563972 100644
--- a/code/ATMOSPHERICS/atmospherics.dm
+++ b/code/ATMOSPHERICS/atmospherics.dm
@@ -35,8 +35,8 @@ Pipelines + Other Objects -> Pipe network
var/obj/machinery/atmospherics/node1
var/obj/machinery/atmospherics/node2
-/obj/machinery/atmospherics/Initialize(var/ml, newdir)
- . = ..()
+/obj/machinery/atmospherics/New(loc, newdir)
+ ..()
if(!icon_manager)
icon_manager = new()
if(!isnull(newdir))
diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
index 6b49555a3a..cc280d97cc 100644
--- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
@@ -9,8 +9,8 @@
var/datum/pipe_network/network1
var/datum/pipe_network/network2
-/obj/machinery/atmospherics/binary/Initialize()
- . = ..()
+/obj/machinery/atmospherics/binary/New()
+ ..()
air1 = new
air2 = new
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index cca0593f1a..c5fe955523 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -24,8 +24,8 @@
density = TRUE
-/obj/machinery/atmospherics/binary/circulator/Initialize()
- . = ..()
+/obj/machinery/atmospherics/binary/circulator/New()
+ ..()
desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]."
air1.volume = 400
diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
index 131c7888e8..aebea38901 100644
--- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
@@ -42,10 +42,8 @@
//2: Do not pass input_pressure_min
//4: Do not pass output_pressure_max
-/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
+/obj/machinery/atmospherics/binary/dp_vent_pump/New()
+ ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
icon = null
@@ -57,8 +55,8 @@
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
name = "Large Dual Port Air Vent"
-/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/Initialize()
- . = ..()
+/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/New()
+ ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
@@ -196,6 +194,11 @@
return 1
+/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
/obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user)
. = ..()
if(Adjacent(user))
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 02887e8219..686efa6508 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -27,12 +27,10 @@
var/id = null
var/datum/radio_frequency/radio_connection
-/obj/machinery/atmospherics/binary/passive_gate/Initialize()
- . = ..()
+/obj/machinery/atmospherics/binary/passive_gate/New()
+ ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
- if(frequency)
- set_frequency(frequency)
/obj/machinery/atmospherics/binary/passive_gate/Destroy()
unregister_radio(src, frequency)
@@ -168,8 +166,14 @@
)
radio_connection.post_signal(src, signal, radio_filter = RADIO_ATMOSIA)
+
return 1
+/obj/machinery/atmospherics/binary/passive_gate/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
/obj/machinery/atmospherics/binary/passive_gate/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 188f816dce..514216e7fa 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -37,12 +37,10 @@ Thus, the two variables affect pump operation are set in New():
var/id = null
var/datum/radio_frequency/radio_connection
-/obj/machinery/atmospherics/binary/pump/Initialize()
- . = ..()
+/obj/machinery/atmospherics/binary/pump/New()
+ ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
- if(frequency)
- set_frequency(frequency)
/obj/machinery/atmospherics/binary/pump/Destroy()
unregister_radio(src, frequency)
@@ -168,6 +166,11 @@ Thus, the two variables affect pump operation are set in New():
return data
+/obj/machinery/atmospherics/binary/pump/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
/obj/machinery/atmospherics/binary/pump/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm
index 74f77dabde..1b51693389 100644
--- a/code/ATMOSPHERICS/components/omni_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm
@@ -20,8 +20,8 @@
var/list/filtering_outputs = list() //maps gasids to gas_mixtures
-/obj/machinery/atmospherics/omni/atmos_filter/Initialize()
- . = ..()
+/obj/machinery/atmospherics/omni/atmos_filter/New()
+ ..()
rebuild_filtering_list()
for(var/datum/omni_port/P in ports)
P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER
diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
index 3dfb13436c..3487482be3 100644
--- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
@@ -24,8 +24,8 @@
var/list/mixing_inputs = list()
-/obj/machinery/atmospherics/omni/mixer/Initialize()
- . = ..()
+/obj/machinery/atmospherics/omni/mixer/New()
+ ..()
if(mapper_set())
var/con = 0
for(var/datum/omni_port/P in ports)
diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
index f19fc58fcf..f0c5498fb3 100644
--- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
@@ -25,8 +25,8 @@
var/list/ports = new()
-/obj/machinery/atmospherics/omni/Initialize()
- . = ..()
+/obj/machinery/atmospherics/omni/New()
+ ..()
icon_state = "base"
ports = new()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index 7e76971377..48085569bc 100755
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -39,8 +39,8 @@
if(frequency)
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
-/obj/machinery/atmospherics/trinary/atmos_filter/Initialize()
- . = ..()
+/obj/machinery/atmospherics/trinary/atmos_filter/New()
+ ..()
switch(filter_type)
if(0) //removing hydrocarbons
filtered_out = list("phoron")
@@ -56,8 +56,6 @@
air1.volume = ATMOS_DEFAULT_VOLUME_FILTER
air2.volume = ATMOS_DEFAULT_VOLUME_FILTER
air3.volume = ATMOS_DEFAULT_VOLUME_FILTER
- if(frequency)
- set_frequency(frequency)
/obj/machinery/atmospherics/trinary/atmos_filter/Destroy()
unregister_radio(src, frequency)
@@ -108,6 +106,11 @@
return 1
+/obj/machinery/atmospherics/trinary/atmos_filter/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
/obj/machinery/atmospherics/trinary/atmos_filter/attack_hand(user) // -- TLE
if(..())
return
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index 87b1eea40c..8cecbc6c65 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -37,8 +37,8 @@
icon_state += "off"
update_use_power(USE_POWER_OFF)
-/obj/machinery/atmospherics/trinary/mixer/Initialize()
- . = ..()
+/obj/machinery/atmospherics/trinary/mixer/New()
+ ..()
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
index 538451bbf6..eaae718b2e 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
@@ -17,8 +17,8 @@
var/datum/pipe_network/network2
var/datum/pipe_network/network3
-/obj/machinery/atmospherics/trinary/Initialize()
- . = ..()
+/obj/machinery/atmospherics/trinary/New()
+ ..()
air1 = new
air2 = new
diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
index 951426f0bc..b4991c0e5d 100644
--- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm
+++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
@@ -24,11 +24,9 @@
level = 1
-/obj/machinery/atmospherics/unary/outlet_injector/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/outlet_injector/New()
+ ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more.
- if(frequency)
- set_frequency(frequency)
/obj/machinery/atmospherics/unary/outlet_injector/Destroy()
unregister_radio(src, frequency)
@@ -124,6 +122,11 @@
return 1
+/obj/machinery/atmospherics/unary/outlet_injector/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
/obj/machinery/atmospherics/unary/outlet_injector/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm
index a20a860b02..12d6822ad4 100644
--- a/code/ATMOSPHERICS/components/unary/unary_base.dm
+++ b/code/ATMOSPHERICS/components/unary/unary_base.dm
@@ -13,8 +13,8 @@
var/welded = 0 //defining this here for ventcrawl stuff
-/obj/machinery/atmospherics/unary/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/New()
+ ..()
air_contents = new
air_contents.volume = 200
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index 3571896156..145381146f 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -83,6 +83,8 @@
. = ..()
//soundloop = new(list(src), FALSE)
+/obj/machinery/atmospherics/unary/vent_pump/New()
+ ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
icon = null
@@ -110,8 +112,8 @@
icon_connect_type = "-aux"
connect_types = CONNECT_TYPE_AUX //connects to aux pipes
-/obj/machinery/atmospherics/unary/vent_pump/high_volume/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/vent_pump/high_volume/New()
+ ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
// VOREStation Edit Start - Wall mounted vents
@@ -135,8 +137,8 @@
power_channel = ENVIRON
power_rating = 30000 //15 kW ~ 20 HP
-/obj/machinery/atmospherics/unary/vent_pump/engine/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/vent_pump/engine/New()
+ ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index c50ff795ff..64a57a744e 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -32,8 +32,8 @@
use_power = USE_POWER_IDLE
icon_state = "map_scrubber_on"
-/obj/machinery/atmospherics/unary/vent_scrubber/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/vent_scrubber/New()
+ ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
icon = null
diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/ATMOSPHERICS/pipes/he_pipes.dm
index 0d9e673e68..11f826ae05 100644
--- a/code/ATMOSPHERICS/pipes/he_pipes.dm
+++ b/code/ATMOSPHERICS/pipes/he_pipes.dm
@@ -23,8 +23,8 @@
buckle_lying = 1
// BubbleWrap
-/obj/machinery/atmospherics/pipe/simple/heat_exchanging/Initialize()
- . = ..()
+/obj/machinery/atmospherics/pipe/simple/heat_exchanging/New()
+ ..()
// BubbleWrap END
color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default.
diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm
index 88cb10994e..a02f0e66de 100644
--- a/code/ATMOSPHERICS/pipes/manifold.dm
+++ b/code/ATMOSPHERICS/pipes/manifold.dm
@@ -19,8 +19,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/manifold/Initialize()
- . = ..()
+/obj/machinery/atmospherics/pipe/manifold/New()
+ ..()
alpha = 255
icon = null
diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm
index 3773ebce73..eac8494a65 100644
--- a/code/ATMOSPHERICS/pipes/manifold4w.dm
+++ b/code/ATMOSPHERICS/pipes/manifold4w.dm
@@ -20,8 +20,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/manifold4w/Initialize()
- . = ..()
+/obj/machinery/atmospherics/pipe/manifold4w/New()
+ ..()
alpha = 255
icon = null
diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm
index 04b4595421..0d687b8db0 100644
--- a/code/ATMOSPHERICS/pipes/pipe_base.dm
+++ b/code/ATMOSPHERICS/pipes/pipe_base.dm
@@ -24,10 +24,10 @@
/obj/machinery/atmospherics/pipe/drain_power()
return -1
-/obj/machinery/atmospherics/pipe/Initialize()
+/obj/machinery/atmospherics/pipe/New()
if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/simulated/shuttle/wall) || istype(get_turf(src), /turf/unsimulated/wall))
level = 1
- . = ..()
+ ..()
/obj/machinery/atmospherics/pipe/hides_under_flooring()
return level != 2
diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm
index 2d81d4d0c0..1f427fb151 100644
--- a/code/ATMOSPHERICS/pipes/simple.dm
+++ b/code/ATMOSPHERICS/pipes/simple.dm
@@ -26,8 +26,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/simple/Initialize()
- . = ..()
+/obj/machinery/atmospherics/pipe/simple/New()
+ ..()
// Pipe colors and icon states are handled by an image cache - so color and icon should
// be null. For mapping purposes color is defined in the object definitions.
diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/ATMOSPHERICS/pipes/tank.dm
index 89a1d06d6a..6380786288 100644
--- a/code/ATMOSPHERICS/pipes/tank.dm
+++ b/code/ATMOSPHERICS/pipes/tank.dm
@@ -18,9 +18,9 @@
pipe_flags = PIPING_DEFAULT_LAYER_ONLY
density = TRUE
-/obj/machinery/atmospherics/pipe/tank/Initialize()
+/obj/machinery/atmospherics/pipe/tank/New()
icon_state = "air"
- . = ..()
+ ..()
/obj/machinery/atmospherics/pipe/tank/init_dir()
initialize_directions = dir
@@ -74,25 +74,30 @@
name = "Pressure Tank (Air)"
icon_state = "air_map"
-/obj/machinery/atmospherics/pipe/tank/air/Initialize()
+/obj/machinery/atmospherics/pipe/tank/air/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
+
air_temporary.adjust_multi("oxygen", (start_pressure*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature), \
"nitrogen",(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+
+ ..()
icon_state = "air"
/obj/machinery/atmospherics/pipe/tank/oxygen
name = "Pressure Tank (Oxygen)"
icon_state = "o2_map"
-/obj/machinery/atmospherics/pipe/tank/oxygen/Initialize()
+/obj/machinery/atmospherics/pipe/tank/oxygen/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
+
air_temporary.adjust_gas("oxygen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+ ..()
icon_state = "o2"
/obj/machinery/atmospherics/pipe/tank/nitrogen
@@ -100,24 +105,28 @@
icon_state = "n2_map"
volume = 40000 //Vorestation edit
-/obj/machinery/atmospherics/pipe/tank/nitrogen/Initialize()
+/obj/machinery/atmospherics/pipe/tank/nitrogen/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
+
air_temporary.adjust_gas("nitrogen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+ ..()
icon_state = "n2"
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide
name = "Pressure Tank (Carbon Dioxide)"
icon_state = "co2_map"
-/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/Initialize()
+/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
+
air_temporary.adjust_gas("carbon_dioxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+ ..()
icon_state = "co2"
/obj/machinery/atmospherics/pipe/tank/phoron
@@ -125,22 +134,26 @@
icon_state = "phoron_map"
connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_FUEL
-/obj/machinery/atmospherics/pipe/tank/phoron/Initialize()
+/obj/machinery/atmospherics/pipe/tank/phoron/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
+
air_temporary.adjust_gas("phoron", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+ ..()
icon_state = "phoron"
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide
name = "Pressure Tank (Nitrous Oxide)"
icon_state = "n2o_map"
-/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/Initialize()
+/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T0C
+
air_temporary.adjust_gas("nitrous_oxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
- . = ..()
+
+ ..()
icon_state = "n2o"
diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm
index cd765f0757..015ffa36a9 100644
--- a/code/ZAS/Fire.dm
+++ b/code/ZAS/Fire.dm
@@ -179,8 +179,8 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin
animate(src, color = fire_color(air_contents.temperature), 5)
set_light(l_color = color)
-/obj/fire/Initialize(var/ml, fl)
- . = ..()
+/obj/fire/New(newLoc,fl)
+ ..()
if(!istype(loc, /turf))
qdel(src)
diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm
index 0c93c81e28..8ed8125dac 100644
--- a/code/__defines/subsystems.dm
+++ b/code/__defines/subsystems.dm
@@ -19,10 +19,9 @@
#define TIMER_ID_NULL -1
-#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize
-#define INITIALIZATION_INSSATOMS_LATE 1 //New should not call Initialize; after the first pass is complete (handled differently)
-#define INITIALIZATION_INNEW_MAPLOAD 2 //New should call Initialize(TRUE)
-#define INITIALIZATION_INNEW_REGULAR 3 //New should call Initialize(FALSE)
+#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize
+#define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE)
+#define INITIALIZATION_INNEW_REGULAR 2 //New should call Initialize(FALSE)
#define INITIALIZE_HINT_NORMAL 0 //Nothing happens
#define INITIALIZE_HINT_LATELOAD 1 //Call LateInitialize
diff --git a/code/_helpers/turfs.dm b/code/_helpers/turfs.dm
index 9de7b925ad..ddfcec7421 100644
--- a/code/_helpers/turfs.dm
+++ b/code/_helpers/turfs.dm
@@ -121,7 +121,7 @@
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
- if(!SS.landed_holder) SS.landed_holder = new(SS)
+ if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index f09cb94b0e..84844936c4 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -726,7 +726,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
- if(!SS.landed_holder) SS.landed_holder = new(SS)
+ if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
@@ -1167,13 +1167,15 @@ var/list/WALLITEMS = list(
var/color = hex ? hex : "#[num2hex(red, 2)][num2hex(green, 2)][num2hex(blue, 2)]"
return "___"
-
var/mob/dview/dview_mob = new
//Version of view() which ignores darkness, because BYOND doesn't have it.
/proc/dview(var/range = world.view, var/center, var/invis_flags = 0)
if(!center)
return
+ if(!dview_mob) //VOREStation Add: Debugging
+ dview_mob = new
+ log_error("Had to recreate the dview mob!")
dview_mob.loc = center
@@ -1184,10 +1186,10 @@ var/mob/dview/dview_mob = new
/mob/dview
invisibility = 101
- density = 0
+ density = FALSE
- anchored = 1
- simulated = 0
+ anchored = TRUE
+ simulated = FALSE
see_in_dark = 1e6
@@ -1196,8 +1198,8 @@ var/mob/dview/dview_mob = new
color = origin.color
set_light(origin.light_range, origin.light_power, origin.light_color)
-/mob/dview/Initialize()
- . = ..()
+/mob/dview/New()
+ ..()
// We don't want to be in any mob lists; we're a dummy not a mob.
mob_list -= src
if(stat == DEAD)
@@ -1205,17 +1207,18 @@ var/mob/dview/dview_mob = new
else
living_mob_list -= src
+/mob/dview/Life()
+ mob_list -= src
+ dead_mob_list -= src
+ living_mob_list -= src
+
/mob/dview/Destroy(var/force)
- crash_with("Attempt to delete the dview_mob: [log_info_line(src)]")
+ stack_trace("Attempt to delete the dview_mob: [log_info_line(src)]")
if (!force)
return QDEL_HINT_LETMELIVE
global.dview_mob = new
return ..()
-// call to generate a stack trace and print to runtime logs
-/proc/crash_with(msg)
- CRASH(msg)
-
/proc/screen_loc2turf(scr_loc, turf/origin)
var/tX = splittext(scr_loc, ",")
var/tY = splittext(tX[2], ":")
diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm
index c92da9293d..cb500b4fe3 100644
--- a/code/_onclick/hud/ability_screen_objects.dm
+++ b/code/_onclick/hud/ability_screen_objects.dm
@@ -12,13 +12,12 @@
var/mob/my_mob = null // The mob that possesses this hud object.
-/obj/screen/movable/ability_master/Initialize(ml, owner)
- . = ..()
+/obj/screen/movable/ability_master/New(owner)
if(owner)
my_mob = owner
update_abilities(0, owner)
else
- message_admins("ERROR: ability_master's Initialize() was not given an owner argument. This is a bug.")
+ message_admins("ERROR: ability_master's New() was not given an owner argument. This is a bug.")
/obj/screen/movable/ability_master/Destroy()
. = ..()
@@ -179,10 +178,10 @@
ability_master.toggle_open(1)
client.screen -= ability_master
-/mob/Initialize()
- . = ..()
+/mob/New()
+ ..()
if(!ability_master) //VOREStation Edit: S H A D E K I N
- ability_master = new /obj/screen/movable/ability_master(null, src)
+ ability_master = new /obj/screen/movable/ability_master(src)
///////////ACTUAL ABILITIES////////////
//This is what you click to do things//
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index c9c15433d4..8954bf45bc 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -661,9 +661,8 @@
plane = PLANE_PLAYER_HUD_ABOVE
var/client/holder
-INITIALIZE_IMMEDIATE(/obj/screen/splash)
-/obj/screen/splash/Initialize(var/ml, client/C, visible)
- . = ..(ml)
+/obj/screen/splash/New(client/C, visible)
+ . = ..()
holder = C
@@ -731,9 +730,6 @@ INITIALIZE_IMMEDIATE(/obj/screen/splash)
var/obj/screen/mapper/extras_holder/extras_holder
/obj/screen/movable/mapper_holder/Initialize(mapload, newowner)
-
- . = ..()
-
owner = newowner
mask_full = new(src) // Full white square mask
@@ -821,8 +817,8 @@ INITIALIZE_IMMEDIATE(/obj/screen/splash)
mouse_opacity = 0
var/obj/screen/movable/mapper_holder/parent
-/obj/screen/mapper/Initialize()
- . = ..()
+/obj/screen/mapper/New()
+ ..()
parent = loc
/obj/screen/mapper/Destroy()
diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm
index 41c57ecb72..b5fa776f7f 100644
--- a/code/controllers/emergency_shuttle_controller.dm
+++ b/code/controllers/emergency_shuttle_controller.dm
@@ -251,8 +251,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle = new
layer = TURF_LAYER
plane = TURF_PLANE
-/obj/effect/bgstar/Initialize()
- . = ..()
+/obj/effect/bgstar/New()
+ ..()
pixel_x += rand(-2,30)
pixel_y += rand(-2,30)
var/starnum = pick("1", "1", "1", "2", "3", "4")
diff --git a/code/controllers/subsystems/atoms.dm b/code/controllers/subsystems/atoms.dm
index 335949fa12..a62c5265c5 100644
--- a/code/controllers/subsystems/atoms.dm
+++ b/code/controllers/subsystems/atoms.dm
@@ -8,54 +8,52 @@ SUBSYSTEM_DEF(atoms)
init_order = INIT_ORDER_ATOMS
flags = SS_NO_FIRE
- // override and GetArguments() exists for mod-override/downstream hook functionality.
- // Useful for total-overhaul type modifications.
- var/adjust_init_arguments = FALSE
-
- var/atom_init_stage = INITIALIZATION_INSSATOMS
- var/old_init_stage
+ var/static/initialized = INITIALIZATION_INSSATOMS
+ // var/list/created_atoms // This is never used, so don't bother. ~Leshana
+ var/static/old_initialized
var/list/late_loaders
+ var/list/created_atoms
+
var/list/BadInitializeCalls = list()
/datum/controller/subsystem/atoms/Initialize(timeofday)
setupgenetics() //to set the mutations' place in structural enzymes, so initializers know where to put mutations.
- atom_init_stage = INITIALIZATION_INNEW_MAPLOAD
+ initialized = INITIALIZATION_INNEW_MAPLOAD
+ to_world_log("Initializing objects")
+ admin_notice("Initializing objects", R_DEBUG)
InitializeAtoms()
return ..()
-/datum/controller/subsystem/atoms/proc/InitializeAtoms(var/list/supplied_atoms)
-
- if(atom_init_stage <= INITIALIZATION_INSSATOMS_LATE)
+/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms)
+ if(initialized == INITIALIZATION_INSSATOMS)
return
- atom_init_stage = INITIALIZATION_INNEW_MAPLOAD
+ initialized = INITIALIZATION_INNEW_MAPLOAD
LAZYINITLIST(late_loaders)
+ var/count
var/list/mapload_arg = list(TRUE)
- var/count = LAZYLEN(supplied_atoms)
- if(count)
- while(supplied_atoms.len)
- var/atom/A = supplied_atoms[supplied_atoms.len]
- supplied_atoms.len--
+ if(atoms)
+ created_atoms = list()
+ count = atoms.len
+ for(var/atom/A as anything in atoms)
if(!A.initialized)
- InitAtom(A, GetArguments(A, mapload_arg))
+ if(InitAtom(A, mapload_arg))
+ atoms -= A
CHECK_TICK
- else if(!subsystem_initialized)
- // If wondering why not just store all atoms in a list and use the block above: that turns out unbearably expensive.
- // Instead, atoms without extra arguments in New created on server start are fished out of world directly.
- // We do this exactly once.
-
- for(var/atom/A in world)
+ else
+ count = 0
+ for(var/atom/A in world) // This must be world, since this operation adds all the atoms to their specific lists.
if(!A.initialized)
- InitAtom(A, GetArguments(A, mapload_arg, FALSE))
+ InitAtom(A, mapload_arg)
++count
CHECK_TICK
- report_progress("Initialized [count] atom\s")
+ log_world("Initialized [count] atoms")
- atom_init_stage = INITIALIZATION_INNEW_REGULAR
+ initialized = INITIALIZATION_INNEW_REGULAR
if(late_loaders.len)
for(var/atom/A as anything in late_loaders)
@@ -64,8 +62,12 @@ SUBSYSTEM_DEF(atoms)
testing("Late initialized [late_loaders.len] atoms")
late_loaders.Cut()
+ // Nothing ever checks return value of this proc, so don't bother. If this ever changes fix code in /atom/New() ~Leshana
+ // if(atoms)
+ // . = created_atoms + atoms
+ // created_atoms = null
+
/datum/controller/subsystem/atoms/proc/InitAtom(atom/A, list/arguments)
- LAZYREMOVE(global.pre_init_created_atoms, A)
var/the_type = A.type
if(QDELING(A))
BadInitializeCalls[the_type] |= BAD_INIT_QDEL_BEFORE
@@ -84,9 +86,9 @@ SUBSYSTEM_DEF(atoms)
switch(result)
if(INITIALIZE_HINT_LATELOAD)
if(arguments[1]) //mapload
- late_loaders[A] = arguments
+ late_loaders += A
else
- A.LateInitialize(arglist(arguments))
+ A.LateInitialize()
if(INITIALIZE_HINT_QDEL)
qdel(A)
qdeleted = TRUE
@@ -100,37 +102,18 @@ SUBSYSTEM_DEF(atoms)
return qdeleted || QDELING(A)
-// override and GetArguments() exists for mod-override/downstream hook functionality.
-// Useful for total-overhaul type modifications.
-/atom/proc/AdjustInitializeArguments(list/arguments)
- // Lists are passed by reference so can simply modify the arguments list without returning it
-
-/datum/controller/subsystem/atoms/proc/GetArguments(atom/A, list/mapload_arg, created=TRUE)
- if(!created && !adjust_init_arguments)
- return mapload_arg // Performance optimization. Nothing to do.
- var/list/arguments = mapload_arg.Copy()
- var/extra_args = LAZYACCESS(global.pre_init_created_atoms, A)
- if(created && extra_args)
- arguments += extra_args
- if(adjust_init_arguments)
- A.AdjustInitializeArguments(arguments)
- return arguments
-
-/datum/controller/subsystem/atoms/stat_entry(msg)
- ..("Bad Initialize Calls:[BadInitializeCalls.len]")
-
/datum/controller/subsystem/atoms/proc/map_loader_begin()
- old_init_stage = atom_init_stage
- atom_init_stage = INITIALIZATION_INSSATOMS_LATE
+ old_initialized = initialized
+ initialized = INITIALIZATION_INSSATOMS
/datum/controller/subsystem/atoms/proc/map_loader_stop()
- atom_init_stage = old_init_stage
+ initialized = old_initialized
/datum/controller/subsystem/atoms/Recover()
- atom_init_stage = SSatoms.atom_init_stage
- if(atom_init_stage == INITIALIZATION_INNEW_MAPLOAD)
+ initialized = SSatoms.initialized
+ if(initialized == INITIALIZATION_INNEW_MAPLOAD)
InitializeAtoms()
- old_init_stage = SSatoms.old_init_stage
+ old_initialized = SSatoms.old_initialized
BadInitializeCalls = SSatoms.BadInitializeCalls
/datum/controller/subsystem/atoms/proc/InitLog()
diff --git a/code/controllers/subsystems/open_space.dm b/code/controllers/subsystems/open_space.dm
deleted file mode 100644
index 735a221f56..0000000000
--- a/code/controllers/subsystems/open_space.dm
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Controller handling icon updates of open space turfs
-//
-
-GLOBAL_VAR_INIT(open_space_initialised, FALSE)
-
-SUBSYSTEM_DEF(open_space)
- name = "Open Space"
- wait = 2 // 5 times per second.
- init_order = INIT_ORDER_OPENSPACE
- var/list/turfs_to_process = list() // List of turfs queued for update.
- var/list/turfs_to_process_old = null // List of turfs currently being updated.
- var/counter = 1 // Can't use .len because we need to iterate in order
- var/static/image/over_OS_darkness // Image overlayed over the bottom turf with stuff in it.
-
-/datum/controller/subsystem/open_space/Initialize(timeofday)
- over_OS_darkness = image('icons/turf/open_space.dmi', "black_open")
- over_OS_darkness.plane = OVER_OPENSPACE_PLANE
- over_OS_darkness.layer = MOB_LAYER
- initialize_open_space()
- // Pre-process open space turfs once before the round starts.
- fire(FALSE, TRUE)
- return ..()
-
-/datum/controller/subsystem/open_space/Recover()
- flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
- . = ..()
-
-/datum/controller/subsystem/open_space/fire(resumed = 0, init_tick_checks = FALSE)
- // We use a different list so any additions to the update lists during a delay from MC_TICK_CHECK
- // don't cause things to be cut from the list without being updated.
-
- //If we're not resuming, this must mean it's a new iteration so we have to grab the turfs
- if (!resumed)
- src.counter = 1
- src.turfs_to_process_old = turfs_to_process
- turfs_to_process = list()
-
- //cache for sanic speed (lists are references anyways)
- var/list/turfs_to_process_old = src.turfs_to_process_old
- var/counter = src.counter
- while(counter <= turfs_to_process_old.len)
- var/turf/T = turfs_to_process_old[counter]
- counter += 1
- if(!QDELETED(T))
- update_turf(T)
- if (init_tick_checks)
- CHECK_TICK // Used during initialization processing
- else if (MC_TICK_CHECK)
- src.counter = counter // Save for when we're resumed
- return // Used during normal MC processing.
-
-/datum/controller/subsystem/open_space/proc/update_turf(var/turf/T)
- for(var/atom/movable/A in T)
- A.fall()
- T.update_icon()
-
-/datum/controller/subsystem/open_space/proc/add_turf(var/turf/T, var/recursive = 0)
- ASSERT(isturf(T))
- // Check for multiple additions
- // Pointless to process the same turf twice. But we need to push it to the end of the list
- // because any turfs below it need to process first.
- turfs_to_process -= T
- turfs_to_process += T
- if(recursive > 0)
- var/turf/above = GetAbove(T)
- if(above && isopenspace(above))
- add_turf(above, recursive)
-
-// Queue the initial updates of open space turfs when the game starts. This will lag!
-/datum/controller/subsystem/open_space/proc/initialize_open_space()
- // Do initial setup from bottom to top.
- for(var/zlevel = 1 to world.maxz)
- for(var/turf/simulated/open/T in block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)))
- add_turf(T)
- CHECK_TICK
- GLOB.open_space_initialised = TRUE
-
-/datum/controller/subsystem/open_space/stat_entry(msg_prefix)
- return ..("T [turfs_to_process.len]")
-
-/obj/update_icon()
- . = ..()
- if(GLOB.open_space_initialised && !invisibility && isturf(loc))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].update_icon()")
- SSopen_space.add_turf(T, 1)
-
-// We probably should hook Destroy() If we can think of something more efficient, lets hear it.
-/obj/Destroy()
- if(GLOB.open_space_initialised && !invisibility && isturf(loc))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- SSopen_space.add_turf(T, 1)
- . = ..() // Important that this be at the bottom, or we will have been moved to nullspace.
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index ad20bbb889..4c6c5e4426 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -416,7 +416,7 @@ var/global/datum/controller/subsystem/ticker/ticker
if(new_char)
qdel(player)
if(new_char.client)
- var/obj/screen/splash/S = new(null, new_char.client, TRUE)
+ var/obj/screen/splash/S = new(new_char.client, TRUE)
S.Fade(TRUE)
// If they're a carbon, they can get manifested
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index 9ba4923aa0..da3e8e1baf 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -7,9 +7,8 @@
blocks_emissive = FALSE
var/target
-INITIALIZE_IMMEDIATE(/obj/effect/statclick)
-/obj/effect/statclick/Initialize(ml, text, target)
- . = ..(ml)
+/obj/effect/statclick/New(loc, text, target) //Don't port this to Initialize it's too critical
+ ..()
name = text
src.target = target
diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm
index 83015e6be1..6a342f5820 100644
--- a/code/datums/ghost_query.dm
+++ b/code/datums/ghost_query.dm
@@ -20,10 +20,10 @@
// Then wait awhile.
while(!finished)
- spawn(1 SECOND)
- wait_time -= 1 SECOND
- if(wait_time <= 0)
- finished = TRUE
+ sleep(1 SECOND)
+ wait_time -= 1 SECOND
+ if(wait_time <= 0)
+ finished = TRUE
// Prune the list after the wait, incase any candidates logged out.
for(var/mob/observer/dead/D as anything in candidates)
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 6721ca7027..efb84bbc85 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -47,9 +47,9 @@
/obj/item/weapon/soap/deluxe
icon_state = "soapdeluxe"
-/obj/item/weapon/soap/deluxe/Initialize()
+/obj/item/weapon/soap/deluxe/New()
desc = "A deluxe Waffle Co. brand bar of soap. Smells of [pick("lavender", "vanilla", "strawberry", "chocolate" ,"space")]."
- . = ..()
+ ..()
/obj/item/weapon/soap/syndie
desc = "An untrustworthy bar of soap. Smells of fear."
@@ -406,10 +406,10 @@
drop_sound = 'sound/items/drop/component.ogg'
pickup_sound = 'sound/items/pickup/component.ogg'
-/obj/item/weapon/stock_parts/Initialize()
+/obj/item/weapon/stock_parts/New()
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
- . = ..()
+ ..()
/obj/item/weapon/stock_parts/get_rating()
return rating
@@ -434,7 +434,7 @@
var/charge = 0
var/max_charge = 1000
-/obj/item/weapon/stock_parts/capacitor/Initialize()
+/obj/item/weapon/stock_parts/capacitor/New()
. = ..()
max_charge *= rating
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 0dc346ca81..b24169b821 100755
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -1833,6 +1833,24 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "Tactical"
ambience = AMBIENCE_HIGHSEC
+
+/*
+ New()
+ ..()
+
+ spawn(10) //let objects set up first
+ for(var/turf/turfToGrayscale in src)
+ if(turfToGrayscale.icon)
+ var/icon/newIcon = icon(turfToGrayscale.icon)
+ newIcon.GrayScale()
+ turfToGrayscale.icon = newIcon
+ for(var/obj/objectToGrayscale in turfToGrayscale) //1 level deep, means tables, apcs, locker, etc, but not locker contents
+ if(objectToGrayscale.icon)
+ var/icon/newIcon = icon(objectToGrayscale.icon)
+ newIcon.GrayScale()
+ objectToGrayscale.icon = newIcon
+*/
+
/area/security/nuke_storage
name = "\improper Vault"
icon_state = "nuke_storage"
diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm
index fc218150d5..84f2c8eb4e 100644
--- a/code/game/area/ai_monitored.dm
+++ b/code/game/area/ai_monitored.dm
@@ -2,12 +2,17 @@
name = "AI Monitored Area"
var/obj/machinery/camera/motioncamera = null
-/area/ai_monitored/LateInitialize()
- . = ..()
- for(var/obj/machinery/camera/M in src)
- if(M.isMotion())
- motioncamera = M
- M.area_motion = src
+
+/area/ai_monitored/New()
+ ..()
+ // locate and store the motioncamera
+ spawn (20) // spawn on a delay to let turfs/objs load
+ for (var/obj/machinery/camera/M in src)
+ if(M.isMotion())
+ motioncamera = M
+ M.area_motion = src
+ return
+ return
/area/ai_monitored/Entered(atom/movable/O)
..()
@@ -17,3 +22,5 @@
/area/ai_monitored/Exited(atom/movable/O)
if (ismob(O) && motioncamera)
motioncamera.lostTarget(O)
+
+
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 579678bd45..d0cdeb0187 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -19,7 +19,7 @@
var/debug = 0
var/requires_power = 1
- var/always_unpowered = 0 //this gets overriden to 1 for space in area/Initialize()
+ var/always_unpowered = 0 //this gets overriden to 1 for space in area/New()
// Power channel status - Is it currently energized?
var/power_equip = TRUE
@@ -55,13 +55,10 @@
var/no_spoilers = FALSE // If true, makes it much more difficult to see what is inside an area with things like mesons.
var/soundproofed = FALSE // If true, blocks sounds from other areas and prevents hearers on other areas from hearing the sounds within.
-/area/New()
- icon_state = ""
- luminosity = !dynamic_lighting
- ..()
-
/area/Initialize()
. = ..()
+ luminosity = !(dynamic_lighting)
+ icon_state = ""
return INITIALIZE_HINT_LATELOAD // Areas tradiationally are initialized AFTER other atoms.
/area/LateInitialize()
@@ -73,10 +70,6 @@
if(no_spoilers)
set_spoiler_obfuscation(TRUE)
- icon = 'icons/turf/areas.dmi'
- icon_state = "white"
- blend_mode = BLEND_MULTIPLY
-
// Changes the area of T to A. Do not do this manually.
// Area is expected to be a non-null instance.
/proc/ChangeArea(var/turf/T, var/area/A)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index e61dd0e956..0234ec9371 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -50,22 +50,27 @@
/// The chat color var, without alpha.
var/chat_color_hover
-var/global/list/pre_init_created_atoms // atom creation ordering means some stuff is trying to init before SSatoms exists, temp workaround
/atom/New(loc, ...)
- //atom creation method that preloads variables at creation
+ // Don't call ..() unless /datum/New() ever exists
+
+ // During dynamic mapload (reader.dm) this assigns the var overrides from the .dmm file
+ // Native BYOND maploading sets those vars before invoking New(), by doing this FIRST we come as close to that behavior as we can.
if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
GLOB._preloader.load(src)
- var/do_initialize = SSatoms?.atom_init_stage
- if(do_initialize > INITIALIZATION_INSSATOMS_LATE)
- args[1] = do_initialize == INITIALIZATION_INNEW_MAPLOAD
- SSatoms.InitAtom(src, args)
- else
- var/list/argument_list
- if(length(args) > 1)
- argument_list = args.Copy(2)
- if(length(argument_list))
- LAZYSET(global.pre_init_created_atoms, src, argument_list)
+ // Pass our arguments to InitAtom so they can be passed to initialize(), but replace 1st with if-we're-during-mapload.
+ var/do_initialize = SSatoms.initialized
+ if(do_initialize > INITIALIZATION_INSSATOMS)
+ args[1] = (do_initialize == INITIALIZATION_INNEW_MAPLOAD)
+ if(SSatoms.InitAtom(src, args))
+ // We were deleted. No sense continuing
+ return
+
+ // Uncomment if anything ever uses the return value of SSatoms.InitializeAtoms ~Leshana
+ // If a map is being loaded, it might want to know about newly created objects so they can be handled.
+ // var/list/created = SSatoms.created_atoms
+ // if(created)
+ // created += src
// Note: I removed "auto_init" feature (letting types disable auto-init) since it shouldn't be needed anymore.
// You can replicate the same by checking the value of the first parameter to initialize() ~Leshana
@@ -77,8 +82,6 @@ var/global/list/pre_init_created_atoms // atom creation ordering means some stuf
// Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE
// Must return an Initialize hint. Defined in code/__defines/subsystems.dm
/atom/proc/Initialize(mapload, ...)
- SHOULD_CALL_PARENT(TRUE)
- SHOULD_NOT_SLEEP(TRUE)
if(QDELETED(src))
stack_trace("GC: -- [type] had initialize() called after qdel() --")
if(initialized)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 6865bc5ffb..ef50823c48 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -427,102 +427,34 @@
continue
src.throw_impact(A,speed)
-/atom/movable/proc/throw_at(atom/target, range, speed, thrower)
- set waitfor = FALSE
- if(!target || !src)
- return 0
- if(target.z != src.z)
- return 0
- //use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target
- src.throwing = 1
- src.thrower = thrower
- src.throw_source = get_turf(src) //store the origin turf
- src.pixel_z = 0
- if(usr)
- if(HULK in usr.mutations)
- src.throwing = 2 // really strong throw!
+/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, datum/callback/callback) //If this returns FALSE then callback will not be called.
+ . = TRUE
+ if (!target || speed <= 0 || QDELETED(src) || (target.z != src.z))
+ return FALSE
- var/dist_travelled = 0
- var/dist_since_sleep = 0
- var/area/a = get_area(src.loc)
+ if (pulledby)
+ pulledby.stop_pulling()
- var/dist_x = abs(target.x - src.x)
- var/dist_y = abs(target.y - src.y)
+ var/datum/thrownthing/TT = new(src, target, range, speed, thrower, callback)
+ throwing = TT
- var/dx
- if (target.x > src.x)
- dx = EAST
- else
- dx = WEST
+ pixel_z = 0
+ if(spin && does_spin)
+ SpinAnimation(4,1)
- var/dy
- if (target.y > src.y)
- dy = NORTH
- else
- dy = SOUTH
-
- var/error
- var/major_dir
- var/major_dist
- var/minor_dir
- var/minor_dist
- if(dist_x > dist_y)
- error = dist_x/2 - dist_y
- major_dir = dx
- major_dist = dist_x
- minor_dir = dy
- minor_dist = dist_y
- else
- error = dist_y/2 - dist_x
- major_dir = dy
- major_dist = dist_y
- minor_dir = dx
- minor_dist = dist_x
-
- range = min(dist_x + dist_y, range)
-
- while(src && target && src.throwing && istype(src.loc, /turf) \
- && ((abs(target.x - src.x)+abs(target.y - src.y) > 0 && dist_travelled < range) \
- || (a && a.has_gravity == 0) \
- || istype(src.loc, /turf/space)))
- // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up
- var/atom/step
- if(error >= 0)
- step = get_step(src, major_dir)
- error -= minor_dist
- else
- step = get_step(src, minor_dir)
- error += major_dist
- if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge
- break
- src.Move(step)
- hit_check(speed)
- dist_travelled++
- dist_since_sleep++
- if(dist_since_sleep >= speed)
- dist_since_sleep = 0
- sleep(1)
- a = get_area(src.loc)
- // and yet it moves
- if(src.does_spin)
- src.SpinAnimation(speed = 4, loops = 1)
-
- //done throwing, either because it hit something or it finished moving
- if(isobj(src)) src.throw_impact(get_turf(src),speed)
- src.throwing = 0
- src.thrower = null
- src.throw_source = null
- fall()
+ SSthrowing.processing[src] = TT
+ if (SSthrowing.state == SS_PAUSED && length(SSthrowing.currentrun))
+ SSthrowing.currentrun[src] = TT
//Overlays
/atom/movable/overlay
var/atom/master = null
anchored = TRUE
-/atom/movable/overlay/Initialize()
+/atom/movable/overlay/New()
for(var/x in src.verbs)
src.verbs -= x
- . = ..()
+ ..()
/atom/movable/overlay/attackby(a, b)
if (src.master)
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index c960fc4772..431b4e06f3 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -88,7 +88,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
verbs.Add(P.verbpath)
if(P.make_hud_button)
if(!src.ability_master)
- src.ability_master = new /obj/screen/movable/ability_master(null, src)
+ src.ability_master = new /obj/screen/movable/ability_master(src)
src.ability_master.add_ling_ability(
object_given = src,
verb_given = P.verbpath,
diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm
index e95148d80b..5563d4f01b 100644
--- a/code/game/gamemodes/changeling/modularchangling.dm
+++ b/code/game/gamemodes/changeling/modularchangling.dm
@@ -344,7 +344,7 @@ var/list/datum/power/changeling/powerinstances = list()
if(Thepower.make_hud_button && Thepower.isVerb)
if(!M.current.ability_master)
- M.current.ability_master = new /obj/screen/movable/ability_master(null, M.current)
+ M.current.ability_master = new /obj/screen/movable/ability_master(M.current)
M.current.ability_master.add_ling_ability(
object_given = M.current,
verb_given = Thepower.verbpath,
diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm
index 6751821695..ffdc9b4ae3 100644
--- a/code/game/gamemodes/changeling/powers/armblade.dm
+++ b/code/game/gamemodes/changeling/powers/armblade.dm
@@ -65,8 +65,8 @@
defend_chance = 40 // The base chance for the weapon to parry.
projectile_parry_chance = 15 // The base chance for a projectile to be deflected.
-/obj/item/weapon/melee/changeling/Initialize()
- . = ..()
+/obj/item/weapon/melee/changeling/New(location)
+ ..()
START_PROCESSING(SSobj, src)
if(ismob(loc))
visible_message("A grotesque weapon forms around [loc.name]\'s arm!",
diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm
index 390c10eea5..5a6db52833 100644
--- a/code/game/gamemodes/changeling/powers/armor.dm
+++ b/code/game/gamemodes/changeling/powers/armor.dm
@@ -41,8 +41,8 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all.
canremove = FALSE
-/obj/item/clothing/suit/space/changeling/Initialize()
- . = ..()
+/obj/item/clothing/suit/space/changeling/New()
+ ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!",
"We inflate our flesh, creating a spaceproof suit!",
@@ -105,8 +105,8 @@
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
slowdown = 1.5
-/obj/item/clothing/suit/space/changeling/armored/Initialize()
- . = ..()
+/obj/item/clothing/suit/space/changeling/armored/New()
+ ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!",
"We harden our flesh, creating a suit of armor!",
diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
index d35a2f2161..ca92d67ff7 100644
--- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
+++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
@@ -113,8 +113,7 @@
agony_amount = 80
electrocute_amount = 20
-/obj/item/weapon/electric_hand/Initialize()
- . = ..()
+/obj/item/weapon/electric_hand/New()
if(ismob(loc))
visible_message("Electrical arcs form around [loc.name]\'s hand!",
"We store a charge of electricity in our hand.",
diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm
index 40ba101f4e..262d90429f 100644
--- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm
+++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm
@@ -32,8 +32,7 @@
icon_state = "electric_hand"
show_examine = FALSE
-/obj/item/weapon/finger_lockpick/Initialize()
- . = ..()
+/obj/item/weapon/finger_lockpick/New()
if(ismob(loc))
to_chat(loc, "We shape our finger to fit inside electronics, and are ready to force them open.")
diff --git a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
index 91b58f42a2..c3c5f2aa15 100644
--- a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
+++ b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
@@ -264,10 +264,12 @@ var/global/list/changeling_fabricated_clothing = list(
access = null
canremove = FALSE
+/obj/item/weapon/card/id/syndicate/changeling/New(mob/user as mob)
+ ..()
+ registered_user = user
+
/obj/item/weapon/card/id/syndicate/changeling/Initialize()
. = ..()
- if(ismob(loc))
- registered_user = loc
access = null
/obj/item/weapon/card/id/syndicate/changeling/verb/shred()
diff --git a/code/game/gamemodes/cult/construct_spells.dm b/code/game/gamemodes/cult/construct_spells.dm
index 57de2b4976..62cdd5bf48 100644
--- a/code/game/gamemodes/cult/construct_spells.dm
+++ b/code/game/gamemodes/cult/construct_spells.dm
@@ -439,9 +439,16 @@
toggled = 0 // Mainly used for overlays.
cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays.
cast_sound = null // Sound file played when this is used.
- needs_core = FALSE // Does not need a core.
var/last_castcheck = null // The last time this spell was cast.
+/obj/item/weapon/spell/construct/New()
+ //..() //This kills the spell, because super on this calls the default spell's New, which checks for a core. Can't have that.
+ if(isliving(loc))
+ owner = loc
+ if(!owner)
+ qdel(src)
+ update_icon()
+
/obj/item/weapon/spell/construct/adjust_instability(var/amount) //The only drawback to the boons of the geometer is the use of a mortal's blood as fuel. Constructs have already paid that price long ago.
return
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index f8a12c3e3b..3740010914 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -154,7 +154,6 @@
return
/obj/effect/gateway/active/Initialize()
- . = ..()
addtimer(CALLBACK(src, .proc/spawn_and_qdel), rand(30, 60) SECONDS)
/obj/effect/gateway/active/proc/spawn_and_qdel()
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index d706703192..9c3504924f 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -16,8 +16,8 @@ var/global/list/narsie_list = list()
consume_range = 3 //How many tiles out do we eat
-/obj/singularity/narsie/Initialize()
- . = ..()
+/obj/singularity/narsie/New()
+ ..()
narsie_list.Add(src)
/obj/singularity/narsie/Destroy()
@@ -40,8 +40,8 @@ var/global/list/narsie_list = list()
var/announce=1
var/cause_hell = 1
-/obj/singularity/narsie/large/Initialize()
- . = ..()
+/obj/singularity/narsie/large/New()
+ ..()
if(announce)
to_world("[uppertext(name)] HAS RISEN")
world << sound('sound/effects/weather/wind/wind_5_1.ogg')
@@ -358,7 +358,6 @@ var/global/list/narsie_list = list()
consume(T)
/obj/singularity/narsie/proc/narsie_spawn_animation()
- set waitfor = FALSE
icon = 'icons/obj/narsie_spawn_anim.dmi'
dir = SOUTH
move_self = 0
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
index 8016ed42f2..a74867d990 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
@@ -14,9 +14,8 @@
consume_range = 6
-
-/obj/singularity/narsie/large/exit/Initialize()
- . = ..()
+/obj/singularity/narsie/large/exit/New()
+ ..()
START_PROCESSING(SSobj, src)
/obj/singularity/narsie/large/exit/update_icon()
diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm
index 2e62b4cf11..b18310ed88 100644
--- a/code/game/gamemodes/events/black_hole.dm
+++ b/code/game/gamemodes/events/black_hole.dm
@@ -8,9 +8,9 @@
density = FALSE
anchored = TRUE
-/obj/effect/bhole/Initialize()
- . = ..()
- addtimer(CALLBACK(src, .proc/controller), 4)
+/obj/effect/bhole/New()
+ spawn(4)
+ controller()
/obj/effect/bhole/proc/controller()
while(src)
diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm
index 65d23e8f5f..e0991edaa2 100644
--- a/code/game/gamemodes/events/holidays/Christmas.dm
+++ b/code/game/gamemodes/events/holidays/Christmas.dm
@@ -23,6 +23,9 @@
desc = "Directions for use: Requires two people, one to pull each end."
var/cracked = 0
+/obj/item/weapon/toy/xmas_cracker/New()
+ ..()
+
/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user)
if( !cracked && (istype(target,/mob/living/silicon) || (istype(target,/mob/living/carbon/human) && !target.get_active_hand())) && target.stat == CONSCIOUS)
target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.")
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 24e411a707..950910fe5f 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -130,7 +130,6 @@
. = ..()
z_original = z
GLOB.meteor_list += src
- SpinAnimation()
/obj/effect/meteor/Move()
if(z != z_original || loc == dest)
@@ -152,6 +151,10 @@
GLOB.meteor_list -= src
return ..()
+/obj/effect/meteor/New()
+ ..()
+ SpinAnimation()
+
/obj/effect/meteor/Bump(atom/A)
if(attempt_vr(src,"Bump_vr",list(A))) return //VOREStation Edit - allows meteors to be deflected by baseball bats
if(A)
diff --git a/code/game/gamemodes/technomancer/catalog.dm b/code/game/gamemodes/technomancer/catalog.dm
index bcf80cee4b..5dd0d64310 100644
--- a/code/game/gamemodes/technomancer/catalog.dm
+++ b/code/game/gamemodes/technomancer/catalog.dm
@@ -73,8 +73,8 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
// Proc: New()
// Parameters: 0
// Description: Sets up the catalog, as shown below.
-/obj/item/weapon/technomancer_catalog/Initialize()
- . = ..()
+/obj/item/weapon/technomancer_catalog/New()
+ ..()
set_up()
// Proc: set_up()
diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm
index 5e44b3b6da..0bdf378582 100644
--- a/code/game/gamemodes/technomancer/core_obj.dm
+++ b/code/game/gamemodes/technomancer/core_obj.dm
@@ -37,8 +37,8 @@
var/max_summons = 10 // Maximum allowed summoned entities. Some cores will have different caps.
var/universal = FALSE // Allows non-technomancers to use the core - VOREStation Add
-/obj/item/weapon/technomancer_core/Initialize()
- . = ..()
+/obj/item/weapon/technomancer_core/New()
+ ..()
START_PROCESSING(SSobj, src)
/obj/item/weapon/technomancer_core/Destroy()
@@ -142,10 +142,9 @@
var/obj/item/weapon/technomancer_core/core = null
var/ability_icon_state = null
-/obj/spellbutton/Initialize(var/ml, var/path, var/new_name, var/new_icon_state)
- . = ..()
+/obj/spellbutton/New(loc, var/path, var/new_name, var/new_icon_state)
if(!path || !ispath(path))
- message_admins("ERROR: /obj/spellbutton/Initialize() was not given a proper path!")
+ message_admins("ERROR: /obj/spellbutton/New() was not given a proper path!")
qdel(src)
src.name = new_name
src.spellpath = path
diff --git a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
index 26dda90524..9d78afe0b2 100644
--- a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
+++ b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
@@ -36,9 +36,9 @@
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null
-/obj/item/clothing/gloves/regen/Initialize()
+/obj/item/clothing/gloves/regen/New()
START_PROCESSING(SSobj, src)
- . = ..()
+ ..()
/obj/item/clothing/gloves/regen/Destroy()
wearer = null
diff --git a/code/game/gamemodes/technomancer/devices/shield_armor.dm b/code/game/gamemodes/technomancer/devices/shield_armor.dm
index eb11f761c7..eec695278f 100644
--- a/code/game/gamemodes/technomancer/devices/shield_armor.dm
+++ b/code/game/gamemodes/technomancer/devices/shield_armor.dm
@@ -24,8 +24,8 @@
var/datum/effect/effect/system/spark_spread/spark_system = null
var/block_percentage = 75
-/obj/item/clothing/suit/armor/shield/Initialize()
- . = ..()
+/obj/item/clothing/suit/armor/shield/New()
+ ..()
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/equipment.dm b/code/game/gamemodes/technomancer/equipment.dm
index aca1ec01af..940e31f3cd 100644
--- a/code/game/gamemodes/technomancer/equipment.dm
+++ b/code/game/gamemodes/technomancer/equipment.dm
@@ -108,7 +108,7 @@
name = "hypo belt"
desc = "A medical belt designed to carry autoinjectors and other medical equipment."
-/obj/item/weapon/storage/belt/medical/technomancer/Initialize()
+/obj/item/weapon/storage/belt/medical/technomancer/New()
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin(src)
@@ -117,7 +117,7 @@
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat(src)
- . = ..()
+ ..()
/datum/technomancer/equipment/belt_of_holding
name = "Belt of Holding"
diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm
index 339ec59c23..f8833d13b2 100644
--- a/code/game/gamemodes/technomancer/spell_objs.dm
+++ b/code/game/gamemodes/technomancer/spell_objs.dm
@@ -18,7 +18,6 @@
var/toggled = 0 // Mainly used for overlays.
var/cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays.
var/cast_sound = null // Sound file played when this is used.
- var/needs_core = TRUE // Does this spell need a core to be usable?
// Proc: on_use_cast()
// Parameters: 1 (user - the technomancer casting the spell)
@@ -111,18 +110,18 @@
// Proc: New()
// Parameters: 0
// Description: Sets owner to equal its loc, links to the owner's core, then applies overlays if needed.
-/obj/item/weapon/spell/Initialize()
- . = ..()
+/obj/item/weapon/spell/New()
+ ..()
if(isliving(loc))
owner = loc
if(owner)
core = owner.get_technomancer_core()
- if(!core && needs_core)
+ if(!core)
to_chat(owner, "You need a Core to do that.")
- return INITIALIZE_HINT_QDEL
- else
- return INITIALIZE_HINT_QDEL
-
+ qdel(src)
+ return
+// if(istype(/obj/item/weapon/technomancer_core, owner.back))
+// core = owner.back
update_icon()
// Proc: Destroy()
diff --git a/code/game/gamemodes/technomancer/spells/aspect_aura.dm b/code/game/gamemodes/technomancer/spells/aspect_aura.dm
index ec5c248639..eec4304d71 100644
--- a/code/game/gamemodes/technomancer/spells/aspect_aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aspect_aura.dm
@@ -41,8 +41,8 @@
aspect = ASPECT_CHROMATIC
var/glow_color = "#FFFFFF"
-/obj/item/weapon/spell/aura/Initialize()
- . = ..()
+/obj/item/weapon/spell/aura/New()
+ ..()
set_light(7, 4, l_color = glow_color)
START_PROCESSING(SSobj, src)
diff --git a/code/game/gamemodes/technomancer/spells/aura/aura.dm b/code/game/gamemodes/technomancer/spells/aura/aura.dm
index 9bdffceac1..be986bb7ee 100644
--- a/code/game/gamemodes/technomancer/spells/aura/aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aura/aura.dm
@@ -6,8 +6,8 @@
aspect = null
var/glow_color = "#FFFFFF"
-/obj/item/weapon/spell/aura/Initialize()
- . = ..()
+/obj/item/weapon/spell/aura/New()
+ ..()
set_light(calculate_spell_power(7), calculate_spell_power(4), l_color = glow_color)
START_PROCESSING(SSobj, src)
log_and_message_admins("has started casting [src].")
diff --git a/code/game/gamemodes/technomancer/spells/chroma.dm b/code/game/gamemodes/technomancer/spells/chroma.dm
index dff834f668..b87a82a0ae 100644
--- a/code/game/gamemodes/technomancer/spells/chroma.dm
+++ b/code/game/gamemodes/technomancer/spells/chroma.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_LIGHT
var/color_to_use = "#FFFFFF"
-/obj/item/weapon/spell/chroma/Initialize()
- . = ..()
+/obj/item/weapon/spell/chroma/New()
+ ..()
set_light(6, 5, l_color = color_to_use)
/obj/effect/temporary_effect/chroma
diff --git a/code/game/gamemodes/technomancer/spells/energy_siphon.dm b/code/game/gamemodes/technomancer/spells/energy_siphon.dm
index 16b82068fd..1659b8f17b 100644
--- a/code/game/gamemodes/technomancer/spells/energy_siphon.dm
+++ b/code/game/gamemodes/technomancer/spells/energy_siphon.dm
@@ -20,8 +20,8 @@
var/list/things_to_siphon = list() //Things which are actually drained as a result of the above not being null.
var/flow_rate = 1000 // Limits how much electricity can be drained per second. Measured by default in god knows what.
-/obj/item/weapon/spell/energy_siphon/Initialize()
- . = ..()
+/obj/item/weapon/spell/energy_siphon/New()
+ ..()
START_PROCESSING(SSobj, src)
/obj/item/weapon/spell/energy_siphon/Destroy()
diff --git a/code/game/gamemodes/technomancer/spells/flame_tongue.dm b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
index a0471fe4ad..9a52c5d82f 100644
--- a/code/game/gamemodes/technomancer/spells/flame_tongue.dm
+++ b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_FIRE
var/obj/item/weapon/weldingtool/spell/welder = null
-/obj/item/weapon/spell/flame_tongue/Initialize()
- . = ..()
+/obj/item/weapon/spell/flame_tongue/New()
+ ..()
set_light(3, 2, l_color = "#FF6A00")
visible_message("\The [loc]'s hand begins to emit a flame.")
welder = new /obj/item/weapon/weldingtool/spell(src)
diff --git a/code/game/gamemodes/technomancer/spells/insert/insert.dm b/code/game/gamemodes/technomancer/spells/insert/insert.dm
index 0d537b35a9..9ac0295e2b 100644
--- a/code/game/gamemodes/technomancer/spells/insert/insert.dm
+++ b/code/game/gamemodes/technomancer/spells/insert/insert.dm
@@ -11,8 +11,8 @@
var/obj/item/weapon/inserted_spell/inserting = null
var/allow_stacking = 0
-/obj/item/weapon/spell/insert/Initialize()
- . = ..()
+/obj/item/weapon/spell/insert/New()
+ ..()
set_light(spell_light_range, spell_light_intensity, l_color = light_color)
/obj/item/weapon/inserted_spell
@@ -20,9 +20,9 @@
var/mob/living/host = null
var/spell_power_at_creation = 1.0 // This is here because the spell object that made this object probably won't exist.
-/obj/item/weapon/inserted_spell/Initialize(var/ml, var/user, var/obj/item/weapon/spell/insert/inserter)
- . = ..()
- host = loc
+/obj/item/weapon/inserted_spell/New(var/newloc, var/user, var/obj/item/weapon/spell/insert/inserter)
+ ..(newloc)
+ host = newloc
origin = user
if(light_color)
spawn(1)
diff --git a/code/game/gamemodes/technomancer/spells/instability_tap.dm b/code/game/gamemodes/technomancer/spells/instability_tap.dm
index e5a80fdafc..ad2c72518b 100644
--- a/code/game/gamemodes/technomancer/spells/instability_tap.dm
+++ b/code/game/gamemodes/technomancer/spells/instability_tap.dm
@@ -14,8 +14,8 @@
cast_methods = CAST_USE
aspect = ASPECT_UNSTABLE
-/obj/item/weapon/spell/instability_tap/Initialize()
- . = ..()
+/obj/item/weapon/spell/instability_tap/New()
+ ..()
set_light(3, 2, l_color = "#FA58F4")
/obj/item/weapon/spell/instability_tap/on_use_cast(mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
index f612f00d3f..3ea278286e 100644
--- a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
+++ b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
@@ -9,8 +9,8 @@
var/spell_light_intensity = 2
var/spell_light_range = 3
-/obj/item/weapon/spell/modifier/Initialize()
- . = ..()
+/obj/item/weapon/spell/modifier/New()
+ ..()
set_light(spell_light_range, spell_light_intensity, l_color = light_color)
/obj/item/weapon/spell/modifier/on_melee_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm
index 0a64aec0b6..7cee437685 100644
--- a/code/game/gamemodes/technomancer/spells/phase_shift.dm
+++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm
@@ -15,8 +15,8 @@
cast_methods = CAST_USE
aspect = ASPECT_TELE
-/obj/item/weapon/spell/phase_shift/Initialize()
- . = ..()
+/obj/item/weapon/spell/phase_shift/New()
+ ..()
set_light(3, 2, l_color = "#FA58F4")
/obj/effect/phase_shift
@@ -28,8 +28,8 @@
/obj/effect/phase_shift/ex_act()
return
-/obj/effect/phase_shift/Initialize()
- . = ..()
+/obj/effect/phase_shift/New()
+ ..()
set_light(3, 5, l_color = "#FA58F4")
START_PROCESSING(SSobj, src)
diff --git a/code/game/gamemodes/technomancer/spells/radiance.dm b/code/game/gamemodes/technomancer/spells/radiance.dm
index 80a7d76ec9..d86428354e 100644
--- a/code/game/gamemodes/technomancer/spells/radiance.dm
+++ b/code/game/gamemodes/technomancer/spells/radiance.dm
@@ -16,8 +16,8 @@
var/power = 250
toggled = 1
-/obj/item/weapon/spell/radiance/Initialize()
- . = ..()
+/obj/item/weapon/spell/radiance/New()
+ ..()
set_light(7, 4, l_color = "#D9D900")
START_PROCESSING(SSobj, src)
log_and_message_admins("has casted [src].")
diff --git a/code/game/gamemodes/technomancer/spells/reflect.dm b/code/game/gamemodes/technomancer/spells/reflect.dm
index b5ca6047a4..07f3595eda 100644
--- a/code/game/gamemodes/technomancer/spells/reflect.dm
+++ b/code/game/gamemodes/technomancer/spells/reflect.dm
@@ -16,8 +16,8 @@
var/damage_to_energy_multiplier = 60.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 1200 energy cost
var/datum/effect/effect/system/spark_spread/spark_system = null
-/obj/item/weapon/spell/reflect/Initialize()
- . = ..()
+/obj/item/weapon/spell/reflect/New()
+ ..()
set_light(3, 2, l_color = "#006AFF")
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/spells/shield.dm b/code/game/gamemodes/technomancer/spells/shield.dm
index 849ea56fbc..b11d5590b0 100644
--- a/code/game/gamemodes/technomancer/spells/shield.dm
+++ b/code/game/gamemodes/technomancer/spells/shield.dm
@@ -18,8 +18,8 @@
var/damage_to_energy_multiplier = 30.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 600 energy cost
var/datum/effect/effect/system/spark_spread/spark_system = null
-/obj/item/weapon/spell/shield/Initialize()
- . = ..()
+/obj/item/weapon/spell/shield/New()
+ ..()
set_light(3, 2, l_color = "#006AFF")
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
index 9a1a7bd365..f54f9b7502 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
@@ -18,8 +18,8 @@
adjust_instability(4)
..()
-/obj/item/weapon/spell/spawner/darkness/Initialize()
- . = ..()
+/obj/item/weapon/spell/spawner/darkness/New()
+ ..()
set_light(6, -20, l_color = "#FFFFFF")
/obj/effect/temporary_effect/darkness
diff --git a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
index a24c020989..9bf6b07281 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_UNSTABLE
spawner_type = /obj/effect/temporary_effect/destablize
-/obj/item/weapon/spell/spawner/destablize/Initialize()
- . = ..()
+/obj/item/weapon/spell/spawner/destablize/New()
+ ..()
set_light(3, 2, l_color = "#C26DDE")
/obj/item/weapon/spell/spawner/destablize/on_ranged_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
index 1594286377..b56ea64e9c 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
@@ -13,8 +13,8 @@
aspect = ASPECT_EMP
spawner_type = /obj/effect/temporary_effect/pulse/pulsar
-/obj/item/weapon/spell/spawner/pulsar/Initialize()
- . = ..()
+/obj/item/weapon/spell/spawner/pulsar/New()
+ ..()
set_light(3, 2, l_color = "#2ECCFA")
/obj/item/weapon/spell/spawner/pulsar/on_ranged_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/warp_strike.dm b/code/game/gamemodes/technomancer/spells/warp_strike.dm
index b0f7712cfa..83a2336ab6 100644
--- a/code/game/gamemodes/technomancer/spells/warp_strike.dm
+++ b/code/game/gamemodes/technomancer/spells/warp_strike.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_TELE
var/datum/effect/effect/system/spark_spread/sparks
-/obj/item/weapon/spell/warp_strike/Initialize()
- . = ..()
+/obj/item/weapon/spell/warp_strike/New()
+ ..()
sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm
index 7fc7fdf98c..f1066caffc 100644
--- a/code/game/machinery/Beacon.dm
+++ b/code/game/machinery/Beacon.dm
@@ -10,8 +10,8 @@
idle_power_usage = 0
var/obj/item/device/radio/beacon/Beacon
-/obj/machinery/bluespace_beacon/Initialize()
- . = ..()
+/obj/machinery/bluespace_beacon/New()
+ ..()
var/turf/T = src.loc
Beacon = new /obj/item/device/radio/beacon
Beacon.invisibility = INVISIBILITY_MAXIMUM
diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm
index 3f9477431a..20677bb0ff 100644
--- a/code/game/machinery/CableLayer.dm
+++ b/code/game/machinery/CableLayer.dm
@@ -8,10 +8,9 @@
var/max_cable = 100
var/on = 0
-/obj/machinery/cablelayer/Initialize()
- cable = new(src)
- cable.amount = 100
- . = ..()
+/obj/machinery/cablelayer/New()
+ cable = new(src, 100)
+ ..()
/obj/machinery/cablelayer/Moved(atom/old_loc, direction, forced = FALSE)
. = ..()
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index 0e22433714..9a5eb65ba6 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -15,8 +15,8 @@
var/strapped = 0.0
var/obj/machinery/computer/operating/computer = null
-/obj/machinery/optable/Initialize()
- . = ..()
+/obj/machinery/optable/New()
+ ..()
for(var/direction in list(NORTH,EAST,SOUTH,WEST))
computer = locate(/obj/machinery/computer/operating, get_step(src, direction))
if(computer)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 54bbc4baca..f33549fc23 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -552,8 +552,8 @@
circuit = /obj/item/weapon/circuitboard/scanner_console
var/printing = null
-/obj/machinery/body_scanconsole/Initialize()
- . = ..()
+/obj/machinery/body_scanconsole/New()
+ ..()
findscanner()
/obj/machinery/body_scanconsole/Destroy()
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index dd897f659d..86f55631a4 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -14,8 +14,8 @@
var/cooldown_on = 0
req_access = list(access_ai_upload)
-/obj/machinery/ai_slipper/Initialize()
- . = ..()
+/obj/machinery/ai_slipper/New()
+ ..()
update_icon()
/obj/machinery/ai_slipper/power_change()
diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm
index 3cb7ac5b34..ca40f0dc53 100644
--- a/code/game/machinery/air_alarm.dm
+++ b/code/game/machinery/air_alarm.dm
@@ -120,9 +120,6 @@
if(!pixel_x && !pixel_y)
offset_airalarm()
first_run()
- set_frequency(frequency)
- if(!master_is_operating())
- elect_master()
/obj/machinery/alarm/Destroy()
unregister_radio(src, frequency)
@@ -157,6 +154,12 @@
update_icon()
+/obj/machinery/alarm/Initialize()
+ . = ..()
+ set_frequency(frequency)
+ if(!master_is_operating())
+ elect_master()
+
/obj/machinery/alarm/process()
if((stat & (NOPOWER|BROKEN)) || shorted)
return
diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm
index 36e92d5281..bcf78539a7 100644
--- a/code/game/machinery/atm_ret_field.dm
+++ b/code/game/machinery/atm_ret_field.dm
@@ -81,7 +81,6 @@
return
/obj/machinery/atmospheric_field_generator/perma/Initialize()
- . = ..()
generate_field()
/obj/machinery/atmospheric_field_generator/update_icon()
diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm
index 82f23e72a6..bfe95bada7 100644
--- a/code/game/machinery/atmoalter/area_atmos_computer.dm
+++ b/code/game/machinery/atmoalter/area_atmos_computer.dm
@@ -14,7 +14,7 @@
//Simple variable to prevent me from doing attack_hand in both this and the child computer
var/zone = "This computer is working on a wireless range, the range is currently limited to "
-/obj/machinery/computer/area_atmos/LateInitialize()
+/obj/machinery/computer/area_atmos/Initialize()
. = ..()
scanscrubbers()
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 4849c78080..cb11dce0b5 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -368,30 +368,30 @@ update_flag
add_fingerprint(usr)
update_icon()
-/obj/machinery/portable_atmospherics/canister/phoron/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/phoron/New()
+ ..()
src.air_contents.adjust_gas("phoron", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/oxygen/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/oxygen/New()
+ ..()
src.air_contents.adjust_gas("oxygen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/New()
+ ..()
src.air_contents.adjust_gas("oxygen", MolesForPressure())
src.air_contents.temperature = 80
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide/New()
+ ..()
air_contents.adjust_gas("nitrous_oxide", MolesForPressure())
src.update_icon()
@@ -407,20 +407,23 @@ update_flag
air_contents = new
return 1
-/obj/machinery/portable_atmospherics/canister/nitrogen/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/nitrogen/New()
+
+ ..()
+
src.air_contents.adjust_gas("nitrogen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide/New()
+ ..()
src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/air/Initialize()
- . = ..()
+
+/obj/machinery/portable_atmospherics/canister/air/New()
+ ..()
var/list/air_mix = StandardAirMix()
src.air_contents.adjust_multi("oxygen", air_mix["oxygen"], "nitrogen", air_mix["nitrogen"])
@@ -429,20 +432,20 @@ update_flag
//R-UST port
// Special types used for engine setup admin verb, they contain double amount of that of normal canister.
-/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/New()
+ ..()
src.air_contents.adjust_gas("nitrogen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/New()
+ ..()
src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/New()
+ ..()
src.air_contents.adjust_gas("phoron", MolesForPressure())
src.update_icon()
return 1
diff --git a/code/game/machinery/atmoalter/clamp.dm b/code/game/machinery/atmoalter/clamp.dm
index 4467376601..a77999a661 100644
--- a/code/game/machinery/atmoalter/clamp.dm
+++ b/code/game/machinery/atmoalter/clamp.dm
@@ -14,8 +14,8 @@
var/datum/pipe_network/network_node1
var/datum/pipe_network/network_node2
-/obj/machinery/clamp/Initialize(var/ml, var/obj/machinery/atmospherics/pipe/simple/to_attach = null)
- . = ..()
+/obj/machinery/clamp/New(loc, var/obj/machinery/atmospherics/pipe/simple/to_attach = null)
+ ..()
if(istype(to_attach))
target = to_attach
else
@@ -23,6 +23,7 @@
if(target)
update_networks()
dir = target.dir
+ return 1
/obj/machinery/clamp/proc/update_networks()
if(!target)
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index 900dc7cd95..6bdf71c525 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -13,14 +13,18 @@
var/start_pressure = ONE_ATMOSPHERE
var/maximum_pressure = 90 * ONE_ATMOSPHERE
-/obj/machinery/portable_atmospherics/Initialize()
+/obj/machinery/portable_atmospherics/New()
..()
//VOREStation Edit - Fix runtime
if(air_contents)
air_contents.volume = volume
air_contents.temperature = T20C
//VOREStation Edit End
-
+
+ return 1
+
+/obj/machinery/portable_atmospherics/Initialize()
+ ..()
return INITIALIZE_HINT_LATELOAD
/obj/machinery/portable_atmospherics/LateInitialize()
diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm
index 8d496eddde..1a502c675f 100644
--- a/code/game/machinery/atmoalter/pump.dm
+++ b/code/game/machinery/atmoalter/pump.dm
@@ -21,8 +21,8 @@
/obj/machinery/portable_atmospherics/powered/pump/filled
start_pressure = 90 * ONE_ATMOSPHERE
-/obj/machinery/portable_atmospherics/powered/pump/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/powered/pump/New()
+ ..()
cell = new/obj/item/weapon/cell/apc(src)
var/list/air_mix = StandardAirMix()
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 80d053eb72..7ab58e2c88 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -20,8 +20,8 @@
var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "nitrous_oxide", "volatile_fuel")
-/obj/machinery/portable_atmospherics/powered/scrubber/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/powered/scrubber/New()
+ ..()
cell = new/obj/item/weapon/cell/apc(src)
/obj/machinery/portable_atmospherics/powered/scrubber/emp_act(severity)
@@ -164,8 +164,8 @@
var/global/gid = 1
var/id = 0
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/Initialize()
- . = ..()
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/New()
+ ..()
cell = null
id = gid
diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm
index e3bf76493c..4c684abb99 100644
--- a/code/game/machinery/bioprinter.dm
+++ b/code/game/machinery/bioprinter.dm
@@ -338,7 +338,7 @@
var/matter_amount_per_sheet = 10
var/matter_type = MAT_STEEL
-/obj/machinery/organ_printer/robot/full/Initialize()
+/obj/machinery/organ_printer/robot/full/New()
. = ..()
stored_matter = max_stored_matter
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 1f1059422e..85f23cb1db 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -42,7 +42,7 @@
var/list/camera_computers_using_this = list()
-/obj/machinery/camera/Initialize()
+/obj/machinery/camera/New()
wires = new(src)
assembly = new(src)
assembly.state = 4
@@ -65,8 +65,8 @@
if(!c_tag)
var/area/A = get_area(src)
c_tag = "[A ? A.name : "Unknown"] #[rand(111,999)]"
+ ..()
// VOREStation Edit End
- . = ..()
/obj/machinery/camera/Destroy()
if(isMotion())
@@ -185,7 +185,7 @@
else
assembly.state = 1
to_chat(user, "You cut \the [src] free from the wall.")
- new /obj/item/stack/cable_coil(src.loc, 2)
+ new /obj/item/stack/cable_coil(src.loc, length=2)
assembly = null //so qdel doesn't eat it.
qdel(src)
diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm
index 52741d6ebe..7e1de88bbb 100644
--- a/code/game/machinery/camera/presets.dm
+++ b/code/game/machinery/camera/presets.dm
@@ -112,8 +112,8 @@ var/global/list/engineering_networks = list(
// EMP
-/obj/machinery/camera/emp_proof/Initialize()
- . = ..()
+/obj/machinery/camera/emp_proof/New()
+ ..()
upgradeEmpProof()
// X-RAY
@@ -133,14 +133,14 @@ var/global/list/engineering_networks = list(
/obj/machinery/camera/xray/research
network = list(NETWORK_RESEARCH)
-/obj/machinery/camera/xray/Initialize()
- . = ..()
+/obj/machinery/camera/xray/New()
+ ..()
upgradeXRay()
// MOTION
-/obj/machinery/camera/motion/Initialize()
- . = ..()
+/obj/machinery/camera/motion/New()
+ ..()
upgradeMotion()
/obj/machinery/camera/motion/engineering_outpost
@@ -155,8 +155,8 @@ var/global/list/engineering_networks = list(
/obj/machinery/camera/all/command
network = list(NETWORK_COMMAND)
-/obj/machinery/camera/all/Initialize()
- . = ..()
+/obj/machinery/camera/all/New()
+ ..()
upgradeEmpProof()
upgradeXRay()
upgradeMotion()
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 2d52929e72..49c917f312 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -456,8 +456,8 @@
icon_state = "pod_g"
-/obj/machinery/clonepod/full/Initialize()
- . = ..()
+/obj/machinery/clonepod/full/New()
+ ..()
for(var/i = 1 to container_limit)
containers += new /obj/item/weapon/reagent_containers/glass/bottle/biomass(src)
@@ -499,8 +499,7 @@
name = "data disk - 'God Emperor of Mankind'"
read_only = 1
-/obj/item/weapon/disk/data/demo/Initialize()
- . = ..()
+/obj/item/weapon/disk/data/demo/New()
initializeDisk()
buf.types=DNA2_BUF_UE|DNA2_BUF_UI
//data = "066000033000000000AF00330660FF4DB002690"
@@ -515,8 +514,8 @@
name = "data disk - 'Mr. Muggles'"
read_only = 1
-/obj/item/weapon/disk/data/monkey/Initialize()
- . = ..()
+/obj/item/weapon/disk/data/monkey/New()
+ ..()
initializeDisk()
buf.types=DNA2_BUF_SE
var/list/new_SE=list(0x098,0x3E8,0x403,0x44C,0x39F,0x4B0,0x59D,0x514,0x5FC,0x578,0x5DC,0x640,0x6A4)
@@ -525,8 +524,8 @@
buf.dna.SE=new_SE
buf.dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF)
-/obj/item/weapon/disk/data/Initialize()
- . = ..()
+/obj/item/weapon/disk/data/New()
+ ..()
var/diskcolor = pick(0,1,2)
icon_state = "datadisk[diskcolor]"
@@ -546,8 +545,8 @@
name = "Diskette Box"
icon_state = "disk_kit"
-/obj/item/weapon/storage/box/disks/Initialize()
- . = ..()
+/obj/item/weapon/storage/box/disks/New()
+ ..()
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index 11c07b74f2..4efec263f8 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -20,8 +20,8 @@
var/healthAlarm = 50
var/oxy = 1 //oxygen beeping toggle
-/obj/machinery/computer/operating/Initialize()
- . = ..()
+/obj/machinery/computer/operating/New()
+ ..()
for(var/direction in list(NORTH,EAST,SOUTH,WEST))
table = locate(/obj/machinery/optable, get_step(src, direction))
if(table)
diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm
index 156f74ffa5..d6df0d2d6d 100644
--- a/code/game/machinery/computer/RCON_Console.dm
+++ b/code/game/machinery/computer/RCON_Console.dm
@@ -15,8 +15,8 @@
var/current_tag = null
var/datum/tgui_module/rcon/rcon
-/obj/machinery/computer/rcon/Initialize()
- . = ..()
+/obj/machinery/computer/rcon/New()
+ ..()
rcon = new(src)
/obj/machinery/computer/rcon/Destroy()
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index fec159f48d..016a96c723 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -96,6 +96,9 @@
/obj/machinery/computer/arcade/battle/Initialize()
. = ..()
+ randomize_characters()
+
+/obj/machinery/computer/arcade/battle/proc/randomize_characters()
var/name_action
var/name_part1
var/name_part2
@@ -188,6 +191,7 @@
turtle = 0
if(emagged)
+ randomize_characters()
emagged = 0
add_fingerprint(usr)
@@ -206,6 +210,7 @@
new /obj/item/clothing/head/collectable/petehat(src.loc)
message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.")
log_game("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.")
+ randomize_characters()
emagged = 0
else if(!contents.len)
feedback_inc("arcade_win_normal")
@@ -339,8 +344,8 @@
var/gameStatus = ORION_STATUS_START
var/canContinueEvent = 0
-/obj/machinery/computer/arcade/orion_trail/Initialize()
- . = ..()
+/obj/machinery/computer/arcade/orion_trail/New()
+ ..()
// Sets up the main trail
stops = list("Pluto","Asteroid Belt","Proxima Centauri","Dead Space","Rigel Prime","Tau Ceti Beta","Black Hole","Space Outpost Beta-9","Orion Prime")
stopblurbs = list(
@@ -1229,8 +1234,8 @@
/// End Payment
-/obj/machinery/computer/arcade/clawmachine/Initialize()
- . = ..()
+/obj/machinery/computer/arcade/clawmachine/New()
+ ..()
/obj/machinery/computer/arcade/clawmachine/attack_hand(mob/living/user)
if(..())
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 9bc132c7f1..24a7d21a5f 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -12,8 +12,8 @@ var/global/list/minor_air_alarms = list()
icon_screen = "alert:0"
light_color = "#e6ffff"
-/obj/machinery/computer/atmos_alert/Initialize()
- . = ..()
+/obj/machinery/computer/atmos_alert/New()
+ ..()
atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
/obj/machinery/computer/atmos_alert/Destroy()
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index 4eac351ce1..869756f987 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -15,6 +15,9 @@
var/list/monitored_alarm_ids = null
var/datum/tgui_module/atmos_control/atmos_control
+/obj/machinery/computer/atmoscontrol/New()
+ ..()
+
/obj/machinery/computer/atmoscontrol/laptop //[TO DO] Change name to PCU and update mapdata to include replacement computers
name = "\improper Atmospherics PCU"
desc = "A personal computer unit. It seems to have only the Atmosphereics Control program installed."
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index fa73834f6f..1af31afe80 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -10,9 +10,9 @@
circuit = /obj/item/weapon/circuitboard/crew
var/datum/tgui_module/crew_monitor/crew_monitor
-/obj/machinery/computer/crew/Initialize()
+/obj/machinery/computer/crew/New()
crew_monitor = new(src)
- . = ..()
+ ..()
/obj/machinery/computer/crew/Destroy()
qdel(crew_monitor)
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 6b6cd3a1ae..24b97e2099 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -101,8 +101,8 @@
var/list/internal_log = list()
var/mode = 0 // 0 - making pass, 1 - viewing logs
-/obj/machinery/computer/guestpass/Initialize()
- . = ..()
+/obj/machinery/computer/guestpass/New()
+ ..()
uid = "[rand(100,999)]-G[rand(10,99)]"
diff --git a/code/game/machinery/computer/shutoff_monitor.dm b/code/game/machinery/computer/shutoff_monitor.dm
index 37eb2060a7..8cc101d804 100644
--- a/code/game/machinery/computer/shutoff_monitor.dm
+++ b/code/game/machinery/computer/shutoff_monitor.dm
@@ -7,8 +7,8 @@
circuit = /obj/item/weapon/circuitboard/shutoff_monitor
var/datum/tgui_module/shutoff_monitor/monitor
-/obj/machinery/computer/shutoff_monitor/Initialize()
- . = ..()
+/obj/machinery/computer/shutoff_monitor/New()
+ ..()
monitor = new(src)
/obj/machinery/computer/shutoff_monitor/Destroy()
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 90b323358f..35a060863e 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -27,24 +27,24 @@
var/image/fluid
-/obj/machinery/atmospherics/unary/cryo_cell/Initialize()
- . = ..()
+/obj/machinery/atmospherics/unary/cryo_cell/New()
+ ..()
icon = 'icons/obj/cryogenics_split.dmi'
icon_state = "base"
initialize_directions = dir
+/obj/machinery/atmospherics/unary/cryo_cell/Initialize()
+ . = ..()
var/image/tank = image(icon,"tank")
tank.alpha = 200
tank.pixel_y = 18
tank.plane = MOB_PLANE
tank.layer = MOB_LAYER+0.2 //Above fluid
-
fluid = image(icon, "tube_filler")
fluid.pixel_y = 18
fluid.alpha = 200
fluid.plane = MOB_PLANE
fluid.layer = MOB_LAYER+0.1 //Below glass, above mob
-
add_overlay(tank)
update_icon()
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 5a210c9136..c0c23f9420 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -289,20 +289,9 @@
time_till_despawn = 60 //1 second, because gateway.
-/obj/machinery/cryopod/robot/door/checkpoint
- name = "automated checkpoint"
- desc = "A reinforced, automated checkpoint tracking arrivals and departures from the outpost. Beyond this vault is a small airstrip, then nothing but untamed wilderness."
- on_store_message = "has departed from the colony."
- on_store_name = "Travel Oversight"
- on_enter_occupant_message = "The checkpoint unseals and grinds open, and you step through."
- on_store_visible_message_1 = "grinds closed after"
- on_store_visible_message_2 = "passes through it."
- time_till_despawn = 10 // 1 second, because math
-
-/obj/machinery/cryopod/Initialize()
- . = ..()
+/obj/machinery/cryopod/New()
announce = new /obj/item/device/radio/intercom(src)
- find_control_computer()
+ ..()
/obj/machinery/cryopod/Destroy()
if(occupant)
@@ -310,6 +299,11 @@
occupant.resting = 1
return ..()
+/obj/machinery/cryopod/Initialize()
+ . = ..()
+
+ find_control_computer()
+
/obj/machinery/cryopod/proc/find_control_computer(urgent=0)
control_computer = null
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 9ea64dc99f..a72d814c79 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -21,8 +21,8 @@ Deployable items
var/locked = 0.0
// req_access = list(access_maint_tunnels)
-/obj/machinery/deployable/barrier/Initialize()
- . = ..()
+/obj/machinery/deployable/barrier/New()
+ ..()
icon_state = "barrier[locked]"
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index bd2a091576..20d0f634da 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1444,15 +1444,8 @@ About the new airlock wires panel:
return 0
return ..(M)
-/obj/machinery/door/airlock/Initialize(var/ml, var/obj/structure/door_assembly/assembly=null)
- if(src.closeOtherId != null)
- for (var/obj/machinery/door/airlock/A in machines)
- if(A.closeOtherId == src.closeOtherId && A != src)
- src.closeOther = A
- break
- name = "\improper [name]"
-
- . = ..()
+/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null)
+ ..()
//if assembly is given, create the new door from the assembly
if (assembly && istype(assembly))
@@ -1480,17 +1473,22 @@ About the new airlock wires panel:
set_dir(assembly.dir)
//wires
- var/turf/T = get_turf(src)
+ var/turf/T = get_turf(newloc)
if(T && (T.z in using_map.admin_levels))
secured_wires = 1
if (secured_wires)
wires = new/datum/wires/airlock/secure(src)
else
wires = new/datum/wires/airlock(src)
-
- if(frequency)
- set_frequency(frequency)
- update_icon()
+
+/obj/machinery/door/airlock/Initialize()
+ if(src.closeOtherId != null)
+ for (var/obj/machinery/door/airlock/A in machines)
+ if(A.closeOtherId == src.closeOtherId && A != src)
+ src.closeOther = A
+ break
+ name = "\improper [name]"
+ . = ..()
/obj/machinery/door/airlock/Destroy()
qdel(wires)
@@ -1555,4 +1553,4 @@ About the new airlock wires panel:
to_chat(user, span("notice", "You deconstruct \the [src]."))
qdel(src)
return TRUE
- return FALSE
\ No newline at end of file
+ return FALSE
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index 9d3e7c4adf..3c91bd7c02 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -132,6 +132,14 @@
frequency = new_frequency
radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
+
+/obj/machinery/door/airlock/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
+
+ update_icon()
+
/obj/machinery/door/airlock/Destroy()
if(frequency && radio_controller)
radio_controller.remove_object(src,frequency)
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index 7508f559a8..f7dda48feb 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -9,6 +9,10 @@
var/air_frequency = 1437
autoclose = 0
+/obj/machinery/door/airlock/alarmlock/New()
+ ..()
+ air_connection = new
+
/obj/machinery/door/airlock/alarmlock/Destroy()
if(radio_controller)
radio_controller.remove_object(src,air_frequency)
@@ -18,7 +22,8 @@
. = ..()
radio_controller.remove_object(src, air_frequency)
air_connection = radio_controller.add_object(src, air_frequency, RADIO_TO_AIRALARM)
- addtimer(CALLBACK(src, .proc/open), 0)
+ open()
+
/obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal)
..()
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index fd4060db9c..fa31ef365f 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -53,7 +53,7 @@
visible_message("\The [user] bonks \the [src] harmlessly.")
user.do_attack_animation(src)
-/obj/machinery/door/Initialize()
+/obj/machinery/door/New()
. = ..()
if(density)
layer = closed_layer
diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm
index 67181cb824..23b71bdb0f 100644
--- a/code/game/machinery/doors/multi_tile.dm
+++ b/code/game/machinery/doors/multi_tile.dm
@@ -7,7 +7,7 @@
open_sound_powered = 'sound/machines/door/WideOpen.ogg'
close_sound_powered = 'sound/machines/door/WideClose.ogg'
-/obj/machinery/door/airlock/multi_tile/Initialize()
+/obj/machinery/door/airlock/multi_tile/Initialize(mapload)
. = ..()
SetBounds()
RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/SetBounds)
@@ -48,4 +48,4 @@
/obj/machinery/door/airlock/multi_tile/metal/mait
icon = 'icons/obj/doors/Door2x1_Maint.dmi'
- //req_one_access = list(access_maint_tunnels) //VOREStaiton Edit - Maintenance is open access
\ No newline at end of file
+ //req_one_access = list(access_maint_tunnels) //VOREStaiton Edit - Maintenance is open access
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index b11781dbb0..28afc5e9ff 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -17,8 +17,8 @@
can_atmos_pass = ATMOS_PASS_PROC
air_properties_vary_with_direction = 1
-/obj/machinery/door/window/Initialize()
- . = ..()
+/obj/machinery/door/window/New()
+ ..()
update_nearby_tiles()
if(LAZYLEN(req_access))
src.icon_state = "[src.icon_state]"
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index dd15e02a99..7b8039cb6f 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -9,8 +9,8 @@ var/list/doppler_arrays = list()
icon_state = "doppler"
-/obj/machinery/doppler_array/Initialize()
- . = ..()
+/obj/machinery/doppler_array/New()
+ ..()
doppler_arrays += src
/obj/machinery/doppler_array/Destroy()
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index 39693f3e28..a5cc7d6750 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -13,9 +13,9 @@
var/open = 0
var/brightness_on = 8 //can't remember what the maxed out value is
-/obj/machinery/floodlight/Initialize()
- . = ..()
+/obj/machinery/floodlight/New()
cell = new(src)
+ ..()
/obj/machinery/floodlight/update_icon()
cut_overlays()
diff --git a/code/game/machinery/floorlayer.dm b/code/game/machinery/floorlayer.dm
index 3be956bcae..dfbf3c38df 100644
--- a/code/game/machinery/floorlayer.dm
+++ b/code/game/machinery/floorlayer.dm
@@ -8,9 +8,9 @@
var/obj/item/stack/tile/T
var/list/mode = list("dismantle"=0,"laying"=0,"collect"=0)
-/obj/machinery/floorlayer/Initialize()
- . = ..()
+/obj/machinery/floorlayer/New()
T = new/obj/item/stack/tile/floor(src)
+ ..()
/obj/machinery/floorlayer/Moved(atom/old_loc, direction, forced = FALSE)
. = ..()
diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm
index 69652ef021..d651ad2025 100644
--- a/code/game/machinery/frame.dm
+++ b/code/game/machinery/frame.dm
@@ -280,8 +280,8 @@
for(var/obj/ct as anything in req_components)
req_component_names[ct] = initial(ct.name)
-/obj/structure/frame/Initialize(var/ml, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob)
- . = ..()
+/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob)
+ ..()
if(building)
frame_type = type
state = FRAME_PLACED
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index a511e09d9b..060bd029fc 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -30,8 +30,8 @@
location.hotspot_expose(1000,500,1)
return 1
-/obj/machinery/igniter/Initialize()
- . = ..()
+/obj/machinery/igniter/New()
+ ..()
icon_state = "igniter[on]"
/obj/machinery/igniter/power_change()
@@ -58,6 +58,9 @@
idle_power_usage = 2
active_power_usage = 4
+/obj/machinery/sparker/New()
+ ..()
+
/obj/machinery/sparker/power_change()
..()
if(!(stat & NOPOWER) && disable == 0)
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 6152f07df3..6ceab53895 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -121,12 +121,15 @@ Class Procs:
blocks_emissive = EMISSIVE_BLOCK_GENERIC
-/obj/machinery/Initialize(var/ml, d=0)
- . = ..()
- if(isnum(d)) //VOREStation Edit - bugfix
+/obj/machinery/New(l, d=0)
+ ..()
+ if(isnum(d))
set_dir(d)
if(ispath(circuit))
circuit = new circuit(src)
+
+/obj/machinery/Initialize(var/mapload)
+ . = ..()
global.machines += src
if(ispath(circuit))
circuit = new circuit(src)
@@ -134,7 +137,7 @@ Class Procs:
START_MACHINE_PROCESSING(src)
else
START_PROCESSING(SSfastprocess, src)
- if(!ml)
+ if(!mapload)
power_change()
/obj/machinery/Destroy()
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index 6bfd03372c..e2b76f3632 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -27,8 +27,8 @@
var/center_y = 0
var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer
-/obj/machinery/magnetic_module/Initialize()
- . = ..()
+/obj/machinery/magnetic_module/New()
+ ..()
var/turf/T = loc
hide(!T.is_plating())
center = T
@@ -209,8 +209,8 @@
var/datum/radio_frequency/radio_connection
-/obj/machinery/magnetic_controller/Initialize()
- . = ..()
+/obj/machinery/magnetic_controller/New()
+ ..()
if(autolink)
for(var/obj/machinery/magnetic_module/M in machines)
diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm
index 7e30fc5808..1002e3fa21 100644
--- a/code/game/machinery/mass_driver.dm
+++ b/code/game/machinery/mass_driver.dm
@@ -16,7 +16,7 @@
var/id = 1.0
var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
-/obj/machinery/mass_driver/Initialize()
+/obj/machinery/mass_driver/New()
. = ..()
default_apply_parts()
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 056ef1727a..1e1fff180e 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -18,8 +18,8 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w
var/list/codes = list() // assoc. list of transponder codes
req_access = list(access_engine)
-/obj/machinery/navbeacon/Initialize()
- . = ..()
+/obj/machinery/navbeacon/New()
+ ..()
set_codes_from_txt(codes_txt)
if(freq)
warning("[src] at [x],[y],[z] has deprecated var freq=[freq]. Replace it with proper type.")
@@ -233,6 +233,6 @@ Transponder Codes:
"}
/obj/machinery/navbeacon/patrol
var/next_patrol
-/obj/machinery/navbeacon/patrol/Initialize()
+/obj/machinery/navbeacon/patrol/New()
codes = list("patrol" = 1, "next_patrol" = next_patrol)
- . = ..()
+ ..()
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index 82b64e830a..b9646235c0 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -25,8 +25,8 @@ var/bomb_set
// 3 is sealant open, 4 is unwrenched, 5 is removed from bolts.
use_power = USE_POWER_OFF
-/obj/machinery/nuclearbomb/Initialize()
- . = ..()
+/obj/machinery/nuclearbomb/New()
+ ..()
r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn.
wires["Red"] = 0
wires["Blue"] = 0
@@ -410,8 +410,8 @@ var/bomb_set
return
return
-/obj/item/weapon/disk/nuclear/Initialize()
- . = ..()
+/obj/item/weapon/disk/nuclear/New()
+ ..()
nuke_disks |= src
/obj/item/weapon/disk/nuclear/Destroy()
diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm
index 98210afd3f..ef7612bf87 100644
--- a/code/game/machinery/pda_multicaster.dm
+++ b/code/game/machinery/pda_multicaster.dm
@@ -12,8 +12,8 @@
var/toggle = 1 // If we /should/ be active or not,
var/list/internal_PDAs = list() // Assoc list of PDAs inside of this, with the department name being the index,
-/obj/machinery/pda_multicaster/Initialize()
- . = ..()
+/obj/machinery/pda_multicaster/New()
+ ..()
internal_PDAs = list("command" = new /obj/item/device/pda/multicaster/command(src),
"security" = new /obj/item/device/pda/multicaster/security(src),
"engineering" = new /obj/item/device/pda/multicaster/engineering(src),
diff --git a/code/game/machinery/pipe/pipelayer.dm b/code/game/machinery/pipe/pipelayer.dm
index bf07a1a264..bcc1f770a3 100644
--- a/code/game/machinery/pipe/pipelayer.dm
+++ b/code/game/machinery/pipe/pipelayer.dm
@@ -21,9 +21,9 @@
"heat exchange pipes" = /obj/machinery/atmospherics/pipe/simple/heat_exchanging
)
-/obj/machinery/pipelayer/Initialize()
+/obj/machinery/pipelayer/New()
W = new(src)
- . = ..()
+ ..()
default_apply_parts()
update_icon()
diff --git a/code/game/machinery/records_scanner.dm b/code/game/machinery/records_scanner.dm
index 6226a9879c..b80548e876 100644
--- a/code/game/machinery/records_scanner.dm
+++ b/code/game/machinery/records_scanner.dm
@@ -8,7 +8,7 @@
anchored = TRUE
var/lastuser = null
-/obj/machinery/scanner/Initialize()
+/obj/machinery/scanner/New()
if(!outputdir)
switch(dir)
if(1)
@@ -21,7 +21,6 @@
outputdir = 4
if(!outputdir)
outputdir = 8
- . = ..()
/obj/machinery/scanner/process()
if(stat & NOPOWER)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 300d76b685..6b6fc6df6a 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -59,18 +59,6 @@ var/list/obj/machinery/requests_console/allConsoles = list()
light_range = 0
var/datum/announcement/announcement = new
-/obj/machinery/requests_console/power_change()
- ..()
- update_icon()
-
-/obj/machinery/requests_console/update_icon()
- if(stat & NOPOWER)
- if(icon_state != "req_comp_off")
- icon_state = "req_comp_off"
- else
- if(icon_state == "req_comp_off")
- icon_state = "req_comp[newmessagepriority]"
-
/obj/machinery/requests_console/Initialize()
. = ..()
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index fbc598961c..ac0615635a 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -24,8 +24,8 @@
clicksound = "switch"
interact_offline = TRUE
-/obj/machinery/space_heater/Initialize()
- . = ..()
+/obj/machinery/space_heater/New()
+ ..()
if(cell_type)
cell = new cell_type(src)
update_icon()
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 7a59222a23..9ee8ad6f6e 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -41,6 +41,7 @@
HELMET = new helmet_type(src)
if(mask_type)
MASK = new mask_type(src)
+ update_icon()
/obj/machinery/suit_storage_unit/update_icon()
var/hashelmet = 0
@@ -539,7 +540,6 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
/obj/machinery/suit_cycler/Initialize()
. = ..()
- wires = new(src)
departments = load_departments()
species = load_species()
emagged_departments = load_emagged()
diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm
index 5403c92392..8c1bc87f3f 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -36,8 +36,8 @@
var/expended
var/drop_type
-/obj/machinery/power/supply_beacon/Initialize()
- . = ..()
+/obj/machinery/power/supply_beacon/New()
+ ..()
if(!drop_type) drop_type = pick(supply_drop_random_loot_types())
/obj/machinery/power/supply_beacon/supermatter
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 2ca40122db..5bcf571f61 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -30,6 +30,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
//Linked bluespace radios
var/list/linked_radios_weakrefs = list()
+/obj/machinery/telecomms/processor/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/broadcaster/proc/link_radio(var/obj/item/device/radio/R)
if(!istype(R))
return
diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm
index 6eb20eaec0..8c8b2fc6f7 100644
--- a/code/game/machinery/telecomms/presets.dm
+++ b/code/game/machinery/telecomms/presets.dm
@@ -59,10 +59,10 @@
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ)
//Common and other radio frequencies for people to freely use
-/obj/machinery/telecomms/receiver/preset_right/Initialize()
+/obj/machinery/telecomms/receiver/preset_right/New()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
freq_listening |= i
- . = ..()
+ ..()
/obj/machinery/telecomms/receiver/preset_cent
id = "CentCom Receiver"
@@ -86,12 +86,12 @@
freq_listening = list(SUP_FREQ, SRV_FREQ)
autolinkers = list("processor2", "supply", "service", "unused")
-/obj/machinery/telecomms/bus/preset_two/Initialize()
+/obj/machinery/telecomms/bus/preset_two/New()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
if(i == PUB_FREQ)
continue
freq_listening |= i
- . = ..()
+ ..()
/obj/machinery/telecomms/bus/preset_three
id = "Bus 3"
@@ -177,12 +177,12 @@
freq_listening = list()
autolinkers = list("unused")
-/obj/machinery/telecomms/server/presets/unused/Initialize()
+/obj/machinery/telecomms/server/presets/unused/New()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
if(i == AI_FREQ || i == PUB_FREQ)
continue
freq_listening |= i
- . = ..()
+ ..()
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index c1a46bbaaa..784a752bda 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -112,14 +112,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
else
return 0
-/obj/machinery/telecomms/Initialize()
+
+/obj/machinery/telecomms/New()
telecomms_list += src
..()
- default_apply_parts()
- return INITIALIZE_HINT_LATELOAD
-
-/obj/machinery/telecomms/LateInitialize()
- . = ..()
//Set the listening_level if there's none.
if(!listening_level)
@@ -127,6 +123,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/turf/position = get_turf(src)
listening_level = position.z
+/obj/machinery/telecomms/Initialize()
if(autolinkers.len)
// Links nearby machines
if(!long_range_link)
@@ -135,6 +132,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
else
for(var/obj/machinery/telecomms/T in telecomms_list)
add_link(T)
+ . = ..()
/obj/machinery/telecomms/Destroy()
telecomms_list -= src
@@ -267,6 +265,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/list/linked_radios_weakrefs = list()
+/obj/machinery/telecomms/receiver/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/receiver/proc/link_radio(var/obj/item/device/radio/R)
if(!istype(R))
return
@@ -346,6 +348,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
long_range_link = 1
netspeed = 40
+/obj/machinery/telecomms/hub/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
if(istype(machine_from, /obj/machinery/telecomms/receiver))
@@ -382,6 +388,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/broadcasting = 1
var/receiving = 1
+/obj/machinery/telecomms/relay/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/relay/forceMove(var/newloc)
. = ..(newloc)
listening_level = z
@@ -435,6 +445,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
netspeed = 40
var/change_frequency = 0
+/obj/machinery/telecomms/bus/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
@@ -487,6 +501,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
circuit = /obj/item/weapon/circuitboard/telecomms/processor
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
+/obj/machinery/telecomms/processor/Initialize()
+ . = ..()
+ default_apply_parts()
+
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
@@ -538,11 +556,15 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
// would add up to md5("password123comsat")
var/obj/item/device/radio/headset/server_radio = null
-/obj/machinery/telecomms/server/Initialize()
- Compiler = new
+/obj/machinery/telecomms/server/New()
+ ..()
+ Compiler = new()
Compiler.Holder = src
- server_radio = new
+ server_radio = new()
+
+/obj/machinery/telecomms/server/Initialize()
. = ..()
+ default_apply_parts()
/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index eb9942a28c..29e8b51693 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -13,10 +13,14 @@
//Setting this to 1 will set locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
var/datum/tgui_module/teleport_control/teleport_control
-/obj/machinery/computer/teleporter/Initialize()
+/obj/machinery/computer/teleporter/New()
id = "[rand(1000, 9999)]"
+ ..()
+ underlays.Cut()
+ underlays += image('icons/obj/stationobjs_vr.dmi', icon_state = "telecomp-wires") //VOREStation Edit: different direction for wires to account for dirs
+
+/obj/machinery/computer/teleporter/Initialize()
. = ..()
- underlays = list(image('icons/obj/stationobjs.dmi', icon_state = "telecomp-wires"))
teleport_control = new(src)
var/obj/machinery/teleport/station/station = null
var/obj/machinery/teleport/hub/hub = null
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 4e4b65cc3e..43bc97c20a 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -9,9 +9,9 @@
var/transform_dead = 0
var/transform_standing = 0
-/obj/machinery/transformer/Initialize()
+/obj/machinery/transformer/New()
// On us
- . = ..()
+ ..()
new /obj/machinery/conveyor(loc, WEST, 1)
/obj/machinery/transformer/Bumped(var/atom/movable/AM)
@@ -39,8 +39,8 @@
if(robot)
robot.SetLockDown(0)
-/obj/machinery/transformer/conveyor/Initialize()
- . = ..()
+/obj/machinery/transformer/conveyor/New()
+ ..()
var/turf/T = loc
if(T)
// Spawn Conveyour Belts
diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm
index 98cf47f662..9d165cc7e3 100644
--- a/code/game/machinery/virtual_reality/vr_console.dm
+++ b/code/game/machinery/virtual_reality/vr_console.dm
@@ -26,6 +26,9 @@
/obj/machinery/vr_sleeper/Initialize()
. = ..()
default_apply_parts()
+
+/obj/machinery/vr_sleeper/Initialize()
+ . = ..()
smoke = new
update_icon()
@@ -176,9 +179,6 @@
return
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
-
- set waitfor = FALSE
-
if(!occupant)
return
diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm
index 0fe7480420..19bd2b9c53 100644
--- a/code/game/mecha/combat/durand.dm
+++ b/code/game/mecha/combat/durand.dm
@@ -37,8 +37,8 @@
icon_scale_y = 1.5
/*
-/obj/mecha/combat/durand/Initialize()
- . = ..()
+/obj/mecha/combat/durand/New()
+ ..()
weapons += new /datum/mecha_weapon/ballistic/lmg(src)
weapons += new /datum/mecha_weapon/ballistic/scattershot(src)
selected_weapon = weapons[1]
@@ -81,8 +81,8 @@
/obj/mecha/combat/durand/old
desc = "An aging combat exosuit utilized by many corporations. Originally developed to combat hostile alien lifeforms. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/durand/old/Initialize()
- . = ..()
+/obj/mecha/combat/durand/old/New()
+ ..()
health = 25
maxhealth = 250 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index ba1dcb291e..b2b5fe613f 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -115,8 +115,8 @@
var/obj/item/clothing/glasses/hud/health/mech/hud
-/obj/mecha/combat/gygax/serenity/Initialize()
- . = ..()
+/obj/mecha/combat/gygax/serenity/New()
+ ..()
hud = new /obj/item/clothing/glasses/hud/health/mech(src)
return
@@ -144,8 +144,8 @@
/obj/mecha/combat/gygax/old
desc = "A lightweight, security exosuit. Popular among private and corporate security. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/gygax/old/Initialize()
- . = ..()
+/obj/mecha/combat/gygax/old/New()
+ ..()
health = 25
maxhealth = 250 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index 76aa58c098..c218493847 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -144,8 +144,8 @@
starting_equipment = null
-/obj/mecha/combat/marauder/old/Initialize()
- . = ..()
+/obj/mecha/combat/marauder/old/New()
+ ..()
health = 25
maxhealth = 300 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm
index ec8c0f9598..8ec100ad1e 100644
--- a/code/game/mecha/combat/phazon.dm
+++ b/code/game/mecha/combat/phazon.dm
@@ -158,8 +158,8 @@
/obj/mecha/combat/phazon/old
desc = "An exosuit which can only be described as 'WTF?'. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/phazon/old/Initialize()
- . = ..()
+/obj/mecha/combat/phazon/old/New()
+ ..()
health = 25
maxhealth = 150 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/equipment/tools/cable_layer.dm b/code/game/mecha/equipment/tools/cable_layer.dm
index 6de991953e..8de184cb7a 100644
--- a/code/game/mecha/equipment/tools/cable_layer.dm
+++ b/code/game/mecha/equipment/tools/cable_layer.dm
@@ -7,10 +7,9 @@
var/max_cable = 1000
required_type = list(/obj/mecha/working)
-/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/Initialize()
- cable = new(src)
- cable.amount = 0
- . = ..()
+/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/New()
+ cable = new(src, 0)
+ ..()
/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/MoveAction()
layCable()
diff --git a/code/game/mecha/equipment/tools/shield.dm b/code/game/mecha/equipment/tools/shield.dm
index f6c39cdbff..494b5eded8 100644
--- a/code/game/mecha/equipment/tools/shield.dm
+++ b/code/game/mecha/equipment/tools/shield.dm
@@ -15,8 +15,8 @@
equip_type = EQUIP_HULL
-/obj/item/mecha_parts/mecha_equipment/combat_shield/Initialize()
- . = ..()
+/obj/item/mecha_parts/mecha_equipment/combat_shield/New()
+ ..()
my_shield = new my_shield_type
my_shield.shield_regen_delay = equip_cooldown
my_shield.my_tool = src
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 4f9c96477c..eed93a421d 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -202,7 +202,6 @@
var/weapons_only_cycle = FALSE //So combat mechs don't switch to their equipment at times.
/obj/mecha/Initialize()
-
. = ..()
for(var/path in starting_components)
@@ -218,6 +217,18 @@
update_transform()
+/obj/mecha/drain_power(var/drain_check)
+
+ if(drain_check)
+ return 1
+
+ if(!cell)
+ return 0
+
+ return cell.drain_power(drain_check)
+
+/obj/mecha/New()
+ ..()
icon_state += "-open"
add_radio()
add_cabin()
@@ -237,16 +248,7 @@
log_message("[src.name] created.")
loc.Entered(src)
mechas_list += src //global mech list
-
-/obj/mecha/drain_power(var/drain_check)
-
- if(drain_check)
- return 1
-
- if(!cell)
- return 0
-
- return cell.drain_power(drain_check)
+ return
/obj/mecha/Exit(atom/movable/O)
if(O in cargo)
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index 2cb775b07d..4be3c27d48 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -30,8 +30,8 @@
/obj/item/mecha_parts/chassis/ripley
name = "Ripley Chassis"
-/obj/item/mecha_parts/chassis/ripley/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/ripley/New()
+ ..()
construct = new /datum/construction/mecha/ripley_chassis(src)
/obj/item/mecha_parts/part/ripley_torso
@@ -69,8 +69,8 @@
/obj/item/mecha_parts/chassis/gygax
name = "Gygax Chassis"
-/obj/item/mecha_parts/chassis/gygax/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/gygax/New()
+ ..()
construct = new /datum/construction/mecha/gygax_chassis(src)
/obj/item/mecha_parts/part/gygax_torso
@@ -117,8 +117,8 @@
/obj/item/mecha_parts/chassis/serenity
name = "Serenity Chassis"
-/obj/item/mecha_parts/chassis/serenity/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/serenity/New()
+ ..()
construct = new /datum/construction/mecha/serenity_chassis(src)
//////////// Durand
@@ -126,8 +126,8 @@
/obj/item/mecha_parts/chassis/durand
name = "Durand Chassis"
-/obj/item/mecha_parts/chassis/durand/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/durand/New()
+ ..()
construct = new /datum/construction/mecha/durand_chassis(src)
/obj/item/mecha_parts/part/durand_torso
@@ -172,8 +172,8 @@
/obj/item/mecha_parts/chassis/firefighter
name = "Firefighter Chassis"
-/obj/item/mecha_parts/chassis/firefighter/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/firefighter/New()
+ ..()
construct = new /datum/construction/mecha/firefighter_chassis(src)
/*
/obj/item/mecha_parts/part/firefighter_torso
@@ -203,8 +203,8 @@
name = "Phazon Chassis"
origin_tech = list(TECH_MATERIAL = 7)
-/obj/item/mecha_parts/chassis/phazon/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/phazon/New()
+ ..()
construct = new /datum/construction/mecha/phazon_chassis(src)
/obj/item/mecha_parts/part/phazon_torso
@@ -255,8 +255,8 @@
/obj/item/mecha_parts/chassis/odysseus
name = "Odysseus Chassis"
-/obj/item/mecha_parts/chassis/odysseus/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/odysseus/New()
+ ..()
construct = new /datum/construction/mecha/odysseus_chassis(src)
/obj/item/mecha_parts/part/odysseus_head
@@ -307,8 +307,8 @@
name = "Janus Chassis"
origin_tech = list(TECH_MATERIAL = 7)
-/obj/item/mecha_parts/chassis/janus/Initialize()
- . = ..()
+/obj/item/mecha_parts/chassis/janus/New()
+ ..()
construct = new /datum/construction/mecha/janus_chassis(src)
/obj/item/mecha_parts/part/janus_torso
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 7b3da6aae3..5dbee5556b 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -15,8 +15,8 @@
var/list/crowbar_salvage
var/salvage_num = 5
-/obj/effect/decal/mecha_wreckage/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/New()
+ ..()
crowbar_salvage = new
return
@@ -80,8 +80,8 @@
name = "Gygax wreckage"
icon_state = "gygax-broken"
-/obj/effect/decal/mecha_wreckage/gygax/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/gygax/New()
+ ..()
var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso,
/obj/item/mecha_parts/part/gygax_head,
/obj/item/mecha_parts/part/gygax_left_arm,
@@ -128,8 +128,8 @@
name = "Ripley wreckage"
icon_state = "ripley-broken"
-/obj/effect/decal/mecha_wreckage/ripley/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/ripley/New()
+ ..()
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
/obj/item/mecha_parts/part/ripley_left_arm,
/obj/item/mecha_parts/part/ripley_right_arm,
@@ -146,8 +146,8 @@
name = "Firefighter wreckage"
icon_state = "firefighter-broken"
-/obj/effect/decal/mecha_wreckage/ripley/firefighter/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/ripley/firefighter/New()
+ ..()
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
/obj/item/mecha_parts/part/ripley_left_arm,
/obj/item/mecha_parts/part/ripley_right_arm,
@@ -169,8 +169,8 @@
name = "Durand wreckage"
icon_state = "durand-broken"
-/obj/effect/decal/mecha_wreckage/durand/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/durand/New()
+ ..()
var/list/parts = list(
/obj/item/mecha_parts/part/durand_torso,
/obj/item/mecha_parts/part/durand_head,
@@ -194,8 +194,8 @@
name = "Odysseus wreckage"
icon_state = "odysseus-broken"
-/obj/effect/decal/mecha_wreckage/odysseus/Initialize()
- . = ..()
+/obj/effect/decal/mecha_wreckage/odysseus/New()
+ ..()
var/list/parts = list(
/obj/item/mecha_parts/part/odysseus_torso,
/obj/item/mecha_parts/part/odysseus_head,
diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm
index 25d8f978c1..f1612e9083 100644
--- a/code/game/mecha/medical/odysseus.dm
+++ b/code/game/mecha/medical/odysseus.dm
@@ -20,8 +20,8 @@
icon_scale_x = 1.2
icon_scale_y = 1.2
-/obj/mecha/medical/odysseus/Initialize()
- . = ..()
+/obj/mecha/medical/odysseus/New()
+ ..()
hud = new /obj/item/clothing/glasses/hud/health/mech(src)
return
@@ -139,8 +139,8 @@
/obj/mecha/medical/odysseus/old
desc = "An aging combat exosuit utilized by many corporations. Originally developed to combat hostile alien lifeforms. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/medical/odysseus/old/Initialize()
- . = ..()
+/obj/mecha/medical/odysseus/old/New()
+ ..()
health = 25
maxhealth = 50 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index 692177139a..ce54008c45 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -143,8 +143,8 @@
/obj/mecha/working/ripley/mining/old
desc = "An old, dusty mining ripley."
-/obj/mecha/working/ripley/mining/old/Initialize()
- . = ..()
+/obj/mecha/working/ripley/mining/old/New()
+ ..()
health = 25
maxhealth = 190 //Just slightly worse.
cell.charge = rand(0, cell.charge)
diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm
index a5b208dcf9..c8149fc7ce 100644
--- a/code/game/objects/effects/alien/aliens.dm
+++ b/code/game/objects/effects/alien/aliens.dm
@@ -13,139 +13,6 @@
desc = "theres something alien about this"
icon = 'icons/mob/alien.dmi'
-/*
- * Resin
- */
-/obj/effect/alien/resin
- name = "resin"
- desc = "Looks like some kind of slimy growth."
- icon_state = "resin"
-
- density = 1
- opacity = 1
- anchored = 1
- can_atmos_pass = ATMOS_PASS_NO
- var/health = 200
- //var/mob/living/affecting = null
-
-/obj/effect/alien/resin/wall
- name = "resin wall"
- desc = "Purple slime solidified into a wall."
- icon_state = "resinwall" //same as resin, but consistency ho!
-
-/obj/effect/alien/resin/membrane
- name = "resin membrane"
- desc = "Purple slime just thin enough to let light pass through."
- icon_state = "resinmembrane"
- opacity = 0
- health = 120
-
-/obj/effect/alien/resin/Initialize()
- . = ..()
- var/turf/T = get_turf(src)
- T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
-
-/obj/effect/alien/resin/Destroy()
- var/turf/T = get_turf(src)
- T.thermal_conductivity = initial(T.thermal_conductivity)
- ..()
-
-/obj/effect/alien/resin/proc/healthcheck()
- if(health <=0)
- density = 0
- qdel(src)
- return
-
-/obj/effect/alien/resin/bullet_act(var/obj/item/projectile/Proj)
- health -= Proj.damage
- ..()
- healthcheck()
- return
-
-/obj/effect/alien/resin/attack_generic(var/mob/user, var/damage, var/attack_verb)
- visible_message("[user] [attack_verb] the [src]!")
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- user.do_attack_animation(src)
- health -= damage
- healthcheck()
- return
-
-/obj/effect/alien/resin/take_damage(var/damage)
- health -= damage
- healthcheck()
- return
-
-/obj/effect/alien/resin/ex_act(severity)
- switch(severity)
- if(1.0)
- health-=50
- if(2.0)
- health-=50
- if(3.0)
- if (prob(50))
- health-=50
- else
- health-=25
- healthcheck()
- return
-
-/obj/effect/alien/resin/hitby(AM as mob|obj)
- ..()
- for(var/mob/O in viewers(src, null))
- O.show_message("[src] was hit by [AM].", 1)
- var/tforce = 0
- if(ismob(AM))
- tforce = 10
- else
- tforce = AM:throwforce
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- health = max(0, health - tforce)
- healthcheck()
- ..()
- return
-
-/obj/effect/alien/resin/attack_hand()
- usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
- if (HULK in usr.mutations)
- to_chat(usr, "You easily destroy the [name].")
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] destroys the [name]!", 1)
- health = 0
- else
-
- // Aliens can get straight through these.
- if(istype(usr,/mob/living/carbon))
- var/mob/living/carbon/M = usr
- if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] strokes the [name] and it melts away!", 1)
- health = 0
- healthcheck()
- return
-
- to_chat(usr, "You claw at the [name].")
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] claws at the [name]!", 1)
- health -= rand(5,10)
- healthcheck()
- return
-
-/obj/effect/alien/resin/attackby(obj/item/weapon/W as obj, mob/user as mob)
-
- user.setClickCooldown(user.get_attack_speed(W))
- var/aforce = W.force
- health = max(0, health - aforce)
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- healthcheck()
- ..()
- return
-
-/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target)
- if(istype(mover) && mover.checkpass(PASSGLASS))
- return !opacity
- return !density
-
-
/*
* Weeds
*/
@@ -381,7 +248,7 @@
var/ticks = 0
var/target_strength = 0
-/obj/effect/alien/acid/Initialize(var/ml, target)
+/obj/effect/alien/acid/New(loc, target)
..(loc)
src.target = target
@@ -424,129 +291,4 @@
visible_message("[src.target] begins to crumble under the acid!")
spawn(rand(150, 200)) tick()
-/*
- * Egg
- */
-/var/const //for the status var
- BURST = 0
- BURSTING = 1
- GROWING = 2
- GROWN = 3
-
- MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger
- MAX_GROWTH_TIME = 3000
-
-/obj/effect/alien/egg
- desc = "It looks like a weird egg"
- name = "egg"
-// icon_state = "egg_growing" // So the egg looks 'grown', even though it's not.
- icon_state = "egg"
- density = 0
- anchored = 1
-
- var/health = 100
- var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive
-
-/*
-/obj/effect/alien/egg/Initialize()
- . = ..()
- if(config.aliens_allowed)
- addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
- else
- return INITIALIZE_HINT_QDEL
-*/
-
-/obj/effect/alien/egg/attack_hand(user as mob)
-
- var/mob/living/carbon/M = user
- if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs))
- return attack_hand(user)
-
- switch(status)
- if(BURST)
- to_chat(user, "You clear the hatched egg.")
- qdel(src)
- return
-/* if(GROWING)
- to_chat(user, "The child is not developed yet.")
- return
- if(GROWN)
- to_chat(user, "You retrieve the child.")
- Burst(0)
- return
-
-/obj/effect/alien/egg/proc/GetFacehugger() // Commented out for future edit.
- return locate(/obj/item/clothing/mask/facehugger) in contents
-
-/obj/effect/alien/egg/proc/Grow()
- icon_state = "egg"
-// status = GROWN
- status = BURST
-// new /obj/item/clothing/mask/facehugger(src)
- return
-*/
-/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
- if(status == GROWN || status == GROWING)
-// var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
- icon_state = "egg_hatched"
-/* flick("egg_opening", src)
- status = BURSTING
- spawn(15)
- status = BURST
- child.loc = get_turf(src)
-
- if(kill && istype(child))
- child.Die()
- else
- for(var/mob/M in range(1,src))
- if(CanHug(M))
- child.Attach(M)
- break
-*/
-/obj/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj)
- health -= Proj.damage
- ..()
- healthcheck()
- return
-
-/obj/effect/alien/egg/attack_generic(var/mob/user, var/damage, var/attack_verb)
- visible_message("[user] [attack_verb] the [src]!")
- user.do_attack_animation(src)
- health -= damage
- healthcheck()
- return
-
-/obj/effect/alien/egg/take_damage(var/damage)
- health -= damage
- healthcheck()
- return
-
-
-/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user)
- if(health <= 0)
- return
- if(W.attack_verb.len)
- src.visible_message("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")
- else
- src.visible_message("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]")
- var/damage = W.force / 4.0
-
- if(istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
-
- if(WT.remove_fuel(0, user))
- damage = 15
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
-
- src.health -= damage
- src.healthcheck()
-
-
-/obj/effect/alien/egg/proc/healthcheck()
- if(health <= 0)
- Burst()
-
-/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
- if(exposed_temperature > 500 + T0C)
- health -= 5
- healthcheck()
+//Xenomorph Effect egg removed, replaced with Structure Egg.
\ No newline at end of file
diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm
index bb0acadb66..0286622705 100644
--- a/code/game/objects/effects/bump_teleporter.dm
+++ b/code/game/objects/effects/bump_teleporter.dm
@@ -11,8 +11,8 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
density = TRUE
opacity = 0
-/obj/effect/bump_teleporter/Initialize()
- . = ..()
+/obj/effect/bump_teleporter/New()
+ ..()
BUMP_TELEPORTERS += src
/obj/effect/bump_teleporter/Destroy()
diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm
index 482f59810d..5538755d24 100644
--- a/code/game/objects/effects/chem/chemsmoke.dm
+++ b/code/game/objects/effects/chem/chemsmoke.dm
@@ -7,8 +7,8 @@
time_to_live = 300
pass_flags = PASSTABLE | PASSGRILLE | PASSGLASS //PASSGLASS is fine here, it's just so the visual effect can "flow" around glass
-/obj/effect/effect/smoke/chem/Initialize()
- . = ..()
+/obj/effect/effect/smoke/chem/New()
+ ..()
create_reagents(500)
return
diff --git a/code/game/objects/effects/chem/coating.dm b/code/game/objects/effects/chem/coating.dm
index adf50da065..2e9ad26049 100644
--- a/code/game/objects/effects/chem/coating.dm
+++ b/code/game/objects/effects/chem/coating.dm
@@ -6,9 +6,12 @@
icon = 'icons/effects/effects.dmi'
icon_state = "dirt"
+/obj/effect/decal/cleanable/chemcoating/New()
+ ..()
+ create_reagents(100)
+
/obj/effect/decal/cleanable/chemcoating/Initialize()
. = ..()
- create_reagents(100)
var/turf/T = get_turf(src)
if(T)
for(var/obj/O in get_turf(src))
diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm
index 701fe75528..5dad8accc4 100644
--- a/code/game/objects/effects/chem/foam.dm
+++ b/code/game/objects/effects/chem/foam.dm
@@ -142,8 +142,8 @@
can_atmos_pass = ATMOS_PASS_NO
var/metal = 1 // 1 = aluminum, 2 = iron
-/obj/structure/foamedmetal/Initialize()
- . = ..()
+/obj/structure/foamedmetal/New()
+ ..()
update_nearby_tiles(1)
/obj/structure/foamedmetal/Destroy()
diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm
index d505a4497f..4661d42ca6 100644
--- a/code/game/objects/effects/decals/Cleanable/fuel.dm
+++ b/code/game/objects/effects/decals/Cleanable/fuel.dm
@@ -9,31 +9,26 @@
generic_filth = TRUE
persistent = FALSE
-/obj/effect/decal/cleanable/liquid_fuel/Initialize(var/ml, amt=1, nologs=1)
-
- . = ..(ml)
-
- if(!isturf(loc))
- return INITIALIZE_HINT_QDEL
-
+/obj/effect/decal/cleanable/liquid_fuel/New(turf/newLoc,amt=1,nologs=1)
if(!nologs)
- message_admins("Liquid fuel has spilled in [loc.name] ([loc.x],[loc.y],[loc.z]) (JMP)")
- log_game("Liquid fuel has spilled in [loc.name] ([loc.x],[loc.y],[loc.z])")
+ message_admins("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z]) (JMP)")
+ log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])")
src.amount = amt
var/has_spread = 0
//Be absorbed by any other liquid fuel in the tile.
- for(var/obj/effect/decal/cleanable/liquid_fuel/other in loc)
+ for(var/obj/effect/decal/cleanable/liquid_fuel/other in newLoc)
if(other != src)
other.amount += src.amount
other.Spread()
has_spread = 1
break
+ . = ..()
if(!has_spread)
Spread()
else
- return INITIALIZE_HINT_QDEL
+ qdel(src)
/obj/effect/decal/cleanable/liquid_fuel/proc/Spread(exclude=list())
//Allows liquid fuels to sometimes flow into other tiles.
@@ -58,10 +53,10 @@
icon_state = "mustard"
anchored = FALSE
-/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/Initialize(var/ml, amt = 1, d = 0)
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/New(newLoc, amt = 1, d = 0)
set_dir(d) //Setting this direction means you won't get torched by your own flamethrower.
- if(istype(loc, /turf/simulated))
- var/turf/simulated/T = loc
+ if(istype(newLoc, /turf/simulated))
+ var/turf/simulated/T = newLoc
T.hotspot_expose((T20C*2) + 380,500) //Ignite the fuel.
. = ..()
diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index b5510c38f2..6f96ec1689 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -37,8 +37,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
..(ignore=1)
-/obj/effect/decal/cleanable/blood/Initialize()
- . = ..()
+/obj/effect/decal/cleanable/blood/New()
+ ..()
update_icon()
if(istype(src, /obj/effect/decal/cleanable/blood/gibs))
return
@@ -144,8 +144,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
var/list/drips = list()
-/obj/effect/decal/cleanable/blood/drip/Initialize()
- . = ..()
+/obj/effect/decal/cleanable/blood/drip/New()
+ ..()
drips |= icon_state
/obj/effect/decal/cleanable/blood/writing
@@ -156,8 +156,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
var/message
-/obj/effect/decal/cleanable/blood/writing/Initialize()
- . = ..()
+/obj/effect/decal/cleanable/blood/writing/New()
+ ..()
if(random_icon_states.len)
for(var/obj/effect/decal/cleanable/blood/writing/W in loc)
random_icon_states.Remove(W.icon_state)
diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm
index f893fac6a2..cf26c6463d 100644
--- a/code/game/objects/effects/decals/Cleanable/misc.dm
+++ b/code/game/objects/effects/decals/Cleanable/misc.dm
@@ -24,8 +24,8 @@
/obj/effect/decal/cleanable/greenglow
-/obj/effect/decal/cleanable/greenglow/Initialize()
- . = ..()
+/obj/effect/decal/cleanable/greenglow/New()
+ ..()
QDEL_IN(src, 2 MINUTES)
/obj/effect/decal/cleanable/dirt
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 50894885cc..ed411a67ab 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -21,8 +21,6 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for
if(!mapload || !config.persistence_ignore_mapload)
SSpersistence.track_value(src, /datum/persistent/filth)
. = ..()
- if (random_icon_states && length(src.random_icon_states) > 0)
- src.icon_state = pick(src.random_icon_states)
/obj/effect/decal/cleanable/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth)
@@ -33,3 +31,8 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for
qdel(src)
return
..()
+
+/obj/effect/decal/cleanable/New()
+ if (random_icon_states && length(src.random_icon_states) > 0)
+ src.icon_state = pick(src.random_icon_states)
+ ..()
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index b2726089d0..f983a480ff 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -6,8 +6,9 @@
layer = DIRTY_LAYER
anchored = TRUE
-/obj/effect/decal/cleanable/crayon/Initialize(var/ml, main = "#FFFFFF",shade = "#000000",var/type = "rune")
- . = ..()
+/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune")
+ ..()
+ loc = location
name = type
desc = "A [type] drawn in crayon."
diff --git a/code/game/objects/effects/decals/posters/posters.dm b/code/game/objects/effects/decals/posters/posters.dm
index 9c211bbfbd..44bdb935ea 100644
--- a/code/game/objects/effects/decals/posters/posters.dm
+++ b/code/game/objects/effects/decals/posters/posters.dm
@@ -125,7 +125,7 @@
var/ruined = FALSE
// This stuff needs to go in new() for the the flick() to look right while it's being placed
-/obj/structure/sign/poster/Initialize(var/ml, var/placement_dir = null, var/obj/item/poster/P = null)
+/obj/structure/sign/poster/New(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null)
if(placement_dir)
dir = placement_dir
@@ -144,7 +144,7 @@
pixel_y = 0
flick("poster_being_set", src)
- . = ..()
+ return ..()
/obj/structure/sign/poster/Initialize(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null)
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index 242c278e1d..8543c55a2b 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -178,8 +178,8 @@ steam.start() -- spawns the effect
pixel_x = -32
pixel_y = -32
-/obj/effect/effect/smoke/Initialize()
- . = ..()
+/obj/effect/effect/smoke/New()
+ ..()
if(time_to_live)
spawn (time_to_live)
if(!QDELETED(src))
@@ -213,9 +213,9 @@ steam.start() -- spawns the effect
icon = 'icons/effects/effects.dmi'
icon_state = "sparks"
-/obj/effect/effect/smoke/illumination/Initialize(var/ml, var/lifetime=10, var/range=null, var/power=null, var/color=null)
+/obj/effect/effect/smoke/illumination/New(var/newloc, var/lifetime=10, var/range=null, var/power=null, var/color=null)
time_to_live=lifetime
- . = ..()
+ ..()
set_light(range, power, color)
/////////////////////////////////////////////
diff --git a/code/game/objects/effects/explosion_particles.dm b/code/game/objects/effects/explosion_particles.dm
index 42fa15c627..449506197a 100644
--- a/code/game/objects/effects/explosion_particles.dm
+++ b/code/game/objects/effects/explosion_particles.dm
@@ -6,9 +6,11 @@
anchored = TRUE
mouse_opacity = 0
-/obj/effect/expl_particles/Initialize()
- . = ..()
- QDEL_IN(src, 15)
+/obj/effect/expl_particles/New()
+ ..()
+ spawn (15)
+ qdel(src)
+ return
/datum/effect/system/expl_particles
var/number = 10
@@ -40,9 +42,11 @@
pixel_x = -32
pixel_y = -32
-/obj/effect/explosion/Initialize()
- . = ..()
- QDEL_IN(src, 10)
+/obj/effect/explosion/New()
+ ..()
+ spawn (10)
+ qdel(src)
+ return
/datum/effect/system/explosion
var/turf/location
diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm
index 7597f35c5e..717bcac74e 100644
--- a/code/game/objects/effects/gibs.dm
+++ b/code/game/objects/effects/gibs.dm
@@ -9,14 +9,12 @@
var/fleshcolor //Used for gibbed humans.
var/bloodcolor //Used for gibbed humans.
-/obj/effect/gibspawner/Initialize(var/ml, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
- . = ..()
- if(fleshcolor)
- src.fleshcolor = fleshcolor
- if(bloodcolor)
- src.bloodcolor = bloodcolor
+/obj/effect/gibspawner/New(location, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
+ ..()
+
+ if(fleshcolor) src.fleshcolor = fleshcolor
+ if(bloodcolor) src.bloodcolor = bloodcolor
Gib(loc,MobDNA)
- return INITIALIZE_HINT_QDEL
/obj/effect/gibspawner/proc/Gib(atom/location, var/datum/dna/MobDNA = null)
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
@@ -53,3 +51,5 @@
var/list/directions = gibdirections[i]
if(directions.len)
gib.streak(directions)
+
+ qdel(src)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 3b3e9d78cc..fc6af6b2fd 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -8,39 +8,46 @@
invisibility = 100
var/delete_me = 0
-/obj/effect/landmark/Initialize()
- . = ..()
+/obj/effect/landmark/New()
+ ..()
tag = text("landmark*[]", name)
invisibility = 101
+
switch(name) //some of these are probably obsolete
if("monkey")
monkeystart += loc
delete_me = 1
+ return
if("start")
newplayer_start += loc
delete_me = 1
+ return
if("JoinLate") // Bit difference, since we need the spawn point to move.
latejoin += src
- simulated = 1
+ simulated = TRUE
+ // delete_me = 1
+ return
if("JoinLateGateway")
latejoin_gateway += loc
latejoin += src //VOREStation Addition
delete_me = 1
+ return
if("JoinLateElevator")
latejoin_elevator += loc
delete_me = 1
- if("JoinLateCheckpoint")
- latejoin_checkpoint += loc
- delete_me = 1
+ return
if("JoinLateCryo")
latejoin_cryo += loc
delete_me = 1
+ return
if("JoinLateCyborg")
latejoin_cyborg += loc
delete_me = 1
+ return
if("prisonwarp")
prisonwarp += loc
delete_me = 1
+ return
if("Holding Facility")
holdingfacility += loc
if("tdome1")
@@ -54,18 +61,23 @@
if("prisonsecuritywarp")
prisonsecuritywarp += loc
delete_me = 1
+ return
if("blobstart")
blobstart += loc
delete_me = 1
+ return
if("xeno_spawn")
xeno_spawn += loc
delete_me = 1
+ return
if("endgame_exit")
endgame_safespawns += loc
delete_me = 1
+ return
if("bluespacerift")
endgame_exits += loc
delete_me = 1
+ return
//VOREStation Add Start
if("vinestart")
vinestart += loc
@@ -73,14 +85,17 @@
return
//VORE Station Add End
- if(delete_me)
- return INITIALIZE_HINT_QDEL
-
landmarks_list += src
+ return 1
/obj/effect/landmark/proc/delete()
delete_me = 1
+/obj/effect/landmark/Initialize()
+ . = ..()
+ if(delete_me)
+ return INITIALIZE_HINT_QDEL
+
/obj/effect/landmark/Destroy(var/force = FALSE)
if(delete_me || force)
landmarks_list -= src
@@ -93,8 +108,8 @@
icon_state = "x"
anchored = TRUE
-/obj/effect/landmark/start/Initialize()
- . = ..()
+/obj/effect/landmark/start/New()
+ ..()
tag = "start*[name]"
invisibility = 101
@@ -125,89 +140,79 @@
icon_state = "x"
anchored = TRUE
-/obj/effect/landmark/virtual_reality/Initialize()
- . = ..()
+/obj/effect/landmark/virtual_reality/New()
+ ..()
tag = "virtual_reality*[name]"
invisibility = 101
+ return 1
//Costume spawner landmarks
-/obj/effect/landmark/costume/Initialize() //costume spawner, selects a random subclass and disappears
- ..()
- if(type == /obj/effect/landmark/costume)
- var/list/options = subtypesof(/obj/effect/landmark/costume)
- var/PICK = options[rand(1,options.len)]
- new PICK(src.loc)
- return INITIALIZE_HINT_QDEL
+/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
+
+ var/list/options = typesof(/obj/effect/landmark/costume)
+ var/PICK= options[rand(1,options.len)]
+ new PICK(src.loc)
+ delete_me = 1
//SUBCLASSES. Spawn a bunch of items and disappear likewise
-/obj/effect/landmark/costume/chicken/Initialize()
- ..()
+/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/gladiator/Initialize()
- ..()
+/obj/effect/landmark/costume/gladiator/New()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
- return INITIALIZE_HINT_QDEL
+ qdel(src)
-/obj/effect/landmark/costume/madscientist/Initialize()
- ..()
+/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/suit_jacket/green(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/toggle/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/elpresidente/Initialize()
- ..()
+/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/suit_jacket/green(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/boots/jackboots(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/nyangirl/Initialize()
- ..()
+/obj/effect/landmark/costume/nyangirl/New()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/maid/Initialize()
- ..()
+/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/skirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/butler/Initialize()
- ..()
+/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/accessory/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/scratch/Initialize()
- ..()
+/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/scratch(src.loc)
if (prob(30))
new /obj/item/clothing/head/cueball(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/highlander/Initialize()
- ..()
+/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/prig/Initialize()
- ..()
+/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/accessory/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
@@ -216,83 +221,71 @@
new /obj/item/weapon/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/plaguedoctor/Initialize()
- ..()
+/obj/effect/landmark/costume/plaguedoctor/New()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/nightowl/Initialize()
- ..()
+/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/waiter/Initialize()
- ..()
+/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/storage/apron(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/pirate/Initialize()
- ..()
+/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/under/pirate(src.loc)
new /obj/item/clothing/suit/pirate(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/commie/Initialize()
- ..()
+/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/imperium_monk/Initialize()
- ..()
+/obj/effect/landmark/costume/imperium_monk/New()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/holiday_priest/Initialize()
- ..()
+/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
- return INITIALIZE_HINT_QDEL
+ qdel(src)
-/obj/effect/landmark/costume/marisawizard/fake/Initialize()
- ..()
+/obj/effect/landmark/costume/marisawizard/fake/New()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/cutewitch/Initialize()
- ..()
+/obj/effect/landmark/costume/cutewitch/New()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/weapon/staff/broom(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/fakewizard/Initialize()
- ..()
+/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/weapon/staff/(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/sexyclown/Initialize()
- ..()
+/obj/effect/landmark/costume/sexyclown/New()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
-/obj/effect/landmark/costume/sexymime/Initialize()
- ..()
+/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
- return INITIALIZE_HINT_QDEL
+ delete_me = 1
diff --git a/code/game/objects/effects/landmarks_poi_vr.dm b/code/game/objects/effects/landmarks_poi_vr.dm
index 6249bc1663..c46be055bd 100644
--- a/code/game/objects/effects/landmarks_poi_vr.dm
+++ b/code/game/objects/effects/landmarks_poi_vr.dm
@@ -13,8 +13,7 @@ var/global/list/global_used_pois = list()
INITIALIZE_IMMEDIATE(/obj/effect/landmark/poi_loader)
/obj/effect/landmark/poi_loader/Initialize()
- // LINTER FIX NOTE: would suggest moving this to a queue on a subsystem that can be expected to init appropriately
- addtimer(CALLBACK(src, .proc/load_poi), 0)
+ src.load_poi()
return ..()
/obj/effect/landmark/poi_loader/proc/get_turfs_to_clean()
diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm
index a203f59bb2..98d378faf5 100644
--- a/code/game/objects/effects/manifest.dm
+++ b/code/game/objects/effects/manifest.dm
@@ -4,9 +4,10 @@
icon_state = "x"
unacidable = TRUE//Just to be sure.
-/obj/effect/manifest/Initialize()
- . = ..()
- invisibility = 101
+/obj/effect/manifest/New()
+
+ src.invisibility = 101
+ return
/obj/effect/manifest/proc/manifest()
var/dat = "Crew Manifest:
"
@@ -17,3 +18,4 @@
P.name = "paper- 'Crew Manifest'"
//SN src = null
qdel(src)
+ return
\ No newline at end of file
diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm
index 93afbb32c8..9669004bca 100644
--- a/code/game/objects/effects/overlays.dm
+++ b/code/game/objects/effects/overlays.dm
@@ -10,9 +10,9 @@
plane = ABOVE_OBJ_PLANE
var/tmp/atom/BeamSource
-/obj/effect/overlay/beam/Initialize()
- . = ..()
- QDEL_IN(src, 10)
+/obj/effect/overlay/beam/New()
+ ..()
+ spawn(10) qdel(src)
/obj/effect/overlay/palmtree_r
name = "Palm tree"
@@ -53,8 +53,8 @@
layer = ABOVE_MOB_LAYER
mouse_opacity = 0
-/obj/effect/overlay/wallrot/Initialize()
- . = ..()
+/obj/effect/overlay/wallrot/New()
+ ..()
pixel_x += rand(-10, 10)
pixel_y += rand(-10, 10)
diff --git a/code/game/objects/effects/prop/columnblast.dm b/code/game/objects/effects/prop/columnblast.dm
index e8397bf99b..ce0e4b2aad 100644
--- a/code/game/objects/effects/prop/columnblast.dm
+++ b/code/game/objects/effects/prop/columnblast.dm
@@ -4,13 +4,19 @@
desc = "Oh shit!"
icon_state = "pool"
icon = 'icons/effects/64x64.dmi'
+
pixel_x = -16
-/obj/effect/temporary_effect/eruption/Initialize(var/ml, var/ttd = 10 SECONDS, var/newcolor)
+/obj/effect/temporary_effect/eruption/New(var/turf/T, var/ttd = 10 SECONDS, var/newcolor)
if(ttd)
time_to_die = ttd
+
if(newcolor)
color = newcolor
+
+ ..()
+
+/obj/effect/temporary_effect/eruption/Initialize()
. = ..()
flick("[icon_state]_create",src)
diff --git a/code/game/objects/effects/prop/snake.dm b/code/game/objects/effects/prop/snake.dm
index cd28d7ed75..2b3812ccc9 100644
--- a/code/game/objects/effects/prop/snake.dm
+++ b/code/game/objects/effects/prop/snake.dm
@@ -22,12 +22,14 @@
// Is the snake hunting a specific atom? (Will always try to meander toward this target.)
var/atom/hunting
-/obj/effect/temporary_effect/pulse/snake/Initialize(var/ml, var/atom/hunt_target, var/atom/Creator)
+/obj/effect/temporary_effect/pulse/snake/New(var/turf/T, var/atom/hunt_target, var/atom/Creator)
if(hunt_target)
hunting = hunt_target
+
if(Creator)
creator = Creator
- . = ..()
+
+ ..()
/obj/effect/temporary_effect/pulse/snake/pulse_loop() // Override needed unfortunately to handle the possibility of not finding a target turf.
set waitfor = FALSE
diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm
index 0adf60573f..c7fc6962ba 100644
--- a/code/game/objects/effects/spawners/bombspawner.dm
+++ b/code/game/objects/effects/spawners/bombspawner.dm
@@ -44,14 +44,14 @@
name = "TTV bomb - proximity"
assembly_type = /obj/item/device/assembly/prox_sensor
-/obj/effect/spawner/newbomb/radio/custom/Initialize(var/ml, ph, ox, co)
+/obj/effect/spawner/newbomb/radio/custom/New(var/newloc, ph, ox, co)
if(ph != null) phoron_amt = ph
if(ox != null) oxygen_amt = ox
if(co != null) carbon_amt = co
- . = ..()
-
-/obj/effect/spawner/newbomb/Initialize()
..()
+
+/obj/effect/spawner/newbomb/Initialize(newloc)
+ ..(newloc)
var/obj/item/device/transfer_valve/V = new(src.loc)
var/obj/item/weapon/tank/phoron/PT = new(V)
var/obj/item/weapon/tank/oxygen/OT = new(V)
@@ -100,11 +100,13 @@
var/phoron_amt = 0
var/oxygen_amt = 0
-/obj/effect/spawner/onetankbomb/Initialize() //just needs an assembly.
- ..()
+/obj/effect/spawner/onetankbomb/New(newloc) //just needs an assembly.
+ ..(newloc)
+
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb, /obj/item/weapon/tank/oxygen/onetankbomb)
new type(src.loc)
- return INITIALIZE_HINT_QDEL
+
+ qdel(src)
/obj/effect/spawner/onetankbomb/full
name = "Single-tank bomb"
@@ -114,11 +116,13 @@
// var/assembly_type = /obj/item/device/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
-/obj/effect/spawner/onetankbomb/full/Initialize() //just needs an assembly.
- . = ..()
+/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
+ ..(newloc)
+
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb/full, /obj/item/weapon/tank/oxygen/onetankbomb/full)
new type(src.loc)
- return INITIALIZE_HINT_QDEL
+
+ qdel(src)
/obj/effect/spawner/onetankbomb/frag
name = "Single-tank bomb"
@@ -128,8 +132,12 @@
// var/assembly_type = /obj/item/device/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
-/obj/effect/spawner/onetankbomb/frag/Initialize() //just needs an assembly.
- . = ..()
+/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
+ ..(newloc)
+
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb/full, /obj/item/weapon/tank/oxygen/onetankbomb/full)
- new type(src.loc)
- return INITIALIZE_HINT_QDEL
+ new type(src.loc)
+
+ qdel(src)
+
+
diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm
index 0db3bd5414..af84a15d42 100644
--- a/code/game/objects/effects/spawners/gibspawner.dm
+++ b/code/game/objects/effects/spawners/gibspawner.dm
@@ -2,25 +2,25 @@
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(2,2,1)
-/obj/effect/gibspawner/generic/Initialize()
+/obj/effect/gibspawner/generic/New()
gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list())
- . = ..()
+ ..()
/obj/effect/gibspawner/human
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(1,1,1,1,1,1,1)
-/obj/effect/gibspawner/human/Initialize()
+/obj/effect/gibspawner/human/New()
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
gibamounts[6] = pick(0,1,2)
- . = ..()
+ ..()
/obj/effect/gibspawner/robot
sparks = 1
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/robot/up,/obj/effect/decal/cleanable/blood/gibs/robot/down,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot/limb)
gibamounts = list(1,1,1,1,1,1)
-/obj/effect/gibspawner/robot/Initialize()
+/obj/effect/gibspawner/robot/New()
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs)
gibamounts[6] = pick(0,1,2)
- . = ..()
\ No newline at end of file
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 07806868f1..c92bacbb79 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -104,9 +104,9 @@
START_PROCESSING(SSobj, src)
return ..()
-/obj/effect/spider/eggcluster/Initialize(var/ml, var/atom/parent)
+/obj/effect/spider/eggcluster/New(var/location, var/atom/parent)
get_light_and_color(parent)
- . = ..(ml)
+ ..()
/obj/effect/spider/eggcluster/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -169,7 +169,7 @@
/mob/living/simple_mob/animal/giant_spider/webslinger, /mob/living/simple_mob/animal/giant_spider/phorogenic, /mob/living/simple_mob/animal/giant_spider/carrier,
/mob/living/simple_mob/animal/giant_spider/ion)
-/obj/effect/spider/spiderling/Initialize(var/ml, var/atom/parent)
+/obj/effect/spider/spiderling/New(var/location, var/atom/parent)
pixel_x = rand(6,-6)
pixel_y = rand(6,-6)
START_PROCESSING(SSobj, src)
@@ -177,7 +177,7 @@
if(amount_grown != -1 && prob(50))
amount_grown = 1
get_light_and_color(parent)
- . = ..(ml)
+ ..()
/obj/effect/spider/spiderling/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -314,9 +314,8 @@
icon_state = "cocoon1"
health = 60
-/obj/effect/spider/cocoon/Initialize()
- . = ..()
- icon_state = pick("cocoon1","cocoon2","cocoon3")
+/obj/effect/spider/cocoon/New()
+ icon_state = pick("cocoon1","cocoon2","cocoon3")
/obj/effect/spider/cocoon/Destroy()
src.visible_message("\The [src] splits open.")
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index 0763057f9f..56cc000dc9 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -188,8 +188,8 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
/obj/effect/landmark/teleport_mark
var/landmark_id = null
-/obj/effect/landmark/teleport_mark/Initialize()
- . = ..()
+/obj/effect/landmark/teleport_mark/New()
+ ..()
tele_landmarks += src
/obj/effect/landmark/teleport_mark/Destroy()
diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 89407ad1c8..eb2aefeb5c 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -97,7 +97,6 @@
duration = 15
/obj/effect/temp_visual/heal/Initialize(mapload)
- . = ..()
pixel_x = rand(-12, 12)
pixel_y = rand(-9, 0)
// VOREStation Add End
diff --git a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
index a3ad51aea0..1088a3e4ba 100644
--- a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
+++ b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
@@ -54,7 +54,7 @@
/obj/effect/projectile_lighting
var/owner
-/obj/effect/projectile_lighting/Initialize(var/ml, color, range, intensity, owner_key)
- . = ..(ml)
+/obj/effect/projectile_lighting/New(loc, color, range, intensity, owner_key)
+ . = ..()
set_light(range, intensity, color)
owner = owner_key
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index b7ccc15959..94e2f68257 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -109,8 +109,8 @@
var/no_random_knockdown = FALSE //stops item from being able to randomly knock people down in combat
-/obj/item/Initialize()
- . = ..()
+/obj/item/New()
+ ..()
if(embed_chance < 0)
if(sharp)
embed_chance = max(5, round(force/w_class))
diff --git a/code/game/objects/items/antag_spawners.dm b/code/game/objects/items/antag_spawners.dm
index ac63282303..afa7ae66f9 100644
--- a/code/game/objects/items/antag_spawners.dm
+++ b/code/game/objects/items/antag_spawners.dm
@@ -5,8 +5,8 @@
var/searching = FALSE
var/datum/effect/effect/system/spark_spread/sparks
-/obj/item/weapon/antag_spawner/Initialize()
- . = ..()
+/obj/item/weapon/antag_spawner/New()
+ ..()
sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
diff --git a/code/game/objects/items/devices/ai_detector.dm b/code/game/objects/items/devices/ai_detector.dm
index 4fbc56a0d4..7bb92bf216 100644
--- a/code/game/objects/items/devices/ai_detector.dm
+++ b/code/game/objects/items/devices/ai_detector.dm
@@ -13,12 +13,12 @@
var/detect_state = PROXIMITY_NONE
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_ILLEGAL = 2)
-/obj/item/device/multitool/ai_detector/Initialize()
+/obj/item/device/multitool/ai_detector/New()
// It's really really unlikely for the view range to change. But why not be futureproof anyways?
range_alert = world.view
range_warning = world.view * 2
START_PROCESSING(SSobj, src)
- return ..()
+ ..()
/obj/item/device/multitool/ai_detector/Destroy()
STOP_PROCESSING(SSobj, src)
diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm
index a5b7e4b442..a92c2725c0 100644
--- a/code/game/objects/items/devices/communicator/communicator.dm
+++ b/code/game/objects/items/devices/communicator/communicator.dm
@@ -262,8 +262,12 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
var/datum/exonet_protocol/exonet = null
var/list/exonet_messages = list()
-/mob/observer/dead/proc/init_exonet()
- set waitfor = FALSE
+// Proc: New()
+// Parameters: None
+// Description: Gives ghosts an exonet address based on their key and ghost name.
+/mob/observer/dead/Initialize()
+ . = ..()
+ exonet = new(src)
if(client)
exonet.make_address("communicator-[src.client]-[src.client.prefs.real_name]")
else
@@ -344,8 +348,8 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
/obj/machinery/camera/communicator
network = list(NETWORK_COMMUNICATORS)
-/obj/machinery/camera/communicator/Initialize()
- . = ..()
+/obj/machinery/camera/communicator/New()
+ ..()
client_huds |= global_hud.whitense
client_huds |= global_hud.darkMask
diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm
index d11c8c4728..b7d6d5278c 100644
--- a/code/game/objects/items/devices/defib.dm
+++ b/code/game/objects/items/devices/defib.dm
@@ -23,8 +23,8 @@
/obj/item/device/defib_kit/get_cell()
return bcell
-/obj/item/device/defib_kit/Initialize() //starts without a cell for rnd
- . = ..()
+/obj/item/device/defib_kit/New() //starts without a cell for rnd
+ ..()
if(ispath(paddles))
paddles = new paddles(src, src)
else
@@ -590,9 +590,9 @@
/obj/item/weapon/shockpaddles/linked
var/obj/item/device/defib_kit/base_unit
-/obj/item/weapon/shockpaddles/linked/Initialize(var/ml, obj/item/device/defib_kit/defib)
+/obj/item/weapon/shockpaddles/linked/New(newloc, obj/item/device/defib_kit/defib)
base_unit = defib
- . = ..()
+ ..(newloc)
/obj/item/weapon/shockpaddles/linked/Destroy()
if(base_unit)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 72ba26310e..eff6d34848 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -362,9 +362,9 @@
pickup_sound = 'sound/items/pickup/gloves.ogg'
light_system = MOVABLE_LIGHT
-/obj/item/device/flashlight/flare/Initialize()
+/obj/item/device/flashlight/flare/New()
fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
- . = ..()
+ ..()
/obj/item/device/flashlight/flare/process()
var/turf/pos = get_turf(src)
@@ -425,9 +425,9 @@
var/fuel = 0
power_use = 0
-/obj/item/device/flashlight/glowstick/Initialize()
+/obj/item/device/flashlight/glowstick/New()
fuel = rand(1600, 2000)
- . = ..()
+ ..()
/obj/item/device/flashlight/glowstick/process()
fuel = max(fuel - 1, 0)
@@ -491,30 +491,3 @@
light_range = 8
light_power = 0.1
light_color = "#49F37C"
-
-/*
- * Slime Extract
- */
-
-/obj/item/device/flashlight/slime
- gender = PLURAL
- name = "glowing slime extract"
- desc = "A slimy ball that appears to be glowing from bioluminesence."
- icon = 'icons/obj/lighting.dmi'
- icon_state = "floor1" //not a slime extract sprite but... something close enough!
- item_state = "slime"
- light_color = "#FFF423"
- w_class = ITEMSIZE_TINY
- light_range = 6
- on = 1 //Bio-luminesence has one setting, on.
- power_use = 0
-
-/obj/item/device/flashlight/slime/Initialize()
- . = ..()
- set_light(light_range, light_power, light_color)
-
-/obj/item/device/flashlight/slime/update_brightness()
- return
-
-/obj/item/device/flashlight/slime/attack_self(mob/user)
- return //Bio-luminescence does not toggle.
diff --git a/code/game/objects/items/devices/hacktool.dm b/code/game/objects/items/devices/hacktool.dm
index 5110c3e0f1..5d6b46c6a7 100644
--- a/code/game/objects/items/devices/hacktool.dm
+++ b/code/game/objects/items/devices/hacktool.dm
@@ -7,8 +7,8 @@
var/list/supported_types
var/datum/tgui_state/default/must_hack/hack_state
-/obj/item/device/multitool/hacktool/Initialize()
- . = ..()
+/obj/item/device/multitool/hacktool/New()
+ ..()
known_targets = list()
max_known_targets = 5 + rand(1,3)
supported_types = list(/obj/machinery/door/airlock)
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 64b8e2b64e..784fb4ced3 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -29,14 +29,14 @@
/obj/item/device/laser_pointer/purple
pointer_icon_state = "purple_laser"
-/obj/item/device/laser_pointer/Initialize()
- . = ..()
+/obj/item/device/laser_pointer/New()
+ ..()
diode = new(src)
if(!pointer_icon_state)
pointer_icon_state = pick("red_laser","green_laser","blue_laser","purple_laser")
-/obj/item/device/laser_pointer/upgraded/Initialize()
- . = ..()
+/obj/item/device/laser_pointer/upgraded/New()
+ ..()
diode = new /obj/item/weapon/stock_parts/micro_laser/ultra
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 76c84fa8d6..6ae95bcf8a 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -59,9 +59,9 @@
// when we get this many shards, we get a free bulb.
var/shards_required = 4
-/obj/item/device/lightreplacer/Initialize()
+/obj/item/device/lightreplacer/New()
failmsg = "The [name]'s refill light blinks red."
- . = ..()
+ ..()
/obj/item/device/lightreplacer/examine(mob/user)
. = ..()
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 67cf27e7fe..a944d8c172 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -43,8 +43,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
if(istype(rig))
rig.forced_move(direction, user)
-/obj/item/device/paicard/Initialize()
- . = ..()
+/obj/item/device/paicard/New()
+ ..()
add_overlay("pai-off")
/obj/item/device/paicard/Destroy()
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index cf0d97d7ae..86ef63b280 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -6,8 +6,8 @@
var/list/modes
var/mode
-/obj/item/device/pipe_painter/Initialize()
- . = ..()
+/obj/item/device/pipe_painter/New()
+ ..()
modes = new()
for(var/C in pipe_colors)
modes += "[C]"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 8af7b3fae6..e456f22b26 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -20,8 +20,8 @@
drop_sound = 'sound/items/drop/component.ogg'
pickup_sound = 'sound/items/pickup/component.ogg'
-/obj/item/device/radio/headset/Initialize()
- . = ..()
+/obj/item/device/radio/headset/New()
+ ..()
internal_channels.Cut()
if(ks1type)
keyslot1 = new ks1type(src)
@@ -428,11 +428,14 @@
if(keyslot2.syndie)
src.syndie = 1
- if(!radio_controller)
- src.name = "broken radio headset"
- return
for (var/ch_name in channels)
+ if(!radio_controller)
+ sleep(30) // Waiting for the radio_controller to be created.
+ if(!radio_controller)
+ src.name = "broken radio headset"
+ return
+
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
if(setDescription)
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index da491c7d0f..cf3781f31b 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -75,23 +75,23 @@
channels = radiochannels.Copy()
return ..()
-/obj/item/device/radio/intercom/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/New()
+ ..()
circuit = new circuit(src)
-/obj/item/device/radio/intercom/department/medbay/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/department/medbay/New()
+ ..()
internal_channels = default_medbay_channels.Copy()
-/obj/item/device/radio/intercom/department/security/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/department/security/New()
+ ..()
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
)
-/obj/item/device/radio/intercom/entertainment/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/entertainment/New()
+ ..()
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(ENT_FREQ) = list()
@@ -104,8 +104,8 @@
subspace_transmission = 1
syndie = 1
-/obj/item/device/radio/intercom/syndicate/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/syndicate/New()
+ ..()
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/raider
@@ -115,8 +115,8 @@
subspace_transmission = 1
syndie = 1
-/obj/item/device/radio/intercom/raider/Initialize()
- . = ..()
+/obj/item/device/radio/intercom/raider/New()
+ ..()
internal_channels[num2text(RAID_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/attack_ai(mob/user as mob)
diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm
index dffce6661a..ace17fa07d 100644
--- a/code/game/objects/items/devices/radio/jammer.dm
+++ b/code/game/objects/items/devices/radio/jammer.dm
@@ -27,8 +27,7 @@ var/global/list/active_radio_jammers = list()
origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!
-/obj/item/device/radio_jammer/Initialize()
- . = ..()
+/obj/item/device/radio_jammer/New()
power_source = new(src)
update_icon() // So it starts with the full overlay.
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 7cb5420b9f..e8ba830cae 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -73,6 +73,12 @@ var/global/list/default_medbay_channels = list(
frequency = new_frequency
radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
+/obj/item/device/radio/New()
+ ..()
+ wires = new(src)
+ internal_channels = default_internal_channels.Copy()
+ listening_objects += src
+
/obj/item/device/radio/Destroy()
qdel(wires)
wires = null
@@ -83,13 +89,9 @@ var/global/list/default_medbay_channels = list(
radio_controller.remove_object(src, radiochannels[ch_name])
return ..()
+
/obj/item/device/radio/Initialize()
. = ..()
-
- wires = new(src)
- internal_channels = default_internal_channels.Copy()
- listening_objects += src
-
if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
set_frequency(frequency)
@@ -755,6 +757,6 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
/obj/item/device/radio/phone/medbay
frequency = MED_I_FREQ
-/obj/item/device/radio/phone/medbay/Initialize()
- . = ..()
+/obj/item/device/radio/phone/medbay/New()
+ ..()
internal_channels = default_medbay_channels.Copy()
diff --git a/code/game/objects/items/devices/scanners/health.dm b/code/game/objects/items/devices/scanners/health.dm
index 107bfc0b67..02b33bdec5 100644
--- a/code/game/objects/items/devices/scanners/health.dm
+++ b/code/game/objects/items/devices/scanners/health.dm
@@ -1,327 +1,327 @@
-#define DEFIB_TIME_LIMIT (10 MINUTES) //VOREStation addition- past this many seconds, defib is useless.
-
-/obj/item/device/healthanalyzer
- name = "health analyzer"
- desc = "A hand-held body scanner able to distinguish vital signs of the subject."
- icon_state = "health"
- item_state = "healthanalyzer"
- slot_flags = SLOT_BELT
- throwforce = 3
- w_class = ITEMSIZE_SMALL
- throw_speed = 5
- throw_range = 10
- matter = list(MAT_STEEL = 200)
- origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
- var/mode = 1;
- var/advscan = 0
- var/showadvscan = 1
-
-/obj/item/device/healthanalyzer/Initialize()
- if(advscan >= 1)
- verbs += /obj/item/device/healthanalyzer/proc/toggle_adv
- . = ..()
-
-/obj/item/device/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
- if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
- return ..()
- scan_mob(M, user) //default surgery behaviour is just to scan as usual
- return 1
-
-/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/user)
- scan_mob(M, user)
-
-/obj/item/device/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user)
- var/dat = ""
- if ((CLUMSY in user.mutations) && prob(50))
- user.visible_message("\The [user] has analyzed the floor's vitals!", "You try to analyze the floor's vitals!")
- dat += "Analyzing Results for the floor:
"
- dat += "Overall Status: Healthy
"
- dat += "\tDamage Specifics: 0-0-0-0
"
- dat += "Key: Suffocation/Toxin/Burns/Brute
"
- dat += "Body Temperature: ???"
- user.show_message("[dat]", 1)
- return
- if (!user.IsAdvancedToolUser())
- to_chat(user, "You don't have the dexterity to do this!")
- return
-
- flick("[icon_state]-scan", src) //makes it so that it plays the scan animation on a succesful scan
- user.visible_message("[user] has analyzed [M]'s vitals.","You have analyzed [M]'s vitals.")
-
- if (!ishuman(M) || M.isSynthetic())
- //these sensors are designed for organic life
- dat += "Analyzing Results for ERROR:\n\tOverall Status: ERROR
"
- dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
- dat += "\tDamage Specifics: ? - ? - ? - ?
"
- dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
- dat += "Warning: Blood Level ERROR: --% --cl. Type: ERROR
"
- dat += "Subject's pulse: -- bpm."
- user.show_message(dat, 1)
- return
-
- var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
- var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss()
- var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : M.getToxLoss()
- var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss()
- var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss()
- if(M.status_flags & FAKEDEATH)
- OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy
- dat += "Analyzing Results for [M]:
"
- dat += "Overall Status: dead
"
- else
- dat += "Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]
"
- dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
- dat += "\tDamage Specifics: [OX] - [TX] - [BU] - [BR]
"
- dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
- //VOREStation edit/addition starts
- if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
- dat += "Time of Death: [worldtime2stationtime(M.timeofdeath)]
"
- var/tdelta = round(world.time - M.timeofdeath)
- if(tdelta < (DEFIB_TIME_LIMIT * 10))
- dat += "Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!
"
- //VOREStation edit/addition ends
- if(istype(M, /mob/living/carbon/human) && mode == 1)
- var/mob/living/carbon/human/H = M
- var/list/damaged = H.get_damaged_organs(1,1)
- dat += "Localized Damage, Brute/Burn:
"
- if(length(damaged)>0)
- for(var/obj/item/organ/external/org in damaged)
- if(org.robotic >= ORGAN_ROBOT)
- continue
- else
- dat += " [capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : 0]"
- dat += "[(org.status & ORGAN_BLEEDING)?"\[Bleeding\]":""] - "
- dat += "[(org.burn_dam > 0) ? "[org.burn_dam]" : 0]
"
- else
- dat += " Limbs are OK.
"
-
- OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
- TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal"
- BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K"
- BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K"
- if(M.status_flags & FAKEDEATH)
- OX = fake_oxy > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
- dat += "[OX] | [TX] | [BU] | [BR]
"
- if(M.radiation)
- if(advscan >= 2 && showadvscan == 1)
- var/severity = ""
- if(M.radiation >= 75)
- severity = "Critical"
- else if(M.radiation >= 50)
- severity = "Severe"
- else if(M.radiation >= 25)
- severity = "Moderate"
- else if(M.radiation >= 1)
- severity = "Low"
- dat += "[severity] levels of radiation detected. [(severity == "Critical") ? " Immediate treatment advised." : ""]
"
- else
- dat += "Radiation detected.
"
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(C.reagents.total_volume)
- var/unknown = 0
- var/reagentdata[0]
- var/unknownreagents[0]
- for(var/datum/reagent/R as anything in C.reagents.reagent_list)
- if(R.scannable)
- reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
- else
- unknown++
- unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
- if(reagentdata.len)
- dat += "Beneficial reagents detected in subject's blood:
"
- for(var/d in reagentdata)
- dat += reagentdata[d]
- if(unknown)
- if(advscan >= 3 && showadvscan == 1)
- dat += "Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:
"
- for(var/d in unknownreagents)
- dat += unknownreagents[d]
- else
- dat += "Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.
"
- if(C.ingested && C.ingested.total_volume)
- var/unknown = 0
- var/stomachreagentdata[0]
- var/stomachunknownreagents[0]
- for(var/datum/reagent/R as anything in C.ingested.reagent_list)
- if(R.scannable)
- stomachreagentdata["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
- if (advscan == 0 || showadvscan == 0)
- dat += "[R.name] found in subject's stomach.
"
- else
- ++unknown
- stomachunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
- if(advscan >= 1 && showadvscan == 1)
- dat += "Beneficial reagents detected in subject's stomach:
"
- for(var/d in stomachreagentdata)
- dat += stomachreagentdata[d]
- if(unknown)
- if(advscan >= 3 && showadvscan == 1)
- dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:
"
- for(var/d in stomachunknownreagents)
- dat += stomachunknownreagents[d]
- else
- dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.
"
- if(C.touching && C.touching.total_volume)
- var/unknown = 0
- var/touchreagentdata[0]
- var/touchunknownreagents[0]
- for(var/datum/reagent/R as anything in C.touching.reagent_list)
- if(R.scannable)
- touchreagentdata["[R.id]"] = "\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
- if (advscan == 0 || showadvscan == 0)
- dat += "[R.name] found in subject's dermis.
"
- else
- ++unknown
- touchunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
- if(advscan >= 1 && showadvscan == 1)
- dat += "Beneficial reagents detected in subject's dermis:
"
- for(var/d in touchreagentdata)
- dat += touchreagentdata[d]
- if(unknown)
- if(advscan >= 3 && showadvscan == 1)
- dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:
"
- for(var/d in touchunknownreagents)
- dat += touchunknownreagents[d]
- else
- dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.
"
- if(C.virus2.len)
- for (var/ID in C.virus2)
- if (ID in virusDB)
- var/datum/data/record/V = virusDB[ID]
- dat += "Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]
"
- else
- dat += "Warning: Unknown pathogen detected in subject's blood.
"
- if (M.getCloneLoss())
- dat += "Subject appears to have been imperfectly cloned.
"
-// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
-// user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
- if (M.has_brain_worms())
- dat += "Subject suffering from aberrant brain activity. Recommend further scanning.
"
- else if (M.getBrainLoss() >= 60 || !M.has_brain())
- dat += "Subject is brain dead.
"
- else if (M.getBrainLoss() >= 25)
- dat += "Severe brain damage detected. Subject likely to have a traumatic brain injury.
"
- else if (M.getBrainLoss() >= 10)
- dat += "Significant brain damage detected. Subject may have had a concussion.
"
- else if (M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1)
- dat += "Minor brain damage detected.
"
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- for(var/obj/item/organ/internal/appendix/a in H.internal_organs)
- var/severity = ""
- if(a.inflamed > 3)
- severity = "Severe"
- else if(a.inflamed > 2)
- severity = "Moderate"
- else if(a.inflamed >= 1)
- severity = "Mild"
- if(severity)
- dat += "[severity] inflammation detected in subject [a.name].
"
- // Infections, fractures, and IB
- var/basic_fracture = 0 // If it's a basic scanner
- var/basic_ib = 0 // If it's a basic scanner
- var/fracture_dat = "" // All the fractures
- var/infection_dat = "" // All the infections
- var/ib_dat = "" // All the IB
- for(var/obj/item/organ/external/e in H.organs)
- if(!e)
- continue
- // Broken limbs
- if(e.status & ORGAN_BROKEN)
- if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
- fracture_dat += "Unsecured fracture in subject [e.name]. Splinting recommended for transport.
"
- else if(advscan >= 1 && showadvscan == 1)
- fracture_dat += "Bone fractures detected in subject [e.name].
"
- else
- basic_fracture = 1
- // Infections
- if(e.has_infected_wound())
- dat += "Infected wound detected in subject [e.name]. Disinfection recommended.
"
- // IB
- for(var/datum/wound/W in e.wounds)
- if(W.internal)
- if(advscan >= 1 && showadvscan == 1)
- ib_dat += "Internal bleeding detected in subject [e.name].
"
- else
- basic_ib = 1
- if(basic_fracture)
- fracture_dat += "Bone fractures detected. Advanced scanner required for location.
"
- if(basic_ib)
- ib_dat += "Internal bleeding detected. Advanced scanner required for location.
"
- dat += fracture_dat
- dat += infection_dat
- dat += ib_dat
-
- // Blood level
- if(M:vessel)
- var/blood_volume = H.vessel.get_reagent_amount("blood")
- var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
- var/blood_type = H.dna.b_type
- if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
- dat += "Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
- else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
- dat += "Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
- else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
- dat += "Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
- else
- dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
- dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.
" // VORE Edit: Missed a linebreak here.
- if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera.
- if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment())
- dat += "WARNING: Protein levels low. Subject incapable of reconstitution."
- else if(H.revive_ready == REVIVING_NOW)
- dat += "Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds."
- else if(H.revive_ready == REVIVING_DONE)
- dat += "Subject is ready to hatch. Transfer to dark room for holding with food available."
- else if(H.stat == DEAD)
- dat+= "WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation."
- else // If they bop them and they're not dead or reviving, give 'em a little notice.
- dat += "Subject is a Xenochimera. Treat accordingly."
- // VOREStation Edit End
- user.show_message(dat, 1)
-
-/obj/item/device/healthanalyzer/verb/toggle_mode()
- set name = "Switch Verbosity"
- set category = "Object"
-
- mode = !mode
- switch (mode)
- if(1)
- to_chat(usr, "The scanner now shows specific limb damage.")
- if(0)
- to_chat(usr, "The scanner no longer shows limb damage.")
-
-/obj/item/device/healthanalyzer/proc/toggle_adv()
- set name = "Toggle Advanced Scan"
- set category = "Object"
-
- showadvscan = !showadvscan
- switch (showadvscan)
- if(1)
- to_chat(usr, "The scanner will now perform an advanced analysis.")
- if(0)
- to_chat(usr, "The scanner will now perform a basic analysis.")
-
-/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
- name = "improved health analyzer"
- desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
- advscan = 1
- origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
- icon_state = "health1"
-
-/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
- name = "advanced health analyzer"
- desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
- advscan = 2
- origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
- icon_state = "health2"
-
-/obj/item/device/healthanalyzer/phasic //reports all of the above, as well as name and quantity of nonmed reagents in stomach
- name = "phasic health analyzer"
- desc = "Possibly the most advanced health analyzer to ever have existed, utilising bluespace technology to determine almost everything worth knowing about a patient."
- advscan = 3
- origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
- icon_state = "health3"
-
+#define DEFIB_TIME_LIMIT (10 MINUTES) //VOREStation addition- past this many seconds, defib is useless.
+
+/obj/item/device/healthanalyzer
+ name = "health analyzer"
+ desc = "A hand-held body scanner able to distinguish vital signs of the subject."
+ icon_state = "health"
+ item_state = "healthanalyzer"
+ slot_flags = SLOT_BELT
+ throwforce = 3
+ w_class = ITEMSIZE_SMALL
+ throw_speed = 5
+ throw_range = 10
+ matter = list(MAT_STEEL = 200)
+ origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
+ var/mode = 1;
+ var/advscan = 0
+ var/showadvscan = 1
+
+/obj/item/device/healthanalyzer/New()
+ if(advscan >= 1)
+ verbs += /obj/item/device/healthanalyzer/proc/toggle_adv
+ ..()
+
+/obj/item/device/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
+ if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
+ return ..()
+ scan_mob(M, user) //default surgery behaviour is just to scan as usual
+ return 1
+
+/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/user)
+ scan_mob(M, user)
+
+/obj/item/device/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user)
+ var/dat = ""
+ if ((CLUMSY in user.mutations) && prob(50))
+ user.visible_message("\The [user] has analyzed the floor's vitals!", "You try to analyze the floor's vitals!")
+ dat += "Analyzing Results for the floor:
"
+ dat += "Overall Status: Healthy
"
+ dat += "\tDamage Specifics: 0-0-0-0
"
+ dat += "Key: Suffocation/Toxin/Burns/Brute
"
+ dat += "Body Temperature: ???"
+ user.show_message("[dat]", 1)
+ return
+ if (!user.IsAdvancedToolUser())
+ to_chat(user, "You don't have the dexterity to do this!")
+ return
+
+ flick("[icon_state]-scan", src) //makes it so that it plays the scan animation on a succesful scan
+ user.visible_message("[user] has analyzed [M]'s vitals.","You have analyzed [M]'s vitals.")
+
+ if (!ishuman(M) || M.isSynthetic())
+ //these sensors are designed for organic life
+ dat += "Analyzing Results for ERROR:\n\tOverall Status: ERROR
"
+ dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
+ dat += "\tDamage Specifics: ? - ? - ? - ?
"
+ dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
+ dat += "Warning: Blood Level ERROR: --% --cl. Type: ERROR
"
+ dat += "Subject's pulse: -- bpm."
+ user.show_message(dat, 1)
+ return
+
+ var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
+ var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss()
+ var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : M.getToxLoss()
+ var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss()
+ var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss()
+ if(M.status_flags & FAKEDEATH)
+ OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy
+ dat += "Analyzing Results for [M]:
"
+ dat += "Overall Status: dead
"
+ else
+ dat += "Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]
"
+ dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
+ dat += "\tDamage Specifics: [OX] - [TX] - [BU] - [BR]
"
+ dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
+ //VOREStation edit/addition starts
+ if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
+ dat += "Time of Death: [worldtime2stationtime(M.timeofdeath)]
"
+ var/tdelta = round(world.time - M.timeofdeath)
+ if(tdelta < (DEFIB_TIME_LIMIT * 10))
+ dat += "Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!
"
+ //VOREStation edit/addition ends
+ if(istype(M, /mob/living/carbon/human) && mode == 1)
+ var/mob/living/carbon/human/H = M
+ var/list/damaged = H.get_damaged_organs(1,1)
+ dat += "Localized Damage, Brute/Burn:
"
+ if(length(damaged)>0)
+ for(var/obj/item/organ/external/org in damaged)
+ if(org.robotic >= ORGAN_ROBOT)
+ continue
+ else
+ dat += " [capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : 0]"
+ dat += "[(org.status & ORGAN_BLEEDING)?"\[Bleeding\]":""] - "
+ dat += "[(org.burn_dam > 0) ? "[org.burn_dam]" : 0]
"
+ else
+ dat += " Limbs are OK.
"
+
+ OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
+ TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal"
+ BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K"
+ BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K"
+ if(M.status_flags & FAKEDEATH)
+ OX = fake_oxy > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
+ dat += "[OX] | [TX] | [BU] | [BR]
"
+ if(M.radiation)
+ if(advscan >= 2 && showadvscan == 1)
+ var/severity = ""
+ if(M.radiation >= 75)
+ severity = "Critical"
+ else if(M.radiation >= 50)
+ severity = "Severe"
+ else if(M.radiation >= 25)
+ severity = "Moderate"
+ else if(M.radiation >= 1)
+ severity = "Low"
+ dat += "[severity] levels of radiation detected. [(severity == "Critical") ? " Immediate treatment advised." : ""]
"
+ else
+ dat += "Radiation detected.
"
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(C.reagents.total_volume)
+ var/unknown = 0
+ var/reagentdata[0]
+ var/unknownreagents[0]
+ for(var/datum/reagent/R as anything in C.reagents.reagent_list)
+ if(R.scannable)
+ reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ else
+ unknown++
+ unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(reagentdata.len)
+ dat += "Beneficial reagents detected in subject's blood:
"
+ for(var/d in reagentdata)
+ dat += reagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:
"
+ for(var/d in unknownreagents)
+ dat += unknownreagents[d]
+ else
+ dat += "Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.
"
+ if(C.ingested && C.ingested.total_volume)
+ var/unknown = 0
+ var/stomachreagentdata[0]
+ var/stomachunknownreagents[0]
+ for(var/datum/reagent/R as anything in C.ingested.reagent_list)
+ if(R.scannable)
+ stomachreagentdata["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if (advscan == 0 || showadvscan == 0)
+ dat += "[R.name] found in subject's stomach.
"
+ else
+ ++unknown
+ stomachunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(advscan >= 1 && showadvscan == 1)
+ dat += "Beneficial reagents detected in subject's stomach:
"
+ for(var/d in stomachreagentdata)
+ dat += stomachreagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:
"
+ for(var/d in stomachunknownreagents)
+ dat += stomachunknownreagents[d]
+ else
+ dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.
"
+ if(C.touching && C.touching.total_volume)
+ var/unknown = 0
+ var/touchreagentdata[0]
+ var/touchunknownreagents[0]
+ for(var/datum/reagent/R as anything in C.touching.reagent_list)
+ if(R.scannable)
+ touchreagentdata["[R.id]"] = "\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if (advscan == 0 || showadvscan == 0)
+ dat += "[R.name] found in subject's dermis.
"
+ else
+ ++unknown
+ touchunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(advscan >= 1 && showadvscan == 1)
+ dat += "Beneficial reagents detected in subject's dermis:
"
+ for(var/d in touchreagentdata)
+ dat += touchreagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:
"
+ for(var/d in touchunknownreagents)
+ dat += touchunknownreagents[d]
+ else
+ dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.
"
+ if(C.virus2.len)
+ for (var/ID in C.virus2)
+ if (ID in virusDB)
+ var/datum/data/record/V = virusDB[ID]
+ dat += "Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]
"
+ else
+ dat += "Warning: Unknown pathogen detected in subject's blood.
"
+ if (M.getCloneLoss())
+ dat += "Subject appears to have been imperfectly cloned.
"
+// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
+// user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
+ if (M.has_brain_worms())
+ dat += "Subject suffering from aberrant brain activity. Recommend further scanning.
"
+ else if (M.getBrainLoss() >= 60 || !M.has_brain())
+ dat += "Subject is brain dead.
"
+ else if (M.getBrainLoss() >= 25)
+ dat += "Severe brain damage detected. Subject likely to have a traumatic brain injury.
"
+ else if (M.getBrainLoss() >= 10)
+ dat += "Significant brain damage detected. Subject may have had a concussion.
"
+ else if (M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1)
+ dat += "Minor brain damage detected.
"
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ for(var/obj/item/organ/internal/appendix/a in H.internal_organs)
+ var/severity = ""
+ if(a.inflamed > 3)
+ severity = "Severe"
+ else if(a.inflamed > 2)
+ severity = "Moderate"
+ else if(a.inflamed >= 1)
+ severity = "Mild"
+ if(severity)
+ dat += "[severity] inflammation detected in subject [a.name].
"
+ // Infections, fractures, and IB
+ var/basic_fracture = 0 // If it's a basic scanner
+ var/basic_ib = 0 // If it's a basic scanner
+ var/fracture_dat = "" // All the fractures
+ var/infection_dat = "" // All the infections
+ var/ib_dat = "" // All the IB
+ for(var/obj/item/organ/external/e in H.organs)
+ if(!e)
+ continue
+ // Broken limbs
+ if(e.status & ORGAN_BROKEN)
+ if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
+ fracture_dat += "Unsecured fracture in subject [e.name]. Splinting recommended for transport.
"
+ else if(advscan >= 1 && showadvscan == 1)
+ fracture_dat += "Bone fractures detected in subject [e.name].
"
+ else
+ basic_fracture = 1
+ // Infections
+ if(e.has_infected_wound())
+ dat += "Infected wound detected in subject [e.name]. Disinfection recommended.
"
+ // IB
+ for(var/datum/wound/W in e.wounds)
+ if(W.internal)
+ if(advscan >= 1 && showadvscan == 1)
+ ib_dat += "Internal bleeding detected in subject [e.name].
"
+ else
+ basic_ib = 1
+ if(basic_fracture)
+ fracture_dat += "Bone fractures detected. Advanced scanner required for location.
"
+ if(basic_ib)
+ ib_dat += "Internal bleeding detected. Advanced scanner required for location.
"
+ dat += fracture_dat
+ dat += infection_dat
+ dat += ib_dat
+
+ // Blood level
+ if(M:vessel)
+ var/blood_volume = H.vessel.get_reagent_amount("blood")
+ var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
+ var/blood_type = H.dna.b_type
+ if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
+ dat += "Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
+ dat += "Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
+ dat += "Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else
+ dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.
" // VORE Edit: Missed a linebreak here.
+ if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera.
+ if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment())
+ dat += "WARNING: Protein levels low. Subject incapable of reconstitution."
+ else if(H.revive_ready == REVIVING_NOW)
+ dat += "Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds."
+ else if(H.revive_ready == REVIVING_DONE)
+ dat += "Subject is ready to hatch. Transfer to dark room for holding with food available."
+ else if(H.stat == DEAD)
+ dat+= "WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation."
+ else // If they bop them and they're not dead or reviving, give 'em a little notice.
+ dat += "Subject is a Xenochimera. Treat accordingly."
+ // VOREStation Edit End
+ user.show_message(dat, 1)
+
+/obj/item/device/healthanalyzer/verb/toggle_mode()
+ set name = "Switch Verbosity"
+ set category = "Object"
+
+ mode = !mode
+ switch (mode)
+ if(1)
+ to_chat(usr, "The scanner now shows specific limb damage.")
+ if(0)
+ to_chat(usr, "The scanner no longer shows limb damage.")
+
+/obj/item/device/healthanalyzer/proc/toggle_adv()
+ set name = "Toggle Advanced Scan"
+ set category = "Object"
+
+ showadvscan = !showadvscan
+ switch (showadvscan)
+ if(1)
+ to_chat(usr, "The scanner will now perform an advanced analysis.")
+ if(0)
+ to_chat(usr, "The scanner will now perform a basic analysis.")
+
+/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
+ name = "improved health analyzer"
+ desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
+ advscan = 1
+ origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
+ icon_state = "health1"
+
+/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
+ name = "advanced health analyzer"
+ desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
+ advscan = 2
+ origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
+ icon_state = "health2"
+
+/obj/item/device/healthanalyzer/phasic //reports all of the above, as well as name and quantity of nonmed reagents in stomach
+ name = "phasic health analyzer"
+ desc = "Possibly the most advanced health analyzer to ever have existed, utilising bluespace technology to determine almost everything worth knowing about a patient."
+ advscan = 3
+ origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
+ icon_state = "health3"
+
#undef DEFIB_TIME_LIMIT //VOREStation addition
\ No newline at end of file
diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm
index e962b86d3f..a92bf815b8 100644
--- a/code/game/objects/items/devices/spy_bug.dm
+++ b/code/game/objects/items/devices/spy_bug.dm
@@ -17,8 +17,8 @@
var/obj/machinery/camera/bug/camera
var/camtype = /obj/machinery/camera/bug
-/obj/item/device/camerabug/Initialize()
- . = ..()
+/obj/item/device/camerabug/New()
+ ..()
// radio = new(src)
camera = new camtype(src)
@@ -158,9 +158,8 @@
var/obj/machinery/camera/bug/selected_camera
var/list/obj/machinery/camera/bug/cameras = new()
/*
-/obj/item/device/bug_monitor/Initialize()
+/obj/item/device/bug_monitor/New()
radio = new(src)
- . = ..()
*/
/obj/item/device/bug_monitor/attack_self(mob/user)
if(operating)
@@ -243,8 +242,8 @@
/obj/machinery/camera/bug
network = list(NETWORK_SECURITY)
-/obj/machinery/camera/bug/Initialize()
- . = ..()
+/obj/machinery/camera/bug/New()
+ ..()
name = "Camera #[rand(1000,9999)]"
c_tag = name
@@ -252,8 +251,8 @@
// These cheap toys are accessible from the mercenary camera console as well - only the antag ones though!
network = list(NETWORK_MERCENARY)
-/obj/machinery/camera/bug/spy/Initialize()
- . = ..()
+/obj/machinery/camera/bug/spy/New()
+ ..()
name = "DV-136ZB #[rand(1000,9999)]"
c_tag = name
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index d434a8e733..88701319cd 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -18,8 +18,8 @@
throw_speed = 4
throw_range = 20
-/obj/item/device/taperecorder/Initialize()
- . = ..()
+/obj/item/device/taperecorder/New()
+ ..()
if(ispath(mytape))
mytape = new mytape(src)
update_icon()
@@ -431,6 +431,5 @@
//Random colour tapes
-/obj/item/device/tape/random/Initialize()
- . = ..()
+/obj/item/device/tape/random/New()
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
\ No newline at end of file
diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm
index 28fbf70575..849a649894 100644
--- a/code/game/objects/items/devices/tvcamera.dm
+++ b/code/game/objects/items/devices/tvcamera.dm
@@ -11,6 +11,10 @@
var/weakref/showing
var/showing_name
+/obj/item/device/tvcamera/New()
+ ..()
+ listening_objects += src
+
/obj/item/device/tvcamera/Destroy()
listening_objects -= src
qdel(camera)
@@ -26,7 +30,6 @@
/obj/item/device/tvcamera/Initialize()
. = ..()
- listening_objects += src
camera = new(src)
camera.c_tag = channel
camera.status = FALSE
diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm
index 38b7f658ab..4c07229df7 100644
--- a/code/game/objects/items/devices/uplink.dm
+++ b/code/game/objects/items/devices/uplink.dm
@@ -212,8 +212,8 @@
//
// Includes normal radio uplink, multitool uplink,
// implant uplink (not the implant tool) and a preset headset uplink.
-/obj/item/device/radio/uplink/Initialize()
- . = ..()
+/obj/item/device/radio/uplink/New()
+ ..()
hidden_uplink = new(src)
icon_state = "radio"
@@ -221,8 +221,8 @@
if(hidden_uplink)
hidden_uplink.trigger(user)
-/obj/item/device/multitool/uplink/Initialize()
- . = ..()
+/obj/item/device/multitool/uplink/New()
+ ..()
hidden_uplink = new(src)
/obj/item/device/multitool/uplink/attack_self(mob/user as mob)
@@ -232,6 +232,6 @@
/obj/item/device/radio/headset/uplink
traitor_frequency = 1445
-/obj/item/device/radio/headset/uplink/Initialize()
- . = ..()
+/obj/item/device/radio/headset/uplink/New()
+ ..()
hidden_uplink = new(src)
diff --git a/code/game/objects/items/devices/violin.dm b/code/game/objects/items/devices/violin.dm
deleted file mode 100644
index 046b7f8020..0000000000
--- a/code/game/objects/items/devices/violin.dm
+++ /dev/null
@@ -1,41 +0,0 @@
-//copy pasta of the space piano, don't hurt me -Pete
-/obj/item/device/instrument
- name = "generic instrument"
- var/datum/song/handheld/song
- var/instrumentId = "generic"
- var/instrumentExt = "mid"
- icon = 'icons/obj/musician.dmi'
- force = 10
-
-/obj/item/device/instrument/Initialize()
- . = ..()
- song = new(instrumentId, src)
- song.instrumentExt = instrumentExt
-
-/obj/item/device/instrument/Destroy()
- qdel(song)
- song = null
- ..()
-
-/obj/item/device/instrument/attack_self(mob/user as mob)
- if(!user.IsAdvancedToolUser())
- to_chat(user, "You don't have the dexterity to do this!")
- return 1
- interact(user)
-
-/obj/item/device/instrument/interact(mob/user as mob)
- if(!user)
- return
-
- if(user.incapacitated() || user.lying)
- return
-
- user.set_machine(src)
- song.interact(user)
-
-/obj/item/device/instrument/violin
- name = "space violin"
- desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\""
- icon_state = "violin"
- attack_verb = list("smashed")
- instrumentId = "violin"
diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm
index bc10182e1c..d10ff9468a 100644
--- a/code/game/objects/items/glassjar.dm
+++ b/code/game/objects/items/glassjar.dm
@@ -17,8 +17,8 @@
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
-/obj/item/glass_jar/Initialize()
- . = ..()
+/obj/item/glass_jar/New()
+ ..()
update_icon()
/obj/item/glass_jar/afterattack(var/atom/A, var/mob/user, var/proximity)
diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm
index ae7697610e..f172326fce 100644
--- a/code/game/objects/items/paintkit.dm
+++ b/code/game/objects/items/paintkit.dm
@@ -198,7 +198,6 @@
return ..()
/obj/item/device/kit/suit/rig/debug/Initialize()
- . = ..()
set_info("debug suit", "This is a test", "debug", CUSTOM_ITEM_OBJ, CUSTOM_ITEM_MOB)
/obj/item/device/kit/paint
diff --git a/code/game/objects/items/poi_items.dm b/code/game/objects/items/poi_items.dm
index 31b18179af..2c05f0cfca 100644
--- a/code/game/objects/items/poi_items.dm
+++ b/code/game/objects/items/poi_items.dm
@@ -28,7 +28,7 @@
desc = "The top of this twisted chunk of metal is faintly stamped with a five pointed star. 'Property of US Army, Pascal B - 1957'."
catalogue_data = list(/datum/category_item/catalogue/information/objects/pascalb)
-/obj/item/poi/pascalb/Initialize()
+/obj/item/poi/pascalb/New()
START_PROCESSING(SSobj, src)
return ..()
@@ -75,7 +75,7 @@
desc = "This broken hunk of machinery looks extremely dangerous."
catalogue_data = list(/datum/category_item/catalogue/information/objects/oldreactor)
-/obj/item/poi/brokenoldreactor/Initialize()
+/obj/item/poi/brokenoldreactor/New()
START_PROCESSING(SSobj, src)
return ..()
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index c999d9cd7a..ddeac74b58 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -67,8 +67,8 @@
icon_state = "healthhud"
icon = 'icons/inventory/eyes/item.dmi'
-/obj/item/borg/sight/hud/med/Initialize()
- . = ..()
+/obj/item/borg/sight/hud/med/New()
+ ..()
hud = new /obj/item/clothing/glasses/hud/health(src)
return
@@ -78,7 +78,7 @@
icon_state = "securityhud"
icon = 'icons/inventory/eyes/item.dmi'
-/obj/item/borg/sight/hud/sec/Initialize()
- . = ..()
+/obj/item/borg/sight/hud/sec/New()
+ ..()
hud = new /obj/item/clothing/glasses/hud/security(src)
return
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 7fa84da4e1..28c89140d0 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -12,6 +12,9 @@
/obj/item/robot_parts/set_dir()
return
+/obj/item/robot_parts/New(var/newloc, var/model)
+ ..(newloc)
+
/obj/item/robot_parts/l_arm
name = "cyborg left arm"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
@@ -68,8 +71,8 @@
var/obj/item/robot_parts/head/head = null
var/created_name = ""
-/obj/item/robot_parts/robot_suit/Initialize()
- . = ..()
+/obj/item/robot_parts/robot_suit/New()
+ ..()
src.updateicon()
/obj/item/robot_parts/robot_suit/proc/updateicon()
@@ -189,7 +192,7 @@
to_chat(user, "This [W] does not seem to fit.")
return
- var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), TRUE)
+ var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
if(!O) return
user.drop_item()
diff --git a/code/game/objects/items/stacks/marker_beacons.dm b/code/game/objects/items/stacks/marker_beacons.dm
index 61e7660a1d..bbedcc2255 100644
--- a/code/game/objects/items/stacks/marker_beacons.dm
+++ b/code/game/objects/items/stacks/marker_beacons.dm
@@ -89,7 +89,7 @@ var/list/marker_beacon_colors = list(
var/perma = FALSE
var/mapped_in_color
-/obj/structure/marker_beacon/Initialize(var/ml, set_color)
+/obj/structure/marker_beacon/New(newloc, set_color)
. = ..()
if(set_color)
picked_color = set_color
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index c0181dfdfa..aa3cca9b90 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -17,7 +17,7 @@
center_of_mass = null
var/list/datum/stack_recipe/recipes
var/singular_name
- var/amount = 1
+ VAR_PROTECTED/amount = 1
var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
var/stacktype //determines whether different stack types can merge
var/build_type = null //used when directly applied to a turf
diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm
index 11304a001b..2331485fd1 100644
--- a/code/game/objects/items/toys/toys.dm
+++ b/code/game/objects/items/toys/toys.dm
@@ -36,8 +36,7 @@
icon_state = "waterballoon-e"
drop_sound = 'sound/items/drop/rubber.ogg'
-/obj/item/toy/balloon/Initialize()
- . = ..()
+/obj/item/toy/balloon/New()
var/datum/reagents/R = new/datum/reagents(10)
reagents = R
R.my_atom = src
@@ -301,8 +300,8 @@
var/toysay = "What the fuck did you do?"
drop_sound = 'sound/items/drop/accessory.ogg'
-/obj/item/toy/figure/Initialize()
- . = ..()
+/obj/item/toy/figure/New()
+ ..()
desc = "A \"Space Life\" brand [name]"
/obj/item/toy/figure/attack_self(mob/user as mob)
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index 5eca7f38e7..c8c8d376c8 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -11,12 +11,15 @@
matter = list(MAT_STEEL = 30)
var/age = 0
-/obj/item/trash/Initialize(var/ml, var/_age)
- . = ..()
+/obj/item/trash/New(var/newloc, var/_age)
+ ..(newloc)
if(!isnull(_age))
age = _age
- if(!ml || !config.persistence_ignore_mapload)
+
+/obj/item/trash/Initialize(mapload)
+ if(!mapload || !config.persistence_ignore_mapload)
SSpersistence.track_value(src, /datum/persistent/filth/trash)
+ . = ..()
/obj/item/trash/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth/trash)
diff --git a/code/game/objects/items/weapons/candle.dm b/code/game/objects/items/weapons/candle.dm
index d7e1b40d5e..7663dfd7ff 100644
--- a/code/game/objects/items/weapons/candle.dm
+++ b/code/game/objects/items/weapons/candle.dm
@@ -10,9 +10,9 @@
var/wax = 2000
var/icon_type = "candle"
-/obj/item/weapon/flame/candle/Initialize()
+/obj/item/weapon/flame/candle/New()
wax -= rand(800, 1000) // Enough for 27-33 minutes. 30 minutes on average.
- . = ..()
+ ..()
/obj/item/weapon/flame/candle/update_icon()
var/i
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 0271e44f75..d85e21ae1c 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -412,8 +412,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
ignitermes = "USER fiddles with FLAME, and manages to light their NAME with the power of science."
is_pipe = 1
-/obj/item/clothing/mask/smokable/pipe/Initialize()
- . = ..()
+/obj/item/clothing/mask/smokable/pipe/New()
+ ..()
name = "empty [initial(name)]"
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
@@ -582,8 +582,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
activation_sound = 'sound/items/zippo_on.ogg'
deactivation_sound = 'sound/items/zippo_off.ogg'
-/obj/item/weapon/flame/lighter/random/Initialize()
- . = ..()
+/obj/item/weapon/flame/lighter/random
+/obj/item/weapon/flame/lighter/random/New()
icon_state = "lighter-[pick("r","c","y","g")]"
item_state = icon_state
base_state = icon_state
diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
index a50e9dc7e1..05ef9a7428 100644
--- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
+++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
@@ -10,8 +10,8 @@
var/locked = 1
var/emagged = 0
-/obj/item/weapon/circuitboard/security/Initialize()
- . = ..()
+/obj/item/weapon/circuitboard/security/New()
+ ..()
/obj/item/weapon/circuitboard/security/tv
name = T_BOARD("security camera monitor - television")
@@ -22,8 +22,8 @@
build_path = /obj/machinery/computer/security/engineering
req_access = list()
-/obj/item/weapon/circuitboard/security/engineering/Initialize()
- . = ..()
+/obj/item/weapon/circuitboard/security/engineering/New()
+ ..()
network = engineering_networks
/obj/item/weapon/circuitboard/security/mining
@@ -38,8 +38,8 @@
board_type = new /datum/frame/frame_types/display
matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
-/obj/item/weapon/circuitboard/security/telescreen/entertainment/Initialize()
- . = ..()
+/obj/item/weapon/circuitboard/security/telescreen/entertainment/New()
+ ..()
network = NETWORK_THUNDER
/obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C)
diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm
index 0f3ca5ffe4..5e93f2d031 100644
--- a/code/game/objects/items/weapons/cosmetics.dm
+++ b/code/game/objects/items/weapons/cosmetics.dm
@@ -26,8 +26,7 @@
/obj/item/weapon/lipstick/random
name = "lipstick"
-/obj/item/weapon/lipstick/random/Initialize()
- . = ..()
+/obj/item/weapon/lipstick/random/New()
colour = pick("red","purple","jade","black")
name = "[colour] lipstick"
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 6007477107..ce63436094 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -19,8 +19,7 @@
var/datatype=0
var/value=0
-/obj/item/weapon/dnainjector/Initialize()
- . = ..()
+/obj/item/weapon/dnainjector/New()
if(datatype && block)
buf=new
buf.dna=new
@@ -143,9 +142,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/hulkmut/Initialize()
+/obj/item/weapon/dnainjector/hulkmut/New()
block = HULKBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antihulk
name = "\improper DNA injector (Anti-Hulk)"
@@ -153,9 +152,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antihulk/Initialize()
+/obj/item/weapon/dnainjector/antihulk/New()
block = HULKBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/xraymut
name = "\improper DNA injector (Xray)"
@@ -163,9 +162,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/xraymut/Initialize()
+/obj/item/weapon/dnainjector/xraymut/New()
block = XRAYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antixray
name = "\improper DNA injector (Anti-Xray)"
@@ -173,9 +172,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antixray/Initialize()
+/obj/item/weapon/dnainjector/antixray/New()
block = XRAYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/firemut
name = "\improper DNA injector (Fire)"
@@ -183,9 +182,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/firemut/Initialize()
+/obj/item/weapon/dnainjector/firemut/New()
block = FIREBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antifire
name = "\improper DNA injector (Anti-Fire)"
@@ -193,9 +192,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antifire/Initialize()
+/obj/item/weapon/dnainjector/antifire/New()
block = FIREBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/telemut
name = "\improper DNA injector (Tele.)"
@@ -203,9 +202,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/telemut/Initialize()
+/obj/item/weapon/dnainjector/telemut/New()
block = TELEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antitele
name = "\improper DNA injector (Anti-Tele.)"
@@ -213,9 +212,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antitele/Initialize()
+/obj/item/weapon/dnainjector/antitele/New()
block = TELEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/nobreath
name = "\improper DNA injector (No Breath)"
@@ -223,9 +222,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/nobreath/Initialize()
+/obj/item/weapon/dnainjector/nobreath/New()
block = NOBREATHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antinobreath
name = "\improper DNA injector (Anti-No Breath)"
@@ -233,9 +232,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antinobreath/Initialize()
+/obj/item/weapon/dnainjector/antinobreath/New()
block = NOBREATHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/remoteview
name = "\improper DNA injector (Remote View)"
@@ -243,9 +242,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/remoteview/Initialize()
+/obj/item/weapon/dnainjector/remoteview/New()
block = REMOTEVIEWBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antiremoteview
name = "\improper DNA injector (Anti-Remote View)"
@@ -253,9 +252,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiremoteview/Initialize()
+/obj/item/weapon/dnainjector/antiremoteview/New()
block = REMOTEVIEWBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/regenerate
name = "\improper DNA injector (Regeneration)"
@@ -263,9 +262,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/regenerate/Initialize()
+/obj/item/weapon/dnainjector/regenerate/New()
block = REGENERATEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antiregenerate
name = "\improper DNA injector (Anti-Regeneration)"
@@ -273,9 +272,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiregenerate/Initialize()
+/obj/item/weapon/dnainjector/antiregenerate/New()
block = REGENERATEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/runfast
name = "\improper DNA injector (Increase Run)"
@@ -283,9 +282,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/runfast/Initialize()
+/obj/item/weapon/dnainjector/runfast/New()
block = INCREASERUNBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antirunfast
name = "\improper DNA injector (Anti-Increase Run)"
@@ -293,9 +292,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antirunfast/Initialize()
+/obj/item/weapon/dnainjector/antirunfast/New()
block = INCREASERUNBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/morph
name = "\improper DNA injector (Morph)"
@@ -303,9 +302,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/morph/Initialize()
+/obj/item/weapon/dnainjector/morph/New()
block = MORPHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antimorph
name = "\improper DNA injector (Anti-Morph)"
@@ -313,9 +312,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antimorph/Initialize()
+/obj/item/weapon/dnainjector/antimorph/New()
block = MORPHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/noprints
name = "\improper DNA injector (No Prints)"
@@ -323,9 +322,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/noprints/Initialize()
+/obj/item/weapon/dnainjector/noprints/New()
block = NOPRINTSBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antinoprints
name = "\improper DNA injector (Anti-No Prints)"
@@ -333,9 +332,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antinoprints/Initialize()
+/obj/item/weapon/dnainjector/antinoprints/New()
block = NOPRINTSBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/insulation
name = "\improper DNA injector (Shock Immunity)"
@@ -343,9 +342,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/insulation/Initialize()
+/obj/item/weapon/dnainjector/insulation/New()
block = SHOCKIMMUNITYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antiinsulation
name = "\improper DNA injector (Anti-Shock Immunity)"
@@ -353,9 +352,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiinsulation/Initialize()
+/obj/item/weapon/dnainjector/antiinsulation/New()
block = SHOCKIMMUNITYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/midgit
name = "\improper DNA injector (Small Size)"
@@ -363,9 +362,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/midgit/Initialize()
+/obj/item/weapon/dnainjector/midgit/New()
block = SMALLSIZEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antimidgit
name = "\improper DNA injector (Anti-Small Size)"
@@ -373,9 +372,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antimidgit/Initialize()
+/obj/item/weapon/dnainjector/antimidgit/New()
block = SMALLSIZEBLOCK
- . = ..()
+ ..()
/////////////////////////////////////
/obj/item/weapon/dnainjector/antiglasses
@@ -384,9 +383,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiglasses/Initialize()
+/obj/item/weapon/dnainjector/antiglasses/New()
block = GLASSESBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/glassesmut
name = "\improper DNA injector (Glasses)"
@@ -394,9 +393,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/glassesmut/Initialize()
+/obj/item/weapon/dnainjector/glassesmut/New()
block = GLASSESBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/epimut
name = "\improper DNA injector (Epi.)"
@@ -404,9 +403,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/epimut/Initialize()
+/obj/item/weapon/dnainjector/epimut/New()
block = HEADACHEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antiepi
name = "\improper DNA injector (Anti-Epi.)"
@@ -414,9 +413,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiepi/Initialize()
+/obj/item/weapon/dnainjector/antiepi/New()
block = HEADACHEBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/anticough
name = "\improper DNA injector (Anti-Cough)"
@@ -424,9 +423,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/anticough/Initialize()
+/obj/item/weapon/dnainjector/anticough/New()
block = COUGHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/coughmut
name = "\improper DNA injector (Cough)"
@@ -434,9 +433,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/coughmut/Initialize()
+/obj/item/weapon/dnainjector/coughmut/New()
block = COUGHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/clumsymut
name = "\improper DNA injector (Clumsy)"
@@ -444,9 +443,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/clumsymut/Initialize()
+/obj/item/weapon/dnainjector/clumsymut/New()
block = CLUMSYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/anticlumsy
name = "\improper DNA injector (Anti-Clumy)"
@@ -454,9 +453,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/anticlumsy/Initialize()
+/obj/item/weapon/dnainjector/anticlumsy/New()
block = CLUMSYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antitour
name = "\improper DNA injector (Anti-Tour.)"
@@ -464,9 +463,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antitour/Initialize()
+/obj/item/weapon/dnainjector/antitour/New()
block = TWITCHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/tourmut
name = "\improper DNA injector (Tour.)"
@@ -474,9 +473,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/tourmut/Initialize()
+/obj/item/weapon/dnainjector/tourmut/New()
block = TWITCHBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/stuttmut
name = "\improper DNA injector (Stutt.)"
@@ -484,9 +483,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/stuttmut/Initialize()
+/obj/item/weapon/dnainjector/stuttmut/New()
block = NERVOUSBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antistutt
name = "\improper DNA injector (Anti-Stutt.)"
@@ -494,9 +493,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antistutt/Initialize()
+/obj/item/weapon/dnainjector/antistutt/New()
block = NERVOUSBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/blindmut
name = "\improper DNA injector (Blind)"
@@ -504,9 +503,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/blindmut/Initialize()
+/obj/item/weapon/dnainjector/blindmut/New()
block = BLINDBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antiblind
name = "\improper DNA injector (Anti-Blind)"
@@ -514,9 +513,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiblind/Initialize()
+/obj/item/weapon/dnainjector/antiblind/New()
block = BLINDBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/deafmut
name = "\improper DNA injector (Deaf)"
@@ -524,9 +523,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/deafmut/Initialize()
+/obj/item/weapon/dnainjector/deafmut/New()
block = DEAFBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antideaf
name = "\improper DNA injector (Anti-Deaf)"
@@ -534,9 +533,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antideaf/Initialize()
+/obj/item/weapon/dnainjector/antideaf/New()
block = DEAFBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/hallucination
name = "\improper DNA injector (Halluctination)"
@@ -544,9 +543,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/hallucination/Initialize()
+/obj/item/weapon/dnainjector/hallucination/New()
block = HALLUCINATIONBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/antihallucination
name = "\improper DNA injector (Anti-Hallucination)"
@@ -554,9 +553,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antihallucination/Initialize()
+/obj/item/weapon/dnainjector/antihallucination/New()
block = HALLUCINATIONBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/h2m
name = "\improper DNA injector (Human > Monkey)"
@@ -564,9 +563,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/h2m/Initialize()
+/obj/item/weapon/dnainjector/h2m/New()
block = MONKEYBLOCK
- . = ..()
+ ..()
/obj/item/weapon/dnainjector/m2h
name = "\improper DNA injector (Monkey > Human)"
@@ -574,6 +573,6 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/m2h/Initialize()
+/obj/item/weapon/dnainjector/m2h/New()
block = MONKEYBLOCK
- . = ..()
+ ..()
diff --git a/code/game/objects/items/weapons/ecigs.dm b/code/game/objects/items/weapons/ecigs.dm
index 6411bf2813..a61f6837c3 100644
--- a/code/game/objects/items/weapons/ecigs.dm
+++ b/code/game/objects/items/weapons/ecigs.dm
@@ -18,8 +18,8 @@
var/icon_empty
var/ecig_colors = list(null, COLOR_DARK_GRAY, COLOR_RED_GRAY, COLOR_BLUE_GRAY, COLOR_GREEN_GRAY, COLOR_PURPLE_GRAY)
-/obj/item/clothing/mask/smokable/ecig/Initialize()
- . = ..()
+/obj/item/clothing/mask/smokable/ecig/New()
+ ..()
ec_cartridge = new cartridge_type(src)
/obj/item/clothing/mask/smokable/ecig/examine(mob/user)
@@ -61,8 +61,8 @@
icon_off = "ecigoff1"
icon_empty = "ecigoff1"
icon_on = "ecigon"
-/obj/item/clothing/mask/smokable/ecig/util/Initialize()
- . = ..()
+/obj/item/clothing/mask/smokable/ecig/util/New()
+ ..()
color = pick(ecig_colors)
/obj/item/clothing/mask/smokable/ecig/deluxe
@@ -153,8 +153,7 @@
volume = 20
flags = OPENCONTAINER
-/obj/item/weapon/reagent_containers/ecig_cartridge/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/New()
create_reagents(volume)
/obj/item/weapon/reagent_containers/ecig_cartridge/examine(mob/user as mob)//to see how much left
@@ -169,32 +168,32 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico
name = "flavorless nicotine cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says you can add whatever flavoring agents you want."
-/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine
name = "tobacco flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its tobacco flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 15)
/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine
name = "high nicotine tobacco flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its tobacco flavored, with extra nicotine."
-/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine/New()
+ ..()
reagents.add_reagent("nicotine", 10)
reagents.add_reagent("water", 10)
/obj/item/weapon/reagent_containers/ecig_cartridge/orange
name = "orange flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its orange flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/orange/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/orange/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("orangejuice", 5)
@@ -202,8 +201,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/mint
name = "mint flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its mint flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/mint/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/mint/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("menthol", 5)
@@ -211,8 +210,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon
name = "watermelon flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its watermelon flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("watermelonjuice", 5)
@@ -220,8 +219,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/grape
name = "grape flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its grape flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/grape/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/grape/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("grapejuice", 5)
@@ -229,8 +228,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime
name = "lemon-lime flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its lemon-lime flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("lemon_lime", 5)
@@ -238,8 +237,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/coffee
name = "coffee flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its coffee flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/coffee/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/coffee/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("coffee", 5)
@@ -247,8 +246,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis
name = "herb flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label seems to be suspiciously scuffed off..."
-/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis/Initialize()
- . = ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis/New()
+ ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("cannabis", 5)
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index cb2ff3eb48..5e1d700602 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -18,10 +18,10 @@
var/blast_light = 2
var/blast_flash = 3
-/obj/item/weapon/plastique/Initialize()
+/obj/item/weapon/plastique/New()
wires = new(src)
image_overlay = image('icons/obj/assemblies.dmi', "plastic-explosive2")
- . = ..()
+ ..()
/obj/item/weapon/plastique/Destroy()
qdel(wires)
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index c7884257c6..8eba05ddd5 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -193,11 +193,12 @@
//location.hotspot_expose(1000,500,1)
return
-/obj/item/weapon/flamethrower/full/Initialize(var/ml)
- . = ..(ml)
+/obj/item/weapon/flamethrower/full/New(var/loc)
+ ..()
weldtool = new /obj/item/weapon/weldingtool(src)
weldtool.status = 0
igniter = new /obj/item/device/assembly/igniter(src)
igniter.secured = 0
status = 1
update_icon()
+ return
diff --git a/code/game/objects/items/weapons/game_kit.dm b/code/game/objects/items/weapons/game_kit.dm
index d5efea9583..09ffacd32b 100644
--- a/code/game/objects/items/weapons/game_kit.dm
+++ b/code/game/objects/items/weapons/game_kit.dm
@@ -3,10 +3,9 @@ CONTAINS:
THAT STUPID GAME KIT
*/
-/obj/item/weapon/game_kit/Initialize()
+/obj/item/weapon/game_kit/New()
src.board_stat = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
src.selected = "CR"
- . = ..()
/obj/item/weapon/game_kit/attack_paw(mob/user as mob)
return src.attack_hand(user)
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 281aacc53f..d7fcb01fce 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -16,8 +16,8 @@
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
-/obj/item/weapon/a_gift/Initialize()
- . = ..()
+/obj/item/weapon/a_gift/New()
+ ..()
pixel_x = rand(-10,10)
pixel_y = rand(-10,10)
if(w_class > 0 && w_class < ITEMSIZE_LARGE)
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 98ebb2579d..b176563b26 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -22,8 +22,8 @@
damage *= B.overmind.blob_type.burn_multiplier
B.adjust_integrity(-damage)
- new /obj/effect/effect/sparks(src.loc)
- new /obj/effect/effect/smoke/illumination(src.loc, 5, 30, 30, "#FFFFFF")
+ new/obj/effect/effect/sparks(src.loc)
+ new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF")
qdel(src)
@@ -135,21 +135,31 @@
can_repeat = FALSE
banglet = TRUE
-/obj/item/weapon/grenade/flashbang/clusterbang/segment/Initialize() //Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
- . = ..()
+/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
+ ..()
+
icon_state = "clusterbang_segment_active"
+
var/stepdist = rand(1,4)//How far to step
var/temploc = src.loc//Saves the current location to know where to step away from
walk_away(src,temploc,stepdist)//I must go, my people need me
- addtimer(CALLBACK(src, .proc/detonate), rand(15, 60))
+
+ var/dettime = rand(15,60)
+ spawn(dettime)
+ detonate()
/obj/item/weapon/grenade/flashbang/cluster
banglet = TRUE
-/obj/item/weapon/grenade/flashbang/cluster/Initialize() //Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
- . = ..()
+/obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
+ ..()
+
icon_state = "flashbang_active"
+
var/stepdist = rand(1,3)
var/temploc = src.loc
walk_away(src,temploc,stepdist)
- addtimer(CALLBACK(src, .proc/detonate), rand(15, 60))
+
+ var/dettime = rand(15,60)
+ spawn(dettime)
+ detonate()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm
index 255727800e..1cb98be61a 100644
--- a/code/game/objects/items/weapons/grenades/smokebomb.dm
+++ b/code/game/objects/items/weapons/grenades/smokebomb.dm
@@ -11,8 +11,8 @@
var/smoke_color
var/smoke_strength = 8
-/obj/item/weapon/grenade/smokebomb/Initialize()
- . = ..()
+/obj/item/weapon/grenade/smokebomb/New()
+ ..()
src.smoke = new /datum/effect/effect/system/smoke_spread/bad()
src.smoke.attach(src)
diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index 2a1b769dd2..260eff8539 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -27,7 +27,7 @@
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
-/obj/item/weapon/card/Initialize()
+/obj/item/weapon/card/New()
. = ..()
reset_icon()
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 6136c3d125..52ebd29e7c 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -110,9 +110,9 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/weapon/implant/tracking
/obj/item/weapon/implant/tracking/weak //This is for the loadout
degrade_time = 2.5 MINUTES
-/obj/item/weapon/implant/tracking/Initialize()
+/obj/item/weapon/implant/tracking/New()
id = rand(1, 1000)
- . = ..()
+ ..()
/obj/item/weapon/implant/tracking/post_implant(var/mob/source)
START_PROCESSING(SSobj, src)
@@ -375,8 +375,8 @@ Can only be loaded while still in its original case.
the implant may become unstable and either pre-maturely inject the subject or simply break."}
return dat
-/obj/item/weapon/implant/chem/Initialize()
- . = ..()
+/obj/item/weapon/implant/chem/New()
+ ..()
var/datum/reagents/R = new/datum/reagents(50)
reagents = R
R.my_atom = src
diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm
index 6e2e27d983..1517e2ada3 100644
--- a/code/game/objects/items/weapons/implants/implantcase.dm
+++ b/code/game/objects/items/weapons/implants/implantcase.dm
@@ -67,213 +67,245 @@
desc = "A case containing a tracking implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/tracking/Initialize()
+/obj/item/weapon/implantcase/tracking/New()
src.imp = new /obj/item/weapon/implant/tracking( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/explosive
name = "glass case - 'explosive'"
desc = "A case containing an explosive implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/explosive/Initialize()
+/obj/item/weapon/implantcase/explosive/New()
src.imp = new /obj/item/weapon/implant/explosive( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/chem
name = "glass case - 'chem'"
desc = "A case containing a chemical implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/chem/Initialize()
+/obj/item/weapon/implantcase/chem/New()
src.imp = new /obj/item/weapon/implant/chem( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/loyalty
name = "glass case - 'loyalty'"
desc = "A case containing a loyalty implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/loyalty/Initialize()
+/obj/item/weapon/implantcase/loyalty/New()
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_state = "implantcase-b"
-/obj/item/weapon/implantcase/death_alarm/Initialize()
+/obj/item/weapon/implantcase/death_alarm/New()
src.imp = new /obj/item/weapon/implant/death_alarm( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/freedom
name = "glass case - 'freedom'"
desc = "A case containing a freedom implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/freedom/Initialize()
+/obj/item/weapon/implantcase/freedom/New()
src.imp = new /obj/item/weapon/implant/freedom( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/adrenalin
name = "glass case - 'adrenalin'"
desc = "A case containing an adrenalin implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/adrenalin/Initialize()
+/obj/item/weapon/implantcase/adrenalin/New()
src.imp = new /obj/item/weapon/implant/adrenalin( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/dexplosive
name = "glass case - 'explosive'"
desc = "A case containing an explosive."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/dexplosive/Initialize()
+/obj/item/weapon/implantcase/dexplosive/New()
src.imp = new /obj/item/weapon/implant/dexplosive( src )
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implantcase/health
name = "glass case - 'health'"
desc = "A case containing a health tracking implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/health/Initialize()
+/obj/item/weapon/implantcase/health/New()
src.imp = new /obj/item/weapon/implant/health( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/language
name = "glass case - 'GalCom'"
desc = "A case containing a GalCom language implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/language/Initialize()
+/obj/item/weapon/implantcase/language/New()
src.imp = new /obj/item/weapon/implant/language( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/language/eal
name = "glass case - 'EAL'"
desc = "A case containing an Encoded Audio Language implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/language/eal/Initialize()
+/obj/item/weapon/implantcase/language/eal/New()
src.imp = new /obj/item/weapon/implant/language/eal( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/shades
name = "glass case - 'Integrated Shades'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/shades/Initialize()
+/obj/item/weapon/implantcase/shades/New()
src.imp = new /obj/item/weapon/implant/organ( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/taser
name = "glass case - 'Taser'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/taser/Initialize()
+/obj/item/weapon/implantcase/taser/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/laser
name = "glass case - 'Laser'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/laser/Initialize()
+/obj/item/weapon/implantcase/laser/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/laser( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/dart
name = "glass case - 'Dart'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/dart/Initialize()
+/obj/item/weapon/implantcase/dart/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/dart( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/toolkit
name = "glass case - 'Toolkit'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/toolkit/Initialize()
+/obj/item/weapon/implantcase/toolkit/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/medkit
name = "glass case - 'Toolkit'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/medkit/Initialize()
+/obj/item/weapon/implantcase/medkit/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/medkit( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/surge
name = "glass case - 'Muscle Overclocker'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/surge/Initialize()
+/obj/item/weapon/implantcase/surge/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/surge( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/analyzer
name = "glass case - 'Scanner'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/analyzer/Initialize()
+/obj/item/weapon/implantcase/analyzer/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/sword
name = "glass case - 'Scanner'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/sword/Initialize()
+/obj/item/weapon/implantcase/sword/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist/sword( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/sprinter
name = "glass case - 'Sprinter'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/sprinter/Initialize()
+/obj/item/weapon/implantcase/sprinter/New()
src.imp = new /obj/item/weapon/implant/organ/pelvic( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/armblade
name = "glass case - 'Armblade'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/armblade/Initialize()
+/obj/item/weapon/implantcase/armblade/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/blade( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/handblade
name = "glass case - 'Handblade'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/handblade/Initialize()
+/obj/item/weapon/implantcase/handblade/New()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist/blade( src )
- . = ..()
+ ..()
+ return
/obj/item/weapon/implantcase/restrainingbolt
name = "glass case - 'Restraining Bolt'"
desc = "A case containing a restraining bolt."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/restrainingbolt/Initialize()
+/obj/item/weapon/implantcase/restrainingbolt/New()
src.imp = new /obj/item/weapon/implant/restrainingbolt( src )
- . = ..()
+ ..()
+ return
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index 76aa8edf05..34110d5924 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -19,8 +19,8 @@
var/mob/living/carbon/occupant = null
var/injecting = 0
-/obj/machinery/implantchair/Initialize()
- . = ..()
+/obj/machinery/implantchair/New()
+ ..()
add_implants()
diff --git a/code/game/objects/items/weapons/implants/implantcircuits.dm b/code/game/objects/items/weapons/implants/implantcircuits.dm
index 033ad2c4b1..ffe6547fcb 100644
--- a/code/game/objects/items/weapons/implants/implantcircuits.dm
+++ b/code/game/objects/items/weapons/implants/implantcircuits.dm
@@ -8,8 +8,8 @@
/obj/item/weapon/implant/integrated_circuit/islegal()
return TRUE
-/obj/item/weapon/implant/integrated_circuit/Initialize()
- . = ..()
+/obj/item/weapon/implant/integrated_circuit/New()
+ ..()
IC = new(src)
IC.implant = src
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index 071206f6ee..952e5fa976 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -33,12 +33,15 @@
update()
+ return
+
/obj/item/weapon/implanter/proc/update()
if (src.imp)
src.icon_state = "implanter1"
else
src.icon_state = "implanter0"
src.icon_state += "_[active]"
+ return
/obj/item/weapon/implanter/attack(mob/M as mob, mob/user as mob)
if (!istype(M, /mob/living/carbon))
@@ -74,35 +77,39 @@
/obj/item/weapon/implanter/loyalty
name = "implanter-loyalty"
-/obj/item/weapon/implanter/loyalty/Initialize()
+/obj/item/weapon/implanter/loyalty/New()
src.imp = new /obj/item/weapon/implant/loyalty( src )
- . = ..()
+ ..()
update()
+ return
/obj/item/weapon/implanter/explosive
name = "implanter (E)"
-/obj/item/weapon/implanter/explosive/Initialize()
+/obj/item/weapon/implanter/explosive/New()
src.imp = new /obj/item/weapon/implant/explosive( src )
- . = ..()
+ ..()
update()
+ return
/obj/item/weapon/implanter/adrenalin
name = "implanter-adrenalin"
-/obj/item/weapon/implanter/adrenalin/Initialize()
+/obj/item/weapon/implanter/adrenalin/New()
src.imp = new /obj/item/weapon/implant/adrenalin(src)
- . = ..()
+ ..()
update()
+ return
/obj/item/weapon/implanter/compressed
name = "implanter (C)"
icon_state = "cimplanter1"
-/obj/item/weapon/implanter/compressed/Initialize()
+/obj/item/weapon/implanter/compressed/New()
imp = new /obj/item/weapon/implant/compressed( src )
- . = ..()
+ ..()
update()
+ return
/obj/item/weapon/implanter/compressed/update()
if (imp)
@@ -113,6 +120,7 @@
icon_state = "cimplanter2"
else
icon_state = "cimplanter0"
+ return
/obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob)
var/obj/item/weapon/implant/compressed/c = imp
@@ -150,7 +158,8 @@
/obj/item/weapon/implanter/restrainingbolt
name = "implanter (bolt)"
-/obj/item/weapon/implanter/restrainingbolt/Initialize()
+/obj/item/weapon/implanter/restrainingbolt/New()
src.imp = new /obj/item/weapon/implant/restrainingbolt( src )
- . = ..()
+ ..()
update()
+ return
diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm
index 94d1c2c94d..6e4f5f7a16 100644
--- a/code/game/objects/items/weapons/implants/implantfreedom.dm
+++ b/code/game/objects/items/weapons/implants/implantfreedom.dm
@@ -8,10 +8,12 @@
var/uses = 1.0
-/obj/item/weapon/implant/freedom/Initialize()
+/obj/item/weapon/implant/freedom/New()
src.activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
src.uses = rand(1, 5)
- . = ..()
+ ..()
+ return
+
/obj/item/weapon/implant/freedom/trigger(emote, mob/living/carbon/source as mob)
if (src.uses < 1)
diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm
index cee6297289..51f9c0d696 100644
--- a/code/game/objects/items/weapons/implants/implantuplink.dm
+++ b/code/game/objects/items/weapons/implants/implantuplink.dm
@@ -3,12 +3,13 @@
desc = "Summon things."
var/activation_emote = "chuckle"
-/obj/item/weapon/implant/uplink/Initialize()
+/obj/item/weapon/implant/uplink/New()
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
hidden_uplink = new(src)
//hidden_uplink.uses = 5
//Code currently uses a mind var for telecrystals, balancing is currently an issue. Will investigate.
- . = ..()
+ ..()
+ return
/obj/item/weapon/implant/uplink/post_implant(mob/source)
var/choices = list("blink", "blink_r", "eyebrow", "chuckle", "twitch", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
@@ -21,3 +22,4 @@
/obj/item/weapon/implant/uplink/trigger(emote, mob/source as mob)
if(hidden_uplink && usr == source) // Let's not have another people activate our uplink
hidden_uplink.check_trigger(source, emote, activation_emote)
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 0aa13d84f6..4cac9b9753 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -13,8 +13,8 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Station Repairs and Construction"
-/obj/item/weapon/book/manual/engineering_construction/Initialize()
- . = ..()
+/obj/item/weapon/book/manual/engineering_construction/New()
+ ..()
dat = {"
@@ -35,8 +35,8 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Particle Accelerator User's Guide"
-/obj/item/weapon/book/manual/engineering_particle_accelerator/Initialize()
- . = ..()
+/obj/item/weapon/book/manual/engineering_particle_accelerator/New()
+ ..()
dat = {"