From 0e652cb64c29fb17047b2eb6999aeedc889206b3 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sat, 26 Dec 2020 06:02:09 -0500 Subject: [PATCH 001/128] init --- code/__DEFINES/dcs/signals.dm | 4 +++ code/__DEFINES/mobs.dm | 7 +++-- code/datums/diseases/transformation.dm | 2 +- code/datums/elements/ventcrawling.dm | 31 +++++++++++++++++++ code/game/objects/structures/plasticflaps.dm | 4 +-- .../abductor/equipment/glands/ventcrawl.dm | 2 +- .../devil/true_devil/_true_devil.dm | 1 - code/modules/antagonists/morph/morph.dm | 5 ++- code/modules/antagonists/swarmer/swarmer.dm | 2 +- .../atmospherics/machinery/atmosmachinery.dm | 4 +-- code/modules/mob/living/carbon/alien/alien.dm | 3 +- .../mob/living/carbon/alien/humanoid/queen.dm | 1 - .../carbon/human/species_types/golems.dm | 4 +-- .../carbon/human/species_types/vampire.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 3 +- code/modules/mob/living/living_defines.dm | 1 - code/modules/mob/living/login.dm | 4 --- .../living/simple_animal/friendly/bumbles.dm | 2 +- .../simple_animal/friendly/butterfly.dm | 2 +- .../mob/living/simple_animal/friendly/cat.dm | 2 +- .../simple_animal/friendly/cockroach.dm | 5 ++- .../mob/living/simple_animal/friendly/crab.dm | 5 ++- .../simple_animal/friendly/drone/_drone.dm | 3 +- .../friendly/drone/extra_drone_types.dm | 1 - .../friendly/drone/interaction.dm | 4 +-- .../simple_animal/friendly/farm_animals.dm | 11 ++++--- .../living/simple_animal/friendly/lizard.dm | 2 +- .../living/simple_animal/friendly/mouse.dm | 2 +- .../living/simple_animal/friendly/possum.dm | 5 ++- .../living/simple_animal/friendly/snake.dm | 4 ++- .../simple_animal/hostile/banana_spider.dm | 3 +- .../simple_animal/hostile/giant_spider.dm | 3 +- .../living/simple_animal/hostile/headcrab.dm | 5 ++- .../simple_animal/hostile/killertomato.dm | 5 ++- .../hostile/megafauna/colossus.dm | 2 +- .../hostile/mining_mobs/gutlunch.dm | 2 +- .../living/simple_animal/hostile/mushroom.dm | 5 ++- .../living/simple_animal/hostile/regalrat.dm | 5 +-- .../simple_animal/hostile/retaliate/bat.dm | 6 ++-- .../simple_animal/hostile/retaliate/clown.dm | 5 ++- .../simple_animal/hostile/retaliate/frog.dm | 2 +- .../mob/living/simple_animal/slime/slime.dm | 3 +- code/modules/mob/living/ventcrawling.dm | 15 ++++++--- code/modules/recycling/disposal/bin.dm | 2 +- tgstation.dme | 1 + 45 files changed, 132 insertions(+), 60 deletions(-) create mode 100644 code/datums/elements/ventcrawling.dm diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 51a5fb3ece..2a375a38ae 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -536,3 +536,7 @@ #define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob) #define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob) #define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob) + +// /datum/element/ventcrawling signals +#define COMSIG_HANDLE_VENTCRAWL "handle_ventcrawl" //when atom with ventcrawling element attempts to ventcrawl +#define COMSIG_CHECK_VENTCRAWL "check_ventcrawl" //to check an atom's ventcrawling element tier (if applicable) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 153a82ad5e..6604120d27 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -29,9 +29,10 @@ #define MOB_SIZE_LARGE 3 // Ventcrawling defines -#define VENTCRAWLER_NONE 0 -#define VENTCRAWLER_NUDE 1 -#define VENTCRAWLER_ALWAYS 2 +#define VENTCRAWLER_NONE 0 +#define VENTCRAWLER_NUDE 1 +#define VENTCRAWLER_IMPLANT 2 +#define VENTCRAWLER_ALWAYS 3 // Bloodcrawling defines #define BLOODCRAWL 1 diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 44775ed031..8dca59ea94 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -121,7 +121,7 @@ add_monkey(affected_mob.mind) if(ishuman(affected_mob)) var/mob/living/carbon/monkey/M = affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) - M.ventcrawler = VENTCRAWLER_ALWAYS + M.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /datum/disease/transformation/jungle_fever/stage_act() diff --git a/code/datums/elements/ventcrawling.dm b/code/datums/elements/ventcrawling.dm new file mode 100644 index 0000000000..f1429b94fd --- /dev/null +++ b/code/datums/elements/ventcrawling.dm @@ -0,0 +1,31 @@ +/datum/element/ventcrawling + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/tier + +/datum/element/ventcrawling/Attach(datum/target, duration = 0, given_tier = VENTCRAWLER_NUDE) + . = ..() + + src.tier = given_tier + + RegisterSignal(target, COMSIG_HANDLE_VENTCRAWL, .proc/handle_ventcrawl) + RegisterSignal(target, COMSIG_CHECK_VENTCRAWL, .proc/check_ventcrawl) + to_chat(target, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") + + if(duration!=0) + addtimer(CALLBACK(src, .proc/Detach, target), duration) + +/datum/element/ventcrawling/Detach(datum/target) + . = ..() + + UnregisterSignal(target, COMSIG_HANDLE_VENTCRAWL) + +/datum/element/ventcrawling/proc/handle_ventcrawl(datum/target,atom/A) + var/mob/living/person = target + if(!istype(person)) + return FALSE + + person.handle_ventcrawl(A,tier) + +/datum/element/ventcrawling/proc/check_ventcrawl() + return tier diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index a07e9a26d5..ff8287d77b 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -62,7 +62,7 @@ return 1 var/mob/living/M = caller - if(!M.ventcrawler && M.mob_size != MOB_SIZE_TINY) + if(!(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) return 0 var/atom/movable/M = caller if(M && M.pulling) @@ -91,7 +91,7 @@ return 1 if(M.buckled && istype(M.buckled, /mob/living/simple_animal/bot/mulebot)) // mulebot passenger gets a free pass. return 1 - if(!M.lying && !M.ventcrawler && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. + if(!M.lying && !(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. return 0 return ..() diff --git a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm index 8ac083f68b..a0ee2a9bc3 100644 --- a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm +++ b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm @@ -9,4 +9,4 @@ /obj/item/organ/heart/gland/ventcrawling/activate() to_chat(owner, "You feel very stretchy.") - owner.ventcrawler = VENTCRAWLER_ALWAYS + owner.AddElement(/datum/element/ventcrawling, duration = mind_control_duration, given_tier = VENTCRAWLER_ALWAYS) diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm index 293b1de3dc..069080170e 100644 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm @@ -11,7 +11,6 @@ gender = NEUTER health = 350 maxHealth = 350 - ventcrawler = VENTCRAWLER_NONE density = TRUE pass_flags = 0 sight = (SEE_TURFS | SEE_OBJS) diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index e91feda006..00a2039ac2 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -15,7 +15,6 @@ stop_automated_movement = 1 status_flags = CANPUSH pass_flags = PASSTABLE - ventcrawler = VENTCRAWLER_ALWAYS atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxHealth = 150 @@ -51,6 +50,10 @@ You can attack any item or dead creature to consume it - creatures will fully restore your health. \ Finally, you can restore yourself to your original form while morphed by shift-clicking yourself." +/mob/living/simple_animal/hostile/morph/Initialize() + . = ..() + src.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/morph/examine(mob/user) if(morphed) . = form.examine(user) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 7444905b89..fb8f4c5f07 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -93,7 +93,6 @@ AIStatus = AI_OFF pass_flags = PASSTABLE mob_size = MOB_SIZE_TINY - ventcrawler = VENTCRAWLER_ALWAYS ranged = 1 projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 @@ -112,6 +111,7 @@ remove_verb(src, /mob/living/verb/pulled) for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) + src.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/swarmer/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 25e4084524..7f4a8cd794 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -44,7 +44,7 @@ . = ..() if(is_type_in_list(src, GLOB.ventcrawl_machinery) && isliving(user)) var/mob/living/L = user - if(L.ventcrawler) + if(SEND_SIGNAL(L, COMSIG_CHECK_VENTCRAWL)) . += "Alt-click to crawl through it." /obj/machinery/atmospherics/New(loc, process = TRUE, setdir) @@ -318,7 +318,7 @@ /obj/machinery/atmospherics/AltClick(mob/living/L) if(is_type_in_typecache(src, GLOB.ventcrawl_machinery)) - return L.handle_ventcrawl(src) + return SEND_SIGNAL(L, COMSIG_HANDLE_VENTCRAWL, src) return ..() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index e7ad67d240..e8c78c668c 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -4,7 +4,6 @@ gender = FEMALE //All xenos are girls!! dna = null faction = list(ROLE_ALIEN) - ventcrawler = VENTCRAWLER_ALWAYS sight = SEE_MOBS see_in_dark = 4 verb_say = "hisses" @@ -40,6 +39,8 @@ create_internal_organs() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + . = ..() /mob/living/carbon/alien/create_internal_organs() diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 1200220ce4..ba6ec19dcb 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -2,7 +2,6 @@ //Common stuffs for Praetorian and Queen icon = 'icons/mob/alienqueen.dmi' status_flags = 0 - ventcrawler = VENTCRAWLER_NONE //pull over that ass too fat unique_name = 0 pixel_x = -16 bubble_icon = "alienroyal" diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index ff0287d7b9..858e3000fb 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -801,11 +801,11 @@ /datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - C.ventcrawler = VENTCRAWLER_NUDE + C.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) . = ..() - C.ventcrawler = initial(C.ventcrawler) + C.RemoveElement(/datum/element/ventcrawling) /datum/species/golem/bronze name = "Bronze Golem" diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 558fdc6594..2296b69762 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -169,7 +169,7 @@ if(istype(H, /mob/living/simple_animal)) var/mob/living/simple_animal/SA = H if((human_caster.blood_volume <= (BLOOD_VOLUME_BAD*human_caster.blood_ratio)) || (ventcrawl_nude_only && length(human_caster.get_equipped_items(include_pockets = TRUE)))) - SA.ventcrawler = FALSE + SA.RemoveElement(/datum/element/ventcrawling) if(transfer_name) H.name = human_caster.name diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 1f3e0a1b81..d49059f839 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -6,7 +6,6 @@ icon_state = "" gender = NEUTER pass_flags = PASSTABLE - ventcrawler = VENTCRAWLER_NUDE mob_biotypes = MOB_ORGANIC|MOB_HUMANOID butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab/monkey @@ -29,6 +28,8 @@ create_bodyparts() create_internal_organs() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_NUDE) + . = ..() if (cubespawned) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 5621fab9c1..d96540d928 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -75,7 +75,6 @@ var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour var/holder = null //The holder for blood crawling - var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. var/mob_size = MOB_SIZE_HUMAN diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 931f87eb7c..2b1c2de17a 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -17,10 +17,6 @@ if (isturf(T)) update_z(T.z) - //Vents - if(ventcrawler) - to_chat(src, "You can ventcrawl! Use alt+click on vents to quickly travel about the station.") - if(ranged_ability) ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") if((vore_flags & VORE_INIT) && !(vore_flags & VOREPREF_INIT)) //Vore's been initialized, voreprefs haven't. If this triggers then that means that voreprefs failed to load due to the client being missing. diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm index 0debb7b98c..6ed6d03b68 100644 --- a/code/modules/mob/living/simple_animal/friendly/bumbles.dm +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -20,7 +20,6 @@ density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN @@ -35,6 +34,7 @@ /mob/living/simple_animal/pet/bumbles/Initialize() . = ..() add_verb(src, /mob/living/proc/lay_down) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/pet/bumbles/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index bf4f45e283..1e6afd6044 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -20,7 +20,6 @@ density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BUG gold_core_spawnable = FRIENDLY_SPAWN @@ -33,6 +32,7 @@ . = ..() var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/butterfly/bee_friendly() return TRUE //treaty signed at the Beeneeva convention diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 71ae3b4c03..4594d27ecd 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -14,7 +14,6 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -40,6 +39,7 @@ /mob/living/simple_animal/pet/cat/Initialize() . = ..() add_verb(src, /mob/living/proc/lay_down) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/pet/cat/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 384fa8146f..67119139fc 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -22,7 +22,6 @@ response_harm_simple = "splat" speak_emote = list("chitters") density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" @@ -32,6 +31,10 @@ var/squish_chance = 50 del_on_death = 1 +/mob/living/simple_animal/cockroach/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/cockroach/death(gibbed) if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes. return diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 7f3693f622..addbd493a5 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -21,12 +21,15 @@ stop_automated_movement = 1 friendly_verb_continuous = "pinches" friendly_verb_simple = "pinch" - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY var/obj/item/inventory_head var/obj/item/inventory_mask gold_core_spawnable = FRIENDLY_SPAWN +/mob/living/simple_animal/crab/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/crab/BiologicalLife(seconds, times_fired) if(!(. = ..())) return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index a8c0e7d207..e11facb4ba 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -28,7 +28,6 @@ unsuitable_atmos_damage = 0 wander = 0 speed = 0 - ventcrawler = VENTCRAWLER_ALWAYS healable = 0 density = FALSE pass_flags = PASSTABLE | PASSMOB @@ -101,6 +100,8 @@ for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/drone/ComponentInitialize() . = ..() if(can_be_held) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 55339a02fd..22dbdd3db7 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -114,7 +114,6 @@ harm_intent_damage = 5 density = TRUE speed = 1 - ventcrawler = VENTCRAWLER_NONE faction = list("neutral", "ratvar") speak_emote = list("clanks", "clinks", "clunks", "clangs") verb_ask = "requests" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 54184310a8..0728484cea 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -110,7 +110,7 @@ to_chat(src, "Your onboard antivirus has initiated lockdown. Motor servos are impaired, ventilation access is denied, and your display reports that you are hacked to all nearby.") hacked = TRUE mind.special_role = "hacked drone" - ventcrawler = VENTCRAWLER_NONE //Again, balance + RemoveElement(/datum/element/ventcrawling) // balance speed = 1 //gotta go slow message_admins("[src] ([src.key]) became a hacked drone hellbent on [clockwork ? "serving Ratvar" : "destroying the station"]!") else @@ -125,7 +125,7 @@ to_chat(src, "Having been restored, your onboard antivirus reports the all-clear and you are able to perform all actions again.") hacked = FALSE mind.special_role = null - ventcrawler = initial(ventcrawler) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) speed = initial(speed) if(is_servant_of_ratvar(src)) remove_servant_of_ratvar(src, TRUE) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 51e7ee6c03..81925d922f 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -241,7 +241,6 @@ attack_verb_simple = "kick" health = 3 maxHealth = 3 - ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -253,6 +252,7 @@ . = ..() pixel_x = rand(-6, 6) pixel_y = rand(0, 10) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/chick/BiologicalLife(seconds, times_fired) if(!(. = ..())) @@ -296,7 +296,6 @@ attack_verb_simple = "kick" health = 15 maxHealth = 15 - ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE var/body_color @@ -322,6 +321,8 @@ pixel_y = rand(0, 10) ++chicken_count + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/chicken/Destroy() --chicken_count return ..() @@ -392,7 +393,6 @@ attack_verb_simple = "kick" health = 25 maxHealth = 25 - ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE pass_flags = PASSTABLE | PASSMOB @@ -412,6 +412,8 @@ . = ..() ++kiwi_count + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/kiwi/BiologicalLife(seconds, times_fired) if(!(. = ..())) return @@ -473,7 +475,6 @@ attack_verb_simple = "kick" health = 10 maxHealth = 10 - ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -486,6 +487,8 @@ pixel_x = rand(-6, 6) pixel_y = rand(0, 10) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/babyKiwi/BiologicalLife(seconds, times_fired) if(!(. = ..())) return diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index b9ff99b677..fd0095bf87 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -18,7 +18,6 @@ response_disarm_simple = "shoo" response_harm_continuous = "stomps on" response_harm_simple = "stomp on" - ventcrawler = VENTCRAWLER_ALWAYS density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL @@ -31,6 +30,7 @@ /mob/living/simple_animal/hostile/lizard/ComponentInitialize() . = ..() AddElement(/datum/element/mob_holder, worn_state = "lizard", inv_slots = ITEM_SLOT_HEAD) //you can hold lizards now. + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 51c903ee16..8348af43fa 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -22,7 +22,6 @@ response_harm_continuous = "splats" response_harm_simple = "splat" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -40,6 +39,7 @@ icon_state = "mouse_[body_color]" icon_living = "mouse_[body_color]" icon_dead = "mouse_[body_color]_dead" + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/mouse/proc/splat() src.health = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/possum.dm b/code/modules/mob/living/simple_animal/friendly/possum.dm index 71fdbd1465..5e7ed572e2 100644 --- a/code/modules/mob/living/simple_animal/friendly/possum.dm +++ b/code/modules/mob/living/simple_animal/friendly/possum.dm @@ -22,12 +22,15 @@ response_harm_continuous = "stamps on" response_harm_simple = "stamp" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN +/mob/living/simple_animal/opossum/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/opossum/poppy name = "Poppy the Safety Possum" desc = "Safety first!" diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 4d20b927a6..61c735c7c1 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -30,7 +30,6 @@ response_harm_continuous = "steps on" response_harm_simple = "step on" faction = list("hostile") - ventcrawler = VENTCRAWLER_ALWAYS density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL @@ -39,6 +38,9 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE +/mob/living/simple_animal/hostile/retaliate/poison/snake/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/retaliate/poison/snake/ListTargets(atom/the_target) . = oview(vision_range, targets_from) //get list of things in vision range diff --git a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm index 259c0bc721..a88593ed74 100644 --- a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm @@ -22,7 +22,6 @@ speak_emote = list("chitters") mouse_opacity = 2 density = TRUE - ventcrawler = VENTCRAWLER_ALWAYS verb_say = "chitters" verb_ask = "chitters inquisitively" verb_exclaim = "chitters loudly" @@ -37,6 +36,8 @@ if(A) notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/banana_spider/attack_ghost(mob/user) if(key) //please stop using src. without a good reason. return 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..609a6d9420 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -44,7 +44,6 @@ var/busy = SPIDER_IDLE pass_flags = PASSTABLE move_to_delay = 6 - ventcrawler = VENTCRAWLER_ALWAYS attack_verb_continuous = "bites" attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' @@ -63,6 +62,8 @@ lay_web = new lay_web.Grant(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/poison/giant_spider/Destroy() QDEL_NULL(lay_web) return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 850beeb099..5e34d17bb2 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -20,11 +20,14 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE speak_emote = list("squeaks") - ventcrawler = VENTCRAWLER_ALWAYS var/datum/mind/origin var/egg_lain = 0 gold_core_spawnable = NO_SPAWN //are you sure about this?? // CITADEL CHANGE, Yes. +/mob/living/simple_animal/hostile/headcrab/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/headcrab/proc/Infect(mob/living/carbon/victim) var/obj/item/organ/body_egg/changeling_egg/egg = new(victim) egg.Insert(victim) diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm index b86d5d87fc..d3d3dadd1e 100644 --- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm +++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm @@ -22,10 +22,13 @@ attack_verb_continuous = "slams" attack_verb_simple = "slam" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = VENTCRAWLER_ALWAYS faction = list("plants") atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 150 maxbodytemp = 500 gold_core_spawnable = HOSTILE_SPAWN + +/mob/living/simple_animal/hostile/killertomato/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index fa3a59a6b9..a584d34995 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -620,7 +620,6 @@ Difficulty: Very Hard density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = HOSTILE_SPAWN verb_say = "warps" @@ -648,6 +647,7 @@ Difficulty: Very Hard remove_verb(src, /mob/verb/me_verb) var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] medsensor.add_hud_to(src) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/lightgeist/AttackingTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 0ccc4525c7..e35220a920 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -27,7 +27,6 @@ friendly_verb_continuous = "pinches" friendly_verb_simple = "pinch" a_intent = INTENT_HELP - ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = FRIENDLY_SPAWN stat_attack = UNCONSCIOUS gender = NEUTER @@ -50,6 +49,7 @@ /mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() udder = new() . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/asteroid/gutlunch/CanAttack(atom/the_target) // Gutlunch-specific version of CanAttack to handle stupid stat_exclusive = true crap so we don't have to do it for literally every single simple_animal/hostile except the two that spawn in lavaland if(isturf(the_target) || !the_target || the_target.type == /atom/movable/lighting_object) // bail out on invalids diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 9101430ccc..f41746ea69 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -28,7 +28,6 @@ stat_attack = DEAD mouse_opacity = MOUSE_OPACITY_ICON speed = 1 - ventcrawler = VENTCRAWLER_ALWAYS robust_searching = 1 unique_name = 1 speak_emote = list("squeaks") @@ -41,6 +40,10 @@ var/static/mutable_appearance/cap_living //Where we store our cap icons so we dont generate them constantly to update our icon var/static/mutable_appearance/cap_dead +/mob/living/simple_animal/hostile/mushroom/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/mushroom/examine(mob/user) . = ..() if(health >= maxHealth) diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index 77b2d4268a..77731f0ea4 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -23,7 +23,6 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = VENTCRAWLER_ALWAYS unique_name = TRUE faction = list("rat") var/datum/action/cooldown/coffer @@ -42,6 +41,8 @@ key = C.key notify_ghosts("All rise for the rat king, ascendant to the throne in \the [get_area(src)].", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/regalrat/handle_automated_action() if(prob(20)) riot.Trigger() @@ -175,7 +176,6 @@ health = 15 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BEAST @@ -185,6 +185,7 @@ . = ..() SSmobs.cheeserats += src AddComponent(/datum/component/swarming) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/rat/Destroy() SSmobs.cheeserats -= src diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index 9045ccef51..cb1ee6c6f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -30,7 +30,6 @@ attack_sound = 'sound/weapons/bite.ogg' obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY movement_type = FLYING speak_emote = list("squeaks") @@ -38,11 +37,14 @@ var/min_oxy = 0 var/max_tox = 0 - //Space bats need no air to fly in. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 +/mob/living/simple_animal/hostile/retaliate/bat/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/retaliate/bat/secbat name = "Security Bat" icon_state = "secbat" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index dec2159dc0..96418686d3 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -137,7 +137,6 @@ emote_see = list("honks", "sweats", "jiggles", "contemplates its existence") speak_chance = 5 dextrous = TRUE - ventcrawler = VENTCRAWLER_ALWAYS maxHealth = 140 health = 140 speed = -5 @@ -147,6 +146,10 @@ obj_damage = 5 loot = list(/obj/item/clothing/suit/hooded/bloated_human, /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) +/mob/living/simple_animal/hostile/retaliate/clown/fleshclown/Initialize() + . = ..() + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/hostile/retaliate/clown/longface name = "Longface" desc = "Often found walking into the bar." diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index 8424a0a576..5953de72ad 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -22,7 +22,6 @@ response_harm_continuous = "splats" response_harm_simple = "splat" density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS faction = list("hostile") attack_sound = 'sound/effects/reee.ogg' butcher_results = list(/obj/item/reagent_containers/food/snacks/nugget = 1) @@ -40,6 +39,7 @@ icon_living = "rare_frog" icon_dead = "rare_frog_dead" butcher_results = list(/obj/item/reagent_containers/food/snacks/nugget = 5) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/retaliate/frog/Crossed(AM as mob|obj) if(!stat && isliving(AM)) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 1f45e57718..d5b9fa5f68 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -4,7 +4,6 @@ icon_state = "grey baby slime" pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL - ventcrawler = VENTCRAWLER_ALWAYS gender = NEUTER var/is_adult = 0 var/docile = 0 @@ -108,6 +107,8 @@ AddComponent(/datum/component/footstep, FOOTSTEP_MOB_SLIME, 7.5) set_nutrition(rand(650, 800)) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + /mob/living/simple_animal/slime/Destroy() for (var/A in actions) var/datum/action/AC = A diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 4c00fd0033..06c75f9b8e 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( //VENTCRAWLING -/mob/living/proc/handle_ventcrawl(atom/A) +/mob/living/proc/handle_ventcrawl(atom/A, ventcrawler) if(!ventcrawler || !Adjacent(A)) return . = TRUE //return value to stop the client from being shown the turf contents stat tab on alt-click. @@ -59,10 +59,15 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( if(!client) return - if(iscarbon(src) && ventcrawler == VENTCRAWLER_NUDE) - if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items()) - to_chat(src, "You can't crawl around in the ventilation ducts with items!") - return + if(iscarbon(src)) + switch(ventcrawler) + if(VENTCRAWLER_NUDE) + if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items()) + to_chat(src, "You can't crawl around in the ventilation ducts with items!") + return + if(VENTCRAWLER_IMPLANT) + if(getBackSlot() || getBeltSlot() || get_num_held_items()) + to_chat(src, "You can't crawl around in the ventilation ducts with what you have equipped!") visible_message("[src] scrambles into the ventilation ducts!","You climb into the ventilation ducts.") forceMove(vent_found) diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index b106005a15..ef3a053027 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -141,7 +141,7 @@ update_icon() /obj/machinery/disposal/proc/can_stuff_mob_in(mob/living/target, mob/living/user, pushing = FALSE) - if(!pushing && !iscarbon(user) && !user.ventcrawler) //only carbon and ventcrawlers can climb into disposal by themselves. + if(!pushing && !iscarbon(user) && !(SEND_SIGNAL(user, COMSIG_CHECK_VENTCRAWL))) //only carbon and ventcrawlers can climb into disposal by themselves. if(iscyborg(user)) var/mob/living/silicon/robot/borg = user if (!borg.module || !borg.module.canDispose) diff --git a/tgstation.dme b/tgstation.dme index bac0ffbdd3..4d4274bf54 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -609,6 +609,7 @@ #include "code\datums\elements\tactical.dm" #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" +#include "code\datums\elements\ventcrawling.dm" #include "code\datums\elements\wuv.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" From e7a2690db19534f2b71c039c1d6873eeb6bae652 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sat, 26 Dec 2020 06:17:11 -0500 Subject: [PATCH 002/128] fixes UnregisterSignal to include COMSIG_CHECK_VENTCRAWL --- code/datums/elements/ventcrawling.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/ventcrawling.dm b/code/datums/elements/ventcrawling.dm index f1429b94fd..4af3a085ef 100644 --- a/code/datums/elements/ventcrawling.dm +++ b/code/datums/elements/ventcrawling.dm @@ -18,7 +18,7 @@ /datum/element/ventcrawling/Detach(datum/target) . = ..() - UnregisterSignal(target, COMSIG_HANDLE_VENTCRAWL) + UnregisterSignal(target, list(COMSIG_HANDLE_VENTCRAWL, COMSIG_CHECK_VENTCRAWL)) /datum/element/ventcrawling/proc/handle_ventcrawl(datum/target,atom/A) var/mob/living/person = target From c8831b622e3ef9154cf1b2a780e3bca4d0660aa9 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sun, 27 Dec 2020 01:13:35 -0500 Subject: [PATCH 003/128] fixes abductor ventcrawl gland to no longer have a duration --- code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm index a0ee2a9bc3..c35016cf2e 100644 --- a/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm +++ b/code/modules/antagonists/abductor/equipment/glands/ventcrawl.dm @@ -9,4 +9,4 @@ /obj/item/organ/heart/gland/ventcrawling/activate() to_chat(owner, "You feel very stretchy.") - owner.AddElement(/datum/element/ventcrawling, duration = mind_control_duration, given_tier = VENTCRAWLER_ALWAYS) + owner.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) From 3738f09ca044a1bdeeaadbfae01d9e6021d2dd00 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sun, 27 Dec 2020 02:20:19 -0500 Subject: [PATCH 004/128] removes setup for ventcrawl implant in case of redundancy --- code/__DEFINES/mobs.dm | 3 +-- code/modules/mob/living/ventcrawling.dm | 13 ++++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 6604120d27..cf2a8a9477 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -31,8 +31,7 @@ // Ventcrawling defines #define VENTCRAWLER_NONE 0 #define VENTCRAWLER_NUDE 1 -#define VENTCRAWLER_IMPLANT 2 -#define VENTCRAWLER_ALWAYS 3 +#define VENTCRAWLER_ALWAYS 2 // Bloodcrawling defines #define BLOODCRAWL 1 diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 06c75f9b8e..9ade9f097f 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -59,15 +59,10 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list( if(!client) return - if(iscarbon(src)) - switch(ventcrawler) - if(VENTCRAWLER_NUDE) - if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items()) - to_chat(src, "You can't crawl around in the ventilation ducts with items!") - return - if(VENTCRAWLER_IMPLANT) - if(getBackSlot() || getBeltSlot() || get_num_held_items()) - to_chat(src, "You can't crawl around in the ventilation ducts with what you have equipped!") + if(iscarbon(src) && ventcrawler==VENTCRAWLER_NUDE) + if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items()) + to_chat(src, "You can't crawl around in the ventilation ducts with items!") + return visible_message("[src] scrambles into the ventilation ducts!","You climb into the ventilation ducts.") forceMove(vent_found) From 13b223d56d2763f587e2f00a5341394bed0ab758 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sun, 27 Dec 2020 02:23:20 -0500 Subject: [PATCH 005/128] removes artifact of extra spaces in ventcrawling defines from previous commit --- code/__DEFINES/mobs.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index cf2a8a9477..153a82ad5e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -29,9 +29,9 @@ #define MOB_SIZE_LARGE 3 // Ventcrawling defines -#define VENTCRAWLER_NONE 0 -#define VENTCRAWLER_NUDE 1 -#define VENTCRAWLER_ALWAYS 2 +#define VENTCRAWLER_NONE 0 +#define VENTCRAWLER_NUDE 1 +#define VENTCRAWLER_ALWAYS 2 // Bloodcrawling defines #define BLOODCRAWL 1 From 367bcdc5684b137a815f3c9bf0863ad3b488f648 Mon Sep 17 00:00:00 2001 From: raspy-on-osu Date: Sun, 27 Dec 2020 02:26:13 -0500 Subject: [PATCH 006/128] i think it's ready now (why did i put src. here) --- code/modules/antagonists/swarmer/swarmer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index fb8f4c5f07..d1bdac7e05 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -111,7 +111,7 @@ remove_verb(src, /mob/living/verb/pulled) for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) - src.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) /mob/living/simple_animal/hostile/swarmer/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] From d5e99e9cefd457e0fabdc1725f6f32a83c1bcfd8 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 13 Jan 2021 05:56:10 +0200 Subject: [PATCH 009/128] TESTING --- code/game/atoms_movable.dm | 6 ++--- code/game/objects/items.dm | 17 ++++++++++++- code/modules/antagonists/revenant/revenant.dm | 24 +++++++++++++------ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 4715c3bed3..c9d471e82a 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -492,13 +492,13 @@ return TRUE //TODO: Better floating -/atom/movable/proc/float(on) +/atom/movable/proc/float(on, float_height) if(throwing) return if(on && (!(movement_type & FLOATING) || floating_need_update)) - animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) + animate(src, pixel_y = pixel_y + 2 + float_height, time = 10, loop = -1) sleep(10) - animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1) + animate(src, pixel_y = pixel_y - 2 - float_height, time = 10, loop = -1) if(!(movement_type & FLOATING)) setMovetype(movement_type | FLOATING) else if (!on && movement_type & FLOATING) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 1c75f1e533..dc84006c2d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -11,7 +11,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb name = "item" icon = 'icons/obj/items_and_weapons.dmi' blocks_emissive = EMISSIVE_BLOCK_GENERIC - + attack_hand_speed = 0 attack_hand_is_action = FALSE attack_hand_unwieldlyness = 0 @@ -467,6 +467,21 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb melee_attack_chain(usr, over) usr.FlushCurrentAction() return TRUE //returning TRUE as a "is this overridden?" flag + if(isrevenant(usr)) + var/mob/living/simple_animal/revenant/spooker = usr + if(!anchored && !spooker.telekinesis_cooldown) + spooker.change_essence_amount(-5, FALSE, "telekinesis") + spooker.stun(10) + spooker.reveal(20) + spooker.telekinesis_cooldown = TRUE + float(TRUE, 2) + sleep(10) + throw_at(src_location) + new /obj/effect/temp_visual/telekinesis(get_turf(src)) + addtimer(CALLBACK(src, /atom/movable.proc/float, FALSE), 2) + addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 30) + return + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index f5ebcffe35..1a45663ff7 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -72,6 +72,7 @@ var/list/drained_mobs = list() //Cannot harvest the same mob twice var/perfectsouls = 0 //How many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?) var/generated_objectives_and_spells = FALSE + var/telekinesis_cooldown /mob/living/simple_animal/revenant/Initialize(mapload) . = ..() @@ -93,13 +94,16 @@ /mob/living/simple_animal/revenant/Login() ..() - to_chat(src, "You are a revenant.") - to_chat(src, "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant.") - to_chat(src, "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds.") - to_chat(src, "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable.") - to_chat(src, "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities.") - to_chat(src, "You do not remember anything of your past lives, nor will you remember anything about this one after your death.") - to_chat(src, "Be sure to read the wiki page to learn more.") + var/revenant_greet + revenant_greet += "You are a revenant." + revenant_greet += "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant." + revenant_greet += "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds." + revenant_greet += "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable." + revenant_greet += "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities." + revenant_greet += "You do not remember anything of your past lives, nor will you remember anything about this one after your death." + revenant_greet += "Be sure to read the wiki page to learn more." + revenant_greet += "You are also able to telekinetically throw objects by clickdragging them." + to_chat(src, revenant_greet) if(!generated_objectives_and_spells) generated_objectives_and_spells = TRUE mind.assigned_role = ROLE_REVENANT @@ -317,6 +321,12 @@ to_chat(src, "Lost [essence_amt]E[source ? " from [source]":""].") return 1 +/mob/living/simple_animal/revenant/proc/telekinesis_cooldown_end() + if(!telekinesis_cooldown) + CRASH("telekinesis_cooldown_end ran when telekinesis_cooldown on [src] was false") + else + telekinesis_cooldown = FALSE + /mob/living/simple_animal/revenant/proc/death_reset() revealed = FALSE unreveal_time = 0 From 2f619ffc4e30d06093b6a5199e60b467eb98b4b0 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 13 Jan 2021 10:27:10 +0200 Subject: [PATCH 010/128] Traits --- code/__DEFINES/traits.dm | 1 + code/_globalvars/traits.dm | 3 ++- code/game/objects/items.dm | 41 +++++++++++++++++++++++++++++++++----- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 2275c4b90b..b7750556d5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -253,6 +253,7 @@ // item traits #define TRAIT_NODROP "nodrop" +#define TRAIT_SPOOKY_THROW "spooky_throw" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 4e593ba904..f376ba50d7 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -130,7 +130,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item = list( "TRAIT_NODROP" = TRAIT_NODROP, - "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT + "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT, + "TRAIT_SPOOKY_THROW" = TRAIT_SPOOKY_THROW ) )) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index dc84006c2d..bf53947ad6 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -454,6 +454,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) //Copypaste of /atom/MouseDrop() since this requires code in a very specific spot if(!usr || !over) return + message_admins("[src], [usr], [over], [src_location], [over_location], [src_control], [over_control], [params]") if(SEND_SIGNAL(src, COMSIG_MOUSEDROP_ONTO, over, usr) & COMPONENT_NO_MOUSEDROP) //Whatever is receiving will verify themselves for adjacency. return if(over == src) @@ -472,14 +473,19 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(!anchored && !spooker.telekinesis_cooldown) spooker.change_essence_amount(-5, FALSE, "telekinesis") spooker.stun(10) - spooker.reveal(20) + spooker.reveal(30) spooker.telekinesis_cooldown = TRUE float(TRUE, 2) sleep(10) - throw_at(src_location) - new /obj/effect/temp_visual/telekinesis(get_turf(src)) + safe_throw_at(over, 10, 2) + ADD_TRAIT(src, TRAIT_SPOOKY_THROW) + src.DoRevenantThrowEffects() + var/obj/effect/temp_visual/telekinesis/T = new(get_turf(src)) + T.color = purple addtimer(CALLBACK(src, /atom/movable.proc/float, FALSE), 2) - addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 30) + addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50) + sleep(2) + REMOVE_TRAIT(src, TRAIT_SPOOKY_THROW) return if(!Adjacent(usr) || !over.Adjacent(usr)) @@ -487,7 +493,32 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb over.MouseDrop_T(src,usr) return - +/obj/item/proc/DoRevenantThrowEffects() + var/hijink_to_do + switch(istype) + if(obj/item/gun) + hijink_to_do = "shoot" + if(obj/item/storage) + if(GetComponent(datum/component/storage)) + hijink_to_do = "scatter items" + if(obj/item/card/id) + hijink_to_do = "flash id" + if(obj/item/weldingtool) + hijink_to_do = "welder toggle" + if(obj/item/tank) + hijink_to_do = "toggle tank" + if(obj/item/paper) + hijink_to_do = "paper into plane" + if(obj/item/paper_bin) + hijink_to_do = "paperbin scatter" + if(obj/item/assembly/flash) + hijink_to_do = "flash randomly" + if(obj/item/flashlight) + hijinks_to_do = "toggle flashlight" + if(obj/item/grenade/flashbang) + + if(obj/item/grenade/stingbang) + while(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) // called after an item is placed in an equipment slot // user is mob that equipped it // slot uses the slot_X defines found in setup.dm From 608465f1ed250a34b72a401843861b2fd4efdb0d Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 14 Jan 2021 17:14:09 -0700 Subject: [PATCH 011/128] Update toxin_reagents.dm --- code/modules/reagents/chemistry/reagents/toxin_reagents.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 0d0a234afc..769f876ef5 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -783,6 +783,8 @@ value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) + return // until fixed - the rotations never stop +/* if(M.hud_used) if(current_cycle >= 20 && current_cycle%20 == 0) var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], @@ -800,6 +802,7 @@ for(var/whole_screen in screens) animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING) ..() +*/ /datum/reagent/toxin/skewium name = "Skewium" From 5e6ace26687e71ddd0d6e12f928380c0dc505b6f Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Thu, 14 Jan 2021 20:49:46 -0600 Subject: [PATCH 012/128] bruh --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 11ce4f9214..ae0f5ea3ca 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -398,7 +398,6 @@ uniform = /obj/item/clothing/under/color/grey belt = /obj/item/tank/internals/emergency_oxygen mask = /obj/item/clothing/mask/gas - ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/fyellow id = /obj/item/card/id/silver/reaper //looks cool and has a fancy name but only a 1% chance if(prob(99)) @@ -412,7 +411,7 @@ back = /obj/item/spear else if(prob(80)) //Now they dont always have a backpack back = /obj/item/storage/backpack - backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) + backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(90)) r_pocket = /obj/item/kitchen/knife if(prob(60)) @@ -423,7 +422,6 @@ suit = /obj/item/clothing/suit/hooded/bee_costume shoes = /obj/item/clothing/shoes/sneakers/yellow gloves = /obj/item/clothing/gloves/color/yellow - ears = /obj/item/radio/headset belt = /obj/item/storage/belt/fannypack/yellow id_job = "Assisant" id = /obj/item/card/id From 1f1605bbb631384fccd8510c2f22e5779320ecd8 Mon Sep 17 00:00:00 2001 From: TripleShades Date: Fri, 15 Jan 2021 16:54:24 -0800 Subject: [PATCH 013/128] Update BoxStation.dmm --- _maps/map_files/BoxStation/BoxStation.dmm | 395 ++++++++++++++-------- 1 file changed, 254 insertions(+), 141 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index b81f55be21..741f6eb071 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -12995,13 +12995,27 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera{ + c_tag = "Chapel North" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aCP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aCQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13010,7 +13024,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aCR" = ( /turf/closed/wall, @@ -13536,7 +13550,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -13556,7 +13570,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aEl" = ( /obj/effect/landmark/event_spawn, @@ -13987,7 +14001,7 @@ name = "Mass Driver Controller"; pixel_x = 24 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aFB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -14617,7 +14631,7 @@ departmentType = 2; pixel_y = 30 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aGV" = ( /obj/structure/disposalpipe/segment{ @@ -14652,7 +14666,7 @@ /obj/machinery/airalarm{ pixel_y = 25 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aGZ" = ( /obj/machinery/door/airlock/security{ @@ -14703,7 +14717,7 @@ pixel_y = 25 }, /obj/machinery/vending/wardrobe/chap_wardrobe, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aHg" = ( /obj/machinery/light_switch{ @@ -14712,7 +14726,7 @@ /obj/machinery/camera{ c_tag = "Chapel Office" }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aHh" = ( /obj/structure/cable{ @@ -14746,7 +14760,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aHl" = ( /obj/structure/closet/crate/coffin, @@ -14760,22 +14774,25 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/carpet, /area/chapel/main) "aHn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/carpet, /area/chapel/main) "aHo" = ( /obj/structure/table/glass, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, +/obj/item/storage/book/bible, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aHq" = ( /obj/effect/spawner/structure/window/reinforced, @@ -15280,7 +15297,7 @@ "aIz" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aIB" = ( /obj/structure/bodycontainer/crematorium{ @@ -15293,8 +15310,8 @@ /area/chapel/office) "aIC" = ( /obj/effect/landmark/start/chaplain, -/obj/structure/chair, -/turf/open/floor/plasteel/grimy, +/obj/structure/chair/comfy/plywood, +/turf/open/floor/carpet, /area/chapel/office) "aID" = ( /obj/structure/closet/crate/coffin, @@ -15305,7 +15322,7 @@ /area/chapel/office) "aIE" = ( /obj/structure/table/glass, -/turf/open/floor/plasteel/chapel, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aIH" = ( /obj/structure/table, @@ -15328,7 +15345,7 @@ /area/construction/mining/aux_base) "aII" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aIJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15787,11 +15804,10 @@ pixel_y = 10 }, /obj/structure/disposalpipe/segment, -/obj/item/nullrod, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aJO" = ( /obj/structure/table, @@ -15826,23 +15842,30 @@ "aJT" = ( /obj/structure/table/wood, /obj/item/paper_bin{ - pixel_x = -2; pixel_y = 5 }, -/obj/item/storage/crayons, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/item/pen/fountain{ + pixel_y = 7 + }, +/turf/open/floor/carpet, /area/chapel/office) "aJU" = ( /obj/structure/table/wood, -/obj/item/pen, -/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/item/reagent_containers/food/drinks/bottle/holywater{ + pixel_x = 9; + pixel_y = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/item/nullrod{ + pixel_x = -15; + pixel_y = 3 + }, +/turf/open/floor/carpet, /area/chapel/office) "aJV" = ( /obj/structure/closet/crate/coffin, @@ -15851,13 +15874,14 @@ name = "Coffin Storage"; req_access_txt = "22" }, +/obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/chapel/office) "aJW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aJX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -15917,9 +15941,11 @@ /area/gateway) "aKe" = ( /obj/structure/table/glass, -/turf/open/floor/plasteel/chapel{ - dir = 4 +/obj/item/storage/box/matches{ + pixel_x = 4; + pixel_y = -8 }, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aKf" = ( /obj/structure/cable{ @@ -16248,7 +16274,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLb" = ( /obj/structure/disposalpipe/segment{ @@ -16267,7 +16293,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLd" = ( /obj/structure/table, @@ -16286,13 +16312,13 @@ /turf/open/floor/plasteel, /area/hydroponics) "aLe" = ( -/obj/structure/chair{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/grimy, +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aLf" = ( /obj/machinery/airalarm{ @@ -16372,10 +16398,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aLr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aLt" = ( /turf/open/floor/wood{ @@ -16813,16 +16837,12 @@ /turf/open/floor/plasteel, /area/hydroponics) "aML" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/structure/bookcase, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aMM" = ( -/obj/machinery/camera{ - c_tag = "Chapel North" - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood/wood_large, /area/chapel/main) "aMN" = ( /obj/machinery/chem_master/condimaster, @@ -16887,7 +16907,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aMX" = ( -/turf/open/floor/plasteel/grimy, +/turf/open/floor/wood/wood_large, /area/chapel/office) "aMY" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, @@ -17177,12 +17197,8 @@ /turf/open/floor/wood, /area/library) "aNW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/wood/wood_large, +/area/chapel/main) "aNX" = ( /obj/item/radio/intercom{ broadcasting = 1; @@ -17190,7 +17206,8 @@ name = "Confessional Intercom"; pixel_x = 25 }, -/obj/structure/chair, +/obj/structure/chair/comfy/plywood, +/obj/machinery/light/floor, /turf/open/floor/plasteel/dark, /area/chapel/main) "aNY" = ( @@ -18085,6 +18102,10 @@ /area/chapel/main) "aQw" = ( /obj/structure/table/wood, +/obj/item/trash/candle{ + pixel_x = -5; + pixel_y = 2 + }, /turf/open/floor/plasteel/dark, /area/chapel/main) "aQx" = ( @@ -18104,9 +18125,10 @@ name = "Confessional Intercom"; pixel_x = 25 }, -/obj/structure/chair{ +/obj/structure/chair/wood/normal{ dir = 1 }, +/obj/machinery/light/floor, /turf/open/floor/plasteel/dark, /area/chapel/main) "aQA" = ( @@ -19111,24 +19133,32 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aTf" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel, /area/chapel/main) "aTg" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, /area/chapel/main) "aTh" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel, /area/chapel/main) "aTi" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/start/assistant, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -19659,28 +19689,36 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "aUH" = ( -/obj/structure/chair/stool, /obj/effect/landmark/start/assistant, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 4 }, /area/chapel/main) "aUI" = ( -/obj/structure/chair/stool, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 1 }, /area/chapel/main) "aUJ" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/pew/right{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 4 }, /area/chapel/main) "aUK" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 1 }, @@ -20207,8 +20245,10 @@ /turf/open/floor/wood, /area/library) "aVU" = ( -/obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/pew/left{ + dir = 1 + }, /turf/open/floor/plasteel/chapel{ dir = 8 }, @@ -46267,7 +46307,7 @@ "chY" = ( /obj/machinery/shieldgen, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "cia" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -46617,7 +46657,7 @@ "ciW" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciX" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/fifty, @@ -46632,14 +46672,14 @@ /obj/item/lightreplacer, /obj/item/lightreplacer, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciY" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; name = "secure storage" }, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ciZ" = ( /turf/open/floor/plating, /area/engine/engineering) @@ -46947,7 +46987,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "cjN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -47234,11 +47274,11 @@ "ckB" = ( /obj/machinery/field/generator, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ckC" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, -/area/engine/storage) +/area/engine/engineering) "ckD" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -49324,8 +49364,10 @@ /area/ai_monitored/turret_protected/aisat_interior) "csT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/dark, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/carpet, /area/chapel/main) "csU" = ( /obj/structure/transit_tube/station/reverse, @@ -51958,13 +52000,11 @@ /area/maintenance/starboard/aft) "cBZ" = ( /obj/structure/table/wood, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/turf/open/floor/plasteel/grimy, +/obj/item/storage/crayons{ + pixel_y = -8 + }, +/obj/item/stamp/chap, +/turf/open/floor/carpet, /area/chapel/office) "cCb" = ( /obj/structure/table, @@ -54381,8 +54421,12 @@ /turf/open/floor/plasteel, /area/security/range) "fsQ" = ( -/turf/open/floor/plating, -/area/engine/storage) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) "fty" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -57403,6 +57447,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/aft) +"mFB" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/candle_box{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "mGw" = ( /obj/machinery/door/airlock/security{ name = "Labor Shuttle"; @@ -57526,6 +57578,12 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/bar) +"mQb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "mQp" = ( /obj/structure/cable{ icon_state = "1-2" @@ -57612,6 +57670,10 @@ "ndq" = ( /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"new" = ( +/obj/structure/musician/piano, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "nez" = ( /obj/structure/table/wood, /obj/item/instrument/piano_synth, @@ -58404,6 +58466,15 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"oZC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/xmastree{ + pixel_x = 14 + }, +/turf/open/floor/carpet, +/area/chapel/main) "paJ" = ( /obj/machinery/light{ dir = 4; @@ -59754,6 +59825,10 @@ /obj/structure/closet/crate, /turf/open/floor/plasteel, /area/engine/atmos) +"som" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/chapel/main) "spR" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -61803,6 +61878,14 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"wIu" = ( +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "wJA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -61821,6 +61904,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"wPW" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "wQg" = ( /obj/structure/pool/ladder{ dir = 2; @@ -61966,6 +62056,15 @@ /obj/item/coin/gold, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"xci" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "xcl" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/dark/visible{ @@ -62236,8 +62335,13 @@ /turf/open/floor/carpet, /area/library) "xES" = ( -/turf/closed/wall/r_wall, -/area/engine/storage) +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "xFM" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/head/soft/rainbow, @@ -62319,6 +62423,15 @@ /obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/wood, /area/crew_quarters/dorms) +"xPS" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "xPY" = ( /obj/structure/table/wood, /obj/machinery/light{ @@ -87889,14 +88002,14 @@ cdc cdZ bVI cay -xES -xES -xES -xES -xES -xES -xES -xES +ccw +ccw +ccw +ccw +ccw +ccw +ccw +ccw cfL coH cBO @@ -88146,14 +88259,14 @@ bWB cec bVI kNv -xES +ccw chY ciX cjM ckB ckB ckB -xES +ccw cnY coH cgR @@ -88403,14 +88516,14 @@ cde ceb bVI cay -xES +ccw chY -fsQ +ciZ ciW ckB ckB ckC -xES +ccw cnX coH cps @@ -88660,14 +88773,14 @@ cdf ced bVI cay -xES -fsQ -fsQ -fsQ +ccw +ciZ +ciZ +ciZ ckC ckC ckC -xES +ccw coa coJ clJ @@ -88917,14 +89030,14 @@ bWB bWB bVI cay -xES -xES +ccw +ccw ciY ciY -xES -xES -xES -xES +ccw +ccw +ccw +ccw cnZ coH cgI @@ -108390,7 +108503,7 @@ cBZ aJT aLc aFw -aFz +new aFz aFz aRR @@ -108400,7 +108513,7 @@ aFz aRS aXW baz -aCR +som bcx aXq aYV @@ -108646,8 +108759,8 @@ aGY aII aJW aMX -aNW -aFz +aFw +xci aPl aQv aPl @@ -108902,8 +109015,8 @@ aFw aHi aHi aJV -aFw -aFw +aMX +wPW aFz aPk aQu @@ -109158,9 +109271,9 @@ aEi aFw aHl aID -aID +xES aFw -aMM +aCR aFz aFz aQw @@ -109169,7 +109282,7 @@ aRS aRS aRS aRS -aZf +oZC aRS bbF aYV @@ -109412,15 +109525,15 @@ aAz asB aCO aEh -aFz +aNW aHk -aFz -aFz -aTe +aNW +aNW +xPS aML aFz aFz -aQw +wIu cdl aRS aRS @@ -109669,11 +109782,11 @@ aAA asB aCQ aEk -aFB +aLr aHn -aFB csT -aFB +csT +mQb aLr aFB aPn @@ -109925,13 +110038,13 @@ awO awO asB aCP -aEj +aMM aFA aHm -aEj -aEj -aEj -aEj +fsQ +fsQ +aMM +aMM aEj aPm aQx @@ -110184,10 +110297,10 @@ asB aCR aEm aCR -aPl -aQv -aPl -aQv +aNW +aNW +aNW +aNW aCR aNY aCR @@ -110444,7 +110557,7 @@ aCR aHo aIE aKe -aIE +mFB aCR aNX aPo From 36e82c59d697a8cd6362fe32a95e6e4f62538d7e Mon Sep 17 00:00:00 2001 From: TripleShades Date: Fri, 15 Jan 2021 17:30:10 -0800 Subject: [PATCH 014/128] Update BoxStation.dmm --- _maps/map_files/BoxStation/BoxStation.dmm | 205 ++++++++++++---------- 1 file changed, 109 insertions(+), 96 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 741f6eb071..260301b7df 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -12999,8 +12999,12 @@ c_tag = "Chapel North" }, /obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/harebell, +/obj/item/reagent_containers/food/snacks/grown/poppy{ + pixel_y = 5 + }, +/obj/item/reagent_containers/food/snacks/grown/harebell{ + pixel_y = 5 + }, /turf/open/floor/wood/wood_large, /area/chapel/main) "aCP" = ( @@ -13024,6 +13028,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/structure/bookcase, /turf/open/floor/wood/wood_large, /area/chapel/main) "aCR" = ( @@ -14792,6 +14797,7 @@ "aHo" = ( /obj/structure/table/glass, /obj/item/storage/book/bible, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/wood/wood_large, /area/chapel/main) "aHq" = ( @@ -15842,13 +15848,13 @@ "aJT" = ( /obj/structure/table/wood, /obj/item/paper_bin{ - pixel_y = 5 + pixel_y = 20 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/item/pen/fountain{ - pixel_y = 7 + pixel_y = 20 }, /turf/open/floor/carpet, /area/chapel/office) @@ -16398,7 +16404,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "aLr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/wood/wood_large, /area/chapel/main) "aLt" = ( @@ -16837,7 +16845,9 @@ /turf/open/floor/plasteel, /area/hydroponics) "aML" = ( -/obj/structure/bookcase, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/wood/wood_large, /area/chapel/main) "aMM" = ( @@ -18129,6 +18139,7 @@ dir = 1 }, /obj/machinery/light/floor, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/chapel/main) "aQA" = ( @@ -19167,6 +19178,7 @@ /obj/machinery/light{ dir = 4 }, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/dark, /area/chapel/main) "aTk" = ( @@ -52001,9 +52013,8 @@ "cBZ" = ( /obj/structure/table/wood, /obj/item/storage/crayons{ - pixel_y = -8 + pixel_y = 8 }, -/obj/item/stamp/chap, /turf/open/floor/carpet, /area/chapel/office) "cCb" = ( @@ -53472,6 +53483,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"dmX" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "dnW" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -54421,11 +54439,8 @@ /turf/open/floor/plasteel, /area/security/range) "fsQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/turf/open/floor/carpet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood/wood_large, /area/chapel/main) "fty" = ( /obj/structure/lattice, @@ -56778,6 +56793,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"kOL" = ( +/obj/item/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "kPd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -57118,6 +57139,15 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"lNB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/xmastree{ + pixel_x = 14 + }, +/turf/open/floor/carpet, +/area/chapel/main) "lNH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -57376,6 +57406,10 @@ /obj/effect/spawner/lootdrop/keg, /turf/open/floor/wood, /area/maintenance/bar) +"mtU" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/chapel/main) "mug" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -57410,6 +57444,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/theatre) +"mzv" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "mzB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/window, @@ -57447,14 +57490,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/aft) -"mFB" = ( -/obj/structure/table/glass, -/obj/item/storage/fancy/candle_box{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/wood/wood_large, -/area/chapel/main) "mGw" = ( /obj/machinery/door/airlock/security{ name = "Labor Shuttle"; @@ -57578,12 +57613,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/maintenance/bar) -"mQb" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood/wood_large, -/area/chapel/main) "mQp" = ( /obj/structure/cable{ icon_state = "1-2" @@ -57633,6 +57662,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"mZx" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/candle_box{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "naI" = ( /turf/open/space, /area/space/station_ruins) @@ -57670,10 +57707,6 @@ "ndq" = ( /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"new" = ( -/obj/structure/musician/piano, -/turf/open/floor/plasteel/dark, -/area/chapel/main) "nez" = ( /obj/structure/table/wood, /obj/item/instrument/piano_synth, @@ -58466,15 +58499,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"oZC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/xmastree{ - pixel_x = 14 - }, -/turf/open/floor/carpet, -/area/chapel/main) "paJ" = ( /obj/machinery/light{ dir = 4; @@ -58915,6 +58939,14 @@ icon_state = "wood-broken2" }, /area/maintenance/port/fore) +"pXG" = ( +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "pYQ" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_containers/glass/bucket, @@ -59009,6 +59041,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"qkn" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/wood_large, +/area/chapel/main) "qkC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -59825,10 +59863,6 @@ /obj/structure/closet/crate, /turf/open/floor/plasteel, /area/engine/atmos) -"som" = ( -/obj/structure/sign/departments/holy, -/turf/closed/wall, -/area/chapel/main) "spR" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -60544,6 +60578,11 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"tSm" = ( +/obj/structure/musician/piano, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/chapel/main) "tSo" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/dark/visible{ @@ -61277,6 +61316,14 @@ /obj/item/clothing/under/misc/pj/blue, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"vqE" = ( +/obj/structure/closet/crate/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "vqP" = ( /obj/structure/bed/dogbed{ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; @@ -61878,14 +61925,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"wIu" = ( -/obj/structure/table/wood, -/obj/item/candle{ - pixel_x = 5; - pixel_y = 2 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) "wJA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -61904,13 +61943,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"wPW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) "wQg" = ( /obj/structure/pool/ladder{ dir = 2; @@ -62056,15 +62088,6 @@ /obj/item/coin/gold, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"xci" = ( -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) "xcl" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/dark/visible{ @@ -62335,13 +62358,12 @@ /turf/open/floor/carpet, /area/library) "xES" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/wood/normal{ dir = 4 }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/turf/open/floor/carpet, +/area/chapel/main) "xFM" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/head/soft/rainbow, @@ -62423,15 +62445,6 @@ /obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/wood, /area/crew_quarters/dorms) -"xPS" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/wood/wood_large, -/area/chapel/main) "xPY" = ( /obj/structure/table/wood, /obj/machinery/light{ @@ -108503,8 +108516,8 @@ cBZ aJT aLc aFw -new -aFz +tSm +kOL aFz aRR aTe @@ -108513,7 +108526,7 @@ aFz aRS aXW baz -som +mtU bcx aXq aYV @@ -108760,7 +108773,7 @@ aII aJW aMX aFw -xci +mzv aPl aQv aPl @@ -109016,7 +109029,7 @@ aHi aHi aJV aMX -wPW +dmX aFz aPk aQu @@ -109271,7 +109284,7 @@ aEi aFw aHl aID -xES +vqE aFw aCR aFz @@ -109282,7 +109295,7 @@ aRS aRS aRS aRS -oZC +lNB aRS bbF aYV @@ -109529,11 +109542,11 @@ aNW aHk aNW aNW -xPS +qkn aML aFz aFz -wIu +pXG cdl aRS aRS @@ -109782,11 +109795,11 @@ aAA asB aCQ aEk -aLr +fsQ aHn csT csT -mQb +fsQ aLr aFB aPn @@ -110041,8 +110054,8 @@ aCP aMM aFA aHm -fsQ -fsQ +xES +xES aMM aMM aEj @@ -110557,7 +110570,7 @@ aCR aHo aIE aKe -mFB +mZx aCR aNX aPo From 1c9c0b7745c64e611b916da74b9fdf405997085c Mon Sep 17 00:00:00 2001 From: TripleShades Date: Fri, 15 Jan 2021 17:42:36 -0800 Subject: [PATCH 015/128] Update BoxStation.dmm --- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 260301b7df..ecd3dd065f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -60579,8 +60579,8 @@ /turf/open/floor/wood, /area/maintenance/bar) "tSm" = ( -/obj/structure/musician/piano, /obj/effect/decal/cleanable/cobweb, +/obj/structure/musician/piano, /turf/open/floor/plasteel/dark, /area/chapel/main) "tSo" = ( From 6146a4ca9a1d87aa928c5b5338698fc3b4e9b9b3 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:24:53 -0700 Subject: [PATCH 016/128] Update mob_holder.dm --- code/datums/elements/mob_holder.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index d770e0f30d..619f674969 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -141,7 +141,7 @@ /obj/item/clothing/head/mob_holder/dropped(mob/user) . = ..() - if(held_mob && isturf(loc))//don't release on soft-drops + if(held_mob && !ismob(loc))//don't release on soft-drops release() /obj/item/clothing/head/mob_holder/proc/release() From 9e52451df897a198e3034dc9a6db9e9e00f190bb Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:26:52 -0700 Subject: [PATCH 017/128] Update colormate.dm --- code/game/machinery/colormate.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index b4306d49a4..81f01a7262 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -62,6 +62,8 @@ if(!user.transferItemToLoc(I, src)) to_chat(user, "[I] is stuck to your hand!") return + if(QDELETED(I)) + return user.visible_message("[user] inserts [I] into [src]'s receptable.") inserted = I @@ -72,6 +74,11 @@ /obj/machinery/gear_painter/AllowDrop() return FALSE +/obj/machinery/gear_painter/handle_atom_del(atom/movable/AM) + if(AM == inserrted) + inserted = null + return ..() + /obj/machinery/gear_painter/AltClick(mob/user) . = ..() if(!user.CanReach(src)) From 1aae6a215402cdf4fd831ce32f8773d944fdc733 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:35:08 -0700 Subject: [PATCH 018/128] Update colormate.dm --- code/game/machinery/colormate.dm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index b4306d49a4..7eb2e6bdda 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -6,10 +6,12 @@ density = TRUE anchored = TRUE circuit = /obj/item/circuitboard/machine/colormate - var/obj/item/inserted + var/atom/movable/inserted var/activecolor = "#FFFFFF" var/list/color_matrix_last var/matrix_mode = FALSE + /// Allow holder'd mobs + var/mobs_allowed = TRUE /// Minimum lightness for normal mode var/minimum_normal_lightness = 50 /// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white. @@ -57,6 +59,15 @@ return if(user.a_intent == INTENT_HARM) return ..() + if(allow_mobs && istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/H = I + var/mob/victim = H.held_mob + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand!") + return + if(!QDELETED(H)) + H.release() + insert_mob(H, user) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) @@ -69,6 +80,14 @@ else return ..() +/obj/machinery/gear_painter/proc/insert_mob(mob/victim, mob/user) + if(inserted) + return + if(user) + visible_message("[user] stuffs [victim] into [src]!") + inserted = victim + inserted.forceMove(src) + /obj/machinery/gear_painter/AllowDrop() return FALSE From ffa56152d4037cc5eac137e2f4f276db67288022 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:36:19 -0700 Subject: [PATCH 019/128] Update colormate.dm --- code/game/machinery/colormate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index 7eb2e6bdda..ad90678d1f 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -11,7 +11,7 @@ var/list/color_matrix_last var/matrix_mode = FALSE /// Allow holder'd mobs - var/mobs_allowed = TRUE + var/allow_mobs = TRUE /// Minimum lightness for normal mode var/minimum_normal_lightness = 50 /// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white. From db1693b906e3d4d0bcc214f514743563978e656e Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:39:00 -0700 Subject: [PATCH 020/128] Update colormate.dm --- code/game/machinery/colormate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index 81f01a7262..603b34ee32 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -75,7 +75,7 @@ return FALSE /obj/machinery/gear_painter/handle_atom_del(atom/movable/AM) - if(AM == inserrted) + if(AM == inserted) inserted = null return ..() From 0db94c5aa8f0e41e7f84eac46e0fe40c5ee3816a Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:41:48 -0700 Subject: [PATCH 021/128] Update code/modules/reagents/chemistry/reagents/toxin_reagents.dm Co-authored-by: DeltaFire <46569814+DeltaFire15@users.noreply.github.com> --- code/modules/reagents/chemistry/reagents/toxin_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 769f876ef5..c9fbf6928a 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -783,7 +783,7 @@ value = REAGENT_VALUE_VERY_RARE /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) - return // until fixed - the rotations never stop + return ..() // until fixed - the rotations never stop /* if(M.hud_used) if(current_cycle >= 20 && current_cycle%20 == 0) From eb20501cc03d8eb61eb13a96a7f612b5461913cb Mon Sep 17 00:00:00 2001 From: TripleShades Date: Mon, 18 Jan 2021 11:50:41 -0800 Subject: [PATCH 022/128] oops missed this light switch from earlier box surgery pr --- _maps/map_files/BoxStation/BoxStation.dmm | 3 --- 1 file changed, 3 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index ecd3dd065f..4ad31f481f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -34056,9 +34056,6 @@ /area/medical/surgery) "bCJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/light_switch{ - pixel_y = 26 - }, /turf/open/floor/plasteel/white, /area/medical/surgery) "bCK" = ( From b956df22266c9cb0d9edbd261fd0f2fd529f339a Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Mon, 18 Jan 2021 21:59:00 +0000 Subject: [PATCH 023/128] name description implement --- code/__DEFINES/loadout.dm | 8 +- code/controllers/subsystem/job.dm | 38 ++++---- code/modules/client/preferences.dm | 86 ++++++++++++------- .../code/modules/client/loadout/_loadout.dm | 2 +- .../code/modules/client/loadout/neck.dm | 2 +- .../code/modules/client/loadout/suit.dm | 2 +- .../code/modules/client/loadout/uniform.dm | 16 ++-- .../code/modules/client/loadout/unlockable.dm | 2 +- 8 files changed, 94 insertions(+), 62 deletions(-) diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index ecd043a66a..973457692e 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -72,9 +72,11 @@ #define LOADOUT_LIMBS list(LOADOUT_LIMB_NORMAL,LOADOUT_LIMB_PROSTHETIC,LOADOUT_LIMB_AMPUTATED) //you can amputate your legs/arms though //loadout saving/loading specific defines -#define MAXIMUM_LOADOUT_SAVES 5 -#define LOADOUT_ITEM "loadout_item" -#define LOADOUT_COLOR "loadout_color" +#define MAXIMUM_LOADOUT_SAVES 5 +#define LOADOUT_ITEM "loadout_item" +#define LOADOUT_COLOR "loadout_color" +#define LOADOUT_CUSTOM_NAME "loadout_custom_name" +#define LOADOUT_CUSTOM_DESCRIPTION "loadout_custom_description" //loadout item flags #define LOADOUT_CAN_NAME (1<<0) //renaming items diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 779ee2fbac..f831c302fa 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -691,21 +691,29 @@ SUBSYSTEM_DEF(job) if(!permitted) continue var/obj/item/I = new G.path - if(I && length(i[LOADOUT_COLOR])) //handle loadout colors - //handle polychromic items - if((G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) && length(G.loadout_initial_colors)) - var/datum/element/polychromic/polychromic = I.comp_lookup["item_worn_overlays"] //stupid way to do it but GetElement does not work for this - if(polychromic && istype(polychromic)) - var/list/polychromic_entry = polychromic.colors_by_atom[I] - if(polychromic_entry) - if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? - polychromic.connect_helmet(I,i[LOADOUT_COLOR]) - polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] - I.update_icon() - else - //handle non-polychromic items (they only have one color) - I.add_atom_colour(i[LOADOUT_COLOR][1], FIXED_COLOUR_PRIORITY) - I.update_icon() + if(I) + if(length(i[LOADOUT_COLOR])) //handle loadout colors + //handle polychromic items + if((G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) && length(G.loadout_initial_colors)) + var/datum/element/polychromic/polychromic = I.comp_lookup["item_worn_overlays"] //stupid way to do it but GetElement does not work for this + if(polychromic && istype(polychromic)) + var/list/polychromic_entry = polychromic.colors_by_atom[I] + if(polychromic_entry) + if(polychromic.suits_with_helmet_typecache[I.type]) //is this one of those toggleable hood/helmet things? + polychromic.connect_helmet(I,i[LOADOUT_COLOR]) + polychromic.colors_by_atom[I] = i[LOADOUT_COLOR] + I.update_icon() + else + //handle non-polychromic items (they only have one color) + I.add_atom_colour(i[LOADOUT_COLOR][1], FIXED_COLOUR_PRIORITY) + I.update_icon() + //when inputting the data it's already sanitized, but it's best to be safe + if(i[LOADOUT_CUSTOM_NAME]) + var/custom_name = strip_html(i[LOADOUT_CUSTOM_NAME]) + I.name = custom_name + if(i[LOADOUT_CUSTOM_DESCRIPTION]) + var/custom_description = strip_html(i[LOADOUT_CUSTOM_DESCRIPTION]) + I.desc = custom_description if(!M.equip_to_slot_if_possible(I, G.slot, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first if(iscarbon(M)) var/mob/living/carbon/C = M diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7c6ba30b80..52772f126b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -895,19 +895,23 @@ GLOBAL_LIST_EMPTY(preferences_datums) continue var/class_link = "" var/list/loadout_item = has_loadout_gear(loadout_slot, "[gear.type]") - var/extra_color_data = "" + var/extra_loadout_data = "" if(loadout_item) class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=0'" if(gear.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) - extra_color_data += "
Color" + extra_loadout_data += "
Color" for(var/loadout_color in loadout_item[LOADOUT_COLOR]) - extra_color_data += "   " + extra_loadout_data += "   " else var/loadout_color_non_poly = "#FFFFFF" if(length(loadout_item[LOADOUT_COLOR])) loadout_color_non_poly = loadout_item[LOADOUT_COLOR][1] - extra_color_data += "
Color" - extra_color_data += "   " + extra_loadout_data += "
Color" + extra_loadout_data += "   " + if(gear.loadout_flags & LOADOUT_CAN_NAME) + extra_loadout_data += "
Name [loadout_item[LOADOUT_CUSTOM_NAME] ? loadout_item[LOADOUT_CUSTOM_NAME] : "N/A"]" + if(gear.loadout_flags & LOADOUT_CAN_DESCRIPTION) + extra_loadout_data += "
Description" else if((gear_points - gear.cost) < 0) class_link = "style='white-space:normal;' class='linkOff'" else if(donoritem) @@ -916,7 +920,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[html_encode(name)];toggle_gear=1'" else class_link = "style='white-space:normal;background:#eb2e2e;' class='linkOff'" - dat += "[name][extra_color_data]" + dat += "[name][extra_loadout_data]" dat += "[gear.cost]" if(islist(gear.restricted_roles)) if(gear.restricted_roles.len) @@ -929,14 +933,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += gear.restricted_roles.Join(";") dat += "" if(!istype(gear, /datum/gear/unlockable)) - dat += "[gear.description]" + // the below line essentially means "if the loadout item is picked by the user and has a custom description, give it the custom description, otherwise give it the default description" + dat += "[loadout_item ? (loadout_item[LOADOUT_CUSTOM_DESCRIPTION] ? loadout_item[LOADOUT_CUSTOM_DESCRIPTION] : gear.description) : gear.description]" else //we add the user's progress to the description assuming they have progress var/datum/gear/unlockable/unlockable = gear var/progress_made = unlockable_loadout_data[unlockable.progress_key] if(!progress_made) progress_made = 0 - dat += "[gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" + dat += "[loadout_item ? (loadout_item[LOADOUT_CUSTOM_DESCRIPTION] ? loadout_item[LOADOUT_CUSTOM_DESCRIPTION] : gear.description) : gear.description] Progress: [min(progress_made, unlockable.progress_required)]/[unlockable.progress_required]" dat += "" if(4) // Content preferences @@ -2700,7 +2705,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) loadout_data["SAVE_[loadout_slot]"] += list(new_loadout_data) //double packed because it does the union of the CONTENTS of the lists else loadout_data["SAVE_[loadout_slot]"] = list(new_loadout_data) //double packed because you somehow had no save slot in your loadout? - if(href_list["loadout_color"]) + + if(href_list["loadout_color"] || href_list["loadout_color_polychromic"] || href_list["loadout_rename"] || href_list["loadout_redescribe"]) + //if the gear doesn't exist, or they don't have it, ignore the request var/name = html_decode(href_list["loadout_gear_name"]) var/datum/gear/G = GLOB.loadout_items[gear_category][gear_subcategory][name] if(!G) @@ -2708,29 +2715,44 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/user_gear = has_loadout_gear(loadout_slot, "[G.type]") if(!user_gear) return - if(!length(user_gear[LOADOUT_COLOR])) - user_gear[LOADOUT_COLOR] = list("#FFFFFF") - var/current_color = user_gear[LOADOUT_COLOR][1] - var/new_color = input(user, "Polychromic options", "Choose Color", current_color) as color|null - user_gear[LOADOUT_COLOR][1] = sanitize_hexcolor(new_color, 6, TRUE, current_color) - if(href_list["loadout_color_polychromic"]) - var/name = html_decode(href_list["loadout_gear_name"]) - var/datum/gear/G = GLOB.loadout_items[gear_category][gear_subcategory][name] - if(!G) - return - var/user_gear = has_loadout_gear(loadout_slot, "[G.type]") - if(!user_gear) - return - var/list/color_options = list() - for(var/i=1, i<=length(G.loadout_initial_colors), i++) - color_options += "Color [i]" - var/color_to_change = input(user, "Polychromic options", "Recolor [name]") as null|anything in color_options - if(color_to_change) - var/color_index = text2num(copytext(color_to_change, 7)) - var/current_color = user_gear[LOADOUT_COLOR][color_index] - var/new_color = input(user, "Polychromic options", "Choose [color_to_change] Color", current_color) as color|null - if(new_color) - user_gear[LOADOUT_COLOR][color_index] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //possible requests: recolor, recolor (polychromic), rename, redescribe + //always make sure the gear allows said request before proceeding + + //non-poly coloring can only be done by non-poly items + if(href_list["loadout_color"] && !(G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC)) + if(!length(user_gear[LOADOUT_COLOR])) + user_gear[LOADOUT_COLOR] = list("#FFFFFF") + var/current_color = user_gear[LOADOUT_COLOR][1] + var/new_color = input(user, "Polychromic options", "Choose Color", current_color) as color|null + user_gear[LOADOUT_COLOR][1] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //poly coloring can only be done by poly items + if(href_list["loadout_color_polychromic"] && (G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC)) + var/list/color_options = list() + for(var/i=1, i<=length(G.loadout_initial_colors), i++) + color_options += "Color [i]" + var/color_to_change = input(user, "Polychromic options", "Recolor [name]") as null|anything in color_options + if(color_to_change) + var/color_index = text2num(copytext(color_to_change, 7)) + var/current_color = user_gear[LOADOUT_COLOR][color_index] + var/new_color = input(user, "Polychromic options", "Choose [color_to_change] Color", current_color) as color|null + if(new_color) + user_gear[LOADOUT_COLOR][color_index] = sanitize_hexcolor(new_color, 6, TRUE, current_color) + + //both renaming and redescribing strip the input to stop html injection + + //renaming is only allowed if it has the flag for it + if(href_list["loadout_rename"] && (G.loadout_flags & LOADOUT_CAN_NAME)) + var/new_name = stripped_input(user, "Enter new name for item. Maximum 32 characters.", "Loadout Item Naming", null, 32) + if(new_name) + user_gear[LOADOUT_CUSTOM_NAME] = new_name + + //redescribing is only allowed if it has the flag for it + if(href_list["loadout_redescribe"] && (G.loadout_flags & LOADOUT_CAN_DESCRIPTION)) //redescribe isnt a real word but i can't think of the right term to use + var/new_description = stripped_input(user, "Enter new description for item. Maximum 500 characters.", "Loadout Item Redescribing", null, 500) + if(new_description) + user_gear[LOADOUT_CUSTOM_DESCRIPTION] = new_description ShowChoices(user) return 1 diff --git a/modular_citadel/code/modules/client/loadout/_loadout.dm b/modular_citadel/code/modules/client/loadout/_loadout.dm index 2a7b77bd47..5f895c4805 100644 --- a/modular_citadel/code/modules/client/loadout/_loadout.dm +++ b/modular_citadel/code/modules/client/loadout/_loadout.dm @@ -53,7 +53,7 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids) var/path //item-to-spawn path var/cost = 1 //normally, each loadout costs a single point. var/geargroupID //defines the ID that the gear inherits from the config - var/loadout_flags = 0 + var/loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION var/list/loadout_initial_colors = list() //NEW DONATOR SYTSEM STUFF diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index 7c3c11f25c..c1f05e2990 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -86,7 +86,7 @@ /datum/gear/neck/polycloak name = "Polychromatic Cloak" path = /obj/item/clothing/neck/cloak/polychromic - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#FFFFFF", "#808080") /datum/gear/neck/altpolycloak diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 7c21ed84d0..f7ef891104 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -101,7 +101,7 @@ name = "Polychromic winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/polychromic cost = 4 //too many people with neon green coats is hard on the eyes - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#6A6964", "#C4B8A6", "#0000FF") /datum/gear/suit/coat/med diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index b76e223f25..303783e1c5 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -47,7 +47,7 @@ /datum/gear/uniform/maidcostume/polychromic name = "Polychromic maid costume" path = /obj/item/clothing/under/rank/civilian/janitor/maid/polychromic - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#000000") /datum/gear/uniform/mailmanuniform @@ -229,49 +229,49 @@ name = "Polychromic Jumpsuit" path = /obj/item/clothing/under/misc/polyjumpsuit cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#808080", "#353535") /datum/gear/uniform/skirt/poly name = "Polychromic Jumpskirt" path = /obj/item/clothing/under/dress/skirt/polychromic cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080", "#808080") /datum/gear/uniform/suit/poly name = "Polychromic Button-up Shirt" path = /obj/item/clothing/under/misc/poly_shirt cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#353535", "#353535") /datum/gear/uniform/skirt/poly/pleated name = "Polychromic Pleated Sweaterskirt" path = /obj/item/clothing/under/dress/skirt/polychromic/pleated cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#8CC6FF", "#808080", "#FF3535") /datum/gear/uniform/polykilt name = "Polychromic Kilt" path = /obj/item/clothing/under/costume/kilt/polychromic cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080") /datum/gear/uniform/shorts/poly name = "Polychromic Shorts" path = /obj/item/clothing/under/misc/polyshorts cost = 3 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#353535", "#808080", "#808080") /datum/gear/uniform/shorts/poly/athletic name = "Polychromic Athletic Shorts" path = /obj/item/clothing/under/shorts/polychromic cost = 2 - loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC loadout_initial_colors = list("#FFFFFF", "#F08080") /datum/gear/uniform/hopcasual diff --git a/modular_citadel/code/modules/client/loadout/unlockable.dm b/modular_citadel/code/modules/client/loadout/unlockable.dm index 6e522812b8..67e0c06d8c 100644 --- a/modular_citadel/code/modules/client/loadout/unlockable.dm +++ b/modular_citadel/code/modules/client/loadout/unlockable.dm @@ -27,4 +27,4 @@ path = /obj/item/bedsheet/unlockable/miner progress_required = 100000 - progress_key = "miner" \ No newline at end of file + progress_key = "miner" From 837e766306f7bf9cc77ff5c909958afe79dcb066 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 19 Jan 2021 01:04:01 +0000 Subject: [PATCH 024/128] fixes sanitization --- code/controllers/subsystem/job.dm | 6 +++--- code/modules/client/preferences.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index f831c302fa..165f6e9d81 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -707,12 +707,12 @@ SUBSYSTEM_DEF(job) //handle non-polychromic items (they only have one color) I.add_atom_colour(i[LOADOUT_COLOR][1], FIXED_COLOUR_PRIORITY) I.update_icon() - //when inputting the data it's already sanitized, but it's best to be safe + //when inputting the data it's already sanitized if(i[LOADOUT_CUSTOM_NAME]) - var/custom_name = strip_html(i[LOADOUT_CUSTOM_NAME]) + var/custom_name = i[LOADOUT_CUSTOM_NAME] I.name = custom_name if(i[LOADOUT_CUSTOM_DESCRIPTION]) - var/custom_description = strip_html(i[LOADOUT_CUSTOM_DESCRIPTION]) + var/custom_description = i[LOADOUT_CUSTOM_DESCRIPTION] I.desc = custom_description if(!M.equip_to_slot_if_possible(I, G.slot, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first if(iscarbon(M)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 52772f126b..7cc8be800c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2744,7 +2744,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //renaming is only allowed if it has the flag for it if(href_list["loadout_rename"] && (G.loadout_flags & LOADOUT_CAN_NAME)) - var/new_name = stripped_input(user, "Enter new name for item. Maximum 32 characters.", "Loadout Item Naming", null, 32) + var/new_name = stripped_input(user, "Enter new name for item. Maximum [MAX_NAME_LEN] characters.", "Loadout Item Naming", null, MAX_NAME_LEN) if(new_name) user_gear[LOADOUT_CUSTOM_NAME] = new_name From e006587f4b9f0767d77f9c29d6c9f05c6f63d92e Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Tue, 19 Jan 2021 17:24:33 -0600 Subject: [PATCH 025/128] today i will not test my code --- code/modules/hydroponics/hydroponics.dm | 35 +++++++++++++++++-- .../mob/living/carbon/human/species.dm | 2 ++ .../carbon/human/species_types/podpeople.dm | 5 +++ .../projectiles/ammunition/energy/special.dm | 5 +++ .../projectiles/guns/energy/special.dm | 2 +- .../projectiles/projectile/special/floral.dm | 12 +++++-- 6 files changed, 56 insertions(+), 5 deletions(-) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 8467d00124..a164013c65 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -92,6 +92,11 @@ return BULLET_ACT_HIT else if(istype(Proj , /obj/item/projectile/energy/florayield)) return myseed.bullet_act(Proj) + else if(istype(Proj , /obj/item/projectile/energy/florarevolution)) + if(myseed) + if(myseed.mutatelist.len > 0) + myseed.instability = (myseed.instability/2) + mutatespecie() else return ..() @@ -384,7 +389,6 @@ /obj/machinery/hydroponics/proc/hardmutate() mutate(4, 10, 2, 4, 50, 4, 10, 3) - /obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! if(!myseed || dead) return @@ -600,7 +604,34 @@ desc = initial(desc) weedlevel = 0 //Has a side effect of cleaning up those nasty weeds update_icon() - + else if(istype(O, /obj/item/gun/energy/floragun)) + var/obj/item/gun/energy/floragun/flowergun = O + if(flowergun.cell.charge < flowergun.cell.maxcharge) + to_chat(user, "[flowergun] must be fully charged to lock in a mutation!") + return + if(!myseed) + to_chat(user, "[src] is empty!") + return + if(myseed.endurance <= 20) + to_chat(user, "[myseed.plantname] isn't hardy enough to sequence it's mutation!") + return + if(!myseed.mutatelist) + to_chat(user, "[myseed.plantname] has nothing else to mutate into!") + return + else + var/list/fresh_mut_list = list() + for(var/muties in myseed.mutatelist) + var/obj/item/seeds/another_mut = new muties + fresh_mut_list[another_mut.plantname] = muties + var/locked_mutation = (input(user, "Select a mutation to lock.", "Plant Mutation Locks") as null|anything in sortList(fresh_mut_list)) + if(!user.canUseTopic(src, BE_CLOSE) || !locked_mutation) + return + myseed.mutatelist = list(fresh_mut_list[locked_mutation]) + myseed.endurance = (myseed.endurance/2) + flowergun.cell.use(flowergun.cell.charge) + flowergun.update_icon() + to_chat(user, "[myseed.plantname]'s mutation was set to [locked_mutation], depleting [flowergun]'s cell!") + return else return ..() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 94d7e84c6b..c61b9fb20d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1987,6 +1987,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.show_message("The radiation beam dissipates harmlessly through your body.") if(/obj/item/projectile/energy/florayield) H.show_message("The radiation beam dissipates harmlessly through your body.") + if(/obj/item/projectile/energy/florarevolution) + H.show_message("The radiation beam dissipates harmlessly through your body.") /datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) // called before a projectile hit diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index c25c5efb6c..697c3db35e 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -64,6 +64,11 @@ H.show_message("The radiation beam singes you!") if(/obj/item/projectile/energy/florayield) H.adjust_nutrition(30, NUTRITION_LEVEL_FULL) + if(/obj/item/projectile/energy/florarevolution) + H.show_message("The radiation beam leaves you feeling disoriented!") + H.Dizzy(15) + H.emote("flip") + H.emote("spin") /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index fc4207d084..2bf7c06ec6 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -24,6 +24,11 @@ projectile_type = /obj/item/projectile/energy/floramut select_name = "mutation" +/obj/item/ammo_casing/energy/flora/revolution + projectile_type = /obj/item/projectile/energy/florarevolution + select_name = "revolution" + e_cost = 250 + /obj/item/ammo_casing/energy/temp projectile_type = /obj/item/projectile/temp select_name = "freeze" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index ae6050a68e..f965100846 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -45,7 +45,7 @@ desc = "A tool that discharges controlled radiation which induces mutation in plant cells." icon_state = "flora" item_state = "gun" - ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) + ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut, /obj/item/ammo_casing/energy/flora/revolution) modifystate = 1 ammo_x_offset = 1 selfcharge = EGUN_SELFCHARGE diff --git a/code/modules/projectiles/projectile/special/floral.dm b/code/modules/projectiles/projectile/special/floral.dm index c3fe1f0fcb..b855322f09 100644 --- a/code/modules/projectiles/projectile/special/floral.dm +++ b/code/modules/projectiles/projectile/special/floral.dm @@ -2,7 +2,7 @@ name = "alpha somatoray" icon_state = "energy" damage = 0 - damage_type = TOX + damage_type = TRUE nodamage = 1 flag = "energy" @@ -21,5 +21,13 @@ icon_state = "energy2" damage = 0 damage_type = TOX - nodamage = 1 + nodamage = TRUE + flag = "energy" + +/obj/item/projectile/energy/florarevolution + name = "gamma somatorary" + icon_state = "energy3" + damage = 0 + damage_type = TOX + nodamage = TRUE flag = "energy" From a8cb8b79c6a9e46bd3943e025791e7f353b9ae9f Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Tue, 19 Jan 2021 17:40:34 -0600 Subject: [PATCH 026/128] for one, dont forget the sprites, dumbass --- code/modules/hydroponics/hydroponics.dm | 2 +- .../research/designs/weapon_designs.dm | 3 +-- icons/obj/guns/energy.dmi | Bin 46197 -> 46267 bytes icons/obj/projectiles.dmi | Bin 131360 -> 132345 bytes 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a164013c65..24f65756c8 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -613,7 +613,7 @@ to_chat(user, "[src] is empty!") return if(myseed.endurance <= 20) - to_chat(user, "[myseed.plantname] isn't hardy enough to sequence it's mutation!") + to_chat(user, "[myseed.plantname] isn't hardy enough to sequence its mutation!") return if(!myseed.mutatelist) to_chat(user, "[myseed.plantname] has nothing else to mutate into!") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 8c934d39a9..11dd29a416 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -324,8 +324,7 @@ desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" build_type = PROTOLATHE - materials = list(/datum/material/iron = 2000, /datum/material/glass = 500) - reagents_list = list(/datum/reagent/radium = 20) + materials = list(/datum/material/iron = 2000, /datum/material/glass = 500, /datum/material/uranium = 2000) build_path = /obj/item/gun/energy/floragun category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 7e7e4a644b607733d27071d4eb12b8a07992b66b..158c95ee5d8098b27c2944493a2062422d631f6e 100644 GIT binary patch literal 46267 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≶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 F{vVpJzEc1I diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 94568b8633457649e86cedb125ac1dd2c8ff705f..740c64b1dc98800b6b5aadfae7bb8668fffefbf7 100644 GIT binary patch literal 132345 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�-MEze zB&x8%ji){*#|2!#>X_p8X&kd;b+@OqH=44&dCeRAo8*QPb)1#ibp*xSI2>d_} z_Nrd6k@;TZEUj2Vx~9h4?+sFFv{L~P+RQJgQ8E_w0JmPfF<~e^ko#ou1*qfGq!|WP zR4|$9I@sQO)P7z=w;p>qjx?0T2MEj2APzzV{u}3#{>hLGLcr0{p6(~+u&g}4ZCu=P z&rr_ZW3NY4uX$Z0KK{d@4kp`S)9qp{!bRZyN;I)K|meYv#FVebgA;}=0k5{GN6dRkRwQa+^!zPg8i$21hlQH5^H=39^zqT8! zp?)MQs@P(ns!F2zS?zd9dXU?W)P3MfR<#cb{_mt;r909x@y%>QysZsq;w}Ua(owaX#e!cYB%Q3 zT6)XTQPy($osEyxU;`8+mRQb2k}ZGV|IBSu*k~|`f`@4t}SR|!3Sp(QYn4UdEBc0U!dRiW$4=NU+RaV&uP7HP^)odYs(;Zcy=X2S!U z?Uu>-)Dy)&$dG!+jbb?|e1njJzk>}4ECg5neNhW$qU{BY!iusfCyazX95^&DhZ}G$ z1^6jVFxkzAE2h%>=KUV+dbq&D^vcMaTPnq8-=Ny0{Q?`n=w~?K(zPw$yiOXA(q#3p z4Bo*q4+JjzzgJlW>UU7ZG7zio80e?nGfCAi&~%%4~x{99W24L{;&^rXOnaOS#T>E*Yq*4?#ZaxH48JbkwpKT1~kif%Yra zmI%luc2$tZu+gMT@MlA;6yhiMLm25H)r^O&KNr-nOAEB)1Aq4FDAp5Y+It+_^0nEN zb?xlz-tOX3#Xx|h;?hV>bpoK}zsqpLaE;xqXu$s@<5!!2qtjsh-;VDOUZBnzxoxEf z>Z`@?Ll_3rzIos;Od}@E-iZn8adl(-tG<1U!g`;7aQRl_7f>(D^C{Nrt8S^}L65HE zC~1u6&O}I9?Hx zFDd@%nvj;`HB}sG@?8u0KzhV4#&`R@M%HQyrQr52e~~!bOkg<-h2eY%TjmMG!x8ou zIrj=|o0SdTzqyPMq><0`RFsYusMQ9JO7JwZ)BjtOMndWhi{hACIDZMHbk9OoPB9D+ zapDMZeH~z|i#@8JGKU_>Kpm!#`4q0Q(GaszHF2l$6DVP$ljEU$*drI=eS(*Fu}TG& iPzm6FV+qclqgnVO2Li>{IwS$?@6`(prE&#};Qs?rRCI*^ From 745c8252052f4287a8a3999db27e74147447199b Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 20 Jan 2021 04:21:57 +0200 Subject: [PATCH 027/128] Give hotkey, but citadel --- code/_onclick/hud/alert.dm | 35 ++++++++++++- code/_onclick/right_click.dm | 6 ++- code/modules/keybindings/keybind/carbon.dm | 11 +++++ code/modules/mob/living/carbon/inventory.dm | 54 +++++++++++++++++++++ 4 files changed, 104 insertions(+), 2 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 5bd9632355..81d8593d4e 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -220,7 +220,7 @@ /obj/screen/alert/shiver name = "Shivering" - desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." + desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." /obj/screen/alert/lowpressure name = "Low Pressure" @@ -306,6 +306,39 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." if(CHECK_MOBILITY(L, MOBILITY_MOVE)) return L.resist_fire() //I just want to start a flame in your hearrrrrrtttttt. +/obj/screen/alert/give // information set when the give alert is made + icon_state = "default" + var/mob/living/carbon/giver + var/obj/item/receiving + +/** + * Handles assigning most of the variables for the alert that pops up when an item is offered + * + * Handles setting the name, description and icon of the alert and tracking the person giving + * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver + * Arguments: + * * taker - The person receiving the alert + * * giver - The person giving the alert and item + * * receiving - The item being given by the giver + */ +/obj/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving) + name = "[giver] is offering [receiving]" + desc = "[giver] is offering [receiving]. Click this alert to take it." + icon_state = "template" + cut_overlays() + add_overlay(receiving) + src.receiving = receiving + src.giver = giver + RegisterSignal(taker, COMSIG_MOVABLE_MOVED, .proc/removeAlert) + +/obj/screen/alert/give/proc/removeAlert() + to_chat(usr, "You moved out of range of [giver]!") + usr.clear_alert("[giver]") + +/obj/screen/alert/give/Click(location, control, params) + . = ..() + var/mob/living/carbon/C = usr + C.take(giver, receiving) //ALIENS diff --git a/code/_onclick/right_click.dm b/code/_onclick/right_click.dm index 4b2480eb8c..9a99bbd20b 100644 --- a/code/_onclick/right_click.dm +++ b/code/_onclick/right_click.dm @@ -51,7 +51,11 @@ //Standard reach turf to turf or reaching inside storage if(CanReach(A,W)) if(W) - return W.rightclick_melee_attack_chain(src, A, params) + if(a_intent == INTENT_HELP && iscarbon(src)) + var/mob/living/carbon/C = src + C.give() + else + return W.rightclick_melee_attack_chain(src, A, params) else if(!AltUnarmedAttack(A, TRUE)) . = UnarmedAttack(A, TRUE, a_intent) diff --git a/code/modules/keybindings/keybind/carbon.dm b/code/modules/keybindings/keybind/carbon.dm index 46cb5cd0ac..50ec29ff5e 100644 --- a/code/modules/keybindings/keybind/carbon.dm +++ b/code/modules/keybindings/keybind/carbon.dm @@ -60,3 +60,14 @@ /datum/keybinding/carbon/select_harm_intent/down(client/user) user.mob?.a_intent_change(INTENT_HARM) return TRUE + +/datum/keybinding/carbon/give + hotkey_keys = list("CtrlG") + name = "Give_Item" + full_name = "Give item" + description = "Give the item you're currently holding" + +/datum/keybinding/carbon/give/down(client/user) + var/mob/living/carbon/C = user.mob + C.give() + return TRUE diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 96dab9e95d..e5ba022277 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -159,3 +159,57 @@ /mob/living/carbon/proc/get_holding_bodypart_of_item(obj/item/I) var/index = get_held_index_of_item(I) return index && hand_bodyparts[index] + +/** + * Proc called when giving an item to another player + * + * This handles creating an alert and adding an overlay to it + */ +/mob/living/carbon/proc/give(target) + var/obj/item/receiving = get_active_held_item() + if(!receiving) + to_chat(src, "You're not holding anything to give!") + return + visible_message("[src] is offering [receiving]", \ + "You offer [receiving]", null, 2) + var/mob/living/carbon/targets = list() + if(!target) + for(var/mob/living/carbon/C in orange(1, src)) + if(!CanReach(C)) + return + targets += C + else + targets += target + if(!targets) + return + for(var/mob/living/carbon/C in targets) + var/obj/screen/alert/give/G = C.throw_alert("[src]", /obj/screen/alert/give) + if(!G) + return + G.setup(C, src, receiving) + +/** + * Proc called when the player clicks the give alert + * + * Handles checking if the player taking the item has open slots and is in range of the giver + * Also deals with the actual transferring of the item to the players hands + * Arguments: + * * giver - The person giving the original item + * * I - The item being given by the giver + */ +/mob/living/carbon/proc/take(mob/living/carbon/giver, obj/item/I) + clear_alert("[giver]") + if(get_dist(src, giver) > 1) + to_chat(src, "[giver] is out of range! ") + return + if(!I || giver.get_active_held_item() != I) + to_chat(src, "[giver] is no longer holding the item they were offering! ") + return + if(!get_empty_held_indexes()) + to_chat(src, "You have no empty hands!") + return + if(!giver.temporarilyRemoveItemFromInventory(I)) + visible_message("[src] tries to hand over [I] but it's stuck to them....", \ + " You make a fool of yourself trying to give away an item stuck to your hands") + return + put_in_hands(I) From 4578f30001ca835a6a3b29293c24d6c6087ad05f Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Wed, 20 Jan 2021 05:54:38 +0100 Subject: [PATCH 028/128] brrt --- code/__DEFINES/antagonists.dm | 3 ++ .../eldritch_cult/eldritch_antag.dm | 29 +++++++++++++++++++ .../eldritch_cult/eldritch_items.dm | 11 +++++++ .../eldritch_cult/eldritch_knowledge.dm | 29 +++++++++++++++++-- 4 files changed, 70 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 68515426c3..e71243994d 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -69,6 +69,9 @@ #define LINGBLOOD_EXPLOSION_THRESHOLD (LINGBLOOD_DETECTION_THRESHOLD * LINGBLOOD_EXPLOSION_MULT) //Hey, important to note here: the explosion threshold is explicitly more than, rather than more than or equal to. This stops a single loud ability from triggering the explosion threshold. ///Heretics -- +GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance, for us to iterate through. + + #define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) #define IS_HERETIC_MONSTER(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic_monster)) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index ea226a3cb6..b59d6af61b 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -10,6 +10,8 @@ var/give_equipment = TRUE var/list/researched_knowledge = list() var/total_sacrifices = 0 + var/list/sac_targetted = list() //Which targets did living hearts give them, but they did not sac? + var/list/actually_sacced = list() //Which targets did they actually sac? var/ascended = FALSE /datum/antagonist/heretic/admin_add(datum/mind/new_owner,mob/admin) @@ -175,6 +177,17 @@ knowledge_message += "[EK.name]" parts += knowledge_message.Join(", ") + parts += "Targets assigned by living hearts, but not sacrificed:" + if(!sac_targetted.len) + parts += "None." + else + parts += sac_targetted.Join(",") + parts += "Sacrifices performed:" + if(!actually_sacced.len) + parts += "None!" + else + parts += actually_sacced.Join(",") + return parts.Join("
") //////////////// // Knowledge // @@ -213,6 +226,22 @@ if(ascended) . += 20 +/datum/antagonist/heretic/antag_panel() + var/list/parts = list() + parts += ..() + parts += "Targets currently assigned by living hearts (Can give a false negative if they stole someone elses living heart, check the other heretics if this is suspected to be the case):" + if(!sac_targetted.len) + parts += "None." + else + parts += sac_targetted.Join(",") + parts += "Targets actually sacrificed:" + if(!actually_sacced.len) + parts += "None." + else + parts += actually_sacced.Join(",") + return parts.Join("
") + + //////////////// // Objectives // //////////////// diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index da2c61ad16..fbf0740e50 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -6,6 +6,17 @@ w_class = WEIGHT_CLASS_SMALL ///Target var/mob/living/carbon/human/target + var/datum/antagonist/heretic/sac_targetter //The heretic who used this to acquire the current target - gets cleared when target gets sacrificed. + +/obj/item/living_heart/Initialize() + . = ..() + GLOB.living_heart_cache.Add(src) //Add is better than +=. + +/obj/item/living_heart/Destroy() + GLOB.living_heart_cache.Remove(src) + if(sac_targetter && target) + sac_targetter.sac_targetted.Remove(target.real_name) + return ..() /obj/item/living_heart/attack_self(mob/user) . = ..() diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm index e0189944e5..481ac08ea5 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm @@ -1,6 +1,6 @@ /** - * #Eldritch Knwoledge + * #Eldritch Knowledge * * Datum that makes eldritch cultist interesting. * @@ -252,6 +252,10 @@ LH.target = null var/datum/antagonist/heretic/EC = carbon_user.mind.has_antag_datum(/datum/antagonist/heretic) + EC.actually_sacced.Add(H.real_name) + if(LH.sac_targetter) + LH.sac_targetter.sac_targetted.Remove(H.real_name) + LH.sac_targetter = null EC.total_sacrifices++ for(var/X in carbon_user.get_all_gear()) if(!istype(X,/obj/item/forbidden_book)) @@ -265,8 +269,14 @@ var/datum/objective/A = new A.owner = user.mind var/list/targets = list() + var/list/target_blacklist = list() + for(var/obj/item/living_heart/CLH in GLOB.living_heart_cache) + if(!CLH || !CLH.target || !CLH.target.mind) + continue + target_blacklist.Add(CLH.target.mind) + for(var/i in 0 to 3) - var/datum/mind/targeted = A.find_target()//easy way, i dont feel like copy pasting that entire block of code + var/datum/mind/targeted = A.find_target(blacklist = target_blacklist)//easy way, i dont feel like copy pasting that entire block of code if(!targeted) break targets[targeted.current.real_name] = targeted.current @@ -274,9 +284,24 @@ if(!LH.target && targets.len) LH.target = pick(targets) //Tsk tsk, you can and will get another target if you want it or not. + + if(LH.target) + target_blacklist = list() + for(var/obj/item/living_heart/CLH in (GLOB.living_heart_cache - LH)) //Recreate blacklist, excluding ourselves. + if(!CLH || !CLH.target || !CLH.target.mind) + continue + target_blacklist.Add(CLH.target.mind) + if(LH.target.mind in target_blacklist) //Someone was faster, or you tried to cheese the system. + to_chat(user, "It seems you were too slow, and your target of choice has already been selected by another living heart!") + LH.target = null + qdel(A) if(LH.target) to_chat(user,"Your new target has been selected, go and sacrifice [LH.target.real_name]!") + var/datum/antagonist/heretic/EC = carbon_user.mind.has_antag_datum(/datum/antagonist/heretic) + LH.sac_targetter = EC + EC.sac_targetted.Add(LH.target.real_name) + else to_chat(user,"target could not be found for living heart.") From 7136f5cffb170f2ac621a14320d98f6a9005c740 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Wed, 20 Jan 2021 06:09:20 +0100 Subject: [PATCH 029/128] boop --- code/modules/antagonists/eldritch_cult/eldritch_antag.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index b59d6af61b..1e43754477 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -229,7 +229,7 @@ /datum/antagonist/heretic/antag_panel() var/list/parts = list() parts += ..() - parts += "Targets currently assigned by living hearts (Can give a false negative if they stole someone elses living heart, check the other heretics if this is suspected to be the case):" + parts += "Targets currently assigned by living hearts (Can give a false negative if they stole someone elses living heart):" if(!sac_targetted.len) parts += "None." else @@ -239,7 +239,8 @@ parts += "None." else parts += actually_sacced.Join(",") - return parts.Join("
") + + return (parts.Join("
") + "
") //////////////// From 3737c52df802cb053ef432dce0c79d959c71cbed Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 20 Jan 2021 15:23:34 +0200 Subject: [PATCH 030/128] Funny actions --- code/controllers/subsystem/throwing.dm | 2 ++ code/game/objects/items.dm | 40 ++++++---------------- code/game/objects/items/candle.dm | 4 +++ code/game/objects/items/cigs_lighters.dm | 3 ++ code/game/objects/items/eightball.dm | 3 ++ code/game/objects/items/extinguisher.dm | 15 +++++--- code/game/objects/items/pinpointer.dm | 6 +++- code/game/objects/items/plushes.dm | 4 +++ code/game/objects/items/pneumaticCannon.dm | 40 ++++++++++++++++------ code/game/objects/items/stunbaton.dm | 3 ++ code/modules/paperwork/paper.dm | 10 ++++++ code/modules/projectiles/gun.dm | 32 +++++++++++------ 12 files changed, 107 insertions(+), 55 deletions(-) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 8c5abc5469..567eed9bf6 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -71,6 +71,8 @@ SUBSYSTEM_DEF(throwing) target = null thrower = null callback = null + if(HAS_TRAIT(thrownthing, TRAIT_SPOOKY_THROW) + REMOVE_TRAIT(thrownthing, TRAIT_SPOOKY_THROW) return ..() /datum/thrownthing/proc/tick() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index bf53947ad6..846e49682f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -475,17 +475,16 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb spooker.stun(10) spooker.reveal(30) spooker.telekinesis_cooldown = TRUE - float(TRUE, 2) + float(TRUE, 1) sleep(10) safe_throw_at(over, 10, 2) ADD_TRAIT(src, TRAIT_SPOOKY_THROW) - src.DoRevenantThrowEffects() + DoRevenantThrowEffects(over) + log_combat(usr, over, "spooky telekinesised at", src) var/obj/effect/temp_visual/telekinesis/T = new(get_turf(src)) T.color = purple addtimer(CALLBACK(src, /atom/movable.proc/float, FALSE), 2) addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50) - sleep(2) - REMOVE_TRAIT(src, TRAIT_SPOOKY_THROW) return if(!Adjacent(usr) || !over.Adjacent(usr)) @@ -493,32 +492,13 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb over.MouseDrop_T(src,usr) return -/obj/item/proc/DoRevenantThrowEffects() - var/hijink_to_do - switch(istype) - if(obj/item/gun) - hijink_to_do = "shoot" - if(obj/item/storage) - if(GetComponent(datum/component/storage)) - hijink_to_do = "scatter items" - if(obj/item/card/id) - hijink_to_do = "flash id" - if(obj/item/weldingtool) - hijink_to_do = "welder toggle" - if(obj/item/tank) - hijink_to_do = "toggle tank" - if(obj/item/paper) - hijink_to_do = "paper into plane" - if(obj/item/paper_bin) - hijink_to_do = "paperbin scatter" - if(obj/item/assembly/flash) - hijink_to_do = "flash randomly" - if(obj/item/flashlight) - hijinks_to_do = "toggle flashlight" - if(obj/item/grenade/flashbang) - - if(obj/item/grenade/stingbang) - while(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) + +//Use this for effects you want to happen when a revenant throws itself, check the TRAIT_SPOOKY_THROW if you want to know if its still being thrown +/obj/item/proc/DoRevenantThrowEffects(atom/target) + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + if(STR) + + // called after an item is placed in an equipment slot // user is mob that equipped it // slot uses the slot_X defines found in setup.dm diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index a3366e714e..960e3ce499 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -82,4 +82,8 @@ /obj/item/candle/infinite/hugbox heats_space = FALSE +/obj/item/candle/DoRevenantThrowEffects(atom/target) + if(!infinite) + put_out_candle() + #undef CANDLE_LUMINOSITY diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index de32375642..a21c7780b2 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -136,6 +136,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM STOP_PROCESSING(SSobj, src) . = ..() +/obj/item/clothing/mask/cigarette/DoRevenantThrowEffects(atom/target) + attackby(src) + /obj/item/clothing/mask/cigarette/attackby(obj/item/W, mob/user, params) if(!lit && smoketime > 0) var/lighting_text = W.ignition_effect(src, user) diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 0d5c9a22aa..39c8143ee9 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -46,6 +46,9 @@ if(.) new /obj/item/toy/eightball/haunted(loc) +/obj/item/toy/eightball/DoRevenantThrowEffects(atom/target) + MakeHaunted() + /obj/item/toy/eightball/attack_self(mob/user) if(shaking) return diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index b1f51f608d..c1579dfe15 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -235,16 +235,23 @@ return EmptyExtinguisher(user) -/obj/item/extinguisher/proc/EmptyExtinguisher(var/mob/user) - if(loc == user && reagents.total_volume) +/obj/item/extinguisher/DoRevenantThrowEffects(atom/target) + EmptyExtinguisher() + +/obj/item/extinguisher/proc/EmptyExtinguisher(mob/user) + if(!reagents.total_volume) + return + if(loc == user || !user) reagents.clear_reagents() var/turf/T = get_turf(loc) if(isopenturf(T)) var/turf/open/theturf = T theturf.MakeSlippery(TURF_WET_WATER, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) - - user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] by using its release valve.") + if(user) + user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] by using its release valve.") + else + user.visible_message("The release valve of \the [src] suddenly opens and sprays it's contents on the floor!") //firebot assembly /obj/item/extinguisher/attackby(obj/O, mob/user, params) diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index abd9cec950..81bae3d54b 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -30,9 +30,13 @@ target = null return ..() +/obj/item/pinpointer/DoRevenantThrowEffects(atom/target) + attack_self() + /obj/item/pinpointer/attack_self(mob/living/user) active = !active - user.visible_message("[user] [active ? "" : "de"]activates [user.p_their()] pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") + if(user) + user.visible_message("[user] [active ? "" : "de"]activates [user.p_their()] pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) if(active) START_PROCESSING(SSfastprocess, src) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index d1174cded7..3470d5e2c8 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -45,6 +45,10 @@ return set_snowflake_from_config(id) +/obj/item/toy/plush/DoRevenantThrowEffects(atom/target) + var/datum/component/squeak/squeaker = GetComponent(datum/component/squeak) + squeaker.do_play_squeak(TRUE) + /obj/item/toy/plush/Initialize(mapload, set_snowflake_id) . = ..() AddComponent(/datum/component/squeak, squeak_override) diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 23be8cbb9a..6cd00f3434 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -43,6 +43,14 @@ /obj/item/pneumatic_cannon/proc/init_charge() //wrapper so it can be vv'd easier START_PROCESSING(SSobj, src) +/obj/item/pneumatic_cannon/DoRevenantThrowEffects(atom/target) + var/target + var/list/possible_targets = range(3,src) + target = pick(possible_targets) + if(target) + discharge = TRUE + Fire(null, target) + /obj/item/pneumatic_cannon/process() if(++charge_tick >= charge_ticks && charge_type) fill_with_type(charge_type, charge_amount) @@ -134,21 +142,29 @@ Fire(user, target) /obj/item/pneumatic_cannon/proc/Fire(mob/living/user, var/atom/target) - if(!istype(user) && !target) + if(!target) return + if(user) + if(!isliving(user)) + return var/discharge = 0 if(!can_trigger_gun(user)) return if(!loadedItems || !loadedWeightClass) - to_chat(user, "\The [src] has nothing loaded.") + if(user) + to_chat(user, "\The [src] has nothing loaded.") return if(!tank && checktank) - to_chat(user, "\The [src] can't fire without a source of gas.") + if(user) + to_chat(user, "\The [src] can't fire without a source of gas.") return if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) - to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") + if(user) + to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") + else + visible_message(src, "\The [src] lets out a weak hiss and doesn't react!") return - if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(75) && clumsyCheck && iscarbon(user)) + if(user && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(75) && clumsyCheck && iscarbon(user)) var/mob/living/carbon/C = user C.visible_message("[C] loses [C.p_their()] grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") C.dropItemToGround(src, TRUE) @@ -157,15 +173,19 @@ else var/list/possible_targets = range(3,src) target = pick(possible_targets) - discharge = 1 + discharge = TRUE if(!discharge) user.visible_message("[user] fires \the [src]!", \ "You fire \the [src]!") - log_combat(user, target, "fired at", src) + if(user) + log_combat(user, target, "fired at", src) var/turf/T = get_target(target, get_turf(src)) - playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) - fire_items(T, user) - if(pressureSetting >= 3 && iscarbon(user)) + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + if(user) + fire_items(T, user) + else + fire_items(T) + if(user && pressureSetting >= 3 && iscarbon(user)) var/mob/living/carbon/C = user C.visible_message("[C] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") C.DefaultCombatKnockdown(60) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 16efecec7c..0b0f37a1e0 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -47,6 +47,9 @@ cell = new preload_cell_type(src) update_icon() +/obj/item/melee/baton/DoRevenantThrowEffects(atom/target) + switch_status() + /obj/item/melee/baton/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) ..() //Only mob/living types have stun handling diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 20ec678e45..1f5280a5ce 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -194,6 +194,16 @@ add_fingerprint(user) fire_act(I.get_temperature()) +/obj/item/paper/DoRevenantThrowEffects(atom/target) + sleep(5) + if(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) + sleep(5) + DoRevenantThrowEffects(atom/target) + return + var/obj/item/paperplane/plane = new(get_turf(src)) + qdel(src) + plane.safe_throw_at(over, 10, 2) + /obj/item/paper/attackby(obj/item/P, mob/living/user, params) if(burn_paper_product_attackby_check(P, user)) SStgui.close_uis(src) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 1c3a0d230f..9e8af0cd00 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -146,7 +146,8 @@ return TRUE /obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) - to_chat(user, "*click*") + if(user) + to_chat(user, "*click*") playsound(src, "gun_dry_fire", 30, 1) /obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) @@ -175,7 +176,7 @@ /obj/item/gun/afterattack(atom/target, mob/living/user, flag, params) . = ..() - if(!CheckAttackCooldown(user, target)) + if(user && !CheckAttackCooldown(user, target)) return process_afterattack(target, user, flag, params) @@ -184,6 +185,8 @@ return if(firing) return + if(!user) + return var/stamloss = user.getStaminaLoss() if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. @@ -290,7 +293,8 @@ return busy_action || firing || ((last_fire + fire_delay) > world.time) /obj/item/gun/proc/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) - add_fingerprint(user) + if(user) + add_fingerprint(user) if(on_cooldown()) return @@ -328,7 +332,7 @@ shoot_with_empty_chamber(user) return else - if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + if(user && get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message, stam_cost) else shoot_live_shot(user, 0, target, message, stam_cost) @@ -342,29 +346,29 @@ return TRUE /obj/item/gun/proc/do_burst_shot(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0, stam_cost = 0) - if(!user || !firing) - firing = FALSE + if(!firing) return FALSE - if(!issilicon(user)) + if(user && !issilicon(user)) if(iteration > 1 && !(user.is_holding(src))) //for burst firing firing = FALSE return FALSE if(chambered && chambered.BB) if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal. if(chambered.harmful) // Is the bullet chambered harmful? - to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") + if(user) + to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") return if(randomspread) sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1) else //Smart spread sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1) - before_firing(target,user) + before_firing(target, user) if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd, src)) shoot_with_empty_chamber(user) firing = FALSE return FALSE else - if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + if(user && get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message, stam_cost) else shoot_live_shot(user, 0, target, message, stam_cost) @@ -621,3 +625,11 @@ . = recoil if(user && !user.has_gravity()) . = recoil*5 + +/obj/item/gun/DoRevenantThrowEffects(atom/target) + while(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) + var/target + var/list/possible_targets = range(3,src) + target = pick(possible_targets) + if(target) + process_fire(null, target) From e24eb1412174898bb3479f7be33420002f4be809 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Wed, 20 Jan 2021 16:32:15 +0100 Subject: [PATCH 031/128] args these are needed for the CI not to fail, even if unused in most cases. --- code/game/gamemodes/objective.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index d8617e0b48..0ee07951a9 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -455,7 +455,7 @@ If not set, defaults to check_completion instead. Set it. It's used by cryo. var/target_real_name // Has to be stored because the target's real_name can change over the course of the round var/target_missing_id -/datum/objective/escape/escape_with_identity/find_target() +/datum/objective/escape/escape_with_identity/find_target(dupe_search_range, blacklist) target = ..() update_explanation_text() @@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(possible_items) for(var/I in subtypesof(/datum/objective_item/steal)) new I -/datum/objective/steal/find_target() +/datum/objective/steal/find_target(dupe_search_range, blacklist) var/list/datum/mind/owners = get_owners() var/approved_targets = list() check_items: @@ -631,7 +631,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) for(var/I in subtypesof(/datum/objective_item/special) + subtypesof(/datum/objective_item/stack)) new I -/datum/objective/steal/special/find_target() +/datum/objective/steal/special/find_target(dupe_search_range, blacklist) return set_target(pick(GLOB.possible_items_special)) /datum/objective/steal/exchange @@ -844,7 +844,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) name = "destroy AI" martyr_compatible = 1 -/datum/objective/destroy/find_target() +/datum/objective/destroy/find_target(dupe_search_range, blacklist) var/list/possible_targets = active_ais(1) var/mob/living/silicon/ai/target_ai = pick(possible_targets) target = target_ai.mind @@ -1124,7 +1124,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) /datum/objective/hoard/heirloom name = "steal heirloom" -/datum/objective/hoard/heirloom/find_target() +/datum/objective/hoard/heirloom/find_target(dupe_search_range, blacklist) set_target(pick(GLOB.family_heirlooms)) GLOBAL_LIST_EMPTY(traitor_contraband) @@ -1141,7 +1141,7 @@ GLOBAL_LIST_EMPTY(cult_contraband) if(!GLOB.cult_contraband.len) GLOB.cult_contraband = list(/obj/item/clockwork/slab,/obj/item/clockwork/component/belligerent_eye,/obj/item/clockwork/component/belligerent_eye/lens_gem,/obj/item/shuttle_curse,/obj/item/cult_shift) -/datum/objective/hoard/collector/find_target() +/datum/objective/hoard/collector/find_target(dupe_search_range, blacklist) var/obj/item/I var/I_type if(prob(50)) @@ -1172,7 +1172,7 @@ GLOBAL_LIST_EMPTY(possible_sabotages) for(var/I in subtypesof(/datum/sabotage_objective)) new I -/datum/objective/sabotage/find_target() +/datum/objective/sabotage/find_target(dupe_search_range, blacklist) var/list/datum/mind/owners = get_owners() var/approved_targets = list() check_sabotages: From 16e0b85b4416f266513c3974da07b5a47a45876e Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 20 Jan 2021 18:23:28 +0200 Subject: [PATCH 032/128] More funshit --- code/controllers/subsystem/throwing.dm | 4 ++-- code/datums/components/storage/storage.dm | 4 ++++ code/game/atoms_movable.dm | 8 +++---- code/game/objects/items.dm | 23 +----------------- code/game/objects/items/cigs_lighters.dm | 8 ++++++- code/game/objects/items/devices/flashlight.dm | 7 ++++-- code/game/objects/items/plushes.dm | 2 +- code/game/objects/items/pneumaticCannon.dm | 14 +++++------ code/game/objects/items/tools/weldingtool.dm | 9 +++++-- code/modules/antagonists/revenant/revenant.dm | 24 +++++++++++++++++++ code/modules/assembly/flash.dm | 3 +++ code/modules/paperwork/paper.dm | 9 +++---- code/modules/projectiles/gun.dm | 12 +++++----- 13 files changed, 73 insertions(+), 54 deletions(-) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 567eed9bf6..9814f3e46e 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -65,14 +65,14 @@ SUBSYSTEM_DEF(throwing) var/last_move = 0 /datum/thrownthing/Destroy() + if(HAS_TRAIT_FROM(thrownthing, TRAIT_SPOOKY_THROW, "revenant")) + REMOVE_TRAIT(thrownthing, TRAIT_SPOOKY_THROW, "revenant") SSthrowing.processing -= thrownthing thrownthing.throwing = null thrownthing = null target = null thrower = null callback = null - if(HAS_TRAIT(thrownthing, TRAIT_SPOOKY_THROW) - REMOVE_TRAIT(thrownthing, TRAIT_SPOOKY_THROW) return ..() /datum/thrownthing/proc/tick() diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index f93d40bb04..2fa5a20d7a 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -449,6 +449,10 @@ // this must come before the screen objects only block, dunno why it wasn't before if(over_object == M) user_show_to_mob(M) + return + if(isrevenant(M)) + RevenantThrow(over_object, M, source) + return if(!M.incapacitated()) if(!istype(over_object, /obj/screen)) dump_content_at(over_object, M) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index c9d471e82a..09a0fad645 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -492,13 +492,13 @@ return TRUE //TODO: Better floating -/atom/movable/proc/float(on, float_height) - if(throwing) +/atom/movable/proc/float(on, throw_override) + if(throwing || !throw_override) return if(on && (!(movement_type & FLOATING) || floating_need_update)) - animate(src, pixel_y = pixel_y + 2 + float_height, time = 10, loop = -1) + animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) sleep(10) - animate(src, pixel_y = pixel_y - 2 - float_height, time = 10, loop = -1) + animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1) if(!(movement_type & FLOATING)) setMovetype(movement_type | FLOATING) else if (!on && movement_type & FLOATING) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 846e49682f..fa5ab19fba 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -469,22 +469,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb usr.FlushCurrentAction() return TRUE //returning TRUE as a "is this overridden?" flag if(isrevenant(usr)) - var/mob/living/simple_animal/revenant/spooker = usr - if(!anchored && !spooker.telekinesis_cooldown) - spooker.change_essence_amount(-5, FALSE, "telekinesis") - spooker.stun(10) - spooker.reveal(30) - spooker.telekinesis_cooldown = TRUE - float(TRUE, 1) - sleep(10) - safe_throw_at(over, 10, 2) - ADD_TRAIT(src, TRAIT_SPOOKY_THROW) - DoRevenantThrowEffects(over) - log_combat(usr, over, "spooky telekinesised at", src) - var/obj/effect/temp_visual/telekinesis/T = new(get_turf(src)) - T.color = purple - addtimer(CALLBACK(src, /atom/movable.proc/float, FALSE), 2) - addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50) + if(RevenantThrow(over, usr, src)) return if(!Adjacent(usr) || !over.Adjacent(usr)) @@ -493,12 +478,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb over.MouseDrop_T(src,usr) return -//Use this for effects you want to happen when a revenant throws itself, check the TRAIT_SPOOKY_THROW if you want to know if its still being thrown -/obj/item/proc/DoRevenantThrowEffects(atom/target) - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - if(STR) - - // called after an item is placed in an equipment slot // user is mob that equipped it // slot uses the slot_X defines found in setup.dm diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index a21c7780b2..4280e7105f 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -137,7 +137,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM . = ..() /obj/item/clothing/mask/cigarette/DoRevenantThrowEffects(atom/target) - attackby(src) + if(lit) + attackby() + else + light() /obj/item/clothing/mask/cigarette/attackby(obj/item/W, mob/user, params) if(!lit && smoketime > 0) @@ -520,6 +523,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM overlay_state = pick(overlay_list) update_icon() +/obj/item/lighter/DoRevenantThrowEffects(atom/target) + set_lit() + /obj/item/lighter/suicide_act(mob/living/carbon/user) if (lit) user.visible_message("[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a2459bce9f..e29519406a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -37,11 +37,14 @@ /obj/item/flashlight/attack_self(mob/user) on = !on update_brightness(user) - playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1) + playsound(src, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() - return 1 + return TRUE + +/obj/item/flashlight/DoRevenantThrowEffects(atom/target) + attack_self() /obj/item/flashlight/suicide_act(mob/living/carbon/human/user) if (user.eye_blind) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 3470d5e2c8..a5a3762a4f 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -46,7 +46,7 @@ set_snowflake_from_config(id) /obj/item/toy/plush/DoRevenantThrowEffects(atom/target) - var/datum/component/squeak/squeaker = GetComponent(datum/component/squeak) + var/datum/component/squeak/squeaker = GetComponent(/datum/component/squeak) squeaker.do_play_squeak(TRUE) /obj/item/toy/plush/Initialize(mapload, set_snowflake_id) diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 6cd00f3434..1db5cdd526 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -44,12 +44,11 @@ START_PROCESSING(SSobj, src) /obj/item/pneumatic_cannon/DoRevenantThrowEffects(atom/target) - var/target + var/picked_target var/list/possible_targets = range(3,src) - target = pick(possible_targets) + picked_target = pick(possible_targets) if(target) - discharge = TRUE - Fire(null, target) + Fire(null, picked_target) /obj/item/pneumatic_cannon/process() if(++charge_tick >= charge_ticks && charge_type) @@ -148,7 +147,7 @@ if(!isliving(user)) return var/discharge = 0 - if(!can_trigger_gun(user)) + if(user && !can_trigger_gun(user)) return if(!loadedItems || !loadedWeightClass) if(user) @@ -174,14 +173,13 @@ var/list/possible_targets = range(3,src) target = pick(possible_targets) discharge = TRUE - if(!discharge) + if(!discharge && user) user.visible_message("[user] fires \the [src]!", \ "You fire \the [src]!") - if(user) - log_combat(user, target, "fired at", src) var/turf/T = get_target(target, get_turf(src)) playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) if(user) + log_combat(user, target, "fired at", src) fire_items(T, user) else fire_items(T) diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 92b222aed7..6b92b885bb 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -57,6 +57,9 @@ else item_state = "[initial(item_state)]" +/obj/item/weldingtool/DoRevenantThrowEffects(atom/target) + attack_self() + /obj/item/weldingtool/update_overlays() . = ..() if(change_icons) @@ -208,12 +211,14 @@ //Switches the welder on /obj/item/weldingtool/proc/switched_on(mob/user) if(!status) - to_chat(user, "[src] can't be turned on while unsecured!") + if(user) + to_chat(user, "[src] can't be turned on while unsecured!") return welding = !welding if(welding) if(get_fuel() >= 1) - to_chat(user, "You switch [src] on.") + if(user) + to_chat(user, "You switch [src] on.") playsound(loc, acti_sound, 50, 1) force = 15 damtype = "fire" diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 1a45663ff7..f4ad961d54 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -441,6 +441,30 @@ qdel(revenant) ..() +/proc/RevenantThrow(over, mob/user, obj/item/throwable) + var/mob/living/simple_animal/revenant/spooker = user + if(!istype(throwable)) + return + if(!throwable.anchored && !spooker.telekinesis_cooldown && spooker.castcheck(-5)) + spooker.change_essence_amount(-5, FALSE, "telekinesis") + spooker.stun(20) + spooker.reveal(50) + spooker.telekinesis_cooldown = TRUE + throwable.float(TRUE) + sleep(10) + throwable.DoRevenantThrowEffects(over) + throwable.throw_at(over, 10, 2) + ADD_TRAIT(throwable, TRAIT_SPOOKY_THROW, "revenant") + throwable.float(FALSE, TRUE) + log_combat(throwable, over, "spooky telekinesised at", throwable) + var/obj/effect/temp_visual/telekinesis/T = new(get_turf(throwable)) + T.color = "#8715b4" + addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50) + +//Use this for effects you want to happen when a revenant throws itself, check the TRAIT_SPOOKY_THROW if you want to know if its still being thrown +/obj/item/proc/DoRevenantThrowEffects(atom/target) + return TRUE + //objectives /datum/objective/revenant var/targetAmount = 100 diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 8a0645f311..07a9f499f8 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -30,6 +30,9 @@ attack(user,user) return FIRELOSS +/obj/item/assembly/flash/DoRevenantThrowEffects(atom/target) + AOE_flash() + /obj/item/assembly/flash/update_icon(flash = FALSE) cut_overlays() attached_overlays = list() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 1f5280a5ce..a00145f9dc 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -193,16 +193,13 @@ user.visible_message(ignition_message) add_fingerprint(user) fire_act(I.get_temperature()) - +//I would have it become a paper plane before the throw, but that would risk runtimes /obj/item/paper/DoRevenantThrowEffects(atom/target) - sleep(5) + sleep(10) if(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) - sleep(5) - DoRevenantThrowEffects(atom/target) return - var/obj/item/paperplane/plane = new(get_turf(src)) + new /obj/item/paperplane(get_turf(src)) qdel(src) - plane.safe_throw_at(over, 10, 2) /obj/item/paper/attackby(obj/item/P, mob/living/user, params) if(burn_paper_product_attackby_check(P, user)) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 9e8af0cd00..eb75a37f19 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -626,10 +626,10 @@ if(user && !user.has_gravity()) . = recoil*5 + /obj/item/gun/DoRevenantThrowEffects(atom/target) - while(HAS_TRAIT(src, TRAIT_SPOOKY_THROW)) - var/target - var/list/possible_targets = range(3,src) - target = pick(possible_targets) - if(target) - process_fire(null, target) + var/picked_target + var/list/possible_targets = range(3,src) + picked_target = pick(possible_targets) + if(picked_target) + process_fire(null, picked_target) From 87c92017074325935634763cc63d66289c3d1318 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 20 Jan 2021 19:51:11 +0200 Subject: [PATCH 033/128] No gunning sadly --- code/game/objects/items/tanks/tanks.dm | 6 ++++++ code/modules/antagonists/revenant/revenant.dm | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 08b91332ef..0c55cdd701 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -73,6 +73,12 @@ /obj/item/tank/proc/populate_gas() return +/obj/item/tank/DoRevenantThrowEffects(atom/target) + if(air_contents) + var/turf/location = get_turf(src) + location.assume_air(air_contents) + visible_message(" Date: Wed, 20 Jan 2021 20:25:36 +0200 Subject: [PATCH 034/128] Tank memes finished --- code/game/objects/items/tanks/tanks.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 0c55cdd701..d57f0cc51f 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -75,9 +75,12 @@ /obj/item/tank/DoRevenantThrowEffects(atom/target) if(air_contents) - var/turf/location = get_turf(src) - location.assume_air(air_contents) - visible_message(" Date: Wed, 20 Jan 2021 22:30:14 +0200 Subject: [PATCH 035/128] Forgot to undo some testing changes --- code/game/objects/items.dm | 1 - code/modules/projectiles/gun.dm | 32 ++++++++++---------------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 46ac106b45..9cc8617b5e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -455,7 +455,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) //Copypaste of /atom/MouseDrop() since this requires code in a very specific spot if(!usr || !over) return - message_admins("[src], [usr], [over], [src_location], [over_location], [src_control], [over_control], [params]") if(SEND_SIGNAL(src, COMSIG_MOUSEDROP_ONTO, over, usr) & COMPONENT_NO_MOUSEDROP) //Whatever is receiving will verify themselves for adjacency. return if(over == src) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 25a718ff29..e3a2da68da 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -148,8 +148,7 @@ return TRUE /obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) - if(user) - to_chat(user, "*click*") + to_chat(user, "*click*") playsound(src, "gun_dry_fire", 30, 1) /obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) @@ -188,7 +187,7 @@ /obj/item/gun/afterattack(atom/target, mob/living/user, flag, params) . = ..() - if(user && !CheckAttackCooldown(user, target, TRUE)) + if(!CheckAttackCooldown(user, target, TRUE)) return process_afterattack(target, user, flag, params) @@ -200,8 +199,6 @@ return if(firing) return - if(!user) - return var/stamloss = user.getStaminaLoss() if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. @@ -308,8 +305,7 @@ return busy_action || firing || ((last_fire + fire_delay) > world.time) /obj/item/gun/proc/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) - if(user) - add_fingerprint(user) + add_fingerprint(user) if(on_cooldown()) return @@ -347,7 +343,7 @@ shoot_with_empty_chamber(user) return else - if(user && get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message, stam_cost) else shoot_live_shot(user, 0, target, message, stam_cost) @@ -361,29 +357,29 @@ return TRUE /obj/item/gun/proc/do_burst_shot(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0, stam_cost = 0) - if(!firing) + if(!user || !firing) + firing = FALSE return FALSE - if(user && !issilicon(user)) + if(!issilicon(user)) if(iteration > 1 && !(user.is_holding(src))) //for burst firing firing = FALSE return FALSE if(chambered && chambered.BB) if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal. if(chambered.harmful) // Is the bullet chambered harmful? - if(user) - to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") + to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") return if(randomspread) sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1) else //Smart spread sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1) - before_firing(target, user) + before_firing(target,user) if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd, src)) shoot_with_empty_chamber(user) firing = FALSE return FALSE else - if(user && get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot + if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message, stam_cost) else shoot_live_shot(user, 0, target, message, stam_cost) @@ -640,11 +636,3 @@ . = recoil if(user && !user.has_gravity()) . = recoil*5 - - -/obj/item/gun/DoRevenantThrowEffects(atom/target) - var/picked_target - var/list/possible_targets = range(3,src) - picked_target = pick(possible_targets) - if(picked_target) - process_fire(null, picked_target) From f6eca7afad08724f4b25e386075dc15dae1730f0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 20 Jan 2021 15:06:53 -0700 Subject: [PATCH 036/128] hugboxy shit --- code/datums/explosion.dm | 15 ++++++++++----- code/game/atoms.dm | 2 +- code/modules/mob/death.dm | 2 +- code/modules/mob/living/carbon/death.dm | 13 +++++++++---- code/modules/mob/living/death.dm | 12 ++++++------ 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index ca65186063..24cc29fa54 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -89,7 +89,7 @@ GLOBAL_LIST_EMPTY(explosions) if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [ADMIN_VERBOSEJMP(epicenter)]") log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [loc_name(epicenter)]") - + deadchat_broadcast("An explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) has occured at ([get_area(epicenter)])", turf_target = get_turf(epicenter)) var/x0 = epicenter.x @@ -115,7 +115,7 @@ GLOBAL_LIST_EMPTY(explosions) var/sound/creaking_explosion_sound = sound(get_sfx("explosion_creaking")) var/sound/hull_creaking_sound = sound(get_sfx("hull_creaking")) var/sound/explosion_echo_sound = sound('sound/effects/explosion_distant.ogg') - var/on_station = SSmapping.level_trait(epicenter.z, ZTRAIT_STATION) + var/on_station = SSmapping.level_trait(epicenter.z, ZTRAIT_STATION) var/creaking_explosion = FALSE if(prob(devastation_range*30+heavy_impact_range*5) && on_station) // Huge explosions are near guaranteed to make the station creak and whine, smaller ones might. @@ -148,7 +148,7 @@ GLOBAL_LIST_EMPTY(explosions) if(!baseshakeamount) // Devastating explosions rock the station and ground baseshakeamount = devastation_range*3 shake_camera(M, 10, clamp(baseshakeamount*0.25, 0, 2.5)) - + else if(M.can_hear() && !isspaceturf(get_turf(M)) && heavy_impact_range) // Big enough explosions echo throughout the hull var/echo_volume = 40 if(devastation_range) @@ -230,8 +230,13 @@ GLOBAL_LIST_EMPTY(explosions) atoms += A for(var/i in atoms) var/atom/A = i - if(!QDELETED(A)) - A.ex_act(dist) + if(QDELETED(A)) + continue + A.ex_act(dist, null, src) + if(QDELETED(A) || !ismovable(A)) + continue + var/atom/movable/AM = A + LAZYADD(AM.acted_explosions, explosion_id) if(flame_dist && prob(40) && !isspaceturf(T) && !T.density) new /obj/effect/hotspot(T) //Mostly for ambience! diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7fbfe48f4e..be1ef4833a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -429,7 +429,7 @@ /atom/proc/contents_explosion(severity, target) return //For handling the effects of explosions on contents that would not normally be effected -/atom/proc/ex_act(severity, target) +/atom/proc/ex_act(severity, target, datum/explosion/E) set waitfor = FALSE contents_explosion(severity, target) SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target) diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm index 09336d2fea..476bddded3 100644 --- a/code/modules/mob/death.dm +++ b/code/modules/mob/death.dm @@ -1,6 +1,6 @@ //This is the proc for gibbing a mob. Cannot gib ghosts. //added different sort of gibs and animations. N -/mob/proc/gib() +/mob/proc/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) return //This is the proc for turning a mob into ash. Mostly a copy of gib code (above). diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index ee2f945b65..528848fb14 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -17,7 +17,7 @@ if(SSticker.mode) SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now -/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) +/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/atom/Tsec = drop_location() for(var/mob/M in src) if(M in stomach_contents) @@ -27,7 +27,7 @@ "You burst out of [src]!") ..() -/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) +/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/atom/Tsec = drop_location() if(!no_bodyparts) if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. @@ -41,6 +41,8 @@ qdel(O) //so the brain isn't transfered to the head when the head drops. continue if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT) && check_zone(O.zone) == BODY_ZONE_CHEST) + if(was_explosion) + LAZYADD(O.acted_explosions, was_explosion.explosion_id) O.Remove() O.forceMove(Tsec) O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) @@ -50,13 +52,16 @@ if(I.organ_flags & ORGAN_NO_DISMEMBERMENT || (no_brain && istype(I, /obj/item/organ/brain)) || (no_organs && !istype(I, /obj/item/organ/brain))) qdel(I) continue + if(was_explosion) + LAZYADD(I.acted_explosions, was_explosion.explosion_id) I.Remove() I.forceMove(Tsec) I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) - -/mob/living/carbon/spread_bodyparts() +/mob/living/carbon/spread_bodyparts(no_brain, no_organs, datum/explosion/was_explosion) for(var/X in bodyparts) var/obj/item/bodypart/BP = X + if(was_explosion) + LAZYADD(BP.acted_explosions, was_explosion.explosion_id) BP.drop_limb() BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 688b0cf63e..be9cd0aabb 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,4 +1,4 @@ -/mob/living/gib(no_brain, no_organs, no_bodyparts) +/mob/living/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion) var/prev_lying = lying if(stat != DEAD) death(1) @@ -6,22 +6,22 @@ if(!prev_lying) gib_animation() - spill_organs(no_brain, no_organs, no_bodyparts) + spill_organs(no_brain, no_organs, no_bodyparts, was_explosion) if(!no_bodyparts) - spread_bodyparts(no_brain, no_organs) + spread_bodyparts(no_brain, no_organs, was_explosion) for(var/X in implants) var/obj/item/implant/I = X qdel(I) - spawn_gibs(no_bodyparts) + spawn_gibs(no_bodyparts, null, was_explosion) qdel(src) /mob/living/proc/gib_animation() return -/mob/living/proc/spawn_gibs(with_bodyparts, atom/loc_override) +/mob/living/proc/spawn_gibs(with_bodyparts, atom/loc_override, datum/explosion/was_explosion) var/location = loc_override ? loc_override.drop_location() : drop_location() if(mob_biotypes & MOB_ROBOTIC) new /obj/effect/gibspawner/robot(location, src, get_static_viruses()) @@ -31,7 +31,7 @@ /mob/living/proc/spill_organs() return -/mob/living/proc/spread_bodyparts() +/mob/living/proc/spread_bodyparts(no_brain, no_organs, datum/explosion/was_explosion) return /mob/living/dust(just_ash, drop_items, force) From f3cdaf941b8e531a8f1bca68109aa6866431242f Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 20 Jan 2021 15:11:04 -0700 Subject: [PATCH 037/128] Update colormate.dm --- code/game/machinery/colormate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index ad90678d1f..8b6db6e45e 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -67,7 +67,7 @@ return if(!QDELETED(H)) H.release() - insert_mob(H, user) + insert_mob(victim, user) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) From 95db018de8fbb19e28a9174c2146cab0f322a1ac Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Wed, 20 Jan 2021 18:34:57 -0600 Subject: [PATCH 038/128] itt: i dont test my code again --- _maps/RandomRuins/AnywhereRuins/golem_ship.dmm | 12 ++++++------ code/datums/components/gps.dm | 4 +++- code/game/objects/items/devices/gps.dm | 6 +++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm index 37a89ba2ff..274c814cf5 100644 --- a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm +++ b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm @@ -18,7 +18,7 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, -/obj/item/gps/mining, +/obj/item/gps/mining/off, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "d" = ( @@ -32,7 +32,7 @@ /obj/item/mining_scanner, /obj/item/flashlight/lantern, /obj/item/card/id/mining, -/obj/item/gps/mining, +/obj/item/gps/mining/off, /turf/open/floor/plating, /area/ruin/powered/golem_ship) "e" = ( @@ -71,8 +71,8 @@ /area/ruin/powered/golem_ship) "k" = ( /obj/machinery/computer/arcade/battle{ - icon_state = "arcade"; - dir = 4 + dir = 4; + icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) @@ -112,8 +112,8 @@ /area/ruin/powered/golem_ship) "s" = ( /obj/machinery/computer/arcade/orion_trail{ - icon_state = "arcade"; - dir = 4 + dir = 4; + icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, /area/ruin/powered/golem_ship) diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index c2b3ad1f30..61098c8b66 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(GPS_list) var/updating = TRUE //Automatic updating of GPS list. Can be set to manual by user. var/global_mode = TRUE //If disabled, only GPS signals of the same Z level are shown -/datum/component/gps/item/Initialize(_gpstag = "COM0", emp_proof = FALSE) +/datum/component/gps/item/Initialize(_gpstag = "COM0", emp_proof = FALSE, starton = TRUE) . = ..() if(. == COMPONENT_INCOMPATIBLE || !isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -33,6 +33,8 @@ GLOBAL_LIST_EMPTY(GPS_list) RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp_act) RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/on_AltClick) + if(!starton) + tracking = FALSE ///Called on COMSIG_ITEM_ATTACK_SELF /datum/component/gps/item/proc/interact(datum/source, mob/user) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index bb46577702..a0b695e29f 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -8,10 +8,11 @@ slot_flags = ITEM_SLOT_BELT obj_flags = UNIQUE_RENAME var/gpstag = "COM0" + var/starton = TRUE /obj/item/gps/Initialize() . = ..() - AddComponent(/datum/component/gps/item, gpstag) + AddComponent(/datum/component/gps/item, gpstag, starton) /obj/item/gps/science icon_state = "gps-s" @@ -26,6 +27,9 @@ gpstag = "MINE0" desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life." +/obj/item/gps/mining/off + starton = FALSE + /obj/item/gps/cyborg icon_state = "gps-b" gpstag = "BORG0" From 01e8412e09477d2b3eae632c524e1ed0ae4f6f32 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 21 Jan 2021 02:41:32 -0600 Subject: [PATCH 039/128] Automatic changelog generation for PR #14103 [ci skip] --- html/changelogs/AutoChangeLog-pr-14103.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14103.yml diff --git a/html/changelogs/AutoChangeLog-pr-14103.yml b/html/changelogs/AutoChangeLog-pr-14103.yml new file mode 100644 index 0000000000..856b66aeb7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14103.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "Adds a way to give items to people, you can combat mode rightclick to offer it to one person, right click on people without mode and click the give verb, or use the hotkey CTRL G to offer it to everyone around you" From 401e6a76907bf0136b237bec3196fc6c6626087a Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 21 Jan 2021 20:17:25 +0000 Subject: [PATCH 040/128] test --- code/modules/admin/verbs/adminhelp.dm | 6 +++--- code/modules/admin/verbs/adminpm.dm | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 4348ae7661..45d05c70b9 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -174,7 +174,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //is_bwoink is TRUE if this ticket was started by an admin PM /datum/admin_help/New(msg, client/C, is_bwoink) //clean the input msg - msg = sanitize(copytext_char(msg,1,MAX_MESSAGE_LEN)) + msg = copytext_char(msg,1,MAX_MESSAGE_LEN) if(!msg || !C || !C.mob) qdel(src) return @@ -263,7 +263,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //message from the initiator without a target, all admins will see this //won't bug irc /datum/admin_help/proc/MessageNoRecipient(msg) - msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) + msg = copytext_char(msg, 1, MAX_MESSAGE_LEN) var/ref_src = "[REF(src)]" //Message to be sent to all admins var/admin_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [keywords_lookup(msg)]" @@ -523,7 +523,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(handle_spam_prevention(msg,MUTE_ADMINHELP)) return - msg = trim(msg) + msg = sanitize(trim(msg)) if(!msg) return diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 2931c52a5c..1f4313dfda 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -80,6 +80,12 @@ to_chat(src, "Message: [msg]", confidential = TRUE) return + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots + msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) + if(!msg) + return + var/client/recipient var/recipient_ckey // Stored in case client is deleted between this and after the message is input var/datum/admin_help/recipient_ticket // Stored in case client is deleted between this and after the message is input @@ -141,15 +147,9 @@ to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).", confidential = TRUE) return - if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) + if(src.handle_spam_prevention(msg,MUTE_ADMINHELP)) return - //clean the message if it's not sent by a high-rank admin - if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots - msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) - if(!msg) - return - var/rawmsg = msg if(holder) From 8569c40ce5647763211bcc9b0be41a01e28fb57f Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 21 Jan 2021 22:23:48 +0000 Subject: [PATCH 041/128] Update adminpm.dm --- code/modules/admin/verbs/adminpm.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 1f4313dfda..4856f5af32 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -80,12 +80,6 @@ to_chat(src, "Message: [msg]", confidential = TRUE) return - //clean the message if it's not sent by a high-rank admin - if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots - msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) - if(!msg) - return - var/client/recipient var/recipient_ckey // Stored in case client is deleted between this and after the message is input var/datum/admin_help/recipient_ticket // Stored in case client is deleted between this and after the message is input @@ -119,6 +113,11 @@ to_chat(src, "Error: Use the admin IRC/Discord channel, nerd.", confidential = TRUE) return + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||external)//no sending html to the poor bots + msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN)) + if(!msg) + return else //get message text, limit it's length.and clean/escape html From 897f8a744f8c5473dbcae9c1a1df4f0d25050c00 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 21 Jan 2021 22:39:38 +0000 Subject: [PATCH 042/128] Update overmind.dm --- code/modules/antagonists/blob/blob/overmind.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index 02be432045..ca7845a297 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -277,3 +277,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) var/datum/antagonist/blob/B = mind.has_antag_datum(/datum/antagonist/blob) if(!B) mind.add_antag_datum(/datum/antagonist/blob) + +//the same but it's forced to be allowed by default as cameras usually don't allow emoting +/mob/camera/emote(act, m_type=1, message = null, intentional = FALSE, forced = TRUE) + . = ..() From ca9292f6fd01214564e9203eef32d3fc7b061639 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 21 Jan 2021 22:45:46 +0000 Subject: [PATCH 043/128] Update overmind.dm --- code/modules/antagonists/blob/blob/overmind.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm index ca7845a297..18f6817ec9 100644 --- a/code/modules/antagonists/blob/blob/overmind.dm +++ b/code/modules/antagonists/blob/blob/overmind.dm @@ -279,5 +279,5 @@ GLOBAL_LIST_EMPTY(blob_nodes) mind.add_antag_datum(/datum/antagonist/blob) //the same but it's forced to be allowed by default as cameras usually don't allow emoting -/mob/camera/emote(act, m_type=1, message = null, intentional = FALSE, forced = TRUE) +/mob/camera/blob/emote(act, m_type=1, message = null, intentional = FALSE, forced = TRUE) . = ..() From 920be8cffc23e4ef6d78f6038603a6e3ed9eac9f Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Fri, 22 Jan 2021 01:43:35 +0100 Subject: [PATCH 044/128] stuffs --- .../antagonists/clockcult/clock_helpers/clock_rites.dm | 6 ++++-- .../antagonists/clockcult/clock_items/clockwork_slab.dm | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm index 59a86ffa34..58ee73ef5b 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/clock_rites.dm @@ -165,14 +165,16 @@ /datum/clockwork_rite/treat_wounds/cast(var/mob/living/invoker, var/turf/T, var/mob/living/carbon/human/target) if(!target) return FALSE - if(!target.all_wounds.len) + if(!target.all_wounds || !target.all_wounds.len) to_chat(invoker, "This one does not require mending.") return FALSE .= ..() if(!.) return FALSE target.adjustToxLoss(10 * target.all_wounds.len) - QDEL_LIST(target.all_wounds) + for(var/i in target.all_wounds) + var/datum/wound/mended = i + mended.remove_wound() to_chat(target, "You feel your wounds heal, but are overcome with deep nausea.") new /obj/effect/temp_visual/ratvar/sigil/vitality(T) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 571a817024..ff6dc12ce1 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -203,10 +203,10 @@ to_chat(user, "You need to hold the slab in your active hand to recite scripture!") return FALSE var/initial_tier = initial(scripture.tier) - if(initial_tier == SCRIPTURE_PERIPHERAL) + if(initial_tier == SCRIPTURE_PERIPHERAL && !issilicon(user)) //Silicons use peripheral scripture & cannot open the slab. to_chat(user, "Nice try using href exploits") return - if(!GLOB.ratvar_awakens && !no_cost && !SSticker.scripture_states[initial_tier]) + if(!GLOB.ratvar_awakens && !no_cost && !SSticker.scripture_states[initial_tier] &&!issilicon(user)) //silicons can't choose their spells, so lets allow them to always cast their assigned ones. to_chat(user, "That scripture is not unlocked, and cannot be recited!") return FALSE var/datum/clockwork_scripture/scripture_to_recite = new scripture From aa9625cffc33252998dc000069eb8f0e8002e8f5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 22 Jan 2021 00:45:25 +0000 Subject: [PATCH 045/128] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/AutoChangeLog-pr-14103.yml | 4 ---- 3 files changed, 11 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14103.yml diff --git a/html/changelog.html b/html/changelog.html index 4f4656771d..0a446ddb4b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

22 January 2021

+

Arturlang updated:

+
    +
  • Adds a way to give items to people, you can combat mode rightclick to offer it to one person, right click on people without mode and click the give verb, or use the hotkey CTRL G to offer it to everyone around you
  • +
+

21 January 2021

Acer202 updated: