mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 06:27:26 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into BookClub
This commit is contained in:
@@ -31,11 +31,13 @@
|
||||
var/resintype = null
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
|
||||
/obj/structure/alien/resin/New(location)
|
||||
..()
|
||||
/obj/structure/alien/resin/initialize()
|
||||
air_update_turf(1)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/structure/alien/resin/Destroy()
|
||||
air_update_turf(1)
|
||||
return ..()
|
||||
|
||||
/obj/structure/alien/resin/Move()
|
||||
var/turf/T = loc
|
||||
@@ -179,7 +181,7 @@
|
||||
|
||||
/obj/structure/alien/weeds/Destroy()
|
||||
var/turf/T = loc
|
||||
for (var/obj/structure/alien/weeds/W in range(1,T))
|
||||
for(var/obj/structure/alien/weeds/W in range(1,T))
|
||||
W.updateWeedOverlays()
|
||||
linked_node = null
|
||||
return ..()
|
||||
@@ -267,7 +269,7 @@
|
||||
|
||||
|
||||
/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays()
|
||||
for (var/obj/structure/alien/weeds/W in range(1,src))
|
||||
for(var/obj/structure/alien/weeds/W in range(1,src))
|
||||
W.updateWeedOverlays()
|
||||
|
||||
//Weed nodes
|
||||
|
||||
@@ -38,7 +38,7 @@ var/global/list/image/splatter_cache=list()
|
||||
if(src.loc && isturf(src.loc))
|
||||
for(var/obj/effect/decal/cleanable/blood/B in src.loc)
|
||||
if(B != src)
|
||||
if (B.blood_DNA)
|
||||
if(B.blood_DNA)
|
||||
blood_DNA |= B.blood_DNA.Copy()
|
||||
qdel(B)
|
||||
spawn(DRYING_TIME * (amount+1))
|
||||
@@ -58,7 +58,7 @@ var/global/list/image/splatter_cache=list()
|
||||
color = basecolor
|
||||
|
||||
/obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp)
|
||||
if (!istype(perp))
|
||||
if(!istype(perp))
|
||||
return
|
||||
if(amount < 1)
|
||||
return
|
||||
@@ -85,7 +85,7 @@ var/global/list/image/splatter_cache=list()
|
||||
S.overlays += S.blood_overlay
|
||||
S.blood_DNA |= blood_DNA.Copy()
|
||||
|
||||
else if (hasfeet)//Or feet
|
||||
else if(hasfeet)//Or feet
|
||||
perp.feet_blood_color = basecolor
|
||||
perp.track_blood = max(amount,perp.track_blood)
|
||||
if(!perp.feet_blood_DNA)
|
||||
@@ -103,14 +103,14 @@ var/global/list/image/splatter_cache=list()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/attack_hand(mob/living/carbon/human/user)
|
||||
..()
|
||||
if (amount && istype(user))
|
||||
if(amount && istype(user))
|
||||
add_fingerprint(user)
|
||||
if (user.gloves)
|
||||
if(user.gloves)
|
||||
return
|
||||
var/taken = rand(1,amount)
|
||||
amount -= taken
|
||||
to_chat(user, "<span class='notice'>You get some of \the [src] on your hands.</span>")
|
||||
if (!user.blood_DNA)
|
||||
if(!user.blood_DNA)
|
||||
user.blood_DNA = list()
|
||||
user.blood_DNA |= blood_DNA.Copy()
|
||||
user.bloody_hands += taken
|
||||
@@ -216,9 +216,9 @@ var/global/list/image/splatter_cache=list()
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(var/list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
if(i > 0)
|
||||
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||
b.basecolor = src.basecolor
|
||||
b.update_icon()
|
||||
@@ -226,7 +226,7 @@ var/global/list/image/splatter_cache=list()
|
||||
var/datum/disease/ND = D.Copy(1)
|
||||
b.viruses += ND
|
||||
ND.holder = b
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
if(step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
|
||||
|
||||
@@ -15,17 +15,17 @@
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/streak(var/list/directions)
|
||||
spawn (0)
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
if (prob(40))
|
||||
if(i > 0)
|
||||
if(prob(40))
|
||||
var/obj/effect/decal/cleanable/blood/oil/streak = new(src.loc)
|
||||
streak.update_icon()
|
||||
else if (prob(10))
|
||||
else if(prob(10))
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
if(step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/limb
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/noclear = 0 //if it has this, don't delete it when its' scooped up
|
||||
|
||||
/obj/effect/decal/cleanable/New()
|
||||
if (random_icon_states && length(src.random_icon_states) > 0)
|
||||
if(random_icon_states && length(src.random_icon_states) > 0)
|
||||
src.icon_state = pick(src.random_icon_states)
|
||||
create_reagents(100)
|
||||
..()
|
||||
|
||||
@@ -56,7 +56,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
/obj/effect/effect/water/New()
|
||||
..()
|
||||
//var/turf/T = src.loc
|
||||
//if (istype(T, /turf))
|
||||
//if(istype(T, /turf))
|
||||
// T.firelevel = 0 //TODO: FIX
|
||||
spawn( 70 )
|
||||
delete()
|
||||
@@ -65,9 +65,9 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
|
||||
/obj/effect/effect/water/Move(turf/newloc)
|
||||
//var/turf/T = src.loc
|
||||
//if (istype(T, /turf))
|
||||
//if(istype(T, /turf))
|
||||
// T.firelevel = 0 //TODO: FIX
|
||||
if (--src.life < 1)
|
||||
if(--src.life < 1)
|
||||
//SN src = null
|
||||
delete()
|
||||
if(newloc.density)
|
||||
@@ -177,21 +177,21 @@ steam.start() -- spawns the effect
|
||||
..()
|
||||
playsound(src.loc, "sparks", 100, 1)
|
||||
var/turf/T = loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(1000, 100)
|
||||
spawn (100)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/effect/sparks/Destroy()
|
||||
var/turf/T = src.loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(1000,100)
|
||||
return ..()
|
||||
|
||||
/obj/effect/effect/sparks/Move()
|
||||
..()
|
||||
var/turf/T = src.loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(1000,100)
|
||||
return
|
||||
|
||||
@@ -325,11 +325,11 @@ steam.start() -- spawns the effect
|
||||
/obj/effect/effect/bad_smoke/Move()
|
||||
..()
|
||||
for(var/mob/living/carbon/M in get_turf(src))
|
||||
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
else
|
||||
M.drop_item()
|
||||
M.adjustOxyLoss(1)
|
||||
if (M.coughedtime != 1)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
spawn ( 20 )
|
||||
@@ -348,12 +348,12 @@ steam.start() -- spawns the effect
|
||||
/obj/effect/effect/bad_smoke/Crossed(mob/living/carbon/M as mob )
|
||||
..()
|
||||
if(istype(M, /mob/living/carbon))
|
||||
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
return
|
||||
else
|
||||
M.drop_item()
|
||||
M.adjustOxyLoss(1)
|
||||
if (M.coughedtime != 1)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
spawn ( 20 )
|
||||
@@ -515,7 +515,7 @@ steam.start() -- spawns the effect
|
||||
chemholder.reagents.reaction(A)
|
||||
if(iscarbon(A))
|
||||
var/mob/living/carbon/C = A
|
||||
if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
|
||||
if(C.can_breathe_gas())
|
||||
chemholder.reagents.copy_to(C, chemholder.reagents.total_volume)
|
||||
if(istype(A, /obj/machinery/portable_atmospherics/hydroponics))
|
||||
var/obj/machinery/portable_atmospherics/hydroponics/tray = A
|
||||
@@ -579,12 +579,12 @@ steam.start() -- spawns the effect
|
||||
/obj/effect/effect/sleep_smoke/Move()
|
||||
..()
|
||||
for(var/mob/living/carbon/M in get_turf(src))
|
||||
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
// if (M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // I'll work on it later
|
||||
if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
// if(M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // I'll work on it later
|
||||
else
|
||||
M.drop_item()
|
||||
M:sleeping += 5
|
||||
if (M.coughedtime != 1)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
spawn(20)
|
||||
@@ -595,13 +595,13 @@ steam.start() -- spawns the effect
|
||||
/obj/effect/effect/sleep_smoke/Crossed(mob/living/carbon/M as mob )
|
||||
..()
|
||||
if(istype(M, /mob/living/carbon))
|
||||
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
// if (M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // Work on it later
|
||||
if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
|
||||
// if(M.wear_suit, /obj/item/clothing/suit/wizrobe && (M.hat, /obj/item/clothing/head/wizard) && (M.shoes, /obj/item/clothing/shoes/sandal)) // Work on it later
|
||||
return
|
||||
else
|
||||
M.drop_item()
|
||||
M:sleeping += 5
|
||||
if (M.coughedtime != 1)
|
||||
if(M.coughedtime != 1)
|
||||
M.coughedtime = 1
|
||||
M.emote("cough")
|
||||
spawn(20)
|
||||
@@ -671,10 +671,10 @@ steam.start() -- spawns the effect
|
||||
/obj/effect/effect/mustard_gas/Move()
|
||||
..()
|
||||
for(var/mob/living/carbon/human/R in get_turf(src))
|
||||
if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & AIRTIGHT) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
|
||||
if(R.internal != null && usr.wear_mask && (R.wear_mask.flags & AIRTIGHT) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
|
||||
else
|
||||
R.burn_skin(0.75)
|
||||
if (R.coughedtime != 1)
|
||||
if(R.coughedtime != 1)
|
||||
R.coughedtime = 1
|
||||
R.emote("gasp")
|
||||
spawn (20)
|
||||
@@ -684,11 +684,11 @@ steam.start() -- spawns the effect
|
||||
|
||||
/obj/effect/effect/mustard_gas/Crossed(mob/living/carbon/human/R as mob )
|
||||
..()
|
||||
if (istype(R, /mob/living/carbon/human))
|
||||
if (R.internal != null && usr.wear_mask && (R.wear_mask.flags & AIRTIGHT) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
|
||||
if(istype(R, /mob/living/carbon/human))
|
||||
if(R.internal != null && usr.wear_mask && (R.wear_mask.flags & AIRTIGHT) && R.wear_suit != null && !istype(R.wear_suit, /obj/item/clothing/suit/storage/labcoat) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket) && !istype(R.wear_suit, /obj/item/clothing/suit/straight_jacket && !istype(R.wear_suit, /obj/item/clothing/suit/armor)))
|
||||
return
|
||||
R.burn_skin(0.75)
|
||||
if (R.coughedtime != 1)
|
||||
if(R.coughedtime != 1)
|
||||
R.coughedtime = 1
|
||||
R.emote("gasp")
|
||||
spawn (20)
|
||||
@@ -997,7 +997,7 @@ steam.start() -- spawns the effect
|
||||
if(metal)
|
||||
return
|
||||
|
||||
if (istype(AM, /mob/living/carbon))
|
||||
if(istype(AM, /mob/living/carbon))
|
||||
var/mob/living/carbon/M = AM
|
||||
if(M.slip("foam", 5, 2))
|
||||
if(reagents)
|
||||
@@ -1075,7 +1075,7 @@ steam.start() -- spawns the effect
|
||||
desc = "A lightweight foamed metal wall."
|
||||
var/metal = MFOAM_ALUMINUM
|
||||
|
||||
/obj/structure/foamedmetal/New()
|
||||
/obj/structure/foamedmetal/initialize()
|
||||
..()
|
||||
air_update_turf(1)
|
||||
|
||||
@@ -1109,7 +1109,7 @@ steam.start() -- spawns the effect
|
||||
/obj/structure/foamedmetal/attack_hand(var/mob/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if ((HULK in user.mutations) || (prob(75 - metal*25)))
|
||||
if((HULK in user.mutations) || (prob(75 - metal*25)))
|
||||
user.visible_message("<span class='warning'>[user] smashes through \the [src].</span>", "<span class='notice'>You smash through \the [src].</span>")
|
||||
qdel(src)
|
||||
else
|
||||
@@ -1118,7 +1118,7 @@ steam.start() -- spawns the effect
|
||||
/obj/structure/foamedmetal/attackby(var/obj/item/I, var/mob/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if (istype(I, /obj/item/weapon/grab))
|
||||
if(istype(I, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = I
|
||||
G.affecting.loc = src.loc
|
||||
user.visible_message("<span class='warning'>[G.assailant] smashes [G.affecting] through the foamed metal wall.</span>")
|
||||
@@ -1171,7 +1171,7 @@ steam.start() -- spawns the effect
|
||||
return
|
||||
|
||||
start()
|
||||
if (amount <= 2)
|
||||
if(amount <= 2)
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
@@ -1179,7 +1179,7 @@ steam.start() -- spawns the effect
|
||||
for(var/mob/M in viewers(5, location))
|
||||
to_chat(M, "\red The solution violently explodes.")
|
||||
for(var/mob/M in viewers(1, location))
|
||||
if (prob (50 * amount))
|
||||
if(prob (50 * amount))
|
||||
to_chat(M, "\red The explosion knocks you down.")
|
||||
M.Weaken(rand(1,5))
|
||||
return
|
||||
@@ -1190,16 +1190,16 @@ steam.start() -- spawns the effect
|
||||
var/flash = -1
|
||||
|
||||
// Clamp all values to MAX_EXPLOSION_RANGE
|
||||
if (round(amount/12) > 0)
|
||||
if(round(amount/12) > 0)
|
||||
devastation = min (MAX_EX_DEVESTATION_RANGE, devastation + round(amount/12))
|
||||
|
||||
if (round(amount/6) > 0)
|
||||
if(round(amount/6) > 0)
|
||||
heavy = min (MAX_EX_HEAVY_RANGE, heavy + round(amount/6))
|
||||
|
||||
if (round(amount/3) > 0)
|
||||
if(round(amount/3) > 0)
|
||||
light = min (MAX_EX_LIGHT_RANGE, light + round(amount/3))
|
||||
|
||||
if (flash && flashing_factor)
|
||||
if(flash && flashing_factor)
|
||||
flash += (round(amount/4) * flashing_factor)
|
||||
|
||||
for(var/mob/M in viewers(8, location))
|
||||
@@ -1211,11 +1211,11 @@ steam.start() -- spawns the effect
|
||||
if(holder)
|
||||
var/dmglevel = 4
|
||||
|
||||
if (round(amount/8) > 0)
|
||||
if(round(amount/8) > 0)
|
||||
dmglevel = 1
|
||||
else if (round(amount/4) > 0)
|
||||
else if(round(amount/4) > 0)
|
||||
dmglevel = 2
|
||||
else if (round(amount/2) > 0)
|
||||
else if(round(amount/2) > 0)
|
||||
dmglevel = 3
|
||||
|
||||
if(dmglevel<4) holder.ex_act(dmglevel)
|
||||
@@ -1243,7 +1243,7 @@ steam.start() -- spawns the effect
|
||||
src.icon = I
|
||||
playsound(src.loc, "sparks", 100, 1)
|
||||
var/turf/T = src.loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(3000,100)
|
||||
spawn (100)
|
||||
qdel(src)
|
||||
@@ -1251,14 +1251,14 @@ steam.start() -- spawns the effect
|
||||
|
||||
/obj/effect/sparkles/Destroy()
|
||||
var/turf/T = src.loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(3000,100)
|
||||
return ..()
|
||||
|
||||
/obj/effect/sparkles/Move()
|
||||
..()
|
||||
var/turf/T = src.loc
|
||||
if (istype(T, /turf))
|
||||
if(istype(T, /turf))
|
||||
T.hotspot_expose(3000,100)
|
||||
return
|
||||
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(5))
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/obj/effect/landmark/New()
|
||||
|
||||
..()
|
||||
tag = text("landmark*[]", name)
|
||||
set_tag()
|
||||
invisibility = 101
|
||||
|
||||
switch(name) //some of these are probably obsolete
|
||||
@@ -94,6 +94,9 @@
|
||||
if("voxstart")
|
||||
raider_spawn += loc
|
||||
|
||||
if("ERT Director")
|
||||
ertdirector += loc
|
||||
|
||||
landmarks_list += src
|
||||
return 1
|
||||
|
||||
@@ -102,18 +105,19 @@
|
||||
..()
|
||||
return QDEL_HINT_HARDDEL_NOW
|
||||
|
||||
/obj/effect/landmark/proc/set_tag()
|
||||
tag = text("landmark*[]", name)
|
||||
|
||||
|
||||
/obj/effect/landmark/start
|
||||
name = "start"
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x"
|
||||
anchored = 1.0
|
||||
|
||||
/obj/effect/landmark/start/New()
|
||||
..()
|
||||
/obj/effect/landmark/start/set_tag()
|
||||
tag = "start*[name]"
|
||||
invisibility = 101
|
||||
|
||||
return 1
|
||||
|
||||
//Costume spawner landmarks
|
||||
|
||||
@@ -172,7 +176,7 @@
|
||||
new /obj/item/clothing/gloves/color/white(src.loc)
|
||||
new /obj/item/clothing/shoes/white(src.loc)
|
||||
new /obj/item/clothing/under/scratch(src.loc)
|
||||
if (prob(30))
|
||||
if(prob(30))
|
||||
new /obj/item/clothing/head/cueball(src.loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -224,7 +228,7 @@
|
||||
|
||||
/obj/effect/landmark/costume/imperium_monk/New()
|
||||
new /obj/item/clothing/suit/imperium_monk(src.loc)
|
||||
if (prob(25))
|
||||
if(prob(25))
|
||||
new /obj/item/clothing/mask/gas/cyborg(src.loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -257,4 +261,4 @@
|
||||
/obj/effect/landmark/costume/sexymime/New()
|
||||
new /obj/item/clothing/mask/gas/sexymime(src.loc)
|
||||
new /obj/item/clothing/under/sexymime(src.loc)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
for(var/mob/O in viewers(world.view, src.loc))
|
||||
to_chat(O, "<font color='red'>[M] triggered the \icon[src] [src]</font>")
|
||||
to_chat(O, "<font color='red'>[M] triggered the [bicon(src)] [src]</font>")
|
||||
triggered = 1
|
||||
call(src,triggerproc)(M)
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
var/creator = null
|
||||
anchored = 1.0
|
||||
var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent
|
||||
var/can_multitool_to_remove = 0
|
||||
|
||||
/obj/effect/portal/Bumped(mob/M as mob|obj)
|
||||
src.teleport(M)
|
||||
@@ -39,12 +40,16 @@
|
||||
return
|
||||
if(M.anchored&&istype(M, /obj/mecha))
|
||||
return
|
||||
if (!( target ))
|
||||
if(!( target ))
|
||||
qdel(src)
|
||||
return
|
||||
if (istype(M, /atom/movable))
|
||||
if(istype(M, /atom/movable))
|
||||
if(prob(failchance)) //oh dear a problem, put em in deep space
|
||||
src.icon_state = "portal1"
|
||||
do_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy -5), 3), 0)
|
||||
else
|
||||
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
|
||||
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
|
||||
|
||||
/obj/effect/portal/attackby(obj/item/A, mob/user)
|
||||
if(istype(A, /obj/item/device/multitool) && can_multitool_to_remove)
|
||||
qdel(src)
|
||||
@@ -38,19 +38,19 @@
|
||||
|
||||
var/obj/item/device/assembly/S
|
||||
|
||||
switch (src.btype)
|
||||
switch(src.btype)
|
||||
// radio
|
||||
if (0)
|
||||
if(0)
|
||||
|
||||
S = new/obj/item/device/assembly/signaler(V)
|
||||
|
||||
// proximity
|
||||
if (1)
|
||||
if(1)
|
||||
|
||||
S = new/obj/item/device/assembly/prox_sensor(V)
|
||||
|
||||
// timer
|
||||
if (2)
|
||||
if(2)
|
||||
|
||||
S = new/obj/item/device/assembly/timer(V)
|
||||
|
||||
|
||||
@@ -58,65 +58,106 @@
|
||||
//maintcentral: 2 items, 2 spots 0 extra (08/08/2014)
|
||||
//port: 5 items, 5 spots 0 extra (08/08/2014)
|
||||
loot = list(
|
||||
/obj/item/bodybag = 1,
|
||||
/obj/item/clothing/glasses/meson = 2,
|
||||
/obj/item/clothing/glasses/sunglasses = 1,
|
||||
/obj/item/clothing/gloves/color/yellow/fake = 1,
|
||||
/obj/item/clothing/head/hardhat = 1,
|
||||
/obj/item/clothing/head/hardhat/red = 1,
|
||||
/obj/item/clothing/head/that{throwforce = 1; throwing = 1} = 1,
|
||||
/obj/item/clothing/head/ushanka = 1,
|
||||
/obj/item/clothing/head/welding = 1,
|
||||
/obj/item/clothing/mask/gas = 15,
|
||||
/obj/item/clothing/suit/storage/hazardvest = 1,
|
||||
/obj/item/clothing/under/rank/vice = 1,
|
||||
/obj/item/device/assembly/prox_sensor = 4,
|
||||
/obj/item/device/assembly/timer = 3,
|
||||
/obj/item/device/flashlight = 4,
|
||||
/obj/item/device/flashlight/pen = 1,
|
||||
/obj/item/device/multitool = 2,
|
||||
/obj/item/device/radio/off = 2,
|
||||
/obj/item/device/t_scanner = 6,
|
||||
/obj/item/stack/cable_coil = 4,
|
||||
/obj/item/stack/cable_coil{amount = 5} = 6,
|
||||
/obj/item/stack/medical/advanced/bruise_pack = 1,
|
||||
/obj/item/stack/rods{amount = 10} = 9,
|
||||
/obj/item/stack/rods{amount = 23} = 1,
|
||||
/obj/item/stack/rods{amount = 50} = 1,
|
||||
/obj/item/stack/sheet/cardboard = 2,
|
||||
/obj/item/stack/sheet/metal{amount = 20} = 1,
|
||||
/obj/item/stack/sheet/mineral/plasma{layer = 2.9} = 1,
|
||||
/obj/item/stack/sheet/rglass = 1,
|
||||
/obj/item/weapon/book/manual/engineering_construction = 1,
|
||||
/obj/item/weapon/book/manual/engineering_hacking = 1,
|
||||
/obj/item/clothing/head/cone = 1,
|
||||
/obj/item/weapon/coin/silver = 1,
|
||||
/obj/item/weapon/coin/twoheaded = 1,
|
||||
/obj/item/weapon/contraband/poster = 1,
|
||||
/obj/item/weapon/crowbar = 1,
|
||||
/obj/item/weapon/crowbar/red = 1,
|
||||
/obj/item/weapon/extinguisher = 11,
|
||||
/obj/item/bodybag = 10,
|
||||
/obj/item/clothing/glasses/meson = 20,
|
||||
/obj/item/clothing/glasses/sunglasses = 10,
|
||||
/obj/item/clothing/gloves/color/yellow/fake = 15,
|
||||
/obj/item/clothing/gloves/color/fyellow = 10,
|
||||
/obj/item/clothing/gloves/color/yellow = 5,
|
||||
/obj/item/clothing/gloves/color/black = 20,
|
||||
/obj/item/clothing/head/hardhat = 10,
|
||||
/obj/item/clothing/head/hardhat/red = 10,
|
||||
/obj/item/clothing/head/that{throwforce = 1; throwing = 1} = 10,
|
||||
/obj/item/clothing/head/ushanka = 10,
|
||||
/obj/item/clothing/head/welding = 10,
|
||||
/obj/item/clothing/mask/gas = 10,
|
||||
/obj/item/clothing/suit/storage/hazardvest = 10,
|
||||
/obj/item/clothing/under/rank/vice = 10,
|
||||
/obj/item/device/assembly/prox_sensor = 40,
|
||||
/obj/item/device/assembly/timer = 30,
|
||||
/obj/item/device/flashlight = 40,
|
||||
/obj/item/device/flashlight/pen = 10,
|
||||
/obj/item/device/multitool = 20,
|
||||
/obj/item/device/radio/off = 20,
|
||||
/obj/item/device/t_scanner = 60,
|
||||
/obj/item/stack/cable_coil = 40,
|
||||
/obj/item/stack/cable_coil{amount = 5} = 60,
|
||||
/obj/item/stack/medical/advanced/bruise_pack = 10,
|
||||
/obj/item/stack/rods{amount = 10} = 80,
|
||||
/obj/item/stack/rods{amount = 23} = 20,
|
||||
/obj/item/stack/rods{amount = 50} = 10,
|
||||
/obj/item/stack/sheet/cardboard = 20,
|
||||
/obj/item/stack/sheet/metal{amount = 20} = 10,
|
||||
/obj/item/stack/sheet/mineral/plasma{layer = 2.9} = 10,
|
||||
/obj/item/stack/sheet/rglass = 10,
|
||||
/obj/item/weapon/book/manual/engineering_construction = 10,
|
||||
/obj/item/weapon/book/manual/engineering_hacking = 10,
|
||||
/obj/item/clothing/head/cone = 10,
|
||||
/obj/item/weapon/coin/silver = 10,
|
||||
/obj/item/weapon/coin/twoheaded = 10,
|
||||
/obj/item/weapon/contraband/poster = 10,
|
||||
/obj/item/weapon/crowbar = 10,
|
||||
/obj/item/weapon/crowbar/red = 10,
|
||||
/obj/item/weapon/extinguisher = 90,
|
||||
//obj/item/weapon/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc.
|
||||
/obj/item/weapon/hand_labeler = 1,
|
||||
/obj/item/weapon/paper/crumpled = 1,
|
||||
/obj/item/weapon/pen = 1,
|
||||
/obj/item/weapon/plantspray/pests = 1,
|
||||
/obj/item/weapon/stock_parts/cell = 3,
|
||||
/obj/item/weapon/storage/belt/utility = 2,
|
||||
/obj/item/weapon/storage/box = 2,
|
||||
/obj/item/weapon/storage/box/cups = 1,
|
||||
/obj/item/weapon/storage/box/donkpockets = 1,
|
||||
/obj/item/weapon/storage/box/lights/mixed = 3,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 1,
|
||||
/obj/item/weapon/storage/toolbox/mechanical = 1,
|
||||
/obj/item/weapon/screwdriver = 3,
|
||||
/obj/item/weapon/tank/emergency_oxygen = 2,
|
||||
/obj/item/weapon/vending_refill/cola = 1,
|
||||
/obj/item/weapon/weldingtool = 3,
|
||||
/obj/item/weapon/wirecutters = 1,
|
||||
/obj/item/weapon/wrench = 4,
|
||||
/obj/item/weapon/relic = 3,
|
||||
"" = 11
|
||||
/obj/item/weapon/hand_labeler = 10,
|
||||
/obj/item/weapon/paper/crumpled = 10,
|
||||
/obj/item/weapon/pen = 10,
|
||||
/obj/item/weapon/minihoe = 10,
|
||||
/obj/item/weapon/plantspray/pests = 10,
|
||||
/obj/item/weapon/stock_parts/cell = 30,
|
||||
/obj/item/weapon/storage/belt/utility = 20,
|
||||
/obj/item/weapon/storage/box = 20,
|
||||
/obj/item/weapon/storage/box/cups = 10,
|
||||
/obj/item/weapon/storage/box/donkpockets = 10,
|
||||
/obj/item/weapon/storage/box/lights/mixed = 30,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 10,
|
||||
/obj/item/weapon/storage/toolbox/mechanical = 10,
|
||||
/obj/item/weapon/screwdriver = 30,
|
||||
/obj/item/weapon/tank/emergency_oxygen = 20,
|
||||
/obj/item/weapon/tank/emergency_oxygen/engi = 10,
|
||||
/obj/item/weapon/vending_refill/cola = 10,
|
||||
/obj/item/weapon/weldingtool = 30,
|
||||
/obj/item/weapon/wirecutters = 10,
|
||||
/obj/item/weapon/wrench = 40,
|
||||
/obj/item/weapon/relic = 35,
|
||||
/obj/item/clothing/shoes/brown = 30,
|
||||
/obj/item/seeds/ambrosiadeusseed = 10,
|
||||
/obj/item/seeds/ambrosiavulgarisseed = 20,
|
||||
/obj/item/clothing/under/color/black = 30,
|
||||
/obj/item/stack/tape_roll = 10,
|
||||
////////////////CONTRABAND STUFF//////////////////
|
||||
/obj/item/weapon/grenade/clown_grenade = 3,
|
||||
/obj/item/seeds/ambrosiavulgarisseed/cruciatus = 3,
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/empty = 1,
|
||||
/obj/item/ammo_box/magazine/m10mm = 4,
|
||||
/obj/item/weapon/soap/syndie = 7,
|
||||
/obj/item/weapon/gun/syringe/syndicate = 2,
|
||||
/obj/item/weapon/suppressor = 4,
|
||||
/obj/item/clothing/under/chameleon = 2,
|
||||
/obj/item/weapon/stamp/chameleon = 2,
|
||||
/obj/item/clothing/shoes/syndigaloshes = 5,
|
||||
/obj/item/clothing/mask/gas/voice = 2,
|
||||
/obj/item/weapon/dnascrambler = 1,
|
||||
/obj/item/weapon/storage/backpack/satchel_flat = 2,
|
||||
/obj/item/weapon/storage/toolbox/syndicate = 2,
|
||||
/obj/item/weapon/storage/backpack/duffel/syndie/surgery_fake = 2,
|
||||
/obj/item/weapon/storage/belt/military = 2,
|
||||
/obj/item/weapon/storage/box/syndie_kit/space = 2,
|
||||
/obj/item/device/multitool/ai_detect = 2,
|
||||
/obj/item/weapon/implanter/storage = 1,
|
||||
/obj/item/toy/cards/deck/syndicate = 2,
|
||||
/obj/item/weapon/storage/secure/briefcase/syndie = 2,
|
||||
"" = 90
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/crate_spawner // for ruins
|
||||
name = "lootcrate spawner"
|
||||
lootdoubles = 0
|
||||
|
||||
loot = list(
|
||||
/obj/structure/closet/crate/secure/loot = 20,
|
||||
"" = 80,
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/trade_sol_rare
|
||||
|
||||
@@ -5,10 +5,15 @@
|
||||
var/useFull = 0
|
||||
var/useGrille = 1
|
||||
var/windowtospawn = /obj/structure/window/basic
|
||||
anchored = 1 // No sliding out while you prime
|
||||
|
||||
/obj/effect/spawner/window/New()
|
||||
/obj/effect/spawner/window/initialize()
|
||||
spawn(0)
|
||||
for(var/obj/structure/grille/G in get_turf(src)) qdel(G) //just in case mappers don't know what they are doing
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/obj/structure/grille/G in get_turf(src))
|
||||
// Complain noisily
|
||||
log_debug("Extra grille on turf: ([T.x],[T.y],[T.z])")
|
||||
qdel(G) //just in case mappers don't know what they are doing
|
||||
|
||||
if(!useFull)
|
||||
for(var/cdir in cardinal)
|
||||
@@ -30,7 +35,8 @@
|
||||
spawn(10)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/effect/spawner/window/reinforced
|
||||
name = "reinforced window spawner"
|
||||
icon_state = "rwindow_spawner"
|
||||
windowtospawn = /obj/structure/window/reinforced
|
||||
windowtospawn = /obj/structure/window/reinforced
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
if(1.0)
|
||||
qdel(src)
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
if(3.0)
|
||||
if (prob(5))
|
||||
if(prob(5))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user