mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 07:32:02 +00:00
Rewrote the job selection system to use bitflags and the jobs are now objects. Fixed a path conflict with effect which caused a few things to be unable to be clicked on. Commented out the job.txt, Urist if you still want it to load from the .txt give me a yell and I can update it to work with the job objects. Fixed up the bits that were missing the slightly updated mob organ attack code. Moved the traps file into unused. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2340 316c924e-a436-60f5-8080-3fe189b3f50e
86 lines
3.5 KiB
Plaintext
86 lines
3.5 KiB
Plaintext
//HUMANS
|
|
|
|
/proc/gibs(atom/location, var/list/viruses)
|
|
new /obj/effect/gibspawner/human(get_turf(location),viruses)
|
|
|
|
/proc/xgibs(atom/location, var/list/viruses)
|
|
new /obj/effect/gibspawner/xeno(get_turf(location),viruses)
|
|
|
|
/proc/robogibs(atom/location, var/list/viruses)
|
|
new /obj/effect/gibspawner/robot(get_turf(location),viruses)
|
|
|
|
/obj/effect/gibspawner
|
|
var/sparks = 0 //whether sparks spread on Gib()
|
|
var/virusProb = 20 //the chance for viruses to spread on the gibs
|
|
var/list/gibtypes = list()
|
|
var/list/gibamounts = list()
|
|
var/list/gibdirections = list() //of lists
|
|
|
|
New(location, var/list/viruses)
|
|
..()
|
|
|
|
if(istype(loc,/turf)) //basically if a badmin spawns it
|
|
Gib(loc,viruses)
|
|
|
|
proc/Gib(atom/location, var/list/viruses = list())
|
|
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
|
|
world << "\red Gib list length mismatch!"
|
|
return
|
|
|
|
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
|
for(var/datum/disease/D in viruses)
|
|
if(D.spread_type == SPECIAL)
|
|
del(D)
|
|
|
|
if(sparks)
|
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
|
s.set_up(2, 1, location)
|
|
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(viruses.len > 0)
|
|
for(var/datum/disease/D in viruses)
|
|
if(prob(virusProb))
|
|
var/datum/disease/viruus = new D.type
|
|
gib.viruses += viruus
|
|
viruus.holder = gib
|
|
viruus.spread_type = CONTACT_FEET
|
|
var/list/directions = gibdirections[i]
|
|
if(directions.len)
|
|
gib.streak(directions)
|
|
|
|
del(src)
|
|
|
|
/obj/effect/gibspawner
|
|
human
|
|
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)
|
|
|
|
New()
|
|
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
|
|
gibamounts[6] = pick(0,1,2)
|
|
..()
|
|
|
|
xeno
|
|
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)
|
|
|
|
New()
|
|
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
|
|
gibamounts[6] = pick(0,1,2)
|
|
..()
|
|
|
|
robot
|
|
sparks = 1
|
|
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)
|
|
|
|
New()
|
|
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs)
|
|
gibamounts[6] = pick(0,1,2)
|
|
..() |