From c08765d0ebcd1a7728c9edd68404d026da8dc3ad Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 10:23:30 +0800 Subject: [PATCH 1/6] let's not get ddosed --- code/game/world.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/world.dm b/code/game/world.dm index 97ed64a405..4369ca6668 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -197,6 +197,14 @@ GLOBAL_LIST(topic_status_cache) /world/Topic(T, addr, master, key) TGS_TOPIC //redirect to server tools if necessary + if(!SSfail2topic) + return "Server not initialized." + if(SSfail2topic.IsRateLimited(addr)) + return "Rate limited." + + if(length(T) > CONFIG_GET(number/topic_max_size)) + return "Payload too large!" + var/static/list/topic_handlers = TopicHandlers() var/list/input = params2list(T) From 021b28a2b7f63c449e5c9770e034baa8a1c26658 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:08:21 +0800 Subject: [PATCH 2/6] cleanup shitcode - b - gone --- SpacemanDMM.toml | 6 +- code/__HELPERS/unsorted.dm | 2 +- code/datums/status_effects/debuffs.dm | 2 +- code/game/alternate_appearance.dm | 2 +- code/game/atoms_movable.dm | 9 +- code/game/gamemodes/gangs/gang_items.dm | 6 +- code/game/objects/items/RCL.dm | 2 +- code/game/objects/items/shields.dm | 2 +- code/game/objects/items/storage/backpack.dm | 2 +- code/game/objects/items/storage/boxes.dm | 2 +- code/game/objects/items/stunbaton.dm | 27 ++-- .../objects/structures/signs/signs_maps.dm | 6 +- .../clock_weapons/ratvarian_shield.dm | 2 +- .../ark_of_the_clockwork_justicar.dm | 2 +- code/modules/arousal/toys/dildos.dm | 16 +-- .../machinery/portable/canister.dm | 2 +- code/modules/atmospherics/multiz.dm | 7 +- code/modules/cargo/bounties/reagent.dm | 6 +- code/modules/cargo/exports/gear.dm | 8 +- code/modules/clothing/neck/_neck.dm | 2 +- code/modules/events/immovable_rod.dm | 39 +++--- code/modules/events/travelling_trader.dm | 16 +-- .../food_and_drinks/food/snacks_cake.dm | 2 +- .../recipes/tablecraft/recipes_donut.dm | 2 +- code/modules/hydroponics/seeds.dm | 4 +- .../subtypes/atmospherics.dm | 2 +- .../new_player/sprite_accessories/caps.dm | 2 +- .../new_player/sprite_accessories/tails.dm | 2 +- .../mob/living/simple_animal/hostile/bear.dm | 4 +- .../simple_animal/hostile/giant_spider.dm | 3 +- .../living/simple_animal/hostile/hostile.dm | 2 +- .../simple_animal/hostile/venus_human_trap.dm | 2 +- code/modules/mob/say_vr.dm | 10 +- .../ammunition/ballistic/shotgun.dm | 2 +- code/modules/projectiles/projectile/plasma.dm | 2 +- .../chemistry/reagents/other_reagents.dm | 2 +- .../reagents/reagent_containers/chem_pack.dm | 3 +- .../crossbreeding/_status_effects.dm | 4 +- .../shuttle/spaceship_navigation_beacon.dm | 2 +- code/modules/surgery/organs/heart.dm | 4 +- .../uplink/uplink_items/uplink_stealth.dm | 2 +- modular_citadel/code/modules/clothing/trek.dm | 116 +++++++++--------- .../projectiles/guns/energy/energy_gun.dm | 10 +- .../chemistry/reagents/fermi_reagents.dm | 3 +- 44 files changed, 180 insertions(+), 173 deletions(-) diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml index eb25c8a0cd..81aff0d557 100644 --- a/SpacemanDMM.toml +++ b/SpacemanDMM.toml @@ -1,9 +1,9 @@ [langserver] dreamchecker = true -#[code_standards] -#disallow_relative_type_definitions = true -#disallow_relative_proc_definitions = true +[code_standards] +disallow_relative_type_definitions = true +disallow_relative_proc_definitions = true [dmdoc] use_typepath_names = true diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f386c5f79b..9f89920b46 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1070,7 +1070,7 @@ B --><-- A return closest_atom -proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) +/proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) if (value == FALSE) //nothing should be calling us with a number, so this is safe value = input("Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text if (isnull(value)) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 19b12410bc..fe59bbe14a 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -887,7 +887,7 @@ L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND) -datum/status_effect/pacify +/datum/status_effect/pacify id = "pacify" status_type = STATUS_EFFECT_REPLACE tick_interval = 1 diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index d7c34da34a..a1746001b9 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) return TRUE return FALSE -datum/atom_hud/alternate_appearance/basic/onePerson +/datum/atom_hud/alternate_appearance/basic/onePerson var/mob/seer /datum/atom_hud/alternate_appearance/basic/onePerson/mobShouldSee(mob/M) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a6fedd6199..bbbce9b8fd 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -31,7 +31,14 @@ var/list/client_mobs_in_contents // This contains all the client mobs within this container var/list/acted_explosions //for explosion dodging var/datum/forced_movement/force_moving = null //handled soley by forced_movement.dm - var/movement_type = GROUND //Incase you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc. + + /** + * In case you have multiple types, you automatically use the most useful one. + * IE: Skating on ice, flippers on water, flying over chasm/space, etc. + * I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs. + */ + var/movement_type = GROUND + var/atom/movable/pulling var/grab_state = 0 var/throwforce = 0 diff --git a/code/game/gamemodes/gangs/gang_items.dm b/code/game/gamemodes/gangs/gang_items.dm index 7d6ecd00f6..d1cf006600 100644 --- a/code/game/gamemodes/gangs/gang_items.dm +++ b/code/game/gamemodes/gangs/gang_items.dm @@ -133,7 +133,7 @@ icon_state = "knuckles" w_class = 3 -datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways? +/datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang member anyways? name = "Cool Sunglasses" id = "glasses" cost = 5 @@ -313,13 +313,13 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m permeability_coefficient = 0.01 clothing_flags = NOSLIP -datum/gang_item/equipment/shield +/datum/gang_item/equipment/shield name = "Riot Shield" id = "riot_shield" cost = 25 item_path = /obj/item/shield/riot -datum/gang_item/equipment/gangsheild +/datum/gang_item/equipment/gangsheild name = "Tower Shield" id = "metal" cost = 45 //High block of melee and even higher for bullets diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 6e305c30ee..e0ac4b43c6 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -166,7 +166,7 @@ last = C break -obj/item/rcl/proc/getMobhook(mob/to_hook) +/obj/item/rcl/proc/getMobhook(mob/to_hook) if(listeningTo == to_hook) return if(listeningTo) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index d1d57fe375..5c3e4fd612 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -258,7 +258,7 @@ shield_flags = SHIELD_FLAGS_DEFAULT max_integrity = 300 -obj/item/shield/riot/bullet_proof +/obj/item/shield/riot/bullet_proof name = "bullet resistant shield" desc = "A far more frail shield made of resistant plastics and kevlar meant to block ballistics." armor = list("melee" = 30, "bullet" = 80, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index f15588a7f1..f10167890a 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -639,7 +639,7 @@ new /obj/item/bikehorn(src) new /obj/item/implanter/sad_trombone(src) -obj/item/storage/backpack/duffelbag/syndie/shredderbundle +/obj/item/storage/backpack/duffelbag/syndie/shredderbundle desc = "A large duffel bag containing two CX Shredders, some magazines, an elite hardsuit, and a chest rig." /obj/item/storage/backpack/duffelbag/syndie/shredderbundle/PopulateContents() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 975621ead1..3f9c3a019e 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -275,7 +275,7 @@ for(var/i in 1 to 7) new /obj/item/grenade/flashbang(src) -obj/item/storage/box/stingbangs +/obj/item/storage/box/stingbangs name = "box of stingbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use." icon_state = "secbox" diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 26051e65fd..d7db5ce908 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -269,21 +269,22 @@ icon_state = "refill_donksoft" var/product = /obj/item/melee/baton/stunsword //what it makes var/list/fromitem = list(/obj/item/melee/baton, /obj/item/melee/baton/loaded) //what it needs - afterattack(obj/O, mob/user as mob) - if(istype(O, product)) - to_chat(user,"[O] is already modified!") - else if(O.type in fromitem) //makes sure O is the right thing - var/obj/item/melee/baton/B = O - if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out - new product(usr.loc) //spawns the product - user.visible_message("[user] modifies [O]!","You modify the [O]!") - qdel(O) //Gets rid of the baton - qdel(src) //gets rid of the kit - else - to_chat(user,"Remove the powercell first!") //We make this check because the stunsword starts without a battery. +/obj/item/ssword_kit/afterattack(obj/O, mob/user as mob) + if(istype(O, product)) + to_chat(user,"[O] is already modified!") + return + if(O.type in fromitem) //makes sure O is the right thing + var/obj/item/melee/baton/B = O + if(!B.cell) //checks for a powercell in the baton. If there isn't one, continue. If there is, warn the user to take it out + new product(usr.loc) //spawns the product + user.visible_message("[user] modifies [O]!","You modify the [O]!") + qdel(O) //Gets rid of the baton + qdel(src) //gets rid of the kit else - to_chat(user, " You can't modify [O] with this kit!") + to_chat(user,"Remove the powercell first!") //We make this check because the stunsword starts without a battery. + else + to_chat(user, " You can't modify [O] with this kit!") //Makeshift stun baton. Replacement for stun gloves. /obj/item/melee/baton/cattleprod diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index ee29ef7443..bcd7c02c66 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -56,17 +56,17 @@ desc = "A direction sign, pointing out which way the Cafe is." icon_state = "direction_cafe" -obj/structure/sign/directions/rooms +/obj/structure/sign/directions/rooms name = "room" desc = "Room numbers, helps others find you!" icon_state = "roomnum" -obj/structure/sign/directions/dorms +/obj/structure/sign/directions/dorms name = "dorm" desc = "Dorm numbers, help others find you, or you find others." icon_state = "dormnum" -obj/structure/sign/directions/cells +/obj/structure/sign/directions/cells name = "room" desc = "So the less fortunate amongst us know where they'll be staying." icon_state = "cellnum" diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm index a681e9b38b..fb7b4f8a94 100644 --- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm +++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm @@ -22,7 +22,7 @@ . = ..() desc = initial(desc) -obj/item/shield/riot/ratvarian/proc/calc_bash_mult() +/obj/item/shield/riot/ratvarian/proc/calc_bash_mult() var/bash_mult = 0 if(!dam_absorbed) return 1 diff --git a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm index 7478d45b08..3b507fb57c 100644 --- a/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm +++ b/code/modules/antagonists/clockcult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -149,7 +149,7 @@ transform = matrix() * 2 animate(src, transform = matrix() * 0.5, time = 30, flags = ANIMATION_END_NOW) -obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() +/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() STOP_PROCESSING(SSprocessing, src) if(!purpose_fulfilled) var/area/gate_area = get_area(src) diff --git a/code/modules/arousal/toys/dildos.dm b/code/modules/arousal/toys/dildos.dm index 0cfa57e5fc..2482b93300 100644 --- a/code/modules/arousal/toys/dildos.dm +++ b/code/modules/arousal/toys/dildos.dm @@ -103,29 +103,29 @@ name = "knotted dildo" attack_verb = list("penetrated", "knotted", "slapped", "inseminated") -obj/item/dildo/human +/obj/item/dildo/human dildo_shape = "human" name = "human dildo" attack_verb = list("penetrated", "slapped", "inseminated") -obj/item/dildo/plain +/obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" attack_verb = list("penetrated", "slapped", "inseminated") -obj/item/dildo/flared +/obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") -obj/item/dildo/flared/huge +/obj/item/dildo/flared/huge name = "literal horse cock" desc = "THIS THING IS HUGE!" dildo_size = 4 force = 10 hitsound = 'sound/weapons/klonk.ogg' -obj/item/dildo/custom +/obj/item/dildo/custom name = "customizable dildo" desc = "Thanks to significant advances in synthetic nanomaterials, this dildo is capable of taking on many different forms to fit the user's preferences! Pricy!" can_customize = TRUE @@ -136,9 +136,9 @@ obj/item/dildo/custom // Suicide acts, by request /obj/item/dildo/proc/manual_suicide(mob/living/user) - user.visible_message("[user] finally finishes deepthroating the [src], and their life.") - user.adjustOxyLoss(200) - user.death(0) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/suicide_act(mob/living/user) // is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue") diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 0eebf22be4..2690ad555b 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -261,7 +261,7 @@ new /obj/item/stack/sheet/metal (loc, 5) qdel(src) -obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I) +/obj/machinery/portable_atmospherics/canister/welder_act(mob/living/user, obj/item/I) ..() if(user.a_intent == INTENT_HARM) return FALSE diff --git a/code/modules/atmospherics/multiz.dm b/code/modules/atmospherics/multiz.dm index 79a5c2cf14..cb52d03ff6 100644 --- a/code/modules/atmospherics/multiz.dm +++ b/code/modules/atmospherics/multiz.dm @@ -1,4 +1,5 @@ -obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe which can relay air up a deck (Z+1). It currently only supports being on pipe layer 1 +/// This is an atmospherics pipe which can relay air up/down a deck. +/obj/machinery/atmospherics/pipe/simple/multiz name = "multi deck pipe adapter" desc = "An adapter which allows pipes to connect to other pipenets on different decks." icon_state = "multiz_pipe" @@ -24,6 +25,4 @@ obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe wh if(above) nodes += above above.nodes += src //Two way travel :) - return ..() - else - return ..() + return ..() diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm index 391b4ff464..57501beab3 100644 --- a/code/modules/cargo/bounties/reagent.dm +++ b/code/modules/cargo/bounties/reagent.dm @@ -35,7 +35,7 @@ name = "Simple Drink" reward = 1500 -datum/bounty/reagent/simple_drink/New() +/datum/bounty/reagent/simple_drink/New() // Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/consumable/ethanol/antifreeze,\ @@ -91,7 +91,7 @@ datum/bounty/reagent/simple_drink/New() name = "Complex Drink" reward = 4000 -datum/bounty/reagent/complex_drink/New() +/datum/bounty/reagent/complex_drink/New() // Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/consumable/ethanol/atomicbomb,\ @@ -124,7 +124,7 @@ datum/bounty/reagent/complex_drink/New() reward = 2750 required_volume = 30 -datum/bounty/reagent/chemical/New() +/datum/bounty/reagent/chemical/New() // Don't worry about making this comprehensive. It doesn't matter if some chems are skipped. var/static/list/possible_reagents = list(\ /datum/reagent/medicine/leporazine,\ diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 678948128f..8e93fc5fc3 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -473,7 +473,7 @@ //Soft Suits //Blanket -datum/export/gear/space/helmet +/datum/export/gear/space/helmet cost = 55 unit_name = "space helmet" export_types = list(/obj/item/clothing/head/helmet/space) @@ -485,7 +485,7 @@ datum/export/gear/space/helmet export_types = list(/obj/item/clothing/suit/space) include_subtypes = TRUE -datum/export/gear/space/helmet/plasma +/datum/export/gear/space/helmet/plasma cost = 100 unit_name = "plasmaman space helmet" export_types = list(/obj/item/clothing/suit/space/eva/plasmaman) @@ -495,7 +495,7 @@ datum/export/gear/space/helmet/plasma unit_name = "plasmaman space suit" export_types = list(/obj/item/clothing/suit/space/eva/plasmaman) -datum/export/gear/space/helmet/synda +/datum/export/gear/space/helmet/synda cost = 150 //Flash proof unit_name = "syndicate space helmet" export_types = list(/obj/item/clothing/head/helmet/space/syndicate) @@ -510,7 +510,7 @@ datum/export/gear/space/helmet/synda //Glasses //Blanket -datum/export/gear/glasses //glasses are not worth selling +/datum/export/gear/glasses //glasses are not worth selling cost = 3 unit_name = "glasses" export_types = list(/obj/item/clothing/glasses) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 51a526d089..7670addab6 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -289,7 +289,7 @@ //VERY SUPER BADASS NECKERCHIEFS// ////////////////////////////////// -obj/item/clothing/neck/neckerchief +/datum/obj/item/clothing/neck/neckerchief icon = 'icons/obj/clothing/masks.dmi' //In order to reuse the bandana sprite w_class = WEIGHT_CLASS_TINY var/sourceBandanaType diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 06318df4f5..90ebe7f6a1 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -144,22 +144,23 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if(L && (L.density || prob(10))) L.ex_act(EXPLODE_HEAVY) -obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags) - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.job in list("Research Director")) - playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) - for(var/mob/M in urange(8, src)) - if(!M.stat) - shake_camera(M, 2, 3) - if(wizard) - U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!") - to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!") - wizard.Stun(60) - wizard.apply_damage(25, BRUTE) - qdel(src) - else - U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!") - new /obj/structure/festivus/anchored(drop_location()) - new /obj/effect/anomaly/flux(drop_location()) - qdel(src) +/obj/effect/immovablerod/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags) + if(!ishuman(user)) + return + var/mob/living/carbon/human/U = user + if(U.job in list("Research Director")) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + for(var/mob/M in urange(8, src)) + if(!M.stat) + shake_camera(M, 2, 3) + if(wizard) + U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!") + to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!") + wizard.Stun(60) + wizard.apply_damage(25, BRUTE) + qdel(src) + else + U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!") + new /obj/structure/festivus/anchored(drop_location()) + new /obj/effect/anomaly/flux(drop_location()) + qdel(src) diff --git a/code/modules/events/travelling_trader.dm b/code/modules/events/travelling_trader.dm index 1f9c69a9f0..2f7b9dbea5 100644 --- a/code/modules/events/travelling_trader.dm +++ b/code/modules/events/travelling_trader.dm @@ -25,14 +25,14 @@ var/datum/effect_system/smoke_spread/smoke = new smoke.set_up(1, spawn_location) smoke.start() - trader.visible_message("[src] suddenly appears in a puff of smoke!") + trader.visible_message("[trader] suddenly appears in a puff of smoke!") /datum/round_event/travelling_trader/announce(fake) priority_announce("A mysterious figure has been detected on sensors at [get_area(spawn_location)]", "Mysterious Figure") /datum/round_event/travelling_trader/end() - if(trader) - trader.visible_message("The [src] has given up on waiting!") + if(trader) // the /datum/round_event/travelling_trader has given up on waiting! + trader.visible_message("The [trader] has given up on waiting!") qdel(trader) //the actual trader mob @@ -188,18 +188,18 @@ /mob/living/simple_animal/hostile/netherworld/blankbody = 1, /mob/living/simple_animal/hostile/retaliate/goose = 1) -mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() + . = ..() acceptance_speech = pick(list("This lifeform shall make for a great stew, thank you.", "This lifeform shall be of a true use to our cause, thank you.", "The lifeform is adequate. Goodbye.", "This lifeform shall make a great addition to my collection.")) - ..() -/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(var/obj/item/supplied_item) //item is likely to be in contents of whats supplied +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/check_item(obj/item/supplied_item) //item is likely to be in contents of whats supplied for(var/atom/something in supplied_item.contents) if(istype(something, requested_item)) qdel(something) //typically things holding mobs release the mob when the container is deleted, so delete the mob first here return TRUE return FALSE -/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(var/mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea +/mob/living/carbon/human/dummy/travelling_trader/animal_hunter/give_reward(mob/giver) //the reward is actually given in a jar, because releasing it onto the station might be a bad idea var/obj/item/pet_carrier/bluespace/jar = new(get_turf(src)) var/chosen_animal = pickweight(possible_rewards) var/mob/living/new_animal = new chosen_animal(jar) @@ -223,6 +223,7 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() /obj/structure/reagent_dispensers/keg/quintuple_sec = 3) /mob/living/carbon/human/dummy/travelling_trader/bartender/Initialize() //pick a subtype of ethanol that isn't found in the default set of the booze dispensers reagents + . = ..() // RETURN A HINT. requested_item = pick(subtypesof(/datum/reagent/consumable/ethanol) - list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/ethanol/kahlua, /datum/reagent/consumable/ethanol/whiskey, @@ -242,7 +243,6 @@ mob/living/carbon/human/dummy/travelling_trader/animal_hunter/Initialize() /datum/reagent/consumable/ethanol/triple_sec, /datum/reagent/consumable/ethanol/sake, /datum/reagent/consumable/ethanol/applejack)) - ..() /mob/living/carbon/human/dummy/travelling_trader/bartender/check_item(var/obj/item/supplied_item) //you need to check its reagents if(istype(supplied_item, /obj/item/reagent_containers)) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index be07826a7f..67ac2ee59b 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -308,7 +308,7 @@ tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) foodtype = GRAIN | DAIRY | SUGAR -obj/item/reagent_containers/food/snacks/store/cake/pound_cake +/obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" desc = "A condensed cake made for filling people up quickly." icon_state = "pound_cake" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm index c376ab4025..3d3b1ac0fd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm @@ -21,7 +21,7 @@ ) result = /obj/item/reagent_containers/food/snacks/donut/chaos -datum/crafting_recipe/food/donut/meat +/datum/crafting_recipe/food/donut/meat time = 15 name = "Meat donut" reqs = list( diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 2dc80cd8fc..d8082e667d 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -24,7 +24,7 @@ var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways. var/growthstages = 6 // Amount of growth sprites the plant has. - var/instability = 5 //Chance that a plant will mutate in each stage of it's life. + var/instability = 5 //Chance that a plant will mutate in each stage of it's life. var/rarity = 0 // How rare the plant is. Used for giving points to cargo when shipping off to CentCom. var/list/mutatelist = list() // The type of plants that this plant can mutate into. var/list/genes = list() // Plant genes are stored here, see plant_genes.dm for more info. @@ -105,7 +105,7 @@ S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. return S -obj/item/seeds/proc/is_gene_forbidden(typepath) +/obj/item/seeds/proc/is_gene_forbidden(typepath) return (typepath in forbiddengenes) diff --git a/code/modules/integrated_electronics/subtypes/atmospherics.dm b/code/modules/integrated_electronics/subtypes/atmospherics.dm index 26ac3080de..d449775bd1 100644 --- a/code/modules/integrated_electronics/subtypes/atmospherics.dm +++ b/code/modules/integrated_electronics/subtypes/atmospherics.dm @@ -292,7 +292,7 @@ activate_pin(2) // Required for making the connector port script work -obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir() +/obj/item/integrated_circuit/atmospherics/connector/portableConnectorReturnAir() return air_contents diff --git a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm index 822fcf960d..d974672490 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm @@ -1,4 +1,4 @@ -datum/sprite_accessory/caps +/datum/sprite_accessory/caps icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR relevant_layers = list(BODY_ADJ_LAYER) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 6135d42569..a964be3f8a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -757,7 +757,7 @@ icon_state = "husky" matrixed_sections = MATRIX_RED_GREEN -datum/sprite_accessory/tails/mam_tails/insect +/datum/sprite_accessory/tails/mam_tails/insect name = "Insect" icon_state = "insect" matrixed_sections = MATRIX_RED diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 1be90a07f8..c7772f780d 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -109,7 +109,7 @@ to_chat(user, "You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea.") qdel(src) -mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. +/mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. name = "Terrygold" icon_state = "butterbear" icon_living = "butterbear" @@ -155,7 +155,7 @@ mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Seve to_chat(src, "Your name is now \"new_name\"!") name = new_name -mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. +/mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. if(isliving(target)) var/mob/living/L = target if((L.mobility_flags & MOBILITY_STAND)) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index bde5a19518..bf2e718159 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -389,13 +389,14 @@ name = "Wrap" panel = "Spider" active = FALSE - datum/action/spell_action/action = null desc = "Wrap something or someone in a cocoon. If it's a living being, you'll also consume them, allowing you to lay eggs." ranged_mousepointer = 'icons/effects/wrap_target.dmi' action_icon = 'icons/mob/actions/actions_animal.dmi' action_icon_state = "wrap_0" action_background_icon_state = "bg_alien" + var/datum/action/spell_action/action // hello?? how was this not causing the compiler to fail? + /obj/effect/proc_holder/wrap/Initialize() . = ..() action = new(src) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 37eb9b7f67..95f8f2acc1 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -511,7 +511,7 @@ DestroyObjectsInDirection(direction) -mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them +/mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them if(environment_smash) EscapeConfinement() for(var/dir in GLOB.cardinals) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index fdb088934c..cc5b0b8a75 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -190,5 +190,5 @@ * Arguments: * * datum/beam/vine - The vine to be removed from the list. */ -mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) +/mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) vines -= vine diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index c5c53dc876..6c370f2505 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -3,14 +3,14 @@ ////////////////////////////////////////////////////// /mob/proc/get_top_level_mob() - if(istype(src.loc,/mob)&&src.loc!=src) - var/mob/M=src.loc + if(ismob(src.loc) && src.loc != src) + var/mob/M = src.loc return M.get_top_level_mob() return src -proc/get_top_level_mob(var/mob/S) - if(istype(S.loc,/mob)&&S.loc!=S) - var/mob/M=S.loc +/proc/get_top_level_mob(mob/S) + if(ismob(src.loc) && S.loc != S) + var/mob/M = S.loc return M.get_top_level_mob() return S diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 68c1c1036d..2a41b41d1d 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -8,7 +8,7 @@ projectile_type = /obj/item/projectile/bullet/shotgun_slug custom_materials = list(/datum/material/iron=4000) -obj/item/ammo_casing/shotgun/executioner +/obj/item/ammo_casing/shotgun/executioner name = "executioner slug" desc = "A 12 gauge lead slug purpose built to annihilate flesh on impact." icon_state = "stunshell" diff --git a/code/modules/projectiles/projectile/plasma.dm b/code/modules/projectiles/projectile/plasma.dm index 838dac34a0..474a3d95c7 100644 --- a/code/modules/projectiles/projectile/plasma.dm +++ b/code/modules/projectiles/projectile/plasma.dm @@ -1,4 +1,4 @@ -obj/item/projectile/energy/plasmabolt +/obj/item/projectile/energy/plasmabolt name = "plasma bolt" icon_state = "plasma" flag = "energy" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 17cde0611b..90f570e4d1 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2528,7 +2528,7 @@ M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen ..() -datum/reagent/eldritch +/datum/reagent/eldritch name = "Eldritch Essence" description = "Strange liquid that defies the laws of physics" taste_description = "Ag'hsj'saje'sh" diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm index 78ae1a3070..77d6067d3b 100644 --- a/code/modules/reagents/reagent_containers/chem_pack.dm +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -44,8 +44,7 @@ else . += "Alt-click to seal it." - -obj/item/reagent_containers/chem_pack/attack_self(mob/user) +/obj/item/reagent_containers/chem_pack/attack_self(mob/user) if(sealed) return ..() diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 9b19516f26..c35f062739 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -236,7 +236,7 @@ duration = -1 alert_type = null -datum/status_effect/rebreathing/tick() +/datum/status_effect/rebreathing/tick() owner.adjustOxyLoss(-6, 0) //Just a bit more than normal breathing. /////////////////////////////////////////////////////// @@ -524,7 +524,7 @@ datum/status_effect/rebreathing/tick() ADD_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") return ..() -datum/status_effect/stabilized/blue/on_remove() +/datum/status_effect/stabilized/blue/on_remove() REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") return ..() diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm index e389b32a94..7488bdd205 100644 --- a/code/modules/shuttle/spaceship_navigation_beacon.dm +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -21,7 +21,7 @@ . = ..() SSshuttle.beacons |= src -obj/machinery/spaceship_navigation_beacon/emp_act() +/obj/machinery/spaceship_navigation_beacon/emp_act() locked = TRUE /obj/machinery/spaceship_navigation_beacon/Destroy() diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 6b3d47b587..aaa4e34f36 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -97,7 +97,7 @@ owner.set_heartattack(TRUE) failed = TRUE -obj/item/organ/heart/slime +/obj/item/organ/heart/slime name = "slime heart" desc = "It seems we've gotten to the slimy core of the matter." icon_state = "heart-s-on" @@ -221,7 +221,7 @@ obj/item/organ/heart/slime var/rid = /datum/reagent/medicine/epinephrine var/ramount = 10 -obj/item/organ/heart/cybernetic/upgraded/on_life() +/obj/item/organ/heart/cybernetic/upgraded/on_life() . = ..() if(!.) return diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm index ff6d66a483..18a7707a88 100644 --- a/code/modules/uplink/uplink_items/uplink_stealth.dm +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -115,7 +115,7 @@ cost = 4 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -datum/uplink_item/stealthy_weapons/taeclowndo_shoes +/datum/uplink_item/stealthy_weapons/taeclowndo_shoes name = "Tae-clown-do Shoes" desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn." cost = 12 diff --git a/modular_citadel/code/modules/clothing/trek.dm b/modular_citadel/code/modules/clothing/trek.dm index f7e8b6778e..dd02a6d0f8 100644 --- a/modular_citadel/code/modules/clothing/trek.dm +++ b/modular_citadel/code/modules/clothing/trek.dm @@ -51,58 +51,58 @@ blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|ARMS allowed = list( - /obj/item/tank/internals/emergency_oxygen, - /obj/item/flashlight, - /obj/item/analyzer, - /obj/item/radio, - /obj/item/gun, - /obj/item/melee/baton, - /obj/item/restraints/handcuffs, - /obj/item/reagent_containers/hypospray, - /obj/item/hypospray, - /obj/item/healthanalyzer, - /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/glass/bottle/vial, - /obj/item/reagent_containers/glass/beaker, - /obj/item/storage/pill_bottle, - /obj/item/taperecorder) + /obj/item/tank/internals/emergency_oxygen, + /obj/item/flashlight, + /obj/item/analyzer, + /obj/item/radio, + /obj/item/gun, + /obj/item/melee/baton, + /obj/item/restraints/handcuffs, + /obj/item/reagent_containers/hypospray, + /obj/item/hypospray, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/glass/bottle/vial, + /obj/item/reagent_containers/glass/beaker, + /obj/item/storage/pill_bottle, + /obj/item/taperecorder) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - var/unbuttoned = 0 + var/unbuttoned = FALSE - verb/toggle() - set name = "Toggle coat buttons" - set category = "Object" - set src in usr +/obj/item/clothing/suit/storage/fluff/fedcoat/verb/toggle() + set name = "Toggle coat buttons" + set category = "Object" + set src in usr - var/mob/living/L = usr - if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE)) - return FALSE + var/mob/living/L = usr + if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE)) + return FALSE - switch(unbuttoned) - if(0) - icon_state = "[initial(icon_state)]_open" - item_state = "[initial(item_state)]_open" - unbuttoned = 1 - to_chat(usr,"You unbutton the coat.") - if(1) - icon_state = "[initial(icon_state)]" - item_state = "[initial(item_state)]" - unbuttoned = 0 - to_chat(usr,"You button up the coat.") - usr.update_inv_wear_suit() + switch(unbuttoned) + if(FALSE) + icon_state = "[initial(icon_state)]_open" + item_state = "[initial(item_state)]_open" + unbuttoned = TRUE + to_chat(usr,"You unbutton the coat.") + if(TRUE) + icon_state = "[initial(icon_state)]" + item_state = "[initial(item_state)]" + unbuttoned = FALSE + to_chat(usr,"You button up the coat.") + usr.update_inv_wear_suit() - //Variants +//Variants /obj/item/clothing/suit/storage/fluff/fedcoat/medsci - icon_state = "fedblue" - item_state = "fedblue" + icon_state = "fedblue" + item_state = "fedblue" /obj/item/clothing/suit/storage/fluff/fedcoat/eng - icon_state = "fedeng" - item_state = "fedeng" + icon_state = "fedeng" + item_state = "fedeng" /obj/item/clothing/suit/storage/fluff/fedcoat/capt - icon_state = "fedcapt" - item_state = "fedcapt" + icon_state = "fedcapt" + item_state = "fedcapt" //"modern" ones for fancy @@ -124,18 +124,18 @@ ) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - //Variants +//Variants /obj/item/clothing/suit/storage/fluff/modernfedcoat/medsci - icon_state = "fedmodernblue" - item_state = "fedmodernblue" + icon_state = "fedmodernblue" + item_state = "fedmodernblue" /obj/item/clothing/suit/storage/fluff/modernfedcoat/eng - icon_state = "fedmoderneng" - item_state = "fedmoderneng" + icon_state = "fedmoderneng" + item_state = "fedmoderneng" /obj/item/clothing/suit/storage/fluff/modernfedcoat/sec - icon_state = "fedmodernsec" - item_state = "fedmodernsec" + icon_state = "fedmodernsec" + item_state = "fedmodernsec" /obj/item/clothing/head/caphat/formal/fedcover name = "Federation Officer's Cap" @@ -146,22 +146,22 @@ mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "fedcapofficer" - //Variants +//Variants /obj/item/clothing/head/caphat/formal/fedcover/medsci - icon_state = "fedcapsci" - item_state = "fedcapsci" + icon_state = "fedcapsci" + item_state = "fedcapsci" /obj/item/clothing/head/caphat/formal/fedcover/eng - icon_state = "fedcapeng" - item_state = "fedcapeng" + icon_state = "fedcapeng" + item_state = "fedcapeng" /obj/item/clothing/head/caphat/formal/fedcover/sec - icon_state = "fedcapsec" - item_state = "fedcapsec" + icon_state = "fedcapsec" + item_state = "fedcapsec" /obj/item/clothing/head/caphat/formal/fedcover/black - icon_state = "fedcapblack" - item_state = "fedcapblack" + icon_state = "fedcapblack" + item_state = "fedcapblack" //orvilike caps /obj/item/clothing/head/kepi/orvi diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm index 65609f5830..9a8ee4bab1 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -2,7 +2,7 @@ The Recolourable Energy Gun *////////////////////////////////////////////////////////////////////////////////////////////// -obj/item/gun/energy/e_gun/cx +/obj/item/gun/energy/e_gun/cx name = "\improper CX Model D Energy Gun" desc = "An overpriced hybrid energy gun with two settings: disable, and kill. Manufactured by CX Armories. Has a polychromic coating." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -14,18 +14,18 @@ obj/item/gun/energy/e_gun/cx flight_y_offset = 10 var/body_color = "#252528" -obj/item/gun/energy/e_gun/cx/ComponentInitialize() +/obj/item/gun/energy/e_gun/cx/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) -obj/item/gun/energy/e_gun/cx/update_overlays() +/obj/item/gun/energy/e_gun/cx/update_overlays() . = ..() var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "cxegun_body") if(body_color) body_overlay.color = body_color . += body_overlay -obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) +/obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) . = ..() if(!in_range(src, user)) //Basic checks to prevent abuse return @@ -39,7 +39,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) update_icon() -obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) +/obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 1801986ebe..2d4d363efb 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -216,7 +216,6 @@ ..() /datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C) - //var/component/nanites/N = M.GetComponent(/datum/component/nanites) var/datum/component/nanites/N = C.GetComponent(/datum/component/nanites) if(prob(5)) to_chat(C, "The residual voltage from the nanites causes you to seize up!") @@ -230,7 +229,7 @@ N.adjust_nanites(-10*cached_purity) ..() -datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) +/datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) for(var/active_obj in react_objs) if(O == active_obj) return From 02ca168df33555dabad000e2d75bdde2f26b93b7 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:37:44 +0800 Subject: [PATCH 3/6] why are we building windows facing nothing but rock infront of it? --- code/_onclick/hud/plane_master.dm | 6 ++-- code/game/objects/effects/overlays.dm | 42 ++++++++++++++++++++++-- code/game/turfs/open.dm | 16 +++++---- code/game/turfs/openspace/openspace.dm | 29 +++++++++++++--- code/game/turfs/openspace/transparent.dm | 7 +++- code/game/turfs/space/space.dm | 1 + 6 files changed, 83 insertions(+), 18 deletions(-) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index f5b8991e20..4ef5d35ce0 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -28,9 +28,9 @@ . = ..() filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) - filters += filter(type = "drop_shadow", color = "#04080FAA", size = -10) - filters += filter(type = "drop_shadow", color = "#04080FAA", size = -15) - filters += filter(type = "drop_shadow", color = "#04080FAA", size = -20) + add_filter("first_stage_openspace", 1, drop_shadow_filter(color = "#04080FAA", size = -10)) + add_filter("second_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -15)) + add_filter("third_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -20)) /obj/screen/plane_master/proc/outline(_size, _color) filters += filter(type = "outline", size = _size, color = _color) diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index b310119827..6be0a50a5e 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -49,6 +49,42 @@ /obj/effect/overlay/vis mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE - vis_flags = NONE - var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed - var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up + vis_flags = VIS_INHERIT_DIR + ///When detected to be unused it gets set to world.time, after a while it gets removed + var/unused = 0 + ///overlays which go unused for this amount of time get cleaned up + var/cache_expiration = 2 MINUTES + +// /obj/effect/overlay/atmos_excited +// name = "excited group" +// icon = null +// icon_state = null +// anchored = TRUE // should only appear in vis_contents, but to be safe +// appearance_flags = RESET_TRANSFORM | TILE_BOUND +// invisibility = INVISIBILITY_ABSTRACT +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +// layer = ATMOS_GROUP_LAYER +// plane = ATMOS_GROUP_PLANE + +// /obj/effect/overlay/light_visible +// name = "" +// icon = 'icons/effects/light_overlays/light_32.dmi' +// icon_state = "light" +// layer = O_LIGHTING_VISUAL_LAYER +// plane = O_LIGHTING_VISUAL_PLANE +// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT +// alpha = 0 +// vis_flags = NONE + +// /obj/effect/overlay/light_cone +// name = "" +// icon = 'icons/effects/light_overlays/light_cone.dmi' +// icon_state = "light" +// layer = O_LIGHTING_VISUAL_LAYER +// plane = O_LIGHTING_VISUAL_PLANE +// appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM +// mouse_opacity = MOUSE_OPACITY_TRANSPARENT +// vis_flags = NONE +// alpha = 110 diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 7e00b1cf63..876c170923 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -1,12 +1,5 @@ /turf/open plane = FLOOR_PLANE - /// Does dirt buildup happen on us? - var/dirt_buildup_allowed = FALSE - /// Dirt level. - var/dirtyness = 0 - /// Dirt level to spawn dirt. Null to use config. - var/dirt_spawn_threshold - /// Slowdown applied to mobs on us. var/slowdown = 0 //negative for faster, positive for slower var/postdig_icon_change = FALSE @@ -18,6 +11,15 @@ var/clawfootstep = null var/heavyfootstep = null + /// Dirtyness system, cit specific. + + /// Does dirt buildup happen on us? + var/dirt_buildup_allowed = FALSE + /// Dirt level. + var/dirtyness = 0 + /// Dirt level to spawn dirt. Null to use config. + var/dirt_spawn_threshold + /turf/open/ComponentInitialize() . = ..() if(wet) diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm index 0607f19dd3..69bdcf06cf 100644 --- a/code/game/turfs/openspace/openspace.dm +++ b/code/game/turfs/openspace/openspace.dm @@ -10,6 +10,8 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr plane = OPENSPACE_BACKDROP_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = SPLASHSCREEN_LAYER + //I don't know why the others are aligned but I shall do the same. + vis_flags = VIS_INHERIT_ID /turf/open/transparent/openspace name = "open space" @@ -17,6 +19,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr icon_state = "transparent" baseturfs = /turf/open/transparent/openspace CanAtmosPassVertical = ATMOS_PASS_YES + intact = FALSE //this means wires go on top //mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/can_cover_up = TRUE var/can_build_on = TRUE @@ -32,10 +35,14 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/transparent/openspace/show_bottom_level() return FALSE -/turf/open/transparent/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker +/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() - vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it. + return INITIALIZE_HINT_LATELOAD + +/turf/open/openspace/LateInitialize() + . = ..() + // AddElement(/datum/element/turf_z_transparency, FALSE) /turf/open/transparent/openspace/can_have_cabling() if(locate(/obj/structure/lattice/catwalk, src)) @@ -95,6 +102,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr return if(L) if(R.use(1)) + qdel(L) to_chat(user, "You construct a catwalk.") playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) new/obj/structure/lattice/catwalk(src) @@ -148,9 +156,22 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open/transparent/openspace/icemoon name = "ice chasm" baseturfs = /turf/open/transparent/openspace/icemoon - can_cover_up = TRUE - can_build_on = TRUE initial_gas_mix = ICEMOON_DEFAULT_ATMOS + planetary_atmos = TRUE + var/replacement_turf = /turf/open/floor/plating/asteroid/snow/icemoon + +/turf/open/transparent/openspace/icemoon/Initialize() + . = ..() + var/turf/T = below() + // if(T.flags_1 & NO_RUINS_1) + // ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR) + // return + // if(!ismineralturf(T)) + // return + var/turf/closed/mineral/M = T + M.mineralAmt = 0 + M.gets_drilled() + baseturfs = /turf/open/transparent/openspace/icemoon //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace. /turf/open/transparent/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target) return TRUE diff --git a/code/game/turfs/openspace/transparent.dm b/code/game/turfs/openspace/transparent.dm index 8efc60a15b..fa5bc17638 100644 --- a/code/game/turfs/openspace/transparent.dm +++ b/code/game/turfs/openspace/transparent.dm @@ -66,7 +66,12 @@ /turf/open/transparent/glass/Initialize() icon_state = "" //Prevent the normal icon from appearing behind the smooth overlays - return ..() + ..() + return INITIALIZE_HINT_LATELOAD + +/turf/open/floor/glass/LateInitialize() + . = ..() + // AddElement(/datum/element/turf_z_transparency, TRUE) /turf/open/transparent/glass/wrench_act(mob/living/user, obj/item/I) to_chat(user, "You begin removing glass...") diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 52b3436154..0905fb2e9c 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -20,6 +20,7 @@ dynamic_lighting = DYNAMIC_LIGHTING_DISABLED bullet_bounce_sound = null + vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf. /turf/open/space/basic/New() //Do not convert to Initialize //This is used to optimize the map loader From 9fa6958a99e6e983c01a699abfc953ec0aada309 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:49:53 +0800 Subject: [PATCH 4/6] OH FUCK --- code/modules/mob/say_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 6c370f2505..94bf45c1b0 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -9,7 +9,7 @@ return src /proc/get_top_level_mob(mob/S) - if(ismob(src.loc) && S.loc != S) + if(ismob(S.loc) && S.loc != S) var/mob/M = S.loc return M.get_top_level_mob() return S From 6547028272e7998ea49604a66d3458da9541908f Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 11:56:44 +0800 Subject: [PATCH 5/6] what the fuck?? --- code/modules/mob/living/simple_animal/hostile/giant_spider.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index bf2e718159..8b31ab6916 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -395,8 +395,6 @@ action_icon_state = "wrap_0" action_background_icon_state = "bg_alien" - var/datum/action/spell_action/action // hello?? how was this not causing the compiler to fail? - /obj/effect/proc_holder/wrap/Initialize() . = ..() action = new(src) From a68957dcc4fd15cd77aa9ce9b4612bf5214fd193 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 20 Jan 2021 12:02:20 +0800 Subject: [PATCH 6/6] wow thanks tabnine :joy: --- code/_onclick/hud/plane_master.dm | 6 +++--- code/modules/clothing/neck/_neck.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index 4ef5d35ce0..f5b8991e20 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -28,9 +28,9 @@ . = ..() filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) - add_filter("first_stage_openspace", 1, drop_shadow_filter(color = "#04080FAA", size = -10)) - add_filter("second_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -15)) - add_filter("third_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -20)) + filters += filter(type = "drop_shadow", color = "#04080FAA", size = -10) + filters += filter(type = "drop_shadow", color = "#04080FAA", size = -15) + filters += filter(type = "drop_shadow", color = "#04080FAA", size = -20) /obj/screen/plane_master/proc/outline(_size, _color) filters += filter(type = "outline", size = _size, color = _color) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 7670addab6..3228fbbaba 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -289,7 +289,7 @@ //VERY SUPER BADASS NECKERCHIEFS// ////////////////////////////////// -/datum/obj/item/clothing/neck/neckerchief +/obj/item/clothing/neck/neckerchief icon = 'icons/obj/clothing/masks.dmi' //In order to reuse the bandana sprite w_class = WEIGHT_CLASS_TINY var/sourceBandanaType