mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
Finished up the last parts of my fingerprints work. Added a rag which lets you smudge away prints, and sinks do the same.
Added hallucinations properly. Added LSD (with hallucinations.) Remapped slightly.
This commit is contained in:
+29
-1
@@ -107,7 +107,16 @@
|
||||
prints = L[num2text(2)]
|
||||
break
|
||||
else
|
||||
src.fingerprints[i] = "1=" + L[num2text(1)] + "&2=" + stars(L[num2text(2)], rand(80,90))
|
||||
var/test_print = stars(L[num2text(2)], rand(80,90))
|
||||
if(stringpercent(test_print) == 32)
|
||||
if(src.fingerprints.len == 1)
|
||||
src.fingerprints = list()
|
||||
else
|
||||
for(var/j = (i + 1), j < (src.fingerprints.len), j++)
|
||||
src.fingerprints[j-1] = src.fingerprints[j]
|
||||
src.fingerprints.len--
|
||||
else
|
||||
src.fingerprints[i] = "1=" + L[num2text(1)] + "&2=" + test_print
|
||||
else
|
||||
var/turf/T = get_turf(src)
|
||||
for (var/mob/N in world)
|
||||
@@ -245,6 +254,25 @@
|
||||
source2.blood_DNA = null
|
||||
var/icon/I = new /icon(source2.icon_old, source2.icon_state)
|
||||
source2.icon = I
|
||||
if(src.fingerprints && src.fingerprints.len)
|
||||
var/done = 0
|
||||
while(!done)
|
||||
done = 1
|
||||
for(var/i = 1, i < (src.fingerprints.len + 1), i++)
|
||||
var/list/prints = params2list(src.fingerprints[i])
|
||||
var/test_print = prints["2"]
|
||||
var/new_print = stars(test_print, rand(1,20))
|
||||
if(stringpercent(new_print) == 32)
|
||||
if(src.fingerprints.len == 1)
|
||||
src.fingerprints = list()
|
||||
else
|
||||
for(var/j = (i + 1), j < (src.fingerprints.len), j++)
|
||||
src.fingerprints[j-1] = src.fingerprints[j]
|
||||
src.fingerprints.len--
|
||||
done = 0
|
||||
break
|
||||
else
|
||||
src.fingerprints[i] = "1=" + prints["1"] + "&2=" + new_print
|
||||
return
|
||||
|
||||
/atom/MouseDrop(atom/over_object as mob|obj|turf|area)
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
var/datum/objective/assassinate/kill_objective = new
|
||||
kill_objective.owner = traitor
|
||||
kill_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
for(var/j, j < (traitor.objectives.len + 1), j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/assassinate)
|
||||
if(compare)
|
||||
var/datum/objective/assassinate/test = traitor.objectives[j]
|
||||
@@ -129,7 +129,7 @@
|
||||
var/datum/objective/protect/protect_objective = new
|
||||
protect_objective.owner = traitor
|
||||
protect_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
for(var/j, j < (traitor.objectives.len + 1), j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/assassinate)
|
||||
if(compare)
|
||||
var/datum/objective/assassinate/test = traitor.objectives[j]
|
||||
@@ -157,7 +157,7 @@
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = traitor
|
||||
steal_objective.find_target()
|
||||
for(var/j, j < traitor.objectives.len, j++)
|
||||
for(var/j, j < (traitor.objectives.len + 1), j++)
|
||||
var/compare = istype(traitor.objectives[j],/datum/objective/steal)
|
||||
if(compare)
|
||||
var/datum/objective/steal/test = traitor.objectives[j]
|
||||
|
||||
@@ -68,7 +68,8 @@
|
||||
/obj/machinery/computer/cloning/New()
|
||||
..()
|
||||
spawn(5)
|
||||
src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, scandir))
|
||||
updatemodules()
|
||||
/*src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, scandir))
|
||||
src.pod1 = locate(/obj/machinery/clonepod, get_step(src, poddir))
|
||||
|
||||
src.temp = ""
|
||||
@@ -80,10 +81,54 @@
|
||||
src.pod1.connected = src
|
||||
|
||||
if (src.temp == "")
|
||||
src.temp = "System ready."
|
||||
src.temp = "System ready."*/
|
||||
return
|
||||
return
|
||||
|
||||
/obj/machinery/computer/cloning/proc/updatemodules()
|
||||
//world << "UPDATING MODULES"
|
||||
src.scanner = findscanner()//locate(/obj/machinery/dna_scannernew, get_step(src, WEST))
|
||||
src.pod1 = findcloner()//locate(/obj/machinery/clonepod, get_step(src, EAST))
|
||||
//world << "SEARCHING FOR MACHEIN"
|
||||
//src.temp = ""
|
||||
//if (isnull(src.scanner))
|
||||
// src.temp += " <font color=red>SCNR-ERROR</font>"
|
||||
if (!isnull(src.pod1) && !wantspod)
|
||||
src.pod1.connected = src
|
||||
// src.temp += " <font color=red>POD1-ERROR</font>"
|
||||
//else
|
||||
|
||||
//if (src.temp == "")
|
||||
// src.temp = "System ready."
|
||||
|
||||
/obj/machinery/computer/cloning/proc/findscanner()
|
||||
//..()
|
||||
//world << "SEARCHING FOR SCANNER"
|
||||
var/obj/machinery/dna_scannernew/scannerf = null
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
//world << "SEARCHING IN [dir]"
|
||||
scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir))
|
||||
if (!isnull(scannerf))
|
||||
//world << "FOUND"
|
||||
break
|
||||
if(isnull(scannerf) && wantsscan)
|
||||
src.temp += " <font color=red>SCNR-ERROR</font>"
|
||||
return scannerf
|
||||
|
||||
/obj/machinery/computer/cloning/proc/findcloner()
|
||||
//..()
|
||||
//world << "SEARCHING FOR POD"
|
||||
var/obj/machinery/clonepod/podf = null
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
//world << "SEARCHING IN [dir]"
|
||||
podf = locate(/obj/machinery/clonepod, get_step(src, dir))
|
||||
if (!isnull(podf))
|
||||
//world << "FOUND"
|
||||
break
|
||||
if(isnull(podf) && wantspod)
|
||||
src.temp += " <font color=red>POD1-ERROR</font>"
|
||||
return podf
|
||||
|
||||
/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
|
||||
if (!src.diskette)
|
||||
@@ -110,6 +155,7 @@
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
|
||||
updatemodules()
|
||||
var/dat = "<h3>Cloning System Control</h3>"
|
||||
dat += "<font size=-1><a href='byond://?src=\ref[src];refresh=1'>Refresh</a></font>"
|
||||
|
||||
|
||||
@@ -211,6 +211,11 @@ About the new airlock wires panel:
|
||||
return
|
||||
else /*if (src.justzap)*/
|
||||
return
|
||||
else if(user.hallucination > 50 && prob(10) && src.operating == 0)
|
||||
user << "\red <B>You feel a powerful shock course through your body!</B>"
|
||||
user.halloss += 10
|
||||
user.stunned += 10
|
||||
return
|
||||
..(user)
|
||||
|
||||
|
||||
|
||||
+34
-46
@@ -11,44 +11,38 @@
|
||||
if(busy)
|
||||
M << "\red Someone's already washing something here."
|
||||
return
|
||||
|
||||
var/turf/location = M.loc
|
||||
if(!isturf(location)) return
|
||||
usr << "\blue You start washing up."
|
||||
|
||||
busy = 1
|
||||
sleep(40)
|
||||
if(do_after(M,40))
|
||||
M.clean_blood()
|
||||
if(istype(M, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = M
|
||||
C.clean_blood()
|
||||
/*
|
||||
if(C.r_hand)
|
||||
C.r_hand.clean_blood() // The hand you attack with is empty anyway, the other one should not be washed while doing this.
|
||||
if(C.l_hand)
|
||||
C.l_hand.clean_blood()
|
||||
|
||||
if(C.wear_mask)
|
||||
C.wear_mask.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
*/
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
/*if(C:w_uniform)
|
||||
C:w_uniform.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
if(C:wear_suit)
|
||||
C:wear_suit.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
if(C:shoes)
|
||||
C:shoes.clean_blood()*/ //- NOPE, Washing machine -Errorage
|
||||
if(C:gloves)
|
||||
C:gloves.clean_blood()
|
||||
/*if(C:head)
|
||||
C:head.clean_blood()*/ //- NOPE, Washing machine -Errorage
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\blue [M] washes up using \the [src]."))
|
||||
busy = 0
|
||||
|
||||
if(M.loc != location) return //Person has moved away from the sink
|
||||
|
||||
M.clean_blood()
|
||||
if(istype(M, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = M
|
||||
C.clean_blood()
|
||||
/*
|
||||
if(C.r_hand)
|
||||
C.r_hand.clean_blood() // The hand you attack with is empty anyway, the other one should not be washed while doing this.
|
||||
if(C.l_hand)
|
||||
C.l_hand.clean_blood()
|
||||
|
||||
if(C.wear_mask)
|
||||
C.wear_mask.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
*/
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
/*if(C:w_uniform)
|
||||
C:w_uniform.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
if(C:wear_suit)
|
||||
C:wear_suit.clean_blood() //- NOPE, Washing machine -Errorage
|
||||
if(C:shoes)
|
||||
C:shoes.clean_blood()*/ //- NOPE, Washing machine -Errorage
|
||||
if(C:gloves)
|
||||
C:gloves.clean_blood()
|
||||
/*if(C:head)
|
||||
C:head.clean_blood()*/ //- NOPE, Washing machine -Errorage
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\blue [M] washes up using \the [src]."))
|
||||
|
||||
|
||||
attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(busy)
|
||||
@@ -83,27 +77,21 @@
|
||||
"\red You have wet \the [O], it shocks you!")
|
||||
return
|
||||
|
||||
var/turf/location = user.loc
|
||||
if(!isturf(location)) return
|
||||
|
||||
var/obj/item/I = O
|
||||
if(!I || !istype(I,/obj/item)) return
|
||||
|
||||
usr << "\blue You start washing up."
|
||||
|
||||
busy = 1
|
||||
sleep(40)
|
||||
if(do_after(user,40))
|
||||
if(!I) return //Item's been destroyed while washing
|
||||
|
||||
O.clean_blood()
|
||||
user.visible_message( \
|
||||
"\blue [user] washes \a [I] using \the [src].", \
|
||||
"\blue You wash \a [I] using \the [src].")
|
||||
busy = 0
|
||||
|
||||
if(user.loc != location) return //User has moved
|
||||
if(!I) return //Item's been destroyed while washing
|
||||
if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands
|
||||
|
||||
O.clean_blood()
|
||||
user.visible_message( \
|
||||
"\blue [user] washes \a [I] using \the [src].", \
|
||||
"\blue You wash \a [I] using \the [src].")
|
||||
|
||||
shower
|
||||
name = "Shower"
|
||||
desc = "This is dumb."
|
||||
|
||||
@@ -45,13 +45,10 @@ FINGERPRINT CARD
|
||||
return
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob)
|
||||
if(!src.registered)
|
||||
src.registered = input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)
|
||||
src.assignment = input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")
|
||||
src.name = "[src.registered]'s ID Card ([src.assignment])"
|
||||
user << "\blue You successfully forge the ID card."
|
||||
else
|
||||
..()
|
||||
src.registered = input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)
|
||||
src.assignment = input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")
|
||||
src.name = "[src.registered]'s ID Card ([src.assignment])"
|
||||
user << "\blue You successfully forge the ID card."
|
||||
|
||||
/obj/item/weapon/card/id/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
/*
|
||||
CONTAINS:
|
||||
TOILET
|
||||
|
||||
/obj/item/weapon/storage/toilet
|
||||
name = "toilet"
|
||||
w_class = 4.0
|
||||
anchored = 1.0
|
||||
density = 0.0
|
||||
var/status = 0.0
|
||||
var/clogged = 0.0
|
||||
anchored = 1.0
|
||||
icon = 'stationobjs.dmi'
|
||||
icon_state = "toilet"
|
||||
item_state = "syringe_kit"
|
||||
|
||||
/obj/item/weapon/storage/toilet/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (src.contents.len >= 7)
|
||||
user << "The toilet is clogged!"
|
||||
return
|
||||
if (istype(W, /obj/item/weapon/disk/nuclear))
|
||||
user << "This is far too important to flush!"
|
||||
return
|
||||
if (istype(W, /obj/item/weapon/storage/))
|
||||
return
|
||||
if (istype(W, /obj/item/weapon/grab))
|
||||
playsound(src.loc, 'slosh.ogg', 50, 1)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O << text("\blue [] gives [] a swirlie!", user, W)
|
||||
return
|
||||
var/t
|
||||
for(var/obj/item/weapon/O in src)
|
||||
t += O.w_class
|
||||
t += W.w_class
|
||||
if (t > 30)
|
||||
user << "You cannot fit the item inside."
|
||||
return
|
||||
user.u_equip(W)
|
||||
W.loc = src
|
||||
if ((user.client && user.s_active != src))
|
||||
user.client.screen -= W
|
||||
src.orient2hud(user)
|
||||
W.dropped(user)
|
||||
add_fingerprint(user)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message(text("\blue [] has put [] in []!", user, W, src), 1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/toilet/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
if (!ticker)
|
||||
user << "You can't help relieve anyone before the game starts."
|
||||
return
|
||||
if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat))
|
||||
return
|
||||
if (M == usr)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] sits on the toilet.", user)
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is seated on the toilet by []!", M, user)
|
||||
M.anchored = 1
|
||||
M.buckled = src
|
||||
M.loc = src.loc
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/toilet/attack_hand(mob/user as mob)
|
||||
for(var/mob/M in src.loc)
|
||||
if (M.buckled)
|
||||
if (M != user)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] is zipped up by [].", M, user)
|
||||
else
|
||||
for(var/mob/O in viewers(user, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue [] zips up.", M)
|
||||
// world << "[M] is no longer buckled to [src]"
|
||||
M.anchored = 0
|
||||
M.buckled = null
|
||||
src.add_fingerprint(user)
|
||||
if((src.clogged < 1) || (src.contents.len < 7) || (user.loc != src.loc))
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O << text("\blue [] flushes the toilet.", user)
|
||||
src.clogged = 0
|
||||
src.contents.len = 0
|
||||
else if((src.clogged >= 1) || (src.contents.len >= 7) || (user.buckled != src.loc))
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O << text("\blue The toilet is clogged!")
|
||||
return
|
||||
|
||||
|
||||
*/
|
||||
@@ -56,6 +56,9 @@
|
||||
M << browse(null, "window=vote")
|
||||
M.client.showvote = 0
|
||||
|
||||
if(winner == "none")
|
||||
winner = "default"
|
||||
|
||||
calcwin()
|
||||
|
||||
if(mode == 2)
|
||||
|
||||
Reference in New Issue
Block a user