diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 353ae1ef549..56e5a52475a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -607,3 +607,8 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define TIMER_NORMAL "normal" #define TIMER_UNIQUE "unique" + +// Ventcrawling +#define VENTCRAWLER_NONE 0 +#define VENTCRAWLER_NUDE 1 +#define VENTCRAWLER_ALWAYS 2 diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 5885fc6d5d8..9b1f698d3ba 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -75,7 +75,7 @@ var/datum/subsystem/timer/SStimer var/hashlist = args.Copy() hashlist[1] = "[thingToCall](\ref[thingToCall])" - event.hash = jointext(args, null) + event.hash = jointext(hashlist, null) var/bad_args = unique != TIMER_NORMAL && unique != TIMER_UNIQUE if(args.len > 4 || bad_args) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index d8eda098861..1dddd656616 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -1,6 +1,6 @@ /var/global/list/mutations_list = list() -/datum/mutation/ +/datum/mutation var/name diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index 9e4d1cc228e..342ccec825c 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -16,11 +16,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /*-----------------------------------------------------------------------------*/ -/area/engine/ +/area/engine /area/ai_monitored //stub defined ai_monitored.dm -/area/ai_monitored/turret_protected/ +/area/ai_monitored/turret_protected /area/arrival requires_power = 0 @@ -642,7 +642,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Mech Bay" icon_state = "yellow" -/area/janitor/ +/area/janitor name = "Custodial Closet" icon_state = "janitor" flags = NONE @@ -798,7 +798,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "storage" -/area/ai_monitored/turret_protected/ +/area/ai_monitored/turret_protected ambientsounds = list('sound/ambience/ambimalf.ogg') /area/ai_monitored/turret_protected/ai_upload diff --git a/code/game/area/areas/ruins.dm b/code/game/area/areas/ruins.dm index 2bb051630ee..fcca1edcfea 100644 --- a/code/game/area/areas/ruins.dm +++ b/code/game/area/areas/ruins.dm @@ -1,6 +1,6 @@ //Parent types -/area/ruin/ +/area/ruin name = "\improper Unexplored Location" icon_state = "away" has_gravity = 1 diff --git a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm index 45c69af7eca..f33c0fdd9eb 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm @@ -29,31 +29,40 @@ if(!isturf(T)) return TRUE - if(isliving(target) && ranged_ability_user.Adjacent(target)) - var/mob/living/L = target - if(is_servant_of_ratvar(L)) - if(L != ranged_ability_user) - ranged_ability_user << "\"[L.p_they(TRUE)] already serve[L.p_s()] Ratvar. [text2ratvar("Perhaps [ranged_ability_user.p_theyre()] into bondage?")]\"" - return TRUE - if(L.stat == DEAD) - ranged_ability_user << "\"[L.p_theyre(TRUE)] dead, idiot.\"" - return TRUE + var/target_is_binding = istype(target, /obj/structure/destructible/clockwork/geis_binding) - if(istype(L.buckled, /obj/structure/destructible/clockwork/geis_binding)) //if they're already bound, just stun them - L.Stun(1) + if((target_is_binding || isliving(target)) && ranged_ability_user.Adjacent(target)) + if(target_is_binding) + var/obj/structure/destructible/clockwork/geis_binding/GB = target + GB.repair_and_interrupt() successful = TRUE else - in_progress = TRUE - clockwork_say(ranged_ability_user, text2ratvar("Be bound, heathen!")) - remove_mousepointer(ranged_ability_user.client) - ranged_ability_user.notransform = TRUE - addtimer(src, "reset_user_notransform", 5, TIMER_NORMAL, ranged_ability_user) //stop us moving for a little bit so we don't break the scripture following this - slab.busy = null - var/datum/clockwork_scripture/geis/conversion = new - conversion.slab = slab - conversion.invoker = ranged_ability_user - conversion.target = target - successful = conversion.run_scripture() + var/mob/living/L = target + if(is_servant_of_ratvar(L)) + if(L != ranged_ability_user) + ranged_ability_user << "\"[L.p_they(TRUE)] already serve[L.p_s()] Ratvar. [text2ratvar("Perhaps [ranged_ability_user.p_theyre()] into bondage?")]\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_theyre(TRUE)] dead, idiot.\"" + return TRUE + + if(istype(L.buckled, /obj/structure/destructible/clockwork/geis_binding)) //if they're already bound, just stun them + var/obj/structure/destructible/clockwork/geis_binding/GB = L.buckled + GB.repair_and_interrupt() + successful = TRUE + else + in_progress = TRUE + clockwork_say(ranged_ability_user, text2ratvar("Be bound, heathen!")) + remove_mousepointer(ranged_ability_user.client) + if(slab.speed_multiplier >= 0.5) //excuse my debug... + ranged_ability_user.notransform = TRUE + addtimer(src, "reset_user_notransform", 5, TIMER_NORMAL, ranged_ability_user) //stop us moving for a little bit so we don't break the scripture following this + slab.busy = null + var/datum/clockwork_scripture/geis/conversion = new + conversion.slab = slab + conversion.invoker = ranged_ability_user + conversion.target = target + successful = conversion.run_scripture() remove_ranged_ability() @@ -71,12 +80,15 @@ obj_integrity = 30 density = 0 icon = 'icons/effects/clockwork_effects.dmi' - icon_state = "geisbinding" - break_message = "The glowing ring shatters!" + icon_state = "geisbinding_full" + break_message = null break_sound = 'sound/magic/Repulse.ogg' debris = list() can_buckle = TRUE buckle_lying = 0 + buckle_prevents_pull = TRUE + var/resisting = FALSE + var/mob_layer = MOB_LAYER /obj/structure/destructible/clockwork/geis_binding/examine(mob/user) icon_state = "geisbinding_full" @@ -90,6 +102,8 @@ if(M.buckled == src) desc = "A flickering, glowing purple ring around [M]." clockwork_desc = "A binding ring around [M], preventing [M.p_them()] from taking action while [M.p_theyre()] being converted." + icon_state = "geisbinding" + mob_layer = M.layer layer = M.layer - 0.01 var/image/GB = new('icons/effects/clockwork_effects.dmi', src, "geisbinding_top", M.layer + 0.01) add_overlay(GB) @@ -102,18 +116,68 @@ M.visible_message("A [name] appears around [M]!", \ "A [name] appears around you!\nResist!") else + var/obj/effect/overlay/temp/ratvar/geis_binding/G = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, M.loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, M.loc) + G.layer = mob_layer - 0.01 + T.layer = mob_layer + 0.01 + G.alpha = alpha + T.alpha = alpha + animate(G, transform = matrix()*2, alpha = 0, time = 8, easing = EASE_OUT) + animate(T, transform = matrix()*2, alpha = 0, time = 8, easing = EASE_OUT) M.visible_message("[src] snaps into glowing pieces and dissipates!") - for(var/obj/item/geis_binding/G in M.held_items) - M.unEquip(G, TRUE) + for(var/obj/item/geis_binding/GB in M.held_items) + M.unEquip(GB, TRUE) qdel(src) +/obj/structure/destructible/clockwork/geis_binding/relaymove(mob/user, direction) + if(isliving(user)) + var/mob/living/L = user + L.resist() + +/obj/structure/destructible/clockwork/geis_binding/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) + +/obj/structure/destructible/clockwork/geis_binding/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) + update_icon() + +/obj/structure/destructible/clockwork/geis_binding/update_icon() + alpha = min(initial(alpha) + ((obj_integrity - max_integrity) * 5), 255) + +/obj/structure/destructible/clockwork/geis_binding/proc/repair_and_interrupt() + obj_integrity = max_integrity + update_icon() + for(var/m in buckled_mobs) + var/mob/living/L = m + if(L) + L.Stun(1, 1, 1) + visible_message("[src] flares brightly!") + var/obj/effect/overlay/temp/ratvar/geis_binding/G1 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/G2 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T1 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, loc) + var/obj/effect/overlay/temp/ratvar/geis_binding/T2 = PoolOrNew(/obj/effect/overlay/temp/ratvar/geis_binding/top, loc) + G1.layer = mob_layer - 0.01 + G2.layer = mob_layer - 0.01 + T1.layer = mob_layer + 0.01 + T2.layer = mob_layer + 0.01 + animate(G1, pixel_y = pixel_y + 9, alpha = 0, time = 8, easing = EASE_IN) + animate(G2, pixel_y = pixel_y - 9, alpha = 0, time = 8, easing = EASE_IN) + animate(T1, pixel_y = pixel_y + 9, alpha = 0, time = 8, easing = EASE_IN) + animate(T2, pixel_y = pixel_y - 9, alpha = 0, time = 8, easing = EASE_IN) + /obj/structure/destructible/clockwork/geis_binding/user_unbuckle_mob(mob/living/buckled_mob, mob/user) if(buckled_mob == user) - user.visible_message("[user] starts struggling against [src]...", "You start breaking out of [src]...") - if(do_after(user, 40, target = src)) - user.visible_message("[user] breaks [src]!", "You break [src]!") - unbuckle_mob(user, TRUE) - return user + if(!resisting) + resisting = TRUE + user.visible_message("[user] starts struggling against [src]...", "You start breaking out of [src]...") + while(do_after(user, 7.5, target = src) && resisting && obj_integrity) + if(obj_integrity - 5 <= 0) + user.visible_message("[user] breaks [src]!", "You break [src]!") + take_damage(5) + return user + take_damage(5) + resisting = FALSE else return ..() diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 47af2653823..53076f4671b 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -111,7 +111,7 @@ descname = "Melee Convert Attack" name = "Geis" desc = "Charges your slab with divine energy, allowing you to bind a nearby heretic for conversion. This is very obvious and will make your slab visible in-hand." - invocations = list("Divinity, grant me strength...", "...to enlighten the heathen!") + invocations = list("Divinity, grant...", "...me strength...", "...to enlighten...", "...the heathen!") whispered = TRUE channel_time = 20 required_components = list(GEIS_CAPACITOR = 1) @@ -135,6 +135,8 @@ servants++ if(servants > SCRIPT_SERVANT_REQ) whispered = FALSE + servants -= SCRIPT_SERVANT_REQ + channel_time = min(channel_time + servants*3, 50) return ..() //The scripture that does the converting. @@ -162,7 +164,7 @@ servants++ if(servants > SCRIPT_SERVANT_REQ) servants -= SCRIPT_SERVANT_REQ - channel_time = min(channel_time + servants*5, 100) + channel_time = min(channel_time + servants*7, 120) if(target.buckled) target.buckled.unbuckle_mob(target, TRUE) binding = new(get_turf(target)) diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index daa84b6b34d..e108e5d7d23 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -11,7 +11,7 @@ gender = NEUTER health = 350 maxHealth = 350 - ventcrawler = 0 + ventcrawler = VENTCRAWLER_NONE density = 1 pass_flags = 0 var/ascended = 0 diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 7cf04196cbe..724dbc4e850 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -250,7 +250,7 @@ if(gang.bosses.len < 3) usr << "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [3-gang.bosses.len] more Lieutenants" else - item_type = /obj/item/device/gangtool/spare/ + item_type = /obj/item/device/gangtool/spare pointcost = 10 if("dominator") if(!gang.dom_attempts) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index cdb45b7f346..aebdaccfba4 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -9,10 +9,10 @@ var/power_type -/datum/AI_Module/large/ +/datum/AI_Module/large uses = 1 -/datum/AI_Module/small/ +/datum/AI_Module/small uses = 5 /datum/AI_Module/large/nuke_station diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 5f95588ac4d..ead066e8ccd 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -118,7 +118,7 @@ /obj/item/organ/gland/ventcrawling/activate() owner << "You feel very stretchy." - owner.ventcrawler = 2 + owner.ventcrawler = VENTCRAWLER_ALWAYS return diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index d47ecbd8a0b..e35ab6b6bde 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -72,7 +72,7 @@ var/total_borer_hosts_needed = 10 pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL faction = list("creature") - ventcrawler = 2 + 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 maxbodytemp = 1500 diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index fdb0afe08a0..fcbb2f7c29d 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -93,7 +93,7 @@ AIStatus = AI_OFF pass_flags = PASSTABLE mob_size = MOB_SIZE_TINY - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS ranged = 1 projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 5450ff9a9fe..7dd333eb5f7 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -15,7 +15,7 @@ stop_automated_movement = 1 status_flags = CANPUSH pass_flags = PASSTABLE - ventcrawler = 2 + 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 diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index b35796c16bb..1207cf802e3 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,4 +1,4 @@ -/obj/machinery/computer/arcade/ +/obj/machinery/computer/arcade name = "random arcade" desc = "random arcade machine" icon_state = "arcade" diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index f154b2cf3ee..551f3df2655 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -219,12 +219,12 @@ name = "training bomb" icon_state = "training-bomb" desc = "A salvaged syndicate device gutted of its explosives to be used as a training aid for aspiring bomb defusers." - payload = /obj/item/weapon/bombcore/training/ + payload = /obj/item/weapon/bombcore/training /obj/machinery/syndicatebomb/badmin name = "generic summoning badmin bomb" desc = "Oh god what is in this thing?" - payload = /obj/item/weapon/bombcore/badmin/summon/ + payload = /obj/item/weapon/bombcore/badmin/summon /obj/machinery/syndicatebomb/badmin/clown name = "clown bomb" @@ -234,7 +234,7 @@ beepsound = 'sound/items/bikehorn.ogg' /obj/machinery/syndicatebomb/badmin/varplosion - payload = /obj/item/weapon/bombcore/badmin/explosion/ + payload = /obj/item/weapon/bombcore/badmin/explosion /obj/machinery/syndicatebomb/empty name = "bomb" @@ -333,7 +333,7 @@ qdel(B) qdel(src) -/obj/item/weapon/bombcore/badmin/summon/ +/obj/item/weapon/bombcore/badmin/summon var/summon_path = /obj/item/weapon/reagent_containers/food/snacks/cookie var/amt_summon = 1 diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 9a5f75f2af4..fa52d86a9ce 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -6,6 +6,7 @@ var/buckle_requires_restraints = 0 //require people to be handcuffed before being able to buckle. eg: pipes var/list/mob/living/buckled_mobs = null //list() var/max_buckled_mobs = 1 + var/buckle_prevents_pull = FALSE //Interaction /atom/movable/attack_hand(mob/living/user) @@ -49,12 +50,14 @@ usr << "You are unable to buckle [M] to the [src]!" return 0 + if(M.pulledby && buckle_prevents_pull) + M.pulledby.stop_pulling() M.buckled = src M.setDir(dir) buckled_mobs |= M M.update_canmove() - post_buckle_mob(M) M.throw_alert("buckled", /obj/screen/alert/restrained/buckled, new_master = src) + post_buckle_mob(M) return 1 diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 59dd35d7b54..e4e2dc1a036 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -306,6 +306,12 @@ pixel_y = -16 pixel_x = -16 +/obj/effect/overlay/temp/ratvar/geis_binding + icon_state = "geisbinding" + +/obj/effect/overlay/temp/ratvar/geis_binding/top + icon_state = "geisbinding_top" + /obj/effect/overlay/temp/ratvar/component icon = 'icons/obj/clockwork_objects.dmi' icon_state = "belligerent_eye" diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 816ceb411ac..920cb9334fd 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -1,5 +1,5 @@ -/obj/item/device/encryptionkey/ +/obj/item/device/encryptionkey name = "standard encryption key" desc = "An encryption key for a radio headset. Has no special codes in it. WHY DOES IT EXIST? ASK NANOTRASEN." icon = 'icons/obj/radio.dmi' diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 264d4a88a22..1e984a21b04 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -125,7 +125,7 @@ desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds." stop_bleeding = 900 -/obj/item/stack/medical/gauze/cyborg/ +/obj/item/stack/medical/gauze/cyborg materials = list() is_cyborg = 1 cost = 250 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index a39e650a214..7950fc21bc8 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -66,7 +66,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \ else return ..() -/obj/item/stack/rods/cyborg/ +/obj/item/stack/rods/cyborg materials = list() is_cyborg = 1 cost = 250 diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 946a8005a61..0cca77c19c9 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -293,7 +293,7 @@ SSpersistence.new_secret_satchels -= src return ..() -/obj/item/weapon/storage/backpack/satchel/flat/secret/ +/obj/item/weapon/storage/backpack/satchel/flat/secret var/list/reward_one_of_these = list() //Intended for map editing var/list/reward_all_of_these = list() //use paths! var/revealed = 0 diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index c428d685e58..aa369e109cd 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -33,7 +33,7 @@ /obj/item/device/analyzer, /obj/item/weapon/extinguisher/mini, /obj/item/device/radio, - /obj/item/clothing/gloves/ + /obj/item/clothing/gloves ) /obj/item/weapon/storage/belt/utility/chief @@ -355,7 +355,7 @@ /obj/item/weapon/soap, /obj/item/weapon/holosign_creator, /obj/item/key/janitor, - /obj/item/clothing/gloves/ + /obj/item/clothing/gloves ) /obj/item/weapon/storage/belt/bandolier diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index b6219ad62f9..2a25c9f0a48 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/storage/box/syndicate/ +/obj/item/weapon/storage/box/syndicate /obj/item/weapon/storage/box/syndicate/New() ..() @@ -131,7 +131,7 @@ new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc new /obj/item/weapon/card/emag(src) // 6 tc return - + if("ninja") // 33 tc worth new /obj/item/weapon/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc? new /obj/item/weapon/implanter/adrenalin(src) // 8 tc diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index b8e92004025..3c84b091006 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -559,7 +559,7 @@ var/highlander_claymores = 0 /mob/living/simple_animal/hostile/poison/bees/, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/cockroach, - /obj/item/queen_bee/ + /obj/item/queen_bee )) /obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index aed387bf300..eef73b53451 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -71,7 +71,7 @@ icon_state = "drake_statue_falling" -/obj/structure/fluff/bus/ +/obj/structure/fluff/bus name = "bus" desc = "GO TO SCHOOL. READ A BOOK." icon = 'icons/obj/bus.dmi' diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index e85375ba5ed..eb1a025e85c 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/ +/obj/item/weapon name = "weapon" icon = 'icons/obj/weapons.dmi' diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 439026c2551..74f025e93e3 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -87,7 +87,7 @@ var/list/hardcoded_gases = list("o2","n2","co2","plasma") //the main four gases, specific_heat = 20 name = "BZ" -/obj/effect/overlay/gas/ +/obj/effect/overlay/gas icon = 'icons/effects/tile_effects.dmi' mouse_opacity = 0 layer = FLY_LAYER diff --git a/code/modules/events/wizard/aid.dm b/code/modules/events/wizard/aid.dm index b472ab9796d..fc37888411e 100644 --- a/code/modules/events/wizard/aid.dm +++ b/code/modules/events/wizard/aid.dm @@ -3,7 +3,7 @@ /datum/round_event_control/wizard/robelesscasting //EI NUDTH! name = "Robeless Casting" weight = 2 - typepath = /datum/round_event/wizard/robelesscasting/ + typepath = /datum/round_event/wizard/robelesscasting max_occurrences = 1 earliest_start = 0 @@ -24,7 +24,7 @@ /datum/round_event_control/wizard/improvedcasting //blink x5 disintergrate x5 here I come! name = "Improved Casting" weight = 3 - typepath = /datum/round_event/wizard/improvedcasting/ + typepath = /datum/round_event/wizard/improvedcasting max_occurrences = 4 //because that'd be max level spells earliest_start = 0 diff --git a/code/modules/events/wizard/blobies.dm b/code/modules/events/wizard/blobies.dm index 2f9f04053fd..6953370e458 100644 --- a/code/modules/events/wizard/blobies.dm +++ b/code/modules/events/wizard/blobies.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/blobies //avast! name = "Zombie Outbreak" weight = 3 - typepath = /datum/round_event/wizard/blobies/ + typepath = /datum/round_event/wizard/blobies max_occurrences = 3 earliest_start = 12000 // 20 minutes (gotta get some bodies made!) diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index cb0add4374d..1e24e29369b 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/cursed_items //fashion disasters name = "Cursed Items" weight = 3 - typepath = /datum/round_event/wizard/cursed_items/ + typepath = /datum/round_event/wizard/cursed_items max_occurrences = 3 earliest_start = 0 @@ -24,7 +24,7 @@ if("swords") loadout[5] = /obj/item/weapon/katana/cursed if("bigfatdoobie") - loadout[4] = /obj/item/clothing/mask/cigarette/rollie/trippy/ + loadout[4] = /obj/item/clothing/mask/cigarette/rollie/trippy ruins_spaceworthiness = 1 if("boxing") loadout[4] = /obj/item/clothing/mask/luchador diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm index 0408f97169a..0774aaaeb4d 100644 --- a/code/modules/events/wizard/departmentrevolt.dm +++ b/code/modules/events/wizard/departmentrevolt.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/deprevolt //stationwide! name = "Departmental Uprising" weight = 0 //An order that requires order in a round of chaos was maybe not the best idea. Requiescat in pace departmental uprising August 2014 - March 2015 - typepath = /datum/round_event/wizard/deprevolt/ + typepath = /datum/round_event/wizard/deprevolt max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm index 3b2dfe80a06..770f876e688 100644 --- a/code/modules/events/wizard/fakeexplosion.dm +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/fake_explosion //Oh no the station is gone! name = "Fake Nuclear Explosion" weight = 0 //Badmin exclusive now because once it's expected its not funny - typepath = /datum/round_event/wizard/fake_explosion/ + typepath = /datum/round_event/wizard/fake_explosion max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/ghost.dm b/code/modules/events/wizard/ghost.dm index bb60ee25214..9f0e41d8856 100644 --- a/code/modules/events/wizard/ghost.dm +++ b/code/modules/events/wizard/ghost.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/ghost //The spook is real name = "G-G-G-Ghosts!" weight = 3 - typepath = /datum/round_event/wizard/ghost/ + typepath = /datum/round_event/wizard/ghost max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 389c22e68e6..202dee5a13b 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/greentext //Gotta have it! name = "Greentext" weight = 4 - typepath = /datum/round_event/wizard/greentext/ + typepath = /datum/round_event/wizard/greentext max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index 15b07a1c12d..b579ee834fb 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/imposter //Mirror Mania name = "Imposter Wizard" weight = 1 - typepath = /datum/round_event/wizard/imposter/ + typepath = /datum/round_event/wizard/imposter max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/invincible.dm b/code/modules/events/wizard/invincible.dm index b2cc9a803b2..8bc43b158f4 100644 --- a/code/modules/events/wizard/invincible.dm +++ b/code/modules/events/wizard/invincible.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/invincible //Boolet Proof name = "Invincibility" weight = 3 - typepath = /datum/round_event/wizard/invincible/ + typepath = /datum/round_event/wizard/invincible max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/lava.dm b/code/modules/events/wizard/lava.dm index 80d144688a4..f33fecf669c 100644 --- a/code/modules/events/wizard/lava.dm +++ b/code/modules/events/wizard/lava.dm @@ -1,11 +1,11 @@ /datum/round_event_control/wizard/lava //THE LEGEND NEVER DIES name = "The Floor Is LAVA!" weight = 2 - typepath = /datum/round_event/wizard/lava/ + typepath = /datum/round_event/wizard/lava max_occurrences = 3 earliest_start = 0 -/datum/round_event/wizard/lava/ +/datum/round_event/wizard/lava endWhen = 0 var/started = FALSE diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm index aba0bccfb45..02663047287 100644 --- a/code/modules/events/wizard/magicarp.dm +++ b/code/modules/events/wizard/magicarp.dm @@ -1,11 +1,11 @@ /datum/round_event_control/wizard/magicarp //these fish is loaded name = "Magicarp" weight = 1 - typepath = /datum/round_event/wizard/magicarp/ + typepath = /datum/round_event/wizard/magicarp max_occurrences = 1 earliest_start = 0 -/datum/round_event/wizard/magicarp/ +/datum/round_event/wizard/magicarp announceWhen = 3 startWhen = 50 diff --git a/code/modules/events/wizard/petsplosion.dm b/code/modules/events/wizard/petsplosion.dm index b5a2be80b02..30d6d631ac5 100644 --- a/code/modules/events/wizard/petsplosion.dm +++ b/code/modules/events/wizard/petsplosion.dm @@ -1,11 +1,11 @@ /datum/round_event_control/wizard/petsplosion //the horror name = "Petsplosion" weight = 2 - typepath = /datum/round_event/wizard/petsplosion/ + typepath = /datum/round_event/wizard/petsplosion max_occurrences = 1 //Exponential growth is nothing to sneeze at! earliest_start = 0 -/datum/round_event/wizard/petsplosion/ +/datum/round_event/wizard/petsplosion endWhen = 61 //1 minute (+1 tick for endWhen not to interfere with tick) var/countdown = 0 diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm index cb4f4896f1b..46f420e380e 100644 --- a/code/modules/events/wizard/race.dm +++ b/code/modules/events/wizard/race.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/race //Lizard Wizard? Lizard Wizard. name = "Race Swap" weight = 2 - typepath = /datum/round_event/wizard/race/ + typepath = /datum/round_event/wizard/race max_occurrences = 5 earliest_start = 0 diff --git a/code/modules/events/wizard/rpgloot.dm b/code/modules/events/wizard/rpgloot.dm index 793aba26fd7..5481f0745d9 100644 --- a/code/modules/events/wizard/rpgloot.dm +++ b/code/modules/events/wizard/rpgloot.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/rpgloot //its time to minmax your shit name = "RPG Loot" weight = 3 - typepath = /datum/round_event/wizard/rpgloot/ + typepath = /datum/round_event/wizard/rpgloot max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/events/wizard/shuffle.dm b/code/modules/events/wizard/shuffle.dm index 68777664d81..145c099066a 100644 --- a/code/modules/events/wizard/shuffle.dm +++ b/code/modules/events/wizard/shuffle.dm @@ -4,7 +4,7 @@ /datum/round_event_control/wizard/shuffleloc //Somewhere an AI is crying name = "Change Places!" weight = 2 - typepath = /datum/round_event/wizard/shuffleloc/ + typepath = /datum/round_event/wizard/shuffleloc max_occurrences = 5 earliest_start = 0 @@ -40,7 +40,7 @@ /datum/round_event_control/wizard/shufflenames //Face/off joke name = "Change Faces!" weight = 4 - typepath = /datum/round_event/wizard/shufflenames/ + typepath = /datum/round_event/wizard/shufflenames max_occurrences = 5 earliest_start = 0 @@ -74,7 +74,7 @@ /datum/round_event_control/wizard/shuffleminds //Basically Mass Ranged Mindswap name = "Change Minds!" weight = 1 - typepath = /datum/round_event/wizard/shuffleminds/ + typepath = /datum/round_event/wizard/shuffleminds max_occurrences = 3 earliest_start = 0 @@ -91,7 +91,7 @@ shuffle(mobs) - var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer/ + var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer while(mobs.len > 1) var/mob/living/carbon/human/H = pick(mobs) mobs -= H diff --git a/code/modules/events/wizard/summons.dm b/code/modules/events/wizard/summons.dm index 7b3e27e16c6..dfdcd889cac 100644 --- a/code/modules/events/wizard/summons.dm +++ b/code/modules/events/wizard/summons.dm @@ -1,7 +1,7 @@ /datum/round_event_control/wizard/summonguns //The Classic name = "Summon Guns" weight = 1 - typepath = /datum/round_event/wizard/summonguns/ + typepath = /datum/round_event/wizard/summonguns max_occurrences = 1 earliest_start = 0 @@ -16,7 +16,7 @@ /datum/round_event_control/wizard/summonmagic //The Somewhat Less Classic name = "Summon Magic" weight = 1 - typepath = /datum/round_event/wizard/summonmagic/ + typepath = /datum/round_event/wizard/summonmagic max_occurrences = 1 earliest_start = 0 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index bdce37094ca..96fe7d6c232 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -11,7 +11,7 @@ Gunshots/explosions/opening doors/less rare audio (done) */ -/mob/living/carbon/ +/mob/living/carbon var/image/halimage var/image/halbody var/obj/halitem diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 9562e18bde0..cda31880972 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -488,7 +488,7 @@ /datum/chemical_reaction/grape_soda name = "grape soda" id = "grapesoda" - results = list("grape_soda" = 2) + results = list("grapesoda" = 2) required_reagents = list("grapejuice" = 1, "sodawater" = 1) /datum/chemical_reaction/grappa diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 6c1d1b76c8d..397ec8d4137 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -150,7 +150,7 @@ H.visible_message("[H] steps on a cactus!", \ "You step on a cactus!") -/obj/item/weapon/reagent_containers/food/snacks/ash_flora/ +/obj/item/weapon/reagent_containers/food/snacks/ash_flora name = "mushroom shavings" desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl." icon = 'icons/obj/lavaland/ash_flora.dmi' diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index df037d2ce87..b868feeb44b 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -55,7 +55,7 @@ new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), ) -/datum/data/mining_equipment/ +/datum/data/mining_equipment var/equipment_name = "generic" var/equipment_path = null var/cost = 0 diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 42572b1c03c..e1cf5ade791 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -10,7 +10,7 @@ gender = FEMALE //All xenos are girls!! dna = null faction = list("alien") - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS languages_spoken = ALIEN languages_understood = ALIEN sight = SEE_MOBS diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 5559ebffe01..0776679df1c 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -2,7 +2,7 @@ //Common stuffs for Praetorian and Queen icon = 'icons/mob/alienqueen.dmi' status_flags = 0 - ventcrawler = 0 //pull over that ass too fat + 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/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 6d9fb617145..e163cb6dc35 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -31,7 +31,7 @@ var/co2overloadtime = null var/temperature_resistance = T0C+75 has_limbs = 1 - var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/ + var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab var/list/obj/effect/proc_holder/alien/abilities = list() var/gib_type = /obj/effect/decal/cleanable/blood/gibs diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index b1f8a317e44..610981f041f 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -908,7 +908,7 @@ var/mob/living/carbon/human/H = owner H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) - addtimer(src, "teleport", 15) + addtimer(src, "teleport", 15, TIMER_NORMAL, H) /datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 186a1d08ca7..15af40fa62a 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -8,7 +8,7 @@ pass_flags = PASSTABLE languages_spoken = MONKEY languages_understood = MONKEY - ventcrawler = 1 + ventcrawler = VENTCRAWLER_NUDE butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1) type_of_meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey gib_type = /obj/effect/decal/cleanable/blood/gibs diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index a359d8810f0..869d067cd79 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -16,7 +16,7 @@ density = 0 movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = 2 verb_say = "flutters" diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index d9823b36322..61990c8e8f2 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -14,7 +14,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE mob_size = MOB_SIZE_SMALL minbodytemp = 200 diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index fc4045ae569..1142f0ddafc 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -17,7 +17,7 @@ response_disarm = "shoos" response_harm = "splats" density = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = 2 var/squish_chance = 50 loot = list(/obj/effect/decal/cleanable/deadcockroach) diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 9e3e2be0a6f..192651f1a75 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -16,7 +16,7 @@ response_harm = "stomps" stop_automated_movement = 1 friendly = "pinches" - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/obj/item/inventory_head var/obj/item/inventory_mask gold_core_spawnable = 2 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 c236f0bd6f9..b84931b3816 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -27,7 +27,7 @@ unsuitable_atmos_damage = 0 wander = 0 speed = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS healable = 0 density = 0 pass_flags = PASSTABLE | PASSMOB 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 93974faa899..d805ec7b36e 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 @@ -104,7 +104,7 @@ harm_intent_damage = 5 density = TRUE speed = 1 - ventcrawler = 0 + ventcrawler = VENTCRAWLER_NONE faction = list("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 3bfefb165ab..60ae81bc93f 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -140,7 +140,7 @@ hacked = 1 mind.special_role = "hacked drone" seeStatic = 0 //I MUST SEE THEIR TERRIFIED FACES - ventcrawler = 0 //Again, balance + ventcrawler = VENTCRAWLER_NONE //Again, balance speed = 1 //gotta go slow message_admins("[src] ([src.key]) became a hacked drone hellbent on [clockwork ? "serving Ratvar" : "destroying the station"]!") else 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 e2a2c7ffc89..9751db4b4c2 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -175,7 +175,7 @@ attacktext = "kicks" health = 3 maxHealth = 3 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -226,7 +226,7 @@ var/global/chicken_count = 0 attacktext = "kicks" health = 15 maxHealth = 15 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/eggsleft = 0 var/eggsFertile = TRUE var/body_color diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index a9079e99134..b1d36ff2b9c 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -14,7 +14,7 @@ response_help = "pets" response_disarm = "shoos" response_harm = "stomps on" - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS density = 0 pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 0ccee510e45..3dc0e000b6d 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -18,7 +18,7 @@ response_disarm = "gently pushes aside" response_harm = "splats" density = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY var/body_color //brown, gray and white, leave blank for random 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 52285f23a68..f6d9e0c1c81 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -42,7 +42,7 @@ var/busy = 0 pass_flags = PASSTABLE move_to_delay = 6 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' unique_name = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index cf528306b21..5443f76f458 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -19,7 +19,7 @@ obj_damage = 0 environment_smash = 0 speak_emote = list("squeaks") - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS var/datum/mind/origin var/egg_lain = 0 gold_core_spawnable = 1 //are you sure about this?? diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm index 0cd0050c2b2..3273a8c3d91 100644 --- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm +++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm @@ -18,7 +18,7 @@ melee_damage_upper = 12 attacktext = "slams" attack_sound = 'sound/weapons/punch1.ogg' - ventcrawler = 2 + 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) 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 1d871bed651..d47ca2ff075 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -608,7 +608,7 @@ Difficulty: Very Hard density = 0 movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY gold_core_spawnable = 0 verb_say = "warps" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 70837c32863..39613d44b33 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -1,4 +1,4 @@ -/mob/living/simple_animal/hostile/asteroid/ +/mob/living/simple_animal/hostile/asteroid vision_range = 2 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) faction = list("mining") @@ -479,7 +479,7 @@ if(icon_state != icon_aggro) icon_state = icon_aggro -/obj/effect/goliath_tentacle/ +/obj/effect/goliath_tentacle name = "Goliath tentacle" icon = 'icons/mob/lavaland/lavaland_monsters.dmi' icon_state = "Goliath_tentacle" @@ -875,7 +875,7 @@ response_harm = "squishes" friendly = "pinches" a_intent = "help" - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = 2 stat_attack = 1 gender = NEUTER diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 023774cf439..3e19b2de01e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -24,7 +24,7 @@ stat_attack = 2 mouse_opacity = 1 speed = 1 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS robust_searching = 1 unique_name = 1 speak_emote = list("squeaks") 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 9684ec508b6..d2ebe6f0f95 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -23,7 +23,7 @@ attack_sound = 'sound/weapons/bite.ogg' obj_damage = 0 environment_smash = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS mob_size = MOB_SIZE_TINY movement_type = FLYING speak_emote = list("squeaks") 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 81f40c3b9c6..0d93a7f2b46 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -17,7 +17,7 @@ response_disarm = "pokes" response_harm = "splats" density = 0 - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS faction = list("hostile") attack_sound = 'sound/effects/Reee.ogg' butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/nugget = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 2d9b3d189ff..5d56f16a336 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -29,7 +29,7 @@ faction = list("hostile","stickman") check_friendly_fire = 1 status_flags = CANPUSH - var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions/ + var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions var/summoned_by_wizard = 0 /mob/living/simple_animal/hostile/stickman/ranged diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 6e22327d8a1..dcf9a98f51c 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -9,7 +9,7 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", icon = 'icons/mob/slimes.dmi' icon_state = "grey baby slime" pass_flags = PASSTABLE - ventcrawler = 2 + ventcrawler = VENTCRAWLER_ALWAYS gender = NEUTER var/is_adult = 0 var/docile = 0 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3fe868b9e82..27ebcc958c0 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -302,6 +302,10 @@ var/next_mob_id = 0 return if(AM.anchored || AM.throwing) return + if(isliving(AM)) + var/mob/living/L = AM + if(L.buckled && L.buckled.buckle_prevents_pull) + return if(throwing || incapacitated()) return diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index ea5182b8494..2f1f1319a16 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -309,14 +309,19 @@ //moves the mob/object we're pulling /mob/proc/Move_Pulled(atom/A) - if (!pulling) + if(!pulling) return - if (pulling.anchored || !pulling.Adjacent(src)) + if(pulling.anchored || !pulling.Adjacent(src)) stop_pulling() return - if (A == loc && pulling.density) + if(isliving(pulling)) + var/mob/living/L = pulling + if(L.buckled && L.buckled.buckle_prevents_pull) //if they're buckled to something that disallows pulling, prevent it + stop_pulling() + return + if(A == loc && pulling.density) return - if (!Process_Spacemove(get_dir(pulling.loc, A))) + if(!Process_Spacemove(get_dir(pulling.loc, A))) return step(pulling, get_dir(pulling.loc, A)) diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm index 075bef313fe..e46f77cf0ac 100644 --- a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -1,6 +1,6 @@ var/global/static/ntnrc_uid = 0 -/datum/ntnet_conversation/ +/datum/ntnet_conversation var/id = null var/title = "Untitled Conversation" var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator, diff --git a/code/modules/modular_computers/NTNet/NTNet.dm b/code/modules/modular_computers/NTNet/NTNet.dm index b80668361b8..6816a402c70 100644 --- a/code/modules/modular_computers/NTNet/NTNet.dm +++ b/code/modules/modular_computers/NTNet/NTNet.dm @@ -2,7 +2,7 @@ var/global/datum/ntnet/ntnet_global = new() // This is the NTNet datum. There can be only one NTNet datum in game at once. Modular computers read data from this. -/datum/ntnet/ +/datum/ntnet var/list/relays = list() var/list/logs = list() var/list/available_station_software = list() diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm index c2b809ad46a..15ae12a2859 100644 --- a/code/modules/modular_computers/file_system/computer_file.dm +++ b/code/modules/modular_computers/file_system/computer_file.dm @@ -1,6 +1,6 @@ var/global/file_uid = 0 -/datum/computer_file/ +/datum/computer_file var/filename = "NewFile" // Placeholder. No spacebars var/filetype = "XXX" // File full names are [filename].[filetype] so like NewFile.XXX in this case var/size = 1 // File size in GQ. Integers only! diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 68501d21260..0762e2fd597 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -94,7 +94,7 @@ target = nTarget update_text() -/obj/item/weapon/paper/contract/infernal/ +/obj/item/weapon/paper/contract/infernal /obj/item/weapon/paper/contract/infernal/suicide_act(mob/user) if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/)) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index e6214771ca6..4d05e59f7eb 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -332,8 +332,9 @@ display round(lastgen) and plasmatank amount power_gen = 15000 time_per_sheet = 85 board_path = /obj/item/weapon/circuitboard/machine/pacman/super - overheat() - explosion(src.loc, 3, 3, 3, -1) + +/obj/machinery/power/port_gen/pacman/super/overheat() + explosion(src.loc, 3, 3, 3, -1) /obj/machinery/power/port_gen/pacman/mrs name = "\improper M.R.S.P.A.C.M.A.N.-type portable generator" @@ -342,5 +343,6 @@ display round(lastgen) and plasmatank amount power_gen = 40000 time_per_sheet = 80 board_path = /obj/item/weapon/circuitboard/machine/pacman/mrs - overheat() - explosion(src.loc, 4, 4, 4, -1) + +/obj/machinery/power/port_gen/pacman/mrs/overheat() + explosion(src.loc, 4, 4, 4, -1) diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 38c5b81c650..c1aba816b87 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -1,5 +1,5 @@ /////SINGULARITY SPAWNER -/obj/machinery/the_singularitygen/ +/obj/machinery/the_singularitygen name = "Gravitational Singularity Generator" desc = "An Odd Device which produces a Gravitational Singularity when set up." icon = 'icons/obj/singularity.dmi' diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 791b913cfc5..515051e10bb 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -208,7 +208,7 @@ variance = 25 -/obj/item/ammo_casing/shotgun/improvised/overload/ +/obj/item/ammo_casing/shotgun/improvised/overload name = "overloaded improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards. This one has been packed with even more \ propellant. It's like playing russian roulette, with a shotgun." diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index b25419446a8..193a3fae8fd 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -32,10 +32,6 @@ update_icon() chamber_round(0) - if(unique_rename) - if(istype(A, /obj/item/weapon/pen)) - rename_weapon(user) - /obj/item/weapon/gun/ballistic/revolver/attack_self(mob/living/user) var/num_unloaded = 0 chambered = null diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index a47c14d29a9..ba81adbae21 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/magic/staff/ +/obj/item/weapon/gun/magic/staff slot_flags = SLOT_BACK /obj/item/weapon/gun/magic/staff/change diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index cbdb11b17f4..524c7872c64 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/magic/wand/ +/obj/item/weapon/gun/magic/wand name = "wand of nothing" desc = "It's not just a stick, it's a MAGIC stick!" ammo_type = /obj/item/ammo_casing/magic diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index abb4af2296c..9bcad0db7ba 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -1,7 +1,7 @@ /obj/item/projectile/bullet/reusable name = "reusable bullet" desc = "How do you even reuse a bullet?" - var/ammo_type = /obj/item/ammo_casing/caseless/ + var/ammo_type = /obj/item/ammo_casing/caseless var/dropped = 0 impact_effect_type = null diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 4b548a50e85..9da53bc87a8 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -135,7 +135,7 @@ PoolOrNew(/obj/effect/hotspot, turf) holder.chem_temp = 1000 // hot as shit -/datum/chemical_reaction/reagent_explosion/methsplosion/ +/datum/chemical_reaction/reagent_explosion/methsplosion name = "Meth explosion" id = "methboom1" results = list("methboom1" = 1) diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index 7cc593a1d0d..bc9df91d058 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -1,4 +1,4 @@ -/obj/effect/proc_holder/spell/targeted/touch/ +/obj/effect/proc_holder/spell/targeted/touch var/hand_path = "/obj/item/weapon/melee/touch_attack" var/obj/item/weapon/melee/touch_attack/attached_hand = null invocation_type = "none" //you scream on connecting, not summoning diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index c58526b347b..85d4e87055f 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -245,12 +245,12 @@ if((!O.use_digitigrade && swap_back == FALSE) || (O.use_digitigrade && swap_back == TRUE)) if(O.body_part == LEG_LEFT) if(swap_back == TRUE) - N = new /obj/item/bodypart/l_leg/ + N = new /obj/item/bodypart/l_leg else N = new /obj/item/bodypart/l_leg/digitigrade else if(O.body_part == LEG_RIGHT) if(swap_back == TRUE) - N = new /obj/item/bodypart/r_leg/ + N = new /obj/item/bodypart/r_leg else N = new /obj/item/bodypart/r_leg/digitigrade if(!N) diff --git a/html/changelog.html b/html/changelog.html index e25bcf795c1..3a89cd16699 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,22 @@ -->
+

02 December 2016

+

Cobby updated:

+ +

PeopleAreStrange updated:

+ +

RemieRichards updated:

+ +

30 November 2016

ANGRY CODER updated: