Merge git://github.com/Baystation12/Baystation12

Conflicts:
	code/game/gamemodes/meteor/meteors.dm
	code/modules/mob/living/carbon/human/examine.dm
	code/modules/mob/new_player/new_player.dm

Signed-off-by: CaelAislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
CaelAislinn
2012-02-07 03:28:09 +10:00
17 changed files with 99 additions and 112 deletions

View File

@@ -358,7 +358,7 @@ obj/machinery/computer/forensic_scanning
scan_process = 0
scan_name = scanning.name
scan_data = "<u>[scanning]</u><br><br>"
if (scanning.blood_DNA)
if (scanning.blood_DNA.len)
scan_data += "Blood Found:<br>"
for(var/i = 1, i < (scanning.blood_DNA.len + 1), i++)
var/list/templist = scanning.blood_DNA[i]

View File

@@ -5,7 +5,7 @@
var/list/fingerprints = list()
var/list/fingerprintshidden = new/list()
var/fingerprintslast = null
var/list/blood_DNA = null
var/list/blood_DNA = list()
var/last_bumped = 0
var/pass_flags = 0

View File

@@ -139,7 +139,7 @@
return 0
if (!( src.flags ) & 256)
return
if (src.blood_DNA)
if (src.blood_DNA.len)
if (istype(src, /obj/item)&&!istype(src, /obj/item/weapon/melee/energy))//Only regular items. Energy melee weapon are not affected.
var/obj/item/source2 = src
source2.icon_old = src.icon
@@ -148,13 +148,15 @@
I.Blend(new /icon('blood.dmi', "itemblood"),ICON_MULTIPLY)
I.Blend(new /icon(src.icon, src.icon_state),ICON_UNDERLAY)
src.icon = I
if(src.blood_DNA.len)
var/inthere = 0
for(var/i = 1, i <= src.blood_DNA.len, i++)
var/list/templist = src.blood_DNA[i]
if(templist[1] == M.dna.unique_enzymes && templist[2] == M.dna.b_type)
inthere = 1
break
if(!inthere)
src.blood_DNA.len++
src.blood_DNA[src.blood_DNA.len] = list(M.dna.unique_enzymes,M.dna.b_type)
else
var/list/blood_DNA_temp[1]
blood_DNA_temp[1] = list(M.dna.unique_enzymes, M.dna.b_type)
src.blood_DNA = blood_DNA_temp
else if (istype(src, /turf/simulated))
var/turf/simulated/source2 = src
var/list/objsonturf = range(0,src)
@@ -172,13 +174,15 @@
this.viruses += newDisease
newDisease.holder = this
else if (istype(src, /mob/living/carbon/human))
if(src.blood_DNA.len)
var/inthere = 0
for(var/i = 1, i <= src.blood_DNA.len, i++)
var/list/templist = src.blood_DNA[i]
if(templist[1] == M.dna.unique_enzymes && templist[2] == M.dna.b_type)
inthere = 1
break
if(!inthere)
src.blood_DNA.len++
src.blood_DNA[src.blood_DNA.len] = list(M.dna.unique_enzymes,M.dna.b_type)
else
var/list/blood_DNA_temp[1]
blood_DNA_temp[1] = list(M.dna.unique_enzymes, M.dna.b_type)
src.blood_DNA = blood_DNA_temp
else
return
else
@@ -235,21 +239,21 @@
if (!( src.flags ) & 256)
return
if ( src.blood_DNA )
if ( src.blood_DNA.len )
if (istype (src, /mob/living/carbon))
var/obj/item/source2 = src
source2.blood_DNA = null
source2.blood_DNA = list()
//var/icon/I = new /icon(source2.icon_old, source2.icon_state) //doesnt have icon_old
//source2.icon = I
if (istype (src, /obj/item))
var/obj/item/source2 = src
source2.blood_DNA = null
source2.blood_DNA = list()
// var/icon/I = new /icon(source2.icon_old, source2.icon_state)
source2.icon = source2.icon_old
source2.update_icon()
if (istype(src, /turf/simulated))
var/obj/item/source2 = src
source2.blood_DNA = null
source2.blood_DNA = list()
var/icon/I = new /icon(source2.icon_old, source2.icon_state)
source2.icon = I
if(src.fingerprints && src.fingerprints.len)

View File

@@ -1,4 +1,4 @@
#define METEOR_TEMPERATURE 0 //set to 0 until we work out a good number for it
#define METEOR_TEMPERATURE
/var/const/meteor_wave_delay = 625 //minimum wait between waves in tenths of seconds
//set to at least 100 unless you want evarr ruining every round
@@ -22,9 +22,7 @@
spawn(0)
spawn_meteor()
//if size is 0, it picks a random size
//if T is null, it starts on an edge space tile
/proc/spawn_meteor(var/size = 0, var/turf/T = null)
/proc/spawn_meteor()
var/startx
var/starty
@@ -34,10 +32,8 @@
var/turf/pickedgoal
var/max_i = 10//number of tries to spawn meteor.
do
if(T)
pickedstart = T
else
switch(pick(1,2,3,4))
if(1) //NORTH
starty = world.maxy-3
@@ -59,30 +55,24 @@
startx = 3
endy = rand(1,world.maxy-1)
endx = world.maxx-1
pickedstart = locate(startx, starty, 1)
pickedgoal = locate(endx, endy, 1)
max_i--
if(max_i<=0) return
//meteors can spawn on station when a large one is hit by a missile
while ( (!istype(pickedstart, /turf/space) || pickedstart.loc.name != "Space") && !T )
while (!istype(pickedstart, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
var/obj/effect/meteor/M
switch(size)
if(0)
switch(rand(1, 100))
if(1 to 10)
M = new /obj/effect/meteor/big( pickedstart )
if(11 to 75)
M = new /obj/effect/meteor( pickedstart )
if(76 to 100)
M = new /obj/effect/meteor/small( pickedstart )
if(1)
M = new /obj/effect/meteor/small( pickedstart )
if(2)
M = new /obj/effect/meteor( pickedstart )
if(3)
M = new /obj/effect/meteor/big( pickedstart )
M.dest = pickedgoal
spawn(0)
@@ -106,7 +96,7 @@
pass_flags = PASSTABLE | PASSGRILLE
/obj/effect/meteor/Move()
//var/turf/T = src.loc
// var/turf/T = src.loc
//FUCK YOU. FUCK YOU ALL, METEORS. ~Hawk.
/*if (istype(T, /turf))
T.hotspot_expose(METEOR_TEMPERATURE, 1000) */

View File

@@ -805,8 +805,7 @@
H.apply_damage(0.5*damage, BRUTE, "r_arm")
var/obj/effect/decal/cleanable/blood/B = new(src.loc)
B.blood_DNA.len++
B.blood_DNA[B.blood_DNA.len] = list(H.dna.unique_enzymes, H.dna.b_type)
B.blood_DNA = list(list(H.dna.unique_enzymes, H.dna.b_type))
bloodiness += 4

View File

@@ -555,10 +555,6 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
R.word2 = w2
R.word3 = w3
R.check_icon()
if(R.blood_DNA.len)
R.blood_DNA.len++
R.blood_DNA[R.blood_DNA.len] = list(H.dna.unique_enzymes, H.dna.b_type)
else
R.blood_DNA = list(list(H.dna.unique_enzymes, H.dna.b_type))
return
else

View File

@@ -738,7 +738,7 @@
user << "\blue No fingerprints found on [C]"
else
user << text("\blue [C]'s Fingerprints: [md5(C:dna.uni_identity)]")
if ( !(C:blood_DNA) )
if ( !(C:blood_DNA.len) )
user << "\blue No blood found on [C]"
else
user << "\blue Blood found on [C]. Analysing..."

View File

@@ -122,7 +122,7 @@ MASS SPECTROMETER
user << "\blue Done printing."
user << text("\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]")
if ( !(M.blood_DNA) )
if ( !(M.blood_DNA.len) )
user << "\blue No blood found on [M]"
else
user << "\blue Blood found on [M]. Analysing..."
@@ -145,10 +145,10 @@ MASS SPECTROMETER
user << "\blue Blood type: [templist[2]]\nDNA: [templist[1]]"
return
var/duplicate = 0
if ((!A.fingerprints || A.fingerprints.len == 0) && !(A.suit_fibers) && !(A.blood_DNA))
if ((!A.fingerprints || A.fingerprints.len == 0) && !(A.suit_fibers) && !(A.blood_DNA.len))
user << "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!"
return 0
else if (A.blood_DNA)
else if (A.blood_DNA.len)
user << "\blue Blood found on [A]. Analysing..."
sleep(15)
if(!duplicate)
@@ -231,7 +231,7 @@ MASS SPECTROMETER
var/list/blood = temp[4]
if(!blood)
blood = list()
if(A.blood_DNA)
if(A.blood_DNA.len)
for(var/j = 1, j < (A.blood_DNA.len + 1), j++) //Blood~~~
if(!blood.Find(A.blood_DNA[j])) //It isn't! Add!
blood += A.blood_DNA[j]

View File

@@ -51,8 +51,7 @@
viruus.holder = gib
viruus.spread_type = CONTACT_FEET
if(MobDNA)
gib.blood_DNA.len++
gib.blood_DNA[gib.blood_DNA.len] = list(MobDNA.unique_enzymes, MobDNA.b_type)
gib.blood_DNA = list(list(MobDNA.unique_enzymes, MobDNA.b_type))
if(MobDNA.original_name != "Unknown")
gib.OriginalMob = MobDNA.original_name
var/list/directions = gibdirections[i]

View File

@@ -100,7 +100,7 @@
t = "huge"
else
if ((usr.mutations & CLUMSY) && prob(50)) t = "funny-looking"
usr << text("This is a []\icon[][]. It is a [] item.", !src.blood_DNA ? "" : "bloody ",src, src.name, t)
usr << text("This is a []\icon[][]. It is a [] item.", !src.blood_DNA.len ? "" : "bloody ",src, src.name, t)
if(src.desc)
usr << src.desc
return

View File

@@ -155,8 +155,7 @@ datum
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
if(!blood_prop) //first blood!
blood_prop = new(T)
blood_prop.blood_DNA.len++
blood_prop.blood_DNA[blood_prop.blood_DNA.len] = list(self.data["blood_DNA"], self.data["blood_type"])
blood_prop.blood_DNA = list(list(self.data["blood_DNA"], self.data["blood_type"]))
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type
@@ -180,7 +179,7 @@ datum
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA = list(self.data["blood_DNA"])
blood_prop.blood_DNA = list(list(self.data["blood_DNA"]))
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type
blood_prop.viruses += newVirus
@@ -197,7 +196,7 @@ datum
var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA = list(self.data["blood_DNA"])
blood_prop.blood_DNA = list(list(self.data["blood_DNA"]))
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type
blood_prop.viruses += newVirus

View File

@@ -16,8 +16,8 @@
t_him = "her"
if (src.w_uniform)
if (src.w_uniform.blood_DNA)
usr << "\red [src.name] is wearing a[src.w_uniform.blood_DNA ? " bloody " : " "] \icon[src.w_uniform] [src.w_uniform.name]!"
if (src.w_uniform.blood_DNA.len)
usr << "\red [src.name] is wearing a[src.w_uniform.blood_DNA.len ? " bloody " : " "] \icon[src.w_uniform] [src.w_uniform.name]!"
else
usr << "\blue [src.name] is wearing a \icon[src.w_uniform] [src.w_uniform.name]."
@@ -25,8 +25,8 @@
usr << "\blue [src.name] is \icon[src.handcuffed] handcuffed!"
if (src.wear_suit)
if (src.wear_suit.blood_DNA)
usr << "\red [src.name] has a[src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name] on!"
if (src.wear_suit.blood_DNA.len)
usr << "\red [src.name] has a[src.wear_suit.blood_DNA.len ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name] on!"
else
usr << "\blue [src.name] has a \icon[src.wear_suit] [src.wear_suit.name] on."
@@ -37,44 +37,44 @@
usr << "\blue [src.name] has a \icon[src.r_ear] [src.r_ear.name] on [t_his] right ear."
if (src.wear_mask)
if (src.wear_mask.blood_DNA)
usr << "\red [src.name] has a[src.wear_mask.blood_DNA ? " bloody " : " "] \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face!"
if (src.wear_mask.blood_DNA.len)
usr << "\red [src.name] has a[src.wear_mask.blood_DNA.len ? " bloody " : " "] \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face!"
else
usr << "\blue [src.name] has a \icon[src.wear_mask] [src.wear_mask.name] on [t_his] face."
if (src.l_hand)
if (src.l_hand.blood_DNA)
usr << "\red [src.name] has a[src.l_hand.blood_DNA ? " bloody " : " "] \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand!"
if (src.l_hand.blood_DNA.len)
usr << "\red [src.name] has a[src.l_hand.blood_DNA.len ? " bloody " : " "] \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand!"
else
usr << "\blue [src.name] has a \icon[src.l_hand] [src.l_hand.name] in [t_his] left hand."
if (src.r_hand)
if (src.r_hand.blood_DNA)
usr << "\red [src.name] has a[src.r_hand.blood_DNA ? " bloody " : " "] \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand!"
if (src.r_hand.blood_DNA.len)
usr << "\red [src.name] has a[src.r_hand.blood_DNA.len ? " bloody " : " "] \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand!"
else
usr << "\blue [src.name] has a \icon[src.r_hand] [src.r_hand.name] in [t_his] right hand."
if (src.belt)
if (src.belt.blood_DNA)
usr << "\red [src.name] has a[src.belt.blood_DNA ? " bloody " : " "] \icon[src.belt] [src.belt.name] on [t_his] belt!"
if (src.belt.blood_DNA.len)
usr << "\red [src.name] has a[src.belt.blood_DNA.len ? " bloody " : " "] \icon[src.belt] [src.belt.name] on [t_his] belt!"
else
usr << "\blue [src.name] has a \icon[src.belt] [src.belt.name] on [t_his] belt."
if(src.s_store)
if(src.s_store.blood_DNA)
usr << "\red [src.name] has a[src.s_store.blood_DNA ? " bloody " : " "] \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]!"
if(src.s_store.blood_DNA.len)
usr << "\red [src.name] has a[src.s_store.blood_DNA.len ? " bloody " : " "] \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA.len ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]!"
else
usr << "\blue [src.name] has a \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]."
usr << "\blue [src.name] has a \icon[src.s_store] [src.s_store.name] on [t_his][src.wear_suit.blood_DNA.len ? " bloody " : " "] \icon[src.wear_suit] [src.wear_suit.name]."
if (src.shoes)
usr << "[src.shoes.blood_DNA ? "\red" : "\blue"][src.name] has a[src.shoes.blood_DNA ? " bloody " : " "] \icon[src.shoes] [src.shoes.name] on [t_his] feet."
usr << "[src.shoes.blood_DNA.len ? "\red" : "\blue"] [src.name] has a[src.shoes.blood_DNA.len ? " bloody " : " "] \icon[src.shoes] [src.shoes.name] on [t_his] feet."
if (src.gloves)
if (src.gloves.blood_DNA)
if (src.gloves.blood_DNA.len)
usr << "\red [src.name] has bloody \icon[src.gloves] [src.gloves.name] on [t_his] hands!"
else
usr << "\blue [src.name] has \icon[src.gloves] [src.gloves.name] on [t_his] hands."
else if (src.blood_DNA)
usr << "\red [src.name] has[src.blood_DNA ? " bloody " : " "] hands!"
else if (src.blood_DNA.len)
usr << "\red [src.name] has[src.blood_DNA.len ? " bloody " : " "] hands!"
if (src.back)
usr << "\blue [src.name] has a \icon[src.back] [src.back.name] on [t_his] back."

View File

@@ -875,7 +875,7 @@
overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER)
else*/
overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
if (w_uniform.blood_DNA)
if (w_uniform.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]")
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
@@ -905,14 +905,14 @@
else if(ro.destroyed)
gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
overlays += image(gloves_icon, "layer" = MOB_LAYER)
if (gloves.blood_DNA)
if (gloves.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
if(lo.destroyed)
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
else if(ro.destroyed)
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
else if (blood_DNA)
else if (blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
if(lo.destroyed)
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
@@ -941,7 +941,7 @@
else if(ro.destroyed && !lying)
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
overlays += image(shoes_icon, "layer" = MOB_LAYER)
if (shoes.blood_DNA)
if (shoes.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "shoesblood[!lying ? "" : "2"]")
if(lo.destroyed)
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
@@ -1000,7 +1000,7 @@
var/t1 = wear_suit.icon_state
overlays += image("icon" = 'suit.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
if (wear_suit)
if (wear_suit.blood_DNA)
if (wear_suit.blood_DNA.len)
var/icon/stain_icon = null
if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/storage/wcoat))
stain_icon = icon('blood.dmi', "armorblood[!lying ? "" : "2"]")
@@ -1036,7 +1036,7 @@
var/t1 = wear_mask.icon_state
overlays += image("icon" = 'mask.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
if (!istype(wear_mask, /obj/item/clothing/mask/cigarette))
if (wear_mask.blood_DNA)
if (wear_mask.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "maskblood[!lying ? "" : "2"]")
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
wear_mask.screen_loc = ui_mask
@@ -1050,7 +1050,7 @@
overlays += image("icon" = head_icon, "layer" = MOB_LAYER)
if(gimmick_hat)
overlays += image("icon" = icon('gimmick_head.dmi', "[gimmick_hat][!lying ? "" : "2"]"), "layer" = MOB_LAYER)
if (head.blood_DNA)
if (head.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "helmetblood[!lying ? "" : "2"]")
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
head.screen_loc = ui_head

View File

@@ -274,7 +274,7 @@
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
if (ticker.current_state == GAME_STATE_PLAYING)
var/obj/item/device/radio/intercom/a = new /obj/item/device/radio/intercom(null)
a.autosay("[character.real_name][character.wear_id.assignment ? ", [character.wear_id.assignment], " : "" ] has arrived on the station.", "Arrivals Announcement Computer")
a.autosay("[character.real_name],[character.wear_id.assignment ? " [character.wear_id.assignment]," : "" ] has arrived on the station.", "Arrivals Announcement Computer")
del(a)

View File

@@ -92,7 +92,7 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
if(!istype(H))
return
if(H.dna)
if(blood_DNA)
if(blood_DNA.len)
blood_DNA.len++
blood_DNA[blood_DNA.len] = list(H.dna.unique_enzymes, H.dna.b_type)
else

View File

@@ -439,7 +439,7 @@
del(H)
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if (istype(mover,/obj/item))
if (istype(mover,/obj/item) && !istype(mover,/obj/item/weapon/dummy))
var/obj/item/I = mover
if(prob(75))
I.loc = src

View File

@@ -62,7 +62,7 @@
dat += "\blue Unable to scan [A]'s fingerprints.\n"
else
dat += "\blue [H]'s Fingerprints: [md5(H.dna.uni_identity)]\n"
if ( !(H.blood_DNA) )
if ( !(H.blood_DNA.len) )
dat += "\blue No blood found on [H]\n"
else
for(var/i = 1, i < H.blood_DNA.len, i++)