Merge branch 'master' into Synth-Brainwashing

This commit is contained in:
silicons
2022-04-15 17:44:30 -07:00
committed by GitHub
1210 changed files with 9848 additions and 9523 deletions
+1 -1
View File
@@ -92,7 +92,7 @@
update_icon()
return TRUE
/obj/machinery/ntnet_relay/Initialize()
/obj/machinery/ntnet_relay/Initialize(mapload)
uid = gl_uid++
component_parts = list()
+4 -4
View File
@@ -16,7 +16,7 @@
var/allow_creating_vr_mobs = TRUE //So you can have vr_sleepers that always spawn you as a specific person or 1 life/chance vr games
var/only_current_user_can_interact = FALSE
/obj/machinery/vr_sleeper/Initialize()
/obj/machinery/vr_sleeper/Initialize(mapload)
. = ..()
sparks = new /datum/effect_system/spark_spread()
sparks.set_up(2,0)
@@ -151,7 +151,7 @@
if(SOFT_CRIT)
status = "Barely Conscious"
data["vr_avatar"] += list("status" = status, "health" = vr_mob.health, "maxhealth" = vr_mob.maxHealth)
else
else
data["can_delete_avatar"] = FALSE
data["vr_avatar"] = FALSE
data["isliving"] = FALSE
@@ -207,7 +207,7 @@
var/vr_category = "default" //So we can have specific sleepers, eg: "Basketball VR Sleeper", etc.
var/vr_outfit = /datum/outfit/vr
/obj/effect/landmark/vr_spawn/Initialize()
/obj/effect/landmark/vr_spawn/Initialize(mapload)
. = ..()
LAZYADD(GLOB.vr_spawnpoints[vr_category], src)
@@ -235,7 +235,7 @@
var/area/vr_area
var/list/corpse_party
/obj/effect/vr_clean_master/Initialize()
/obj/effect/vr_clean_master/Initialize(mapload)
. = ..()
vr_area = get_base_area(src)
if(!vr_area)
+2 -2
View File
@@ -6,7 +6,7 @@
anchored = TRUE
var/popped = FALSE
/obj/effect/fun_balloon/Initialize()
/obj/effect/fun_balloon/Initialize(mapload)
. = ..()
SSobj.processing |= src
@@ -109,7 +109,7 @@
timeleft = 0
var/list/warp_points
/obj/effect/forcefield/arena_shuttle/Initialize()
/obj/effect/forcefield/arena_shuttle/Initialize(mapload)
. = ..()
for(var/obj/effect/landmark/shuttle_arena_safe/exit in GLOB.landmarks_list)
warp_points += exit
+1 -1
View File
@@ -1577,7 +1577,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
duration = 9
pixel_z = 270
/obj/effect/temp_visual/fireball/Initialize()
/obj/effect/temp_visual/fireball/Initialize(mapload)
. = ..()
animate(src, pixel_z = 0, time = duration)
@@ -13,7 +13,7 @@
icon_state = "vest_stealth"
item_state = "armor"
blood_overlay_type = "armor"
armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 70, "acid" = 70)
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, RAD = 15, FIRE = 70, ACID = 70)
actions_types = list(/datum/action/item_action/hands_free/activate)
allowed = list(
/obj/item/abductor,
@@ -27,10 +27,10 @@
var/stealth_active = 0
var/combat_cooldown = 10
var/datum/icon_snapshot/disguise
var/stealth_armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 70, "acid" = 70)
var/combat_armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 50, "rad" = 50, "fire" = 90, "acid" = 90)
var/stealth_armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 15, BIO = 15, RAD = 15, FIRE = 70, ACID = 70)
var/combat_armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 50, RAD = 50, FIRE = 90, ACID = 90)
/obj/item/clothing/suit/armor/abductor/vest/Initialize()
/obj/item/clothing/suit/armor/abductor/vest/Initialize(mapload)
. = ..()
stealth_armor = getArmor(arglist(stealth_armor))
combat_armor = getArmor(arglist(combat_armor))
@@ -19,7 +19,7 @@
var/mind_control_duration = 1800
var/active_mind_control = FALSE
/obj/item/organ/heart/gland/Initialize()
/obj/item/organ/heart/gland/Initialize(mapload)
. = ..()
icon_state = pick(list("health", "spider", "slime", "emp", "species", "egg", "vent", "mindshock", "viral"))
@@ -8,7 +8,7 @@
mind_control_duration = 1200
var/list/possible_reagents = list()
/obj/item/organ/heart/gland/chem/Initialize()
/obj/item/organ/heart/gland/chem/Initialize(mapload)
. = ..()
for(var/R in subtypesof(/datum/reagent/drug) + subtypesof(/datum/reagent/medicine) + typesof(/datum/reagent/toxin))
possible_reagents += R
@@ -12,7 +12,7 @@
//TODO : replace with presets or spectrum
return rgb(rand(0,255),rand(0,255),rand(0,255))
/obj/machinery/abductor/gland_dispenser/Initialize()
/obj/machinery/abductor/gland_dispenser/Initialize(mapload)
. = ..()
gland_types = subtypesof(/obj/item/organ/heart/gland)
gland_types = shuffle(gland_types)
@@ -49,7 +49,7 @@
icon_state = "teleport"
duration = 80
/obj/effect/temp_visual/teleport_abductor/Initialize()
/obj/effect/temp_visual/teleport_abductor/Initialize(mapload)
. = ..()
var/datum/effect_system/spark_spread/S = new
S.set_up(10,0,loc)
@@ -46,10 +46,10 @@
else
adjustFireLoss(5)
/mob/living/simple_animal/hostile/blob/CanPass(atom/movable/mover, turf/target)
/mob/living/simple_animal/hostile/blob/CanAllowThrough(atom/movable/mover, turf/target)
. = ..()
if(istype(mover, /obj/structure/blob))
return 1
return ..()
return TRUE
/mob/living/simple_animal/hostile/blob/Process_Spacemove(movement_dir = 0)
for(var/obj/structure/blob/B in range(1, src))
@@ -221,7 +221,7 @@
hud_type = /datum/hud/blobbernaut
var/independent = FALSE
/mob/living/simple_animal/hostile/blob/blobbernaut/Initialize()
/mob/living/simple_animal/hostile/blob/blobbernaut/Initialize(mapload)
. = ..()
if(independent)
pass_flags &= ~PASSBLOB
@@ -4,7 +4,7 @@
icon_state = "blank_blob"
desc = "A huge, pulsating yellow mass."
max_integrity = 400
armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 5, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90) // Last stand
armor = list(MELEE = 30, BULLET = 30, LASER = 20, ENERGY = 5, BOMB = 70, BIO = 0, RAD = 0, FIRE = 75, ACID = 90) // Last stand
explosion_block = 6
point_return = -1
health_regen = 0 //we regen in Life() instead of when pulsed
@@ -47,7 +47,7 @@
/obj/structure/blob/core/ex_act(severity, target, origin)
var/damage = 50 - 10 * severity //remember, the core takes half brute damage, so this is 20/15/10 damage based on severity
take_damage(damage, BRUTE, "bomb", 0)
take_damage(damage, BRUTE, BOMB, 0)
/obj/structure/blob/core/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, overmind_reagent_trigger = 1)
. = ..()
@@ -6,7 +6,7 @@
max_integrity = 200
health_regen = 1
point_return = 25
armor = list("melee" = 10, "bullet" = 20, "laser" = 15, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = list(MELEE = 10, BULLET = 20, LASER = 15, ENERGY = 10, BOMB = 40, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
var/list/spores = list()
var/mob/living/simple_animal/hostile/blob/blobbernaut/naut = null
var/max_spores = 3
@@ -4,12 +4,12 @@
icon_state = "blank_blob"
desc = "A large, pulsating yellow mass."
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 65, "acid" = 90)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 65, ACID = 90)
health_regen = 3
point_return = 25
/obj/structure/blob/node/Initialize()
/obj/structure/blob/node/Initialize(mapload)
GLOB.blob_nodes += src
START_PROCESSING(SSobj, src)
. = ..()
@@ -5,7 +5,7 @@
desc = "A thin spire of slightly swaying tendrils."
max_integrity = 60
point_return = 15
armor = list("melee" = 10, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = list(MELEE = 10, BULLET = 10, LASER = 0, ENERGY = 0, BOMB = 15, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
var/resource_delay = 0
/obj/structure/blob/resource/scannerreport()
@@ -9,7 +9,7 @@
explosion_block = 3
point_return = 4
atmosblock = TRUE
armor = list("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = list(MELEE = 25, BULLET = 25, LASER = 15, ENERGY = 10, BOMB = 20, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
var/weakened
/obj/structure/blob/shield/scannerreport()
@@ -28,7 +28,7 @@
desc = "[damaged_desc]"
atmosblock = FALSE
if(!weakened)
armor = armor.setRating("melee" = 15, "bullet" = 15, "laser" = 5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = armor.setRating(MELEE = 15, BULLET = 15, LASER = 5, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
weakened = TRUE
else
icon_state = initial(icon_state)
@@ -36,7 +36,7 @@
desc = initial(desc)
atmosblock = TRUE
if(weakened)
armor = armor.setRating("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = armor.setRating(MELEE = 25, BULLET = 25, LASER = 15, ENERGY = 10, BOMB = 20, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
weakened = FALSE
air_update_turf(1)
@@ -14,15 +14,15 @@
reagent = /datum/reagent/blob/blazing_oil
/datum/blobstrain/reagent/blazing_oil/extinguish_reaction(obj/structure/blob/B)
B.take_damage(1.5, BURN, "energy")
B.take_damage(1.5, BURN, ENERGY)
/datum/blobstrain/reagent/blazing_oil/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if(damage_type == BURN && damage_flag != "energy")
if(damage_type == BURN && damage_flag != ENERGY)
for(var/turf/open/T in range(1, B))
var/obj/structure/blob/C = locate() in T
if(!(C && C.overmind && C.overmind.blobstrain.type == B.overmind.blobstrain.type) && prob(80))
new /obj/effect/hotspot(T)
if(damage_flag == "fire")
if(damage_flag == FIRE)
return 0
return ..()
@@ -17,7 +17,7 @@
return damage * 1.25 //a laser will do 25 damage, which will kill any normal blob
/datum/blobstrain/reagent/electromagnetic_web/death_reaction(obj/structure/blob/B, damage_flag)
if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser")
if(damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER)
empulse_using_range(B.loc, 5) //less than screen range, so you can stand out of range to avoid it
/datum/reagent/blob/electromagnetic_web
@@ -10,7 +10,7 @@
reagent = /datum/reagent/blob/energized_jelly
/datum/blobstrain/reagent/energized_jelly/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && B.obj_integrity - damage <= 0 && prob(10))
if((damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) && B.obj_integrity - damage <= 0 && prob(10))
do_sparks(rand(2, 4), FALSE, B)
return ..()
@@ -19,7 +19,7 @@
/datum/blobstrain/reagent/energized_jelly/emp_reaction(obj/structure/blob/B, severity)
var/damage = rand(30, 50) - severity * rand(10, 15)
B.take_damage(damage, BURN, "energy")
B.take_damage(damage, BURN, ENERGY)
/datum/reagent/blob/energized_jelly
name = "Energized Jelly"
@@ -12,9 +12,9 @@
reagent = /datum/reagent/blob/explosive_lattice
/datum/blobstrain/reagent/explosive_lattice/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if(damage_flag == "bomb")
if(damage_flag == BOMB)
return 0
else if(damage_flag != "melee" && damage_flag != "bullet" && damage_flag != "laser")
else if(damage_flag != MELEE && damage_flag != BULLET && damage_flag != LASER)
return damage * 1.5
return ..()
@@ -13,12 +13,12 @@
reagent = /datum/reagent/blob/pressurized_slime
/datum/blobstrain/reagent/pressurized_slime/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") || damage_type != BURN)
if((damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) || damage_type != BURN)
extinguisharea(B, damage)
return ..()
/datum/blobstrain/reagent/pressurized_slime/death_reaction(obj/structure/blob/B, damage_flag)
if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser")
if(damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER)
B.visible_message("<span class='boldwarning'>The blob ruptures, spraying the area with liquid!</span>")
extinguisharea(B, 50)
@@ -13,7 +13,7 @@
/datum/blobstrain/reagent/reactive_spines/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if(damage && damage_type == BRUTE && B.obj_integrity - damage > 0) //is there any damage, is it brute, and will we be alive
if(damage_flag == "melee")
if(damage_flag == MELEE)
B.visible_message("<span class='boldwarning'>The blob retaliates, lashing out!</span>")
for(var/atom/A in range(1, B))
A.blob_act(B)
@@ -14,7 +14,7 @@
B.forceMove(T)
/datum/blobstrain/reagent/shifting_fragments/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage > 0 && B.obj_integrity - damage > 0 && prob(60-damage))
if((damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) && damage > 0 && B.obj_integrity - damage > 0 && prob(60-damage))
var/list/blobstopick = list()
for(var/obj/structure/blob/OB in orange(1, B))
if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blobstrain.type == B.overmind.blobstrain.type)
@@ -11,7 +11,7 @@
message = "The blobs strike you"
/datum/blobstrain/reagent/synchronous_mesh/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") //the cause isn't fire or bombs, so split the damage
if(damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) //the cause isn't fire or bombs, so split the damage
var/damagesplit = 1 //maximum split is 9, reducing the damage each blob takes to 11% but doing that damage to 9 blobs
for(var/obj/structure/blob/C in orange(1, B))
if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blobstrain.type == B.overmind.blobstrain.type) //if it doesn't have the same chemical or is a core or node, don't split damage to it
@@ -12,7 +12,7 @@
reagent = /datum/reagent/blob/zombifying_pods
/datum/blobstrain/reagent/zombifying_pods/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage <= 20 && B.obj_integrity - damage <= 0 && prob(30)) //if the cause isn't fire or a bomb, the damage is less than 21, we're going to die from that damage, 20% chance of a shitty spore.
if((damage_flag == MELEE || damage_flag == BULLET || damage_flag == LASER) && damage <= 20 && B.obj_integrity - damage <= 0 && prob(30)) //if the cause isn't fire or a bomb, the damage is less than 21, we're going to die from that damage, 20% chance of a shitty spore.
B.visible_message("<span class='warning'><b>A spore floats free of the blob!</b></span>")
var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(B.loc)
BS.overmind = B.overmind
@@ -4,14 +4,15 @@
icon = 'icons/mob/blob.dmi'
light_range = 2
desc = "A thick wall of writhing tendrils."
density = FALSE //this being false causes two bugs, being able to attack blob tiles behind other blobs and being unable to move on blob tiles in no gravity, but turning it to 1 causes the blob mobs to be unable to path through blobs, which is probably worse.
density = TRUE
opacity = 0
anchored = TRUE
layer = BELOW_MOB_LAYER
pass_flags_self = PASSBLOB
CanAtmosPass = ATMOS_PASS_PROC
var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.
max_integrity = 30
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 70)
var/health_regen = 2 //how much health this blob regens when pulsed
var/pulse_timestamp = 0 //we got pulsed when?
var/heal_timestamp = 0 //we got healed when?
@@ -67,11 +68,6 @@
/obj/structure/blob/BlockThermalConductivity()
return atmosblock
/obj/structure/blob/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSBLOB))
return 1
return 0
/obj/structure/blob/CanAtmosPass(turf/T)
return !atmosblock
@@ -210,9 +206,9 @@
. = ..()
if(overmind)
if(overmind.blobstrain.tesla_reaction(src, power))
take_damage(power/400, BURN, "energy")
take_damage(power/400, BURN, ENERGY)
else
take_damage(power/400, BURN, "energy")
take_damage(power/400, BURN, ENERGY)
/obj/structure/blob/extinguish()
..()
@@ -12,7 +12,7 @@
var/nighttime_duration = 900 //15 Minutes
var/issued_XP = FALSE
/obj/effect/sunlight/Initialize()
/obj/effect/sunlight/Initialize(mapload)
. = ..()
/obj/effect/sunlight/proc/start_countdown()
@@ -54,7 +54,7 @@
resistance_flags = NONE
max_integrity = 100
integrity_failure = 0.5
armor = list("melee" = 50, "bullet" = 20, "laser" = 30, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 60)
armor = list(MELEE = 50, BULLET = 20, LASER = 30, ENERGY = 0, BOMB = 50, BIO = 0, RAD = 0, FIRE = 70, ACID = 60)
/obj/structure/closet/crate/coffin/meatcoffin
name = "meat coffin"
@@ -69,7 +69,7 @@
material_drop = /obj/item/reagent_containers/food/snacks/meat/slab
material_drop_amount = 3
integrity_failure = 0.57
armor = list("melee" = 70, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100)
armor = list(MELEE = 70, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 70, BIO = 0, RAD = 0, FIRE = 70, ACID = 100)
/obj/structure/closet/crate/coffin/metalcoffin
name = "metal coffin"
@@ -85,7 +85,7 @@
material_drop_amount = 5
max_integrity = 200
integrity_failure = 0.25
armor = list("melee" = 40, "bullet" = 15, "laser" = 50, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 60)
armor = list(MELEE = 40, BULLET = 15, LASER = 50, ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 70, ACID = 60)
//////////////////////////////////////////////
@@ -302,7 +302,7 @@
firing_effect_type = null
var/obj/item/gun/magic/tentacle/gun //the item that shot it
/obj/item/ammo_casing/magic/tentacle/Initialize()
/obj/item/ammo_casing/magic/tentacle/Initialize(mapload)
gun = loc
. = ..()
@@ -321,7 +321,7 @@
var/chain
var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it
/obj/item/projectile/tentacle/Initialize()
/obj/item/projectile/tentacle/Initialize(mapload)
source = loc
. = ..()
@@ -503,10 +503,10 @@
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) //No armor at all.
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 90) //No armor at all.
mutantrace_variation = NONE
/obj/item/clothing/suit/space/changeling/Initialize()
/obj/item/clothing/suit/space/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
if(ismob(loc))
@@ -524,10 +524,10 @@
desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front."
item_flags = DROPDEL
clothing_flags = STOPSPRESSUREDAMAGE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 90, ACID = 90)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/space/changeling/Initialize()
/obj/item/clothing/head/helmet/space/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -558,12 +558,12 @@
icon_state = "lingarmor"
item_flags = DROPDEL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90)
armor = list(MELEE = 70, BULLET = 60, LASER = 30, ENERGY = 40, BOMB = 10, BIO = 4, RAD = 0, FIRE = 50, ACID = 90)
flags_inv = HIDEJUMPSUIT
cold_protection = 0
heat_protection = 0
/obj/item/clothing/suit/armor/changeling/Initialize()
/obj/item/clothing/suit/armor/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
if(ismob(loc))
@@ -574,10 +574,10 @@
desc = "A tough, hard covering of black chitin with transparent chitin in front."
icon_state = "lingarmorhelmet"
item_flags = DROPDEL
armor = list("melee" = 70, "bullet" = 60, "laser" = 30, "energy" = 40, "bomb" = 10, "bio" = 4, "rad" = 0, "fire" = 50, "acid" = 90)
armor = list(MELEE = 70, BULLET = 60, LASER = 30, ENERGY = 40, BOMB = 10, BIO = 4, RAD = 0, FIRE = 50, ACID = 90)
flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE
/obj/item/clothing/head/helmet/changeling/Initialize()
/obj/item/clothing/head/helmet/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -653,9 +653,9 @@
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0)
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 35, BIO = 35, RAD = 35, FIRE = 0, ACID = 0)
/obj/item/clothing/gloves/claws/Initialize()
/obj/item/clothing/gloves/claws/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -697,7 +697,7 @@
cold_protection = ARMS|HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0)
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 35, BIO = 35, RAD = 35, FIRE = 0, ACID = 0)
enhancement = 6 // first, do harm. all of it. all of the harm. just fuck em up.
wound_enhancement = 6
var/fast_enhancement = 6
@@ -727,7 +727,7 @@
to_chat(user, "<span class='notice'>[src] are now formed to allow for [fasthands ? "fast, precise strikes" : "crippling, damaging blows"].</span>")
addtimer(CALLBACK(src, .proc/use_buffs, user, TRUE), 0.1) // go fuckin get em
/obj/item/clothing/gloves/fingerless/pugilist/cling/Initialize()
/obj/item/clothing/gloves/fingerless/pugilist/cling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -12,7 +12,7 @@
/obj/item/clothing/glasses/changeling
name = "flesh"
/obj/item/clothing/glasses/changeling/Initialize()
/obj/item/clothing/glasses/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -27,7 +27,7 @@
/obj/item/clothing/under/changeling
name = "flesh"
/obj/item/clothing/under/changeling/Initialize()
/obj/item/clothing/under/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -43,7 +43,7 @@
name = "flesh"
allowed = list(/obj/item/changeling)
/obj/item/clothing/suit/changeling/Initialize()
/obj/item/clothing/suit/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -58,7 +58,7 @@
/obj/item/clothing/head/changeling
name = "flesh"
/obj/item/clothing/head/changeling/Initialize()
/obj/item/clothing/head/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -72,7 +72,7 @@
/obj/item/clothing/shoes/changeling
name = "flesh"
/obj/item/clothing/shoes/changeling/Initialize()
/obj/item/clothing/shoes/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -87,7 +87,7 @@
/obj/item/clothing/gloves/changeling
name = "flesh"
/obj/item/clothing/gloves/changeling/Initialize()
/obj/item/clothing/gloves/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -102,7 +102,7 @@
/obj/item/clothing/mask/changeling
name = "flesh"
/obj/item/clothing/mask/changeling/Initialize()
/obj/item/clothing/mask/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -119,7 +119,7 @@
slot_flags = ALL
allowed = list(/obj/item/changeling)
/obj/item/changeling/Initialize()
/obj/item/changeling/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
@@ -10,7 +10,7 @@
opacity = 0
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
/obj/effect/clockwork/Initialize()
/obj/effect/clockwork/Initialize(mapload)
. = ..()
GLOB.all_clockwork_objects += src
@@ -16,7 +16,7 @@
/obj/effect/clockwork/city_of_cogs_rift/singularity_pull()
return
/obj/effect/clockwork/city_of_cogs_rift/Initialize()
/obj/effect/clockwork/city_of_cogs_rift/Initialize(mapload)
. = ..()
visible_message("<span class='warning'>The air above [loc] shimmers and pops as a [name] forms there!</span>")
for(var/mob/M in GLOB.player_list)
@@ -32,7 +32,7 @@
smooth = SMOOTH_TRUE
layer = CLOSED_TURF_LAYER
/obj/effect/clockwork/overlay/wall/Initialize()
/obj/effect/clockwork/overlay/wall/Initialize(mapload)
. = ..()
queue_smooth_neighbors(src)
addtimer(CALLBACK(GLOBAL_PROC, .proc/queue_smooth, src), 1)
@@ -200,7 +200,7 @@
sigil_name = "Sigil of Transmission"
affects_servants = TRUE
/obj/effect/clockwork/sigil/transmission/Initialize()
/obj/effect/clockwork/sigil/transmission/Initialize(mapload)
. = ..()
update_icon()
@@ -229,7 +229,7 @@
else if(get_clockwork_power())
to_chat(L, "<span class='brass'>You feel a slight, static shock.</span>")
/obj/effect/clockwork/sigil/transmission/Initialize()
/obj/effect/clockwork/sigil/transmission/Initialize(mapload)
. = ..()
START_PROCESSING(SSobj, src)
@@ -8,7 +8,7 @@
density = TRUE
CanAtmosPass = ATMOS_PASS_NO
/obj/effect/clockwork/servant_blocker/Initialize()
/obj/effect/clockwork/servant_blocker/Initialize(mapload)
. = ..()
air_update_turf(TRUE)
@@ -17,7 +17,7 @@
var/is_stable = FALSE
var/busy = FALSE //If someone is already working on closing the gateway, only needed for stable gateways but in the parent to not need typecasting
/obj/effect/clockwork/spatial_gateway/Initialize()
/obj/effect/clockwork/spatial_gateway/Initialize(mapload)
. = ..()
addtimer(CALLBACK(src, .proc/check_setup), 1)
@@ -72,8 +72,11 @@ drain_amount: How much is drained by default; Influenced by a multiplier on most
cell.use(.)
spark_system.start()
/obj/mecha/power_drain(clockcult_user, drain_weapons = FALSE, recursive = FALSE, drain_amount = MIN_CLOCKCULT_POWER)
if(!clockcult_user || (occupant && !is_servant_of_ratvar(occupant)))
/obj/vehicle/sealed/mecha/power_drain(clockcult_user, drain_weapons = FALSE, recursive = FALSE, drain_amount = MIN_CLOCKCULT_POWER)
if(!clockcult_user || LAZYLEN(occupants))
for(var/mob/living/MB in occupants)
if(is_servant_of_ratvar(MB))
return
if(recursive)
var/succ = 0
for(var/atom/movable/target in contents) //Hiding in your mech won't save you.
@@ -8,7 +8,7 @@
icon_state = "rare_pepe"
w_class = WEIGHT_CLASS_SMALL
/obj/item/clockwork/Initialize()
/obj/item/clockwork/Initialize(mapload)
. = ..()
ratvar_act()
GLOB.all_clockwork_objects += src
@@ -172,7 +172,7 @@
var/randomspritemax = 2
var/sprite_shift = 9
/obj/item/clockwork/alloy_shards/Initialize()
/obj/item/clockwork/alloy_shards/Initialize(mapload)
. = ..()
if(randomsinglesprite)
replace_name_desc()
@@ -26,7 +26,7 @@
var/damage_per_combo = 2
var/maximum_combo_damage = 18 //33 damage on max stacks. Usually the target will already be dead by then but if they somehow aren't, better to have this capped
/obj/item/clockwork/brass_claw/Initialize()
/obj/item/clockwork/brass_claw/Initialize(mapload)
. = ..()
AddComponent(/datum/component/butchering, 60, 80)
@@ -7,7 +7,7 @@
item_state = "ratvarian_shield"
desc = "A resilient shield made out of brass.. It feels warm to the touch."
var/clockwork_desc = "A powerful shield of ratvarian making. It absorbs blocked attacks to charge devastating bashes."
armor = list("melee" = 80, "bullet" = 70, "laser" = -10, "energy" = -20, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
armor = list(MELEE = 80, BULLET = 70, LASER = -10, ENERGY = -20, BOMB = 60, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_KINETIC_STRONG | SHIELD_ENERGY_WEAK
max_integrity = 300 //High integrity, extremely strong against melee / bullets, but still quite easy to destroy with lasers and energy
repair_material = /obj/item/stack/tile/brass
@@ -8,9 +8,9 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
flags_inv = HIDEEARS|HIDEHAIR|HIDEFACE|HIDESNOUT
mutantrace_variation = STYLE_MUZZLE
armor = list("melee" = 50, "bullet" = 70, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100, "magic" = 60, "wound" = 65)
armor = list(MELEE = 50, BULLET = 70, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, MAGIC = 60, WOUND = 65)
/obj/item/clothing/head/helmet/clockwork/Initialize()
/obj/item/clothing/head/helmet/clockwork/Initialize(mapload)
. = ..()
ratvar_act()
GLOB.all_clockwork_objects += src
@@ -68,11 +68,11 @@
cold_protection = CHEST|GROIN|LEGS
heat_protection = CHEST|GROIN|LEGS
resistance_flags = FIRE_PROOF | ACID_PROOF
armor = list("melee" = 60, "bullet" = 70, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100, "magic" = 60, "wound" = 65)
armor = list(MELEE = 60, BULLET = 70, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, MAGIC = 60, WOUND = 65)
allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/mmi/posibrain/soul_vessel, /obj/item/reagent_containers/food/drinks/bottle/holyoil)
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC
/obj/item/clothing/suit/armor/clockwork/Initialize()
/obj/item/clothing/suit/armor/clockwork/Initialize(mapload)
. = ..()
ratvar_act()
GLOB.all_clockwork_objects += src
@@ -135,9 +135,9 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
resistance_flags = FIRE_PROOF | ACID_PROOF
armor = list("melee" = 80, "bullet" = 70, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100, "magic" = 70, "wound" = 85)
armor = list(MELEE = 80, BULLET = 70, LASER = 0, ENERGY = 0, BOMB = 60, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, MAGIC = 70, WOUND = 85)
/obj/item/clothing/gloves/clockwork/Initialize()
/obj/item/clothing/gloves/clockwork/Initialize(mapload)
. = ..()
ratvar_act()
GLOB.all_clockwork_objects += src
@@ -190,7 +190,7 @@
equip_delay_other = 30
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/clockwork/Initialize()
/obj/item/clothing/shoes/clockwork/Initialize(mapload)
. = ..()
ratvar_act()
GLOB.all_clockwork_objects += src
@@ -106,7 +106,7 @@
if(!GLOB.ratvar_awakens)
SStgui.close_uis(src)
/obj/item/clockwork/slab/Initialize()
/obj/item/clockwork/slab/Initialize(mapload)
. = ..()
update_slab_info(src)
START_PROCESSING(SSobj, src)
@@ -11,7 +11,7 @@
var/creation_message = "<span class='brass'>The chassis shudders and hums to life!</span>"
var/construct_type //The construct this shell will create
/obj/item/clockwork/construct_chassis/Initialize()
/obj/item/clockwork/construct_chassis/Initialize(mapload)
. = ..()
var/area/A = get_area(src)
if(A && construct_type)
@@ -92,7 +92,7 @@
var/infinite_resources = FALSE //No.
var/static/obj/item/seasonal_hat //Share it with all other scarabs, since we're from the same cult!
/obj/item/clockwork/construct_chassis/cogscarab/Initialize()
/obj/item/clockwork/construct_chassis/cogscarab/Initialize(mapload)
. = ..()
if(GLOB.servants_active)
infinite_resources = FALSE //This check is relatively irrelevant until *someone* makes the infinite resources var default to true again, so, leaving it in.
@@ -12,7 +12,7 @@
item_flags = NOBLUDGEON
var/obj/machinery/power/apc/apc
/obj/item/clockwork/integration_cog/Initialize()
/obj/item/clockwork/integration_cog/Initialize(mapload)
. = ..()
transform *= 0.5 //little cog!
@@ -13,7 +13,7 @@
var/recharge_cooldown = 300 //divided by 10 if ratvar is alive
actions_types = list(/datum/action/item_action/clock/toggle_visor)
/obj/item/clothing/glasses/judicial_visor/Initialize()
/obj/item/clothing/glasses/judicial_visor/Initialize(mapload)
. = ..()
GLOB.all_clockwork_objects += src
blaster = new(src)
@@ -25,7 +25,7 @@
force_replace_ai_name = TRUE
overrides_aicore_laws = TRUE
/obj/item/mmi/posibrain/soul_vessel/Initialize()
/obj/item/mmi/posibrain/soul_vessel/Initialize(mapload)
. = ..()
radio.on = FALSE
laws = new /datum/ai_laws/ratvar()
@@ -12,7 +12,7 @@
visor_vars_to_toggle = NONE //we don't actually toggle anything we just set it
tint = 3 //this'll get reset, but it won't handle vision updates properly otherwise
/obj/item/clothing/glasses/wraith_spectacles/Initialize()
/obj/item/clothing/glasses/wraith_spectacles/Initialize(mapload)
. = ..()
GLOB.all_clockwork_objects += src
@@ -23,7 +23,7 @@
var/playstyle_string = "<span class='heavy_brass'>You are a bug, yell at whoever spawned you!</span>"
var/empower_string = "<span class='heavy_brass'>You have nothing to empower, yell at the coders!</span>" //Shown to the mob when the herald beacon activates
/mob/living/simple_animal/hostile/clockwork/Initialize()
/mob/living/simple_animal/hostile/clockwork/Initialize(mapload)
. = ..()
update_values()
@@ -34,7 +34,7 @@
Stay near your host to protect and heal them; being too far from your host will rapidly cause you massive damage. Recall to your host if you are too weak and believe you cannot continue \
fighting safely. As a final note, you should probably avoid harming any fellow servants of Ratvar.</span>"
/mob/living/simple_animal/hostile/clockwork/guardian/Initialize()
/mob/living/simple_animal/hostile/clockwork/guardian/Initialize(mapload)
. = ..()
true_name = pick(possible_true_names)
@@ -310,7 +310,7 @@ Judgement 80k power or nine converts
var/datum/progressbar/progbar
/datum/clockwork_scripture/ranged_ability/Destroy()
qdel(progbar)
progbar.end_progress()
return ..()
/datum/clockwork_scripture/ranged_ability/scripture_effects()
@@ -333,7 +333,7 @@ Judgement 80k power or nine converts
(allow_mobility || (can_recite() && T == get_turf(invoker))))
if(progbar)
if(slab.slab_ability.in_progress)
qdel(progbar)
progbar.end_progress()
else
progbar.update(end_time - world.time)
stoplag(1)
@@ -207,20 +207,20 @@
/datum/clockwork_scripture/create_object/summon_arbiter
descname = "Powerful Assault Mech"
name = "Summon Neovgre, the Anima Bulwark"
desc = "Calls forth the mighty Anima Bulwark, a mech with superior defensive and offensive capabilities. It will \
desc = "Calls forth the mighty Anima Bulwark, a two-person mech with superior defensive and offensive capabilities. It will \
steadily regenerate HP and triple its regeneration speed while standing \
on a clockwork tile. It will automatically draw power from nearby sigils of \
transmission should the need arise. Its Arbiter laser cannon can decimate foes \
from a range and is capable of smashing through any barrier presented to it. \
Be warned however, choosing to pilot Neovgre is a lifetime commitment, once you are \
in you cannot leave and when it is destroyed it will explode catastrophically, with you inside."
Be warned however, choosing to pilot or man Neovgre is a lifetime commitment, once you are \
in you cannot leave and when it is destroyed it will explode catastrophically, with everyone inside."
invocations = list("By the strength of the alloy...!!", "...call forth the Arbiter!!")
channel_time = 200 // This is a strong fucking weapon, 20 seconds channel time is getting off light I tell ya.
power_cost = 75000 //75 KW
usage_tip = "Neovgre is a powerful mech that will crush your enemies!"
invokers_required = 5
multiple_invokers_used = TRUE
object_path = /obj/mecha/combat/neovgre
object_path = /obj/vehicle/sealed/mecha/combat/neovgre
tier = SCRIPTURE_APPLICATION
primary_component = BELLIGERENT_EYE
sort_priority = 8
@@ -18,7 +18,7 @@
var/construction_value = 0 //How much value the structure contributes to the overall "power" of the structures on the station
var/immune_to_servant_attacks = FALSE //if we ignore attacks from servants of ratvar instead of taking damage
/obj/structure/destructible/clockwork/Initialize()
/obj/structure/destructible/clockwork/Initialize(mapload)
. = ..()
change_construction_value(construction_value)
GLOB.all_clockwork_objects += src
@@ -72,11 +72,6 @@
return FALSE
return ..()
/obj/structure/destructible/clockwork/mech_melee_attack(obj/mecha/M)
if(M.occupant && is_servant_of_ratvar(M.occupant) && immune_to_servant_attacks)
return FALSE
return ..()
/obj/structure/destructible/clockwork/proc/get_efficiency_mod()
if(GLOB.ratvar_awakens)
return 2
@@ -134,7 +129,7 @@
density = FALSE
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
/obj/structure/destructible/clockwork/massive/Initialize()
/obj/structure/destructible/clockwork/massive/Initialize(mapload)
. = ..()
GLOB.poi_list += src
@@ -5,7 +5,7 @@
clockwork_desc = "A trap that shouldn't exist, and you should report this as a bug."
var/list/wired_to
/obj/structure/destructible/clockwork/trap/Initialize()
/obj/structure/destructible/clockwork/trap/Initialize(mapload)
. = ..()
wired_to = list()
@@ -80,7 +80,7 @@
break_message = "<span class='warning'>The trigger breaks apart!</span>"
density = FALSE
/obj/structure/destructible/clockwork/trap/trigger/Initialize()
/obj/structure/destructible/clockwork/trap/trigger/Initialize(mapload)
. = ..()
for(var/obj/structure/destructible/clockwork/trap/T in get_turf(src))
if(!istype(T, /obj/structure/destructible/clockwork/trap/trigger))
@@ -33,7 +33,7 @@
var/recalls_remaining = 1
var/recalling
/obj/structure/destructible/clockwork/massive/celestial_gateway/Initialize()
/obj/structure/destructible/clockwork/massive/celestial_gateway/Initialize(mapload)
. = ..()
INVOKE_ASYNC(src, .proc/spawn_animation)
glow = new(get_turf(src))
@@ -199,7 +199,7 @@
/obj/structure/destructible/clockwork/massive/celestial_gateway/ex_act(severity, target, origin)
var/damage = max((obj_integrity * 0.7) / severity, 100) //requires multiple bombs to take down
take_damage(damage, BRUTE, "bomb", 0)
take_damage(damage, BRUTE, BOMB, 0)
/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_time(var/deciseconds = TRUE)
if(seconds_until_activation)
@@ -301,7 +301,7 @@
for(var/obj/O in orange(1, src))
if(!O.pulledby && !iseffect(O) && O.density)
if(!step_away(O, src, 2) || get_dist(O, src) < 2)
O.take_damage(50, BURN, "bomb")
O.take_damage(50, BURN, BOMB)
O.update_icon()
conversion_pulse() //Converts the nearby area into clockcult-style
@@ -16,7 +16,7 @@
var/hierophant_cost = MIN_CLOCKCULT_POWER //how much it costs to broadcast with large text
var/gateway_cost = 2000 //how much it costs to open a gateway
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/Initialize()
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/Initialize(mapload)
. = ..()
toggle(1)
@@ -17,7 +17,7 @@
var/votes_needed = 0 //How many votes are needed to activate the beacon
var/available = FALSE //If the beacon can be used
/obj/structure/destructible/clockwork/heralds_beacon/Initialize()
/obj/structure/destructible/clockwork/heralds_beacon/Initialize(mapload)
. = ..()
voters = list()
START_PROCESSING(SSprocessing, src)
@@ -16,7 +16,7 @@
var/atom/movable/target
var/list/idle_messages = list(" sulkily glares around.", " lazily drifts from side to side.", " looks around for something to burn.", " slowly turns in circles.")
/obj/structure/destructible/clockwork/ocular_warden/Initialize()
/obj/structure/destructible/clockwork/ocular_warden/Initialize(mapload)
. = ..()
START_PROCESSING(SSfastprocess, src)
@@ -76,8 +76,8 @@
L.adjust_fire_stacks(damage_per_tick)
L.IgniteMob()
else if(ismecha(target))
var/obj/mecha/M = target
M.take_damage(damage_per_tick * get_efficiency_mod(), BURN, "melee", 1, get_dir(src, M))
var/obj/vehicle/sealed/mecha/M = target
M.take_damage(damage_per_tick * get_efficiency_mod(), BURN, MELEE, 1, get_dir(src, M))
new /obj/effect/temp_visual/ratvar/ocular_warden(get_turf(target))
@@ -91,8 +91,8 @@
var/mob/living/L = target
to_chat(L, "<span class='neovgre'>\"I SEE YOU!\"</span>\n<span class='userdanger'>[src]'s gaze [GLOB.ratvar_awakens ? "melts you alive" : "burns you"]!</span>")
else if(ismecha(target))
var/obj/mecha/M = target
to_chat(M.occupant, "<span class='neovgre'>\"I SEE YOU!\"</span>" )
var/obj/vehicle/sealed/mecha/M = target
to_chat(M.occupants, "<span class='neovgre'>\"I SEE YOU!\"</span>" )
else if(prob(0.5)) //Extremely low chance because of how fast the subsystem it uses processes
if(prob(50))
visible_message("<span class='notice'>[src][pick(idle_messages)]</span>")
@@ -131,8 +131,11 @@
. += L
var/list/viewcache = list()
for(var/N in GLOB.mechas_list)
var/obj/mecha/M = N
if(get_dist(M, src) <= sight_range && M.occupant && !is_servant_of_ratvar(M.occupant))
var/obj/vehicle/sealed/mecha/M = N
if(get_dist(M, src) <= sight_range && LAZYLEN(M.occupants))
for(var/mob/living/MB in M.occupants)
if(is_servant_of_ratvar(MB))
return
if(!length(viewcache))
for (var/obj/Z in view(sight_range, src))
viewcache += Z
@@ -17,7 +17,7 @@
var/convert_range = 10
obj_flags = CAN_BE_HIT | DANGEROUS_POSSESSION
/obj/structure/destructible/clockwork/massive/ratvar/Initialize()
/obj/structure/destructible/clockwork/massive/ratvar/Initialize(mapload)
. = ..()
GLOB.ratvar_awakens++
for(var/obj/O in GLOB.all_clockwork_objects)
@@ -16,7 +16,7 @@
var/ini_dir = null
/obj/structure/destructible/clockwork/reflector/Initialize()
/obj/structure/destructible/clockwork/reflector/Initialize(mapload)
. = ..()
allowed_projectile_typecache = typecacheof(allowed_projectile_typecache)
@@ -16,7 +16,7 @@
light_color = "#DAAA18"
var/star_light_star_bright = FALSE //If this stargazer can see starlight
/obj/structure/destructible/clockwork/stargazer/Initialize()
/obj/structure/destructible/clockwork/stargazer/Initialize(mapload)
. = ..()
START_PROCESSING(SSprocessing, src)
@@ -14,7 +14,7 @@
debris = list()
var/timerid
/obj/structure/destructible/clockwork/taunting_trail/Initialize()
/obj/structure/destructible/clockwork/taunting_trail/Initialize(mapload)
. = ..()
timerid = QDEL_IN(src, 15)
var/obj/structure/destructible/clockwork/taunting_trail/Tt = locate(/obj/structure/destructible/clockwork/taunting_trail) in loc
@@ -9,12 +9,14 @@
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor/mech/Crossed(atom/movable/AM)
. = ..()
if(!istype(AM,/obj/mecha/))
if(!istype(AM,/obj/vehicle/sealed/mecha/))
return
var/obj/mecha/M = AM
if(M.occupant && is_servant_of_ratvar(M.occupant))
return
var/obj/vehicle/sealed/mecha/M = AM
if(LAZYLEN(M.occupants))
for(var/mob/living/MB in M.occupants)
if(is_servant_of_ratvar(MB))
return
audible_message("<i>*click*</i>")
playsound(src, 'sound/items/screwdriver2.ogg', 50, TRUE)
activate()
@@ -13,7 +13,7 @@
var/wiggle_wiggle
var/mutable_appearance/impale_overlay //This is applied to any mob impaled so that they visibly have the skewer coming through their chest
/obj/structure/destructible/clockwork/trap/brass_skewer/Initialize()
/obj/structure/destructible/clockwork/trap/brass_skewer/Initialize(mapload)
. = ..()
START_PROCESSING(SSfastprocess, src)
@@ -68,9 +68,9 @@
mouse_opacity = MOUSE_OPACITY_OPAQUE //So players can interact with the tile it's on to pull them off
buckle_mob(squirrel, TRUE)
else
var/obj/mecha/M = locate() in get_turf(src)
var/obj/vehicle/sealed/mecha/M = locate() in get_turf(src)
if(M)
M.take_damage(50,BRUTE,"melee")
M.take_damage(50,BRUTE,MELEE)
M.visible_message("<span class='danger'>A massive brass spike erupts from the ground, penetrating \the [M] and shattering the trap into pieces!</span>")
addtimer(CALLBACK(src, .proc/take_damage, max_integrity), 1)
else
@@ -15,7 +15,7 @@
/obj/structure/destructible/clockwork/wall_gear/displaced
anchored = FALSE
/obj/structure/destructible/clockwork/wall_gear/Initialize()
/obj/structure/destructible/clockwork/wall_gear/Initialize(mapload)
. = ..()
new /obj/effect/temp_visual/ratvar/gear(get_turf(src))
+18 -18
View File
@@ -39,7 +39,7 @@
armour_penetration = 35
actions_types = list(/datum/action/item_action/cult_dagger)
/obj/item/melee/cultblade/dagger/Initialize()
/obj/item/melee/cultblade/dagger/Initialize(mapload)
. = ..()
var/image/I = image(icon = 'icons/effects/blood.dmi' , icon_state = null, loc = src)
I.override = TRUE
@@ -62,7 +62,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "rended")
/obj/item/melee/cultblade/Initialize()
/obj/item/melee/cultblade/Initialize(mapload)
. = ..()
AddComponent(/datum/component/butchering, 40, 100)
AddElement(/datum/element/sword_point)
@@ -87,7 +87,7 @@
item_flags = NEEDS_PERMIT | DROPDEL
flags_1 = NONE
/obj/item/melee/cultblade/ghost/Initialize()
/obj/item/melee/cultblade/ghost/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
@@ -131,7 +131,7 @@
var/spin_cooldown = 250
var/dash_toggled = TRUE
/obj/item/cult_bastard/Initialize()
/obj/item/cult_bastard/Initialize(mapload)
. = ..()
set_light(4)
jaunt = new(src)
@@ -297,7 +297,7 @@
desc = "A torn, dust-caked hood. Strange letters line the inside."
flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS
flags_cover = HEADCOVERSEYES
armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 20, "bomb" = 65, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
armor = list(MELEE = 40, BULLET = 30, LASER = 40,ENERGY = 20, BOMB = 65, BIO = 10, RAD = 0, FIRE = 10, ACID = 10)
cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -310,7 +310,7 @@
item_state = "cultrobes"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 20, "bomb" = 65, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
armor = list(MELEE = 40, BULLET = 30, LASER = 40,ENERGY = 20, BOMB = 65, BIO = 10, RAD = 0, FIRE = 10, ACID = 10)
flags_inv = HIDEJUMPSUIT
cold_protection = CHEST|GROIN|LEGS|ARMS
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
@@ -326,7 +326,7 @@
/obj/item/clothing/head/culthood/alt/ghost
item_flags = DROPDEL
/obj/item/clothing/head/culthood/alt/ghost/Initialize()
/obj/item/clothing/head/culthood/alt/ghost/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
@@ -340,7 +340,7 @@
/obj/item/clothing/suit/cultrobes/alt/ghost
item_flags = DROPDEL
/obj/item/clothing/suit/cultrobes/alt/ghost/Initialize()
/obj/item/clothing/suit/cultrobes/alt/ghost/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
@@ -350,7 +350,7 @@
item_state = "magus"
desc = "A helm worn by the followers of Nar'Sie."
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT
armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10)
armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 20, BOMB = 0, BIO = 0, RAD = 0, FIRE = 10, ACID = 10)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
mutantrace_variation = STYLE_MUZZLE
@@ -361,7 +361,7 @@
item_state = "magusred"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
armor = list("melee" = 50, "bullet" = 30, "laser" = 50,"energy" = 20, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
armor = list(MELEE = 50, BULLET = 30, LASER = 50,ENERGY = 20, BOMB = 25, BIO = 10, RAD = 0, FIRE = 10, ACID = 10)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/head/helmet/space/hardsuit/cult
@@ -369,7 +369,7 @@
desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum."
icon_state = "cult_helmet"
item_state = "cult_helmet"
armor = list("melee" = 60, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75)
armor = list(MELEE = 60, BULLET = 50, LASER = 30,ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 40, ACID = 75)
brightness_on = 0
actions_types = list()
@@ -385,7 +385,7 @@
desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum."
w_class = WEIGHT_CLASS_BULKY
allowed = list(/obj/item/tome, /obj/item/melee/cultblade, /obj/item/tank/internals/)
armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75)
armor = list(MELEE = 70, BULLET = 50, LASER = 30,ENERGY = 15, BOMB = 30, BIO = 30, RAD = 30, FIRE = 40, ACID = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult
/obj/item/clothing/suit/space/hardsuit/cult/ComponentInitialize()
@@ -413,7 +413,7 @@
icon_state = "cult_armor"
item_state = "cult_armor"
w_class = WEIGHT_CLASS_BULKY
armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 30, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60)
armor = list(MELEE = 50, BULLET = 40, LASER = 50,ENERGY = 30, BOMB = 50, BIO = 30, RAD = 30, FIRE = 50, ACID = 60)
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
var/current_charges = 3
@@ -423,7 +423,7 @@
name = "empowered cultist armor"
desc = "Empowered garb which creates a powerful shield around the user."
icon_state = "cult_hoodalt"
armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 30, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 50)
armor = list(MELEE = 50, BULLET = 40, LASER = 50,ENERGY = 30, BOMB = 50, BIO = 30, RAD = 30, FIRE = 50, ACID = 50)
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
@@ -473,7 +473,7 @@
flags_inv = HIDEJUMPSUIT
allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
body_parts_covered = CHEST|GROIN|LEGS|ARMS
armor = list("melee" = -50, "bullet" = -50, "laser" = -50,"energy" = -50, "bomb" = -50, "bio" = -50, "rad" = -50, "fire" = 0, "acid" = 0)
armor = list(MELEE = -50, BULLET = -50, LASER = -50,ENERGY = -50, BOMB = -50, BIO = -50, RAD = -50, FIRE = 0, ACID = 0)
slowdown = -1
hoodtype = /obj/item/clothing/head/hooded/berserkerhood
@@ -483,7 +483,7 @@
icon_state = "culthood"
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
armor = list("melee" = -50, "bullet" = -50, "laser" = -50, "energy" = -50, "bomb" = -50, "bio" = -50, "rad" = -50, "fire" = 0, "acid" = 0)
armor = list(MELEE = -50, BULLET = -50, LASER = -50, ENERGY = -50, BOMB = -50, BIO = -50, RAD = -50, FIRE = 0, ACID = 0)
/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot)
..()
@@ -716,7 +716,7 @@
var/wielded = FALSE // track wielded status on item
/obj/item/cult_spear/Initialize()
/obj/item/cult_spear/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield)
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield)
@@ -874,7 +874,7 @@
var/firing = FALSE
var/angle
/obj/item/blood_beam/Initialize()
/obj/item/blood_beam/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
@@ -89,7 +89,7 @@
var/static/image/radial_shell = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct-cult")
var/static/image/radial_unholy_water = image(icon = 'icons/obj/drinks.dmi', icon_state = "holyflask")
/obj/structure/destructible/cult/talisman/Initialize()
/obj/structure/destructible/cult/talisman/Initialize(mapload)
. = ..()
radial_unholy_water.color = "#333333"
+1 -1
View File
@@ -5,7 +5,7 @@ This file contains the cult dagger and rune list code
*/
/obj/item/melee/cultblade/dagger/Initialize()
/obj/item/melee/cultblade/dagger/Initialize(mapload)
. = ..()
if(!LAZYLEN(GLOB.rune_types))
GLOB.rune_types = list()
+1 -1
View File
@@ -832,7 +832,7 @@ structure_check() searches for nearby cultist structures required for the invoca
var/ghost_limit = 3
var/ghosts = 0
/obj/effect/rune/manifest/Initialize()
/obj/effect/rune/manifest/Initialize(mapload)
. = ..()
+1 -1
View File
@@ -44,7 +44,7 @@
Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
of intentionally harming a fellow devil.</B>"
/mob/living/simple_animal/imp/Initialize()
/mob/living/simple_animal/imp/Initialize(mapload)
..()
boost = world.time + 30
@@ -25,7 +25,7 @@
var/mob/living/oldform
var/list/devil_overlays[DEVIL_TOTAL_LAYERS]
/mob/living/carbon/true_devil/Initialize()
/mob/living/carbon/true_devil/Initialize(mapload)
create_bodyparts() //initialize bodyparts
create_internal_organs()
grant_all_languages()
@@ -8,7 +8,7 @@
///Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
var/is_in_use = FALSE
/obj/effect/eldritch/Initialize()
/obj/effect/eldritch/Initialize(mapload)
. = ..()
var/image/I = image(icon = 'icons/effects/eldritch.dmi', icon_state = null, loc = src)
I.override = TRUE
@@ -216,7 +216,7 @@
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
alpha = 0
/obj/effect/broken_illusion/Initialize()
/obj/effect/broken_illusion/Initialize(mapload)
. = ..()
addtimer(CALLBACK(src,.proc/show_presence),15 SECONDS)
addtimer(CALLBACK(src,.proc/remove_presence),195 SECONDS)
@@ -295,7 +295,7 @@
///Tracked image
var/image/img
/obj/effect/reality_smash/Initialize()
/obj/effect/reality_smash/Initialize(mapload)
. = ..()
GLOB.reality_smash_track.smashes += src
img = image(icon, src, image_state, OBJ_LAYER)
@@ -8,7 +8,7 @@
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()
/obj/item/living_heart/Initialize(mapload)
. = ..()
GLOB.living_heart_cache.Add(src) //Add is better than +=.
@@ -177,7 +177,7 @@
allowed = list(/obj/item/melee/sickly_blade, /obj/item/forbidden_book, /obj/item/living_heart)
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/eldritch
// slightly better than normal cult robes
armor = list("melee" = 50, "bullet" = 50, "laser" = 50,"energy" = 50, "bomb" = 35, "bio" = 20, "rad" = 0, "fire" = 20, "acid" = 20)
armor = list(MELEE = 50, BULLET = 50, LASER = 50,ENERGY = 50, BOMB = 35, BIO = 20, RAD = 0, FIRE = 20, ACID = 20)
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
/obj/item/reagent_containers/glass/beaker/eldritch
@@ -193,7 +193,7 @@
flags_inv = NONE
flags_cover = NONE
desc = "Black like tar, doesn't reflect any light. Runic symbols line the outside, with each flash you lose comprehension of what you are seeing."
armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 30, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
obj_flags = NONE | EXAMINE_SKIP
/obj/item/clothing/suit/hooded/cultrobes/void
@@ -205,7 +205,7 @@
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/void
flags_inv = NONE
// slightly worse than normal cult robes
armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 30, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
pocket_storage_component_path = /datum/component/storage/concrete/pockets/void_cloak
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
@@ -310,7 +310,7 @@
. += "This item can carve 'Grasping carving' - when stepped on it causes heavy damage to the legs and stuns for 5 seconds."
. += "This item can carve 'Mad carving' - when stepped on it causes dizzyness, jiterryness, temporary blindness, confusion , stuttering and slurring."
/obj/item/melee/rune_knife/Initialize()
/obj/item/melee/rune_knife/Initialize(mapload)
. = ..()
linked_action = new(src)
@@ -402,11 +402,11 @@
new /obj/effect/hotspot(T)
T.hotspot_expose(700,50,1)
// deals damage to mechs
for(var/obj/mecha/M in T.contents)
for(var/obj/vehicle/sealed/mecha/M in T.contents)
if(M in hit_list)
continue
hit_list += M
M.take_damage(45, BURN, "melee", 1)
M.take_damage(45, BURN, MELEE, 1)
sleep(1.5)
/obj/effect/proc_holder/spell/targeted/shapeshift/eldritch
@@ -702,7 +702,7 @@
duration = 1 MINUTES
layer = LOW_SIGIL_LAYER
/obj/effect/temp_visual/glowing_rune/Initialize()
/obj/effect/temp_visual/glowing_rune/Initialize(mapload)
. = ..()
pixel_y = rand(-6,6)
pixel_x = rand(-6,6)
+1 -1
View File
@@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(gangster_cell_phones)
var/gang_id = "Grove Street Families"
var/activated = FALSE
/obj/item/gangster_cellphone/Initialize()
/obj/item/gangster_cellphone/Initialize(mapload)
. = ..()
GLOB.gangster_cell_phones += src
flags_1 |= HEAR_1
+1 -1
View File
@@ -52,7 +52,7 @@
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.</b>"
/mob/living/simple_animal/hostile/morph/Initialize()
/mob/living/simple_animal/hostile/morph/Initialize(mapload)
. = ..()
src.AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS)
@@ -32,7 +32,7 @@
var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale")
/obj/item/borg_chameleon/Initialize()
/obj/item/borg_chameleon/Initialize(mapload)
. = ..()
friendlyName = pick(GLOB.ai_names)
@@ -31,7 +31,7 @@
var/proper_bomb = TRUE //Please
var/obj/effect/countdown/nuclearbomb/countdown
/obj/machinery/nuclearbomb/Initialize()
/obj/machinery/nuclearbomb/Initialize(mapload)
. = ..()
countdown = new(src)
GLOB.nuke_list += src
@@ -507,7 +507,7 @@
proper_bomb = FALSE
var/obj/structure/reagent_dispensers/beerkeg/keg
/obj/machinery/nuclearbomb/beer/Initialize()
/obj/machinery/nuclearbomb/beer/Initialize(mapload)
. = ..()
keg = new(src)
QDEL_NULL(core)
@@ -612,14 +612,14 @@ This is here to make the tiles around the station mininuke change when it's arme
icon_state = "nucleardisk"
persistence_replacement = /obj/item/disk/nuclear/fake
max_integrity = 250
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/fake = FALSE
var/turf/lastlocation
var/last_disk_move
var/process_tick = 0
/obj/item/disk/nuclear/Initialize()
/obj/item/disk/nuclear/Initialize(mapload)
. = ..()
AddElement(/datum/element/bed_tuckable, 6, -6, 0)
@@ -74,7 +74,7 @@
flags_1 = NONE
/obj/item/pinpointer/syndicate_cyborg/Initialize()
/obj/item/pinpointer/syndicate_cyborg/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CYBORG_ITEM_TRAIT)
@@ -91,7 +91,7 @@
target = closest_operative
..()
/obj/item/pinpointer/spider_cyborg/Initialize()
/obj/item/pinpointer/spider_cyborg/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CYBORG_ITEM_TRAIT)
@@ -70,7 +70,7 @@
var/slam_mode = FALSE
var/datum/action/cooldown/slam
/mob/living/simple_animal/slaughter/Initialize()
/mob/living/simple_animal/slaughter/Initialize(mapload)
..()
var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new
AddSpell(bloodspell)
@@ -282,7 +282,7 @@
T = find_safe_turf()
for(var/mob/living/M in consumed_mobs)
if(!M)
continue
continue
M.forceMove(T)
if(M.revive(full_heal = TRUE, admin_revive = TRUE))
M.grab_ghost(force = TRUE)
+9 -8
View File
@@ -30,7 +30,7 @@
3. Biological resources will be harvested at a later date; do not harm them.
"}
/obj/effect/mob_spawn/swarmer/Initialize()
/obj/effect/mob_spawn/swarmer/Initialize(mapload)
. = ..()
var/area/A = get_area(src)
if(A)
@@ -106,7 +106,7 @@
var/resources = 0 //Resource points, generated by consuming metal/glass
var/max_resources = 100
/mob/living/simple_animal/hostile/swarmer/Initialize()
/mob/living/simple_animal/hostile/swarmer/Initialize(mapload)
. = ..()
remove_verb(src, /mob/living/verb/pulled)
for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds)
@@ -139,12 +139,12 @@
else
death()
/mob/living/simple_animal/hostile/swarmer/CanPass(atom/movable/O)
/mob/living/simple_animal/hostile/swarmer/CanAllowThrough(atom/movable/O)
. = ..()
if(istype(O, /obj/item/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other
return 1
if(isswarmer(O))
return 1
..()
////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S////
/mob/living/simple_animal/hostile/swarmer/AttackingTarget()
@@ -607,7 +607,7 @@
icon_state = "disintegrate"
duration = 10
/obj/effect/temp_visual/swarmer/disintegration/Initialize()
/obj/effect/temp_visual/swarmer/disintegration/Initialize(mapload)
. = ..()
playsound(loc, "sparks", 100, 1)
@@ -698,11 +698,12 @@
light_range = MINIMUM_USEFUL_LIGHT_RANGE
max_integrity = 50
/obj/structure/swarmer/blockade/CanPass(atom/movable/O)
/obj/structure/swarmer/blockade/CanAllowThrough(atom/movable/O)
. = ..()
if(isswarmer(O))
return 1
return TRUE
if(istype(O, /obj/item/projectile/beam/disabler))
return 1
return TRUE
/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer()
set name = "Replicate"
@@ -355,7 +355,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
var/detonation_timer
var/next_announce
/obj/machinery/doomsday_device/Initialize()
/obj/machinery/doomsday_device/Initialize(mapload)
. = ..()
countdown = new(src)
@@ -444,6 +444,6 @@
duration = 40
pixel_x = 500
/obj/effect/temp_visual/tornado/Initialize()
/obj/effect/temp_visual/tornado/Initialize(mapload)
. = ..()
animate(src, pixel_x = -500, time = 40)
@@ -618,7 +618,7 @@
else
. += "It appears to have no author."
/obj/item/spellbook/Initialize()
/obj/item/spellbook/Initialize(mapload)
. = ..()
prepare_spells()
+1 -1
View File
@@ -71,7 +71,7 @@
update_appearance()
return TRUE
/obj/item/dildo/Initialize()
/obj/item/dildo/Initialize(mapload)
. = ..()
if(random_color == TRUE)
var/randcolor = pick(GLOB.dildo_colors)
+3 -2
View File
@@ -12,7 +12,7 @@
var/turf/listeningTo
var/hearing_range = 3
/obj/item/assembly/infra/Initialize()
/obj/item/assembly/infra/Initialize(mapload)
. = ..()
beams = list()
START_PROCESSING(SSobj, src)
@@ -220,7 +220,8 @@
icon_state = "ibeam"
anchored = TRUE
density = FALSE
pass_flags = PASSTABLE|PASSGLASS|PASSGRILLE|LETPASSTHROW
pass_flags = PASSTABLE|PASSGLASS|PASSGRILLE
pass_flags_self = LETPASSTHROW
var/obj/item/assembly/infra/master
/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj)
+1 -1
View File
@@ -10,7 +10,7 @@
var/sensitivity = 1
var/hearing_range = 3
/obj/item/assembly/prox_sensor/Initialize()
/obj/item/assembly/prox_sensor/Initialize(mapload)
. = ..()
proximity_monitor = new(src, 0)
START_PROCESSING(SSobj, src)
+1 -1
View File
@@ -41,7 +41,7 @@
playsound(user, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE)
qdel(src)
/obj/item/assembly/signaler/Initialize()
/obj/item/assembly/signaler/Initialize(mapload)
. = ..()
set_frequency(frequency)
+1 -1
View File
@@ -22,7 +22,7 @@
user.adjustOxyLoss(200)
user.death(0)
/obj/item/assembly/timer/Initialize()
/obj/item/assembly/timer/Initialize(mapload)
. = ..()
START_PROCESSING(SSobj, src)
@@ -60,6 +60,10 @@
fire_products = "plasma_fire"
enthalpy = FIRE_PLASMA_ENERGY_RELEASED // 3000000, 3 megajoules, 3000 kj
/datum/gas/plasma/New()
if(world.system_type == UNIX)
fire_temperature = null
/datum/gas/water_vapor
id = GAS_H2O
specific_heat = 40
@@ -134,6 +138,10 @@
fire_radiation_released = 50 // arbitrary number, basically 60 moles of trit burning will just barely start to harm you
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50
/datum/gas/tritium/New()
if(world.system_type == UNIX)
fire_temperature = null
/datum/gas/bz
id = GAS_BZ
specific_heat = 20
@@ -28,7 +28,7 @@
var/list/atmos_overlay_types //gas IDs of current active gas overlays
/turf/open/Initialize()
/turf/open/Initialize(mapload)
if(!blocks_air)
air = new(2500,src)
air.copy_from_turf(src)
@@ -5,10 +5,9 @@
for(var/r in subtypesof(/datum/gas_reaction))
var/datum/gas_reaction/reaction = r
if(initial(reaction.exclude))
continue
reaction = new r
. += reaction
if(!reaction.exclude)
. += reaction
sortTim(., /proc/cmp_gas_reaction)
/proc/cmp_gas_reaction(datum/gas_reaction/a, datum/gas_reaction/b) // compares lists of reactions by the maximum priority contained within the list
@@ -119,6 +118,7 @@
id = "tritfire"
/datum/gas_reaction/tritfire/init_reqs()
exclude = world.system_type == MS_WINDOWS // temporary stopgap until generic fires work on linux
min_requirements = list(
"TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST,
GAS_TRITIUM = MINIMUM_MOLE_COUNT,
@@ -200,6 +200,7 @@
id = "plasmafire"
/datum/gas_reaction/plasmafire/init_reqs()
exclude = world.system_type == MS_WINDOWS // temporary stopgap until generic fires work on linux
min_requirements = list(
"TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST,
GAS_PLASMA = MINIMUM_MOLE_COUNT,
@@ -75,7 +75,7 @@
req_access = list(ACCESS_ATMOSPHERICS)
max_integrity = 250
integrity_failure = 0.33
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30)
resistance_flags = FIRE_PROOF
var/danger_level = 0
@@ -55,7 +55,7 @@
normalize_cardinal_directions()
nodes = new(device_type)
if (!armor)
armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 70)
armor = list(MELEE = 25, BULLET = 10, LASER = 10, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 100, ACID = 70)
..()
if(process)
if(interacts_with_air)
@@ -4,7 +4,7 @@
icon_state = "pod-off"
density = TRUE
max_integrity = 350
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 30, "acid" = 30)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 30, ACID = 30)
layer = ABOVE_WINDOW_LAYER
plane = GAME_PLANE
state_open = FALSE
@@ -39,7 +39,7 @@
fair_market_price = 10
payment_department = ACCOUNT_MED
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize(mapload)
. = ..()
initialize_directions = dir
@@ -7,7 +7,7 @@
density = TRUE
max_integrity = 300
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 80, ACID = 30)
layer = OBJ_LAYER
plane = GAME_PLANE
circuit = /obj/item/circuitboard/machine/thermomachine
@@ -24,7 +24,7 @@
var/heat_capacity = 0
var/interactive = TRUE // So mapmakers can disable interaction.
/obj/machinery/atmospherics/components/unary/thermomachine/Initialize()
/obj/machinery/atmospherics/components/unary/thermomachine/Initialize(mapload)
. = ..()
initialize_directions = dir
@@ -197,7 +197,7 @@
on = TRUE
icon_state = "freezer_1"
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/Initialize()
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/Initialize(mapload)
. = ..()
if(target_temperature == initial(target_temperature))
target_temperature = min_temperature
@@ -205,7 +205,7 @@
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom
name = "cold room freezer"
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom/Initialize()
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom/Initialize(mapload)
. = ..()
target_temperature = T0C-80
@@ -9,7 +9,7 @@
idle_power_usage = 2
active_power_usage = 4
max_integrity = 150
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 40, "acid" = 0)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, RAD = 100, FIRE = 40, ACID = 0)
var/frequency = 0
var/atom/target
var/id_tag
@@ -29,7 +29,7 @@
idle_power_usage = 150
active_power_usage = 2000
/obj/machinery/atmospherics/miner/Initialize()
/obj/machinery/atmospherics/miner/Initialize(mapload)
. = ..()
set_active(active) //Force overlay update.
@@ -8,7 +8,7 @@
resistance_flags = LAVA_PROOF | FIRE_PROOF
interacts_with_air = TRUE
/obj/machinery/atmospherics/pipe/heat_exchanging/Initialize()
/obj/machinery/atmospherics/pipe/heat_exchanging/Initialize(mapload)
. = ..()
add_atom_colour("#404040", FIXED_COLOUR_PRIORITY)
@@ -16,7 +16,7 @@
var/mutable_appearance/center
/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/Initialize()
/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/Initialize(mapload)
icon_state = ""
center = mutable_appearance(icon, "manifold_center")
return ..()
@@ -14,7 +14,7 @@
var/list/front_nodes
var/list/back_nodes
/obj/machinery/atmospherics/pipe/layer_manifold/Initialize()
/obj/machinery/atmospherics/pipe/layer_manifold/Initialize(mapload)
front_nodes = list()
back_nodes = list()
icon_state = "manifoldlayer_center"

Some files were not shown because too many files have changed in this diff Show More