April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -2,96 +2,45 @@
|
||||
name = "bomb"
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x"
|
||||
var/btype = 0 // 0=radio, 1=prox, 2=time
|
||||
var/btemp1 = 1500
|
||||
var/btemp2 = 1000 // tank temperatures
|
||||
var/assembly_type
|
||||
|
||||
/obj/effect/spawner/newbomb/Initialize()
|
||||
..()
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/internals/plasma/full/PT = new(V)
|
||||
var/obj/item/weapon/tank/internals/oxygen/OT = new(V)
|
||||
|
||||
PT.air_contents.temperature = btemp1 + T0C
|
||||
OT.air_contents.temperature = btemp2 + T0C
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
PT.master = V
|
||||
OT.master = V
|
||||
|
||||
if(assembly_type)
|
||||
var/obj/item/device/assembly/A = new assembly_type(V)
|
||||
V.attached_device = A
|
||||
A.holder = V
|
||||
A.toggle_secure()
|
||||
|
||||
V.update_icon()
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spawner/newbomb/timer
|
||||
btype = 2
|
||||
assembly_type = /obj/item/device/assembly/timer
|
||||
|
||||
syndicate
|
||||
btemp1 = 150
|
||||
btemp2 = 20
|
||||
/obj/effect/spawner/newbomb/timer/syndicate
|
||||
btemp1 = 150
|
||||
btemp2 = 20
|
||||
|
||||
/obj/effect/spawner/newbomb/proximity
|
||||
btype = 1
|
||||
assembly_type = /obj/item/device/assembly/prox_sensor
|
||||
|
||||
/obj/effect/spawner/newbomb/radio
|
||||
btype = 0
|
||||
assembly_type = /obj/item/device/assembly/signaler
|
||||
|
||||
|
||||
|
||||
/obj/effect/spawner/newbomb/New()
|
||||
..()
|
||||
|
||||
switch (src.btype)
|
||||
// radio
|
||||
if (0)
|
||||
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/internals/plasma/PT = new(V)
|
||||
var/obj/item/weapon/tank/internals/oxygen/OT = new(V)
|
||||
|
||||
var/obj/item/device/assembly/signaler/S = new(V)
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
V.attached_device = S
|
||||
|
||||
S.holder = V
|
||||
S.toggle_secure()
|
||||
PT.master = V
|
||||
OT.master = V
|
||||
|
||||
PT.air_contents.temperature = btemp1 + T0C
|
||||
OT.air_contents.temperature = btemp2 + T0C
|
||||
|
||||
V.update_icon()
|
||||
|
||||
// proximity
|
||||
if (1)
|
||||
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/internals/plasma/PT = new(V)
|
||||
var/obj/item/weapon/tank/internals/oxygen/OT = new(V)
|
||||
|
||||
var/obj/item/device/assembly/prox_sensor/P = new(V)
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
V.attached_device = P
|
||||
|
||||
P.holder = V
|
||||
P.toggle_secure()
|
||||
PT.master = V
|
||||
OT.master = V
|
||||
|
||||
|
||||
PT.air_contents.temperature = btemp1 + T0C
|
||||
OT.air_contents.temperature = btemp2 + T0C
|
||||
|
||||
V.update_icon()
|
||||
|
||||
|
||||
// timer
|
||||
if (2)
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/internals/plasma/PT = new(V)
|
||||
var/obj/item/weapon/tank/internals/oxygen/OT = new(V)
|
||||
|
||||
var/obj/item/device/assembly/timer/T = new(V)
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
V.attached_device = T
|
||||
|
||||
T.holder = V
|
||||
T.toggle_secure()
|
||||
PT.master = V
|
||||
OT.master = V
|
||||
T.time = 30
|
||||
|
||||
PT.air_contents.temperature = btemp1 + T0C
|
||||
OT.air_contents.temperature = btemp2 + T0C
|
||||
|
||||
V.update_icon()
|
||||
qdel(src)
|
||||
@@ -0,0 +1,170 @@
|
||||
/obj/effect/spawner/bundle
|
||||
name = "bundle spawner"
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x2"
|
||||
color = "#00FF00"
|
||||
|
||||
var/list/items
|
||||
|
||||
/obj/effect/spawner/bundle/Initialize(mapload)
|
||||
..()
|
||||
if(items && items.len)
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/path in items)
|
||||
new path(T)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/chicken
|
||||
name = "chicken costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/chickensuit,
|
||||
/obj/item/clothing/head/chicken,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/gladiator
|
||||
name = "gladitator costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/gladiator,
|
||||
/obj/item/clothing/head/helmet/gladiator)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/madscientist
|
||||
name = "mad scientist costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit,
|
||||
/obj/item/clothing/head/flatcap,
|
||||
/obj/item/clothing/suit/toggle/labcoat/mad)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/elpresidente
|
||||
name = "el presidente costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/gimmick/rank/captain/suit,
|
||||
/obj/item/clothing/head/flatcap,
|
||||
/obj/item/clothing/mask/cigarette/cigar/havana,
|
||||
/obj/item/clothing/shoes/jackboots)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/nyangirl
|
||||
name = "nyangirl costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/schoolgirl,
|
||||
/obj/item/clothing/head/kitty,
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/maid
|
||||
name = "maid costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/skirt/black,
|
||||
/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold)
|
||||
|
||||
|
||||
/obj/effect/spawner/bundle/costume/butler
|
||||
name = "butler costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/tie/waistcoat,
|
||||
/obj/item/clothing/under/suit_jacket,
|
||||
/obj/item/clothing/head/that)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/highlander
|
||||
name = "highlander costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/kilt,
|
||||
/obj/item/clothing/head/beret)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/prig
|
||||
name = "prig costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/tie/waistcoat,
|
||||
/obj/item/clothing/glasses/monocle,
|
||||
/obj/effect/spawner/lootdrop/minor/bowler_or_that,
|
||||
/obj/item/clothing/shoes/sneakers/black,
|
||||
/obj/item/weapon/cane,
|
||||
/obj/item/clothing/under/sl_suit,
|
||||
/obj/item/clothing/mask/fakemoustache)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/plaguedoctor
|
||||
name = "plague doctor costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit,
|
||||
/obj/item/clothing/head/plaguedoctorhat,
|
||||
/obj/item/clothing/mask/gas/plaguedoctor)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/nightowl
|
||||
name = "night owl costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/toggle/owlwings,
|
||||
/obj/item/clothing/under/owl,
|
||||
/obj/item/clothing/mask/gas/owl_mask)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/griffin
|
||||
name = "griffin costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings,
|
||||
/obj/item/clothing/shoes/griffin,
|
||||
/obj/item/clothing/under/griffin,
|
||||
/obj/item/clothing/head/griffin)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/waiter
|
||||
name = "waiter costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/waiter,
|
||||
/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
|
||||
/obj/item/clothing/suit/apron)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/pirate
|
||||
name = "pirate costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/pirate,
|
||||
/obj/item/clothing/suit/pirate,
|
||||
/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
|
||||
/obj/item/clothing/glasses/eyepatch)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/commie
|
||||
name = "commie costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/soviet,
|
||||
/obj/item/clothing/head/ushanka)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/imperium_monk
|
||||
name = "imperium monk costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/imperium_monk,
|
||||
/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/holiday_priest
|
||||
name = "holiday priest costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/suit/holidaypriest)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/marisawizard
|
||||
name = "marisa wizard costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/shoes/sandal/marisa,
|
||||
/obj/item/clothing/head/wizard/marisa/fake,
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/cutewitch
|
||||
name = "cute witch costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/under/sundress,
|
||||
/obj/item/clothing/head/witchwig,
|
||||
/obj/item/weapon/staff/broom)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/wizard
|
||||
name = "wizard costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/shoes/sandal,
|
||||
/obj/item/clothing/suit/wizrobe/fake,
|
||||
/obj/item/clothing/head/wizard/fake,
|
||||
/obj/item/weapon/staff)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/sexyclown
|
||||
name = "sexy clown costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/mask/gas/sexyclown,
|
||||
/obj/item/clothing/under/rank/clown/sexy)
|
||||
|
||||
/obj/effect/spawner/bundle/costume/sexymime
|
||||
name = "sexy mime costume spawner"
|
||||
items = list(
|
||||
/obj/item/clothing/mask/gas/sexymime,
|
||||
/obj/item/clothing/under/sexymime)
|
||||
@@ -6,7 +6,7 @@
|
||||
var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn.
|
||||
var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards.
|
||||
|
||||
/obj/effect/gibspawner/New(location, list/viruses, datum/dna/MobDNA)
|
||||
/obj/effect/gibspawner/Initialize(mapload, list/viruses, datum/dna/MobDNA)
|
||||
..()
|
||||
|
||||
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
|
||||
@@ -17,16 +17,16 @@
|
||||
|
||||
if(sparks)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.set_up(2, 1, loc)
|
||||
s.start()
|
||||
|
||||
for(var/i = 1, i<= gibtypes.len, i++)
|
||||
if(gibamounts[i])
|
||||
for(var/j = 1, j<= gibamounts[i], j++)
|
||||
var/gibType = gibtypes[i]
|
||||
gib = new gibType(location)
|
||||
if(istype(location,/mob/living/carbon))
|
||||
var/mob/living/carbon/digester = location
|
||||
gib = new gibType(loc)
|
||||
if(istype(loc,/mob/living/carbon))
|
||||
var/mob/living/carbon/digester = loc
|
||||
digester.stomach_contents += gib
|
||||
|
||||
if(viruses && viruses.len > 0)
|
||||
@@ -53,7 +53,7 @@
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
|
||||
gibamounts = list(2,2,1)
|
||||
|
||||
/obj/effect/gibspawner/generic/New()
|
||||
/obj/effect/gibspawner/generic/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list())
|
||||
..()
|
||||
@@ -62,9 +62,9 @@
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core)
|
||||
gibamounts = list(1,1,1,1,1,1,1)
|
||||
|
||||
/obj/effect/gibspawner/human/New()
|
||||
/obj/effect/gibspawner/human/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 50, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
..()
|
||||
|
||||
|
||||
@@ -72,9 +72,9 @@
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core,/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/humanbodypartless/New()
|
||||
/obj/effect/gibspawner/humanbodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 50, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, list())
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
..()
|
||||
|
||||
|
||||
@@ -82,9 +82,9 @@
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core)
|
||||
gibamounts = list(1,1,1,1,1,1,1)
|
||||
|
||||
/obj/effect/gibspawner/xeno/New()
|
||||
/obj/effect/gibspawner/xeno/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
..()
|
||||
|
||||
|
||||
@@ -93,25 +93,25 @@
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
|
||||
/obj/effect/gibspawner/xenobodypartless/New()
|
||||
/obj/effect/gibspawner/xenobodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, list())
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
..()
|
||||
|
||||
/obj/effect/gibspawner/larva
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body)
|
||||
gibamounts = list(1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/larva/New()
|
||||
/obj/effect/gibspawner/larva/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), alldirs)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), GLOB.alldirs)
|
||||
..()
|
||||
|
||||
/obj/effect/gibspawner/larvabodypartless
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva)
|
||||
gibamounts = list(1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/larvabodypartless/New()
|
||||
/obj/effect/gibspawner/larvabodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list())
|
||||
..()
|
||||
@@ -121,7 +121,7 @@
|
||||
gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb)
|
||||
gibamounts = list(1,1,1,1,1,1)
|
||||
|
||||
/obj/effect/gibspawner/robot/New()
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs)
|
||||
/obj/effect/gibspawner/robot/Initialize()
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs)
|
||||
gibamounts[6] = pick(0,1,2)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -3,24 +3,27 @@
|
||||
icon_state = "x2"
|
||||
color = "#00FF00"
|
||||
var/lootcount = 1 //how many items will be spawned
|
||||
var/lootdoubles = 1 //if the same item can be spawned twice
|
||||
var/lootdoubles = TRUE //if the same item can be spawned twice
|
||||
var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
|
||||
|
||||
/obj/effect/spawner/lootdrop/New()
|
||||
/obj/effect/spawner/lootdrop/Initialize(mapload)
|
||||
..()
|
||||
|
||||
if(loot && loot.len)
|
||||
for(var/i = lootcount, i > 0, i--)
|
||||
if(!loot.len) break
|
||||
var/turf/T = get_turf(src)
|
||||
while(lootcount && loot.len)
|
||||
var/lootspawn = pickweight(loot)
|
||||
if(!lootdoubles)
|
||||
loot.Remove(lootspawn)
|
||||
|
||||
if(lootspawn)
|
||||
new lootspawn(get_turf(src))
|
||||
new lootspawn(T)
|
||||
lootcount--
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spawner/lootdrop/armory_contraband
|
||||
name = "armory contraband gun spawner"
|
||||
lootdoubles = 0
|
||||
lootdoubles = FALSE
|
||||
|
||||
loot = list(
|
||||
/obj/item/weapon/gun/ballistic/automatic/pistol = 8,
|
||||
@@ -87,7 +90,7 @@
|
||||
/obj/item/clothing/gloves/color/fyellow = 1,
|
||||
/obj/item/clothing/head/hardhat = 1,
|
||||
/obj/item/clothing/head/hardhat/red = 1,
|
||||
/obj/item/clothing/head/that{throwforce = 1;} = 1,
|
||||
/obj/item/clothing/head/that = 1,
|
||||
/obj/item/clothing/head/ushanka = 1,
|
||||
/obj/item/clothing/head/welding = 1,
|
||||
/obj/item/clothing/mask/gas = 15,
|
||||
@@ -102,8 +105,8 @@
|
||||
/obj/item/device/radio/off = 2,
|
||||
/obj/item/device/t_scanner = 5,
|
||||
/obj/item/weapon/airlock_painter = 1,
|
||||
/obj/item/stack/cable_coil = 4,
|
||||
/obj/item/stack/cable_coil{amount = 5} = 6,
|
||||
/obj/item/stack/cable_coil/random = 4,
|
||||
/obj/item/stack/cable_coil/random{amount = 5} = 6,
|
||||
/obj/item/stack/medical/bruise_pack = 1,
|
||||
/obj/item/stack/rods{amount = 10} = 9,
|
||||
/obj/item/stack/rods{amount = 23} = 1,
|
||||
@@ -144,7 +147,7 @@
|
||||
/obj/item/weapon/wirecutters = 1,
|
||||
/obj/item/weapon/wrench = 4,
|
||||
/obj/item/weapon/relic = 3,
|
||||
/obj/item/weaponcrafting/reciever = 2,
|
||||
/obj/item/weaponcrafting/receiver = 2,
|
||||
/obj/item/clothing/head/cone = 2,
|
||||
/obj/item/weapon/grenade/smokebomb = 2,
|
||||
/obj/item/device/geiger_counter = 3,
|
||||
@@ -165,7 +168,7 @@
|
||||
|
||||
/obj/effect/spawner/lootdrop/crate_spawner
|
||||
name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF!
|
||||
lootdoubles = 0
|
||||
lootdoubles = FALSE
|
||||
|
||||
loot = list(
|
||||
/obj/structure/closet/crate/secure/loot = 20,
|
||||
@@ -194,3 +197,44 @@
|
||||
loot = list(
|
||||
/obj/effect/decal/remains/xeno = 49,
|
||||
/obj/effect/spawner/xeno_egg_delivery = 1)
|
||||
|
||||
/obj/effect/spawner/lootdrop/costume
|
||||
name = "random costume spawner"
|
||||
|
||||
/obj/effect/spawner/lootdrop/costume/Initialize()
|
||||
loot = list()
|
||||
for(var/path in subtypesof(/obj/effect/spawner/bundle/costume))
|
||||
loot[path] = TRUE
|
||||
..()
|
||||
|
||||
// Minor lootdrops follow
|
||||
|
||||
/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears
|
||||
name = "beret or rabbit ears spawner"
|
||||
loot = list(
|
||||
/obj/item/clothing/head/beret = 1,
|
||||
/obj/item/clothing/head/rabbitears = 1)
|
||||
|
||||
/obj/effect/spawner/lootdrop/minor/bowler_or_that
|
||||
name = "bowler or top hat spawner"
|
||||
loot = list(
|
||||
/obj/item/clothing/head/bowler = 1,
|
||||
/obj/item/clothing/head/that = 1)
|
||||
|
||||
/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears
|
||||
name = "kitty ears or rabbit ears spawner"
|
||||
loot = list(
|
||||
/obj/item/clothing/head/kitty = 1,
|
||||
/obj/item/clothing/head/rabbitears = 1)
|
||||
|
||||
/obj/effect/spawner/lootdrop/minor/pirate_or_bandana
|
||||
name = "pirate hat or bandana spawner"
|
||||
loot = list(
|
||||
/obj/item/clothing/head/pirate = 1,
|
||||
/obj/item/clothing/head/bandana = 1)
|
||||
|
||||
/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask
|
||||
name = "25% cyborg mask spawner"
|
||||
loot = list(
|
||||
/obj/item/clothing/mask/gas/cyborg = 25,
|
||||
"" = 75)
|
||||
|
||||
@@ -11,9 +11,8 @@ again.
|
||||
/obj/effect/spawner/structure/Initialize()
|
||||
..()
|
||||
if(spawn_list && spawn_list.len)
|
||||
for(var/i = 1, i <= spawn_list.len, i++)
|
||||
var/to_spawn = spawn_list[i]
|
||||
new to_spawn(get_turf(src))
|
||||
for(var/I in spawn_list)
|
||||
new I(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/spawner/structure/window
|
||||
@@ -31,4 +30,4 @@ again.
|
||||
spawn_list = list(
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced/fulltile
|
||||
)
|
||||
)
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
message_admins("An alien egg has been delivered to [A] at [ADMIN_COORDJMP(T)].")
|
||||
log_game("An alien egg has been delivered to [A] at [COORD(T)]")
|
||||
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [A]. Remember to follow all safety precautions when dealing with the specimen."
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /.proc/print_command_report, message), announcement_time)
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /.proc/print_command_report, message), announcement_time))
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user