diff --git a/code/defines/obj/clothing/gloves.dm b/code/defines/obj/clothing/gloves.dm index 294d56063ce..55315576777 100644 --- a/code/defines/obj/clothing/gloves.dm +++ b/code/defines/obj/clothing/gloves.dm @@ -140,11 +140,13 @@ color="orange" /obj/item/clothing/gloves/red - name = "Red Gloves" - desc = "A pair of gloves, they don't look special in any way." + desc = "Heavily padded heavy-duty red gloves." + name = "red gloves" icon_state = "red" item_state = "redgloves" - color = "red" + siemens_coefficient = 0.30 + + protective_temperature = 1100 /obj/item/clothing/gloves/rainbow name = "Rainbow Gloves" diff --git a/code/defines/obj/computer.dm b/code/defines/obj/computer.dm index 082c8381839..6a1a62134d7 100644 --- a/code/defines/obj/computer.dm +++ b/code/defines/obj/computer.dm @@ -191,6 +191,8 @@ var/temp = null var/printing = null var/can_change_id = 0 + var/list/Perp + var/tempname = null /obj/machinery/computer/secure_data/detective_computer diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index dc92ea836b9..9da0da4711b 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -14,7 +14,7 @@ dat += "The number after the spell name is the cooldown time.
" dat += "Magic Missile (10)
" dat += "Fireball (10)
" - dat += "Disintegrate (60)
" +// dat += "Disintegrate (60)
" dat += "Disable Technology (60)
" dat += "Smoke (10)
" dat += "Blind (30)
" @@ -54,10 +54,10 @@ usr.verbs += /client/proc/fireball usr.mind.special_verbs += /client/proc/fireball src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." - if ("3") - usr.verbs += /mob/proc/kill - usr.mind.special_verbs += /mob/proc/kill - src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." +// if ("3") +// usr.verbs += /mob/proc/kill +// usr.mind.special_verbs += /mob/proc/kill +// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." if ("4") usr.verbs += /mob/proc/tech usr.mind.special_verbs += /mob/proc/tech @@ -114,9 +114,9 @@ if ("2") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/fireball(usr) src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." - if ("3") - usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr) - src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." +// if ("3") +// usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr) +// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." if ("4") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(usr) src.temp = "This spell disables all weapons, cameras and most other technology in range." @@ -183,7 +183,7 @@ dat += "Each item costs 1 telecrystal. The number afterwards is the cooldown time.
" dat += "Magic Missile (10)
" dat += "Fireball (10)
" - dat += "Disintegrate (60)
" +// dat += "Disintegrate (60)
" dat += "Disable Technology (60)
" dat += "Smoke (10)
" dat += "Blind (30)
" @@ -224,12 +224,12 @@ usr.verbs += /client/proc/fireball usr.mind.special_verbs += /client/proc/fireball src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." - else if (href_list["spell_disintegrate"]) - if (src.uses >= 1) - src.uses -= 1 - usr.verbs += /mob/proc/kill - usr.mind.special_verbs += /mob/proc/kill - src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." +// else if (href_list["spell_disintegrate"]) +// if (src.uses >= 1) +// src.uses -= 1 +// usr.verbs += /mob/proc/kill +// usr.mind.special_verbs += /mob/proc/kill +// src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." else if (href_list["spell_emp"]) if (src.uses >= 1) src.uses -= 1 diff --git a/code/game/gamemodes/wizard/spells.dm b/code/game/gamemodes/wizard/spells.dm index bbc1e54c331..a10739c4103 100644 --- a/code/game/gamemodes/wizard/spells.dm +++ b/code/game/gamemodes/wizard/spells.dm @@ -229,6 +229,7 @@ //KILL +/* /mob/proc/kill(mob/living/M as mob in oview(1)) set category = "Spells" set name = "Disintegrate" @@ -249,6 +250,7 @@ s.start() M.dust() +*/ //DISABLE TECH diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 3c15ee72bbd..1d6b3dcea03 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -243,7 +243,7 @@ M.verbs -= /client/proc/jaunt M.verbs -= /client/proc/magicmissile M.verbs -= /client/proc/fireball - M.verbs -= /mob/proc/kill +// M.verbs -= /mob/proc/kill M.verbs -= /mob/proc/tech M.verbs -= /client/proc/smokecloud M.verbs -= /client/proc/blind @@ -257,7 +257,7 @@ M.mind.special_verbs -= /client/proc/jaunt M.mind.special_verbs -= /client/proc/magicmissile M.mind.special_verbs -= /client/proc/fireball - M.mind.special_verbs -= /mob/proc/kill +// M.mind.special_verbs -= /mob/proc/kill M.mind.special_verbs -= /mob/proc/tech M.mind.special_verbs -= /client/proc/smokecloud M.mind.special_verbs -= /client/proc/blind diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 80a20725b2f..f9463337cc6 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -17,7 +17,7 @@ H.equip_if_possible(new /obj/item/device/pda/heads/hos(H), H.slot_belt) // H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit) //We're Bay12, not Goon. We don't need armor 24/7 - H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(H), H.slot_head) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) @@ -47,7 +47,7 @@ H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/clothing/head/helmet/warden(H), H.slot_head) - H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) + H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) @@ -114,6 +114,7 @@ H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_s_store) H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 0e84f5dcc49..3fe19ce1762 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -9,6 +9,7 @@ if(..()) return var/dat + if (temp) dat = text("[]

Clear Screen", temp, src) else @@ -16,20 +17,29 @@ if (authenticated) switch(screen) if(1.0) - dat += text("Search Records
\nList Records
\nSearch Fingerprints
\nNew General Record
\n
\nRecord Maintenance
\n{Log Out}
\n", src, src, src, src, src, src) - if(2.0) - dat += {"Record List:
- - - - - - - "} + dat += {" +

"} + dat += text("Search Records
", src) + dat += text("New Record
", src) + dat += {" +

+
Name (ID#)RankFingerprintsCriminal Status
+ + + +
Records:
+ + + + + + + +"} for(var/datum/data/record/R in data_core.general) var/crimstat = "" for(var/datum/data/record/E in data_core.security) - if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) + if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) crimstat = E.fields["criminal"] var/background switch(crimstat) @@ -46,14 +56,17 @@ if("") background = "'background-color:#FFFFFF;'" crimstat = "No Record." - dat += text("", background, src, R, R.fields["name"], R.fields["id"]) + dat += text("", background, src, R, R.fields["name"]) + dat += text("", R.fields["id"]) dat += text("", R.fields["rank"]) dat += text("", R.fields["fingerprint"]) dat += text("", crimstat) - dat += text("
NameIDRankFingerprintsCriminal Status
[] (ID:[])
[][][][][]


Back", src) - if(3.0) + dat += "
" + dat += text("Record Maintenance

", src) + dat += text("{Log Out}",src) + if(2.0) dat += text("Records Maintenance
\nDelete All Records
\n
\nBack", src, src) - if(4.0) + if(3.0) dat += "
Security Record

" if ((istype(active1, /datum/data/record) && data_core.general.Find(active1))) dat += text("Name: [] ID: []
\nSex: []
\nAge: []
\nRank: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", src, active1.fields["name"], src, active1.fields["id"], src, active1.fields["sex"], src, active1.fields["age"], src, active1.fields["rank"], src, active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) @@ -71,10 +84,57 @@ dat += "Security Record Lost!
" dat += text("New Security Record

", src) dat += text("\nDelete Record (ALL)

\nPrint Record
\nBack
", src, src, src) + if(4.0) + if(!Perp.len) + dat += text("ERROR. String could not be located.

Back", src) + else + dat += {" + + "} + dat += text("", tempname) + dat += {" + +
Search Results for '[]':
+ + + + + + + + "} + for(var/i=1, i<=Perp.len, i += 2) + var/crimstat = "" + var/datum/data/record/R = Perp[i] + if(istype(Perp[i+1],/datum/data/record/)) + var/datum/data/record/E = Perp[i+1] + crimstat = E.fields["criminal"] + var/background + switch(crimstat) + if("*Arrest*") + background = "'background-color:#DC143C;'" + if("Incarcerated") + background = "'background-color:#CD853F;'" + if("Parolled") + background = "'background-color:#CD853F;'" + if("Released") + background = "'background-color:#3BB9FF;'" + if("None") + background = "'background-color:#00FF7F;'" + if("") + background = "'background-color:#FFFFFF;'" + crimstat = "No Record." + dat += text("", background, src, R, R.fields["name"]) + dat += text("", R.fields["id"]) + dat += text("", R.fields["rank"]) + dat += text("", R.fields["fingerprint"]) + dat += text("", crimstat) + dat += "
NameIDRankFingerprintsCriminal Status
[][][][][]

" + dat += text("
Return to index.", src) else else dat += text("{Log In}", src) - user << browse(text("Security Records[]", dat), "window=secure_rec") + user << browse(text("Security Records[]", dat), "window=secure_rec;size=550x400") onclose(user, "secure_rec") return @@ -132,31 +192,28 @@ What a mess.*/ rank = scan.assignment screen = 1 //RECORD FUNCTIONS - if("List Records") - screen = 2 - active1 = null - active2 = null - if("Search Records") - var/t1 = input("Search String: (Name or ID)", "Secure. records", null, null) as text + var/t1 = input("Search String: (Partial Name or ID or Fingerprints)", "Secure. records", null, null) as text if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || !in_range(src, usr))) return - active1 = null - active2 = null + Perp = new/list() t1 = lowertext(t1) for(var/datum/data/record/R in data_core.general) - if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]))) - active1 = R - if (!( active1 )) - temp = text("Could not locate record [].", t1) - else + var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"] + if(findtext(temptext,t1)) + var/prelist = new/list(2) + prelist[1] = R + Perp += prelist + for(var/i = 1, i<=Perp.len, i+=2) for(var/datum/data/record/E in data_core.security) - if ((E.fields["name"] == active1.fields["name"] || E.fields["id"] == active1.fields["id"])) - active2 = E - screen = 4 + var/datum/data/record/R = Perp[i] + if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) + Perp[i+1] = E + tempname = t1 + screen = 4 if("Record Maintenance") - screen = 3 + screen = 2 active1 = null active2 = null @@ -171,9 +228,9 @@ What a mess.*/ S = E active1 = R active2 = S - screen = 4 + screen = 3 - if ("Search Fingerprints") +/* if ("Search Fingerprints") var/t1 = input("Search String: (Fingerprint)", "Secure. records", null, null) as text if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || (!in_range(src, usr)) && (!istype(usr, /mob/living/silicon)))) return @@ -189,7 +246,7 @@ What a mess.*/ for(var/datum/data/record/E in data_core.security) if ((E.fields["name"] == active1.fields["name"] || E.fields["id"] == active1.fields["id"])) active2 = E - screen = 4 + screen = 3 */ if ("Print Record") if (!( printing )) @@ -266,7 +323,7 @@ What a mess.*/ R.fields["notes"] = "No notes." data_core.security += R active2 = R - screen = 4 + screen = 3 if ("New Record (General)") var/datum/data/record/G = new /datum/data/record() @@ -281,6 +338,7 @@ What a mess.*/ data_core.general += G active1 = G active2 = null + //FIELD FUNCTIONS if ("Edit Field") var/a1 = active1 diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm index 0d209639f82..0f88397d045 100644 --- a/code/game/objects/closets/secure/security.dm +++ b/code/game/objects/closets/secure/security.dm @@ -78,6 +78,7 @@ new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/suit/storage/gearharness(src) new /obj/item/clothing/head/helmet/warden(src) + new /obj/item/clothing/gloves/red(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/flashbang_kit(src) new /obj/item/weapon/storage/belt/security(src) @@ -99,6 +100,7 @@ new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/suit/storage/gearharness(src) new /obj/item/clothing/head/helmet(src) + new /obj/item/clothing/gloves/red(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/flashbang(src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index fc6d8a61adb..60aef82be18 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -803,6 +803,8 @@ else gibs(loc, viruses) sleep(15) + for(var/obj/item/I in src.contents) + I.loc = get_turf(src) del(src) /* @@ -838,6 +840,8 @@ Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N sleep(15) if(isrobot(src)&&src:mmi)//Is a robot and it has an mmi. del(src:mmi)//Delete the MMI first so that it won't go popping out. + for(var/obj/item/I in src.contents) + I.loc = get_turf(src) del(src) /* diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index abead579d61..9ae49fadf1f 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ