mirror of
https://github.com/Aurorastation/Aurora-Old.git
synced 2026-08-26 14:16:21 +01:00
@@ -2874,4 +2874,13 @@
|
||||
var/playerckey = href_list["notessearchckey"]
|
||||
|
||||
show_notes_sql(playerckey, adminckey)
|
||||
return
|
||||
return
|
||||
|
||||
else if(href_list["dbwarningedit"])
|
||||
var/warningEdit = href_list["dbwarningedit"]
|
||||
var/warningId = text2num(href_list["dbwarningid"])
|
||||
if(!warningEdit || !warningId)
|
||||
return
|
||||
|
||||
warningsEdit(warningId, warningEdit)
|
||||
return
|
||||
|
||||
@@ -65,9 +65,6 @@
|
||||
if(!check_rights(R_ADMIN|R_MOD)) return
|
||||
|
||||
if(!warned_ckey || !istext(warned_ckey)) return
|
||||
// if(warned_ckey in admin_datums)
|
||||
// usr << "<font color='red'>Error: warn(): You can't warn admins.</font>"
|
||||
// return
|
||||
|
||||
var/datum/preferences/D
|
||||
var/client/C = directory[warned_ckey]
|
||||
@@ -87,11 +84,11 @@
|
||||
|
||||
// Let's begin data gathering and conversion!
|
||||
|
||||
var/reason = input("Add Warning Reason") as null|text
|
||||
var/reason = input("Add Warning Reason. This is visible to the player.") as null|text
|
||||
if(!reason)
|
||||
return
|
||||
|
||||
var/notes = input("Add Additional Information") as null|text
|
||||
var/notes = input("Add Additional Information. This is visible to staff only.") as null|text
|
||||
|
||||
var/severity
|
||||
switch(alert("Set Warning Severity",,"Standard","Severe"))
|
||||
@@ -108,9 +105,12 @@
|
||||
ip = C.address
|
||||
var/a_ckey = sanitizeSQL(ckey)
|
||||
|
||||
var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO ss13_warnings (id, time, severity, reason, notes, ckey, computerid, ip, a_ckey) VALUES (null, Now(), '[severity]', '[reason]', '[notes]', '[sqlkey]', '[computerid]', '[ip]', '[a_ckey]')")
|
||||
var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO ss13_warnings (id, time, severity, reason, notes, ckey, computerid, ip, a_ckey) VALUES (null, Now(), '[severity]', '[reason]', '[notes]', '[sqlkey]', '[computerid]', '[ip]', '[a_ckey]');")
|
||||
query_insert.Execute()
|
||||
|
||||
if(query_insert.ErrorMsg())
|
||||
error("SQL error while issuing warning. Error text: [query_insert.ErrorMsg()].")
|
||||
|
||||
if(config.ban_legacy_system)
|
||||
notes_add(warned_ckey, "Warning added by [a_ckey], for: [reason]. || Notes regarding the warning: [notes].")
|
||||
else
|
||||
@@ -131,8 +131,9 @@
|
||||
set category = "OOC"
|
||||
set desc = "Display warnings issued to you."
|
||||
|
||||
var/lcolor = "#ffeeee" //light colour, severity = 1
|
||||
var/dcolor = "#ffaaaa" //dark colour, severity = 2
|
||||
var/lcolor = "#ffeeee" //light colour, severity = 0
|
||||
var/dcolor = "#ffaaaa" //dark colour, severity = 1
|
||||
var/ecolor = "#e3e3e3" //gray colour, expired = 1
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
@@ -151,7 +152,7 @@
|
||||
|
||||
var/sqlkey = sanitizeSQL(ckey)
|
||||
|
||||
var/DBQuery/search_query = dbcon.NewQuery("SELECT id, time, severity, reason, a_ckey, acknowledged FROM ss13_warnings WHERE visible = '1' AND (ckey='[sqlkey]' OR computerid='[computer_id]' OR ip='[address]') ORDER BY time DESC")
|
||||
var/DBQuery/search_query = dbcon.NewQuery("SELECT id, time, severity, reason, a_ckey, acknowledged, expired FROM ss13_warnings WHERE visible = 1 AND (ckey='[sqlkey]' OR computerid='[computer_id]' OR ip='[address]') ORDER BY time DESC;")
|
||||
search_query.Execute()
|
||||
|
||||
while(search_query.NextRow())
|
||||
@@ -161,12 +162,16 @@
|
||||
var/reason = search_query.item[4]
|
||||
var/a_ckey = search_query.item[5]
|
||||
var/ackn = text2num(search_query.item[6])
|
||||
var/expired = text2num(search_query.item[7])
|
||||
|
||||
var/bgcolor = lcolor
|
||||
|
||||
if(severity)
|
||||
bgcolor = dcolor
|
||||
|
||||
if(expired)
|
||||
bgcolor = ecolor
|
||||
|
||||
dat += "<tr bgcolor='[bgcolor]' align='center'>"
|
||||
dat += "<td>[a_ckey]</td>"
|
||||
dat += "<td>[time]</td>"
|
||||
@@ -175,8 +180,10 @@
|
||||
|
||||
if(!ackn)
|
||||
dat += "<tr><td align='center' colspan='3'><b>(<a href='byond://?src=\ref[src];warnacknowledge=[id]'>Acknowledge Warning</a>)</b></td></tr>"
|
||||
else if(expired)
|
||||
dat += "<tr><td align='center' colspan='3'><b>Warning expired and no longer active!</b></td></tr>"
|
||||
else
|
||||
dat += "<tr><td align='center' colspan='3'><b>Warning Acknowledged!</b></td></tr>"
|
||||
dat += "<tr><td align='center' colspan='3'><b>Warning acknowledged!</b></td></tr>"
|
||||
|
||||
dat += "<tr>"
|
||||
dat += "<td colspan='5' bgcolor='white'> </td>"
|
||||
@@ -198,7 +205,7 @@
|
||||
error("Connection to SQL database failed while attempting to update a player's warnings.")
|
||||
return
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE ss13_warnings SET acknowledged = 1 WHERE id = '[id]'")
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE ss13_warnings SET acknowledged = 1 WHERE id = '[id]';")
|
||||
query.Execute()
|
||||
|
||||
warnings_check()
|
||||
@@ -211,13 +218,22 @@
|
||||
/client/proc/warnings_alert()
|
||||
var/sqlkey = sanitizeSQL(ckey)
|
||||
var/count = 0
|
||||
var/countExpire = 0
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
error("Connection to SQL database failed while attempting to alert a player of their warnings.")
|
||||
return
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT id FROM ss13_warnings WHERE (visible = '1' AND acknowledged = '0') AND (ckey='[sqlkey]' OR computerid='[computer_id]' OR ip='[address]')")
|
||||
var/DBQuery/expireQuery = dbcon.NewQuery("SELECT id FROM ss13_warnings WHERE (acknowledged = 1 AND expired = 0 AND DATE_SUB(CURDATE(),INTERVAL 3 MONTH) > time) AND (ckey='[sqlkey]' OR computerid='[computer_id]' OR ip='[address]');")
|
||||
expireQuery.Execute()
|
||||
while(expireQuery.NextRow())
|
||||
var/id = text2num(expireQuery.item[1])
|
||||
var/DBQuery/updateQuery = dbcon.NewQuery("UPDATE ss13_warnings SET expired = 1 WHERE id = [id];")
|
||||
updateQuery.Execute()
|
||||
countExpire++
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT id FROM ss13_warnings WHERE (visible = 1 AND acknowledged = 0 AND expired = 0) AND (ckey='[sqlkey]' OR computerid='[computer_id]' OR ip='[address]');")
|
||||
query.Execute()
|
||||
while(query.NextRow())
|
||||
count++
|
||||
@@ -225,6 +241,9 @@
|
||||
if(count)
|
||||
src << "<br>"
|
||||
src << "<font color=red><b>You have [count] unread [count > 1 ? "warnings" : "warning"]! Click <a href='byond://?src=\ref[src];warnview=1'>here</a> to review and acknowledge them!</b></font>"
|
||||
if(countExpire)
|
||||
src << "<br>"
|
||||
src << "<font color=blue><b>[countExpire] of your warnings expired.</b></font>"
|
||||
|
||||
/*
|
||||
* A proc for an admin/moderator to look up a member's warnings.
|
||||
@@ -243,8 +262,9 @@
|
||||
/datum/admins/proc/warning_panel(var/adminckey = null, var/playerckey = null)
|
||||
if(!check_rights(R_ADMIN|R_MOD)) return
|
||||
|
||||
var/lcolor = "#ffeeee" //light colour, severity = 1
|
||||
var/dcolor = "#ffdddd" //dark colour, severity = 2
|
||||
var/lcolor = "#ffeeee" //light colour, severity = 0
|
||||
var/dcolor = "#ffdddd" //dark colour, severity = 1
|
||||
var/ecolor = "#e3e3e3" //gray colour, expired = 1
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
@@ -273,8 +293,8 @@
|
||||
dat += "<th width='60%'>REASON</th>"
|
||||
dat += "</tr>"
|
||||
|
||||
adminckey = ckey(adminckey)
|
||||
playerckey = ckey(playerckey)
|
||||
adminckey = sanitizeSQL(adminckey)
|
||||
playerckey = sanitizeSQL(playerckey)
|
||||
var/paramone = ""
|
||||
var/paramtwo = ""
|
||||
if(adminckey)
|
||||
@@ -282,21 +302,30 @@
|
||||
if(playerckey)
|
||||
paramtwo = "AND ckey = '[playerckey]' "
|
||||
|
||||
var/DBQuery/search_query = dbcon.NewQuery("SELECT time, severity, reason, notes, ckey, a_ckey FROM ss13_warnings WHERE 1 [paramone] [paramtwo] ORDER BY time DESC")
|
||||
var/DBQuery/search_query = dbcon.NewQuery("SELECT id, time, severity, reason, notes, ckey, a_ckey, acknowledged, expired, edited, lasteditor, lasteditdate FROM ss13_warnings WHERE visible = 1 [paramone] [paramtwo] ORDER BY time DESC;")
|
||||
search_query.Execute()
|
||||
|
||||
if(search_query.ErrorMsg())
|
||||
error("SQL error while activating admin warnings panel. Error text: [search_query.ErrorMsg()].")
|
||||
|
||||
while(search_query.NextRow())
|
||||
var/time = search_query.item[1]
|
||||
var/severity = search_query.item[2]
|
||||
var/reason = search_query.item[3]
|
||||
var/notes = search_query.item[4]
|
||||
var/ckey = search_query.item[5]
|
||||
var/a_ckey = search_query.item[6]
|
||||
var/id = text2num(search_query.item[1])
|
||||
var/time = search_query.item[2]
|
||||
var/severity = text2num(search_query.item[3])
|
||||
var/reason = search_query.item[4]
|
||||
var/notes = search_query.item[5]
|
||||
var/ckey = search_query.item[6]
|
||||
var/a_ckey = search_query.item[7]
|
||||
var/ackn = text2num(search_query.item[8])
|
||||
var/expired = text2num(search_query.item[9])
|
||||
var/edited = text2num(search_query.item[10])
|
||||
|
||||
var/bgcolor = lcolor
|
||||
|
||||
if(severity == "1")
|
||||
if(severity)
|
||||
bgcolor = dcolor
|
||||
if(expired)
|
||||
bgcolor = ecolor
|
||||
|
||||
dat += "<tr bgcolor='[bgcolor]' align='center'>"
|
||||
dat += "<td>[ckey]</td>"
|
||||
@@ -307,6 +336,24 @@
|
||||
dat += "<tr>"
|
||||
dat += "<td align='center' colspan='5'><b>Staff Notes:</b> <cite>\"[notes]\"</cite></td>"
|
||||
dat += "</tr>"
|
||||
if(!ackn)
|
||||
dat += "<tr><td align='center' colspan='5'>Warning has not been acknolwedged by recipient.</td></tr>"
|
||||
if(expired)
|
||||
dat += "<tr><td align='center' colspan='5'>The warning has expired.</td></tr>"
|
||||
if(edited)
|
||||
var/lastEditor = search_query.item[11]
|
||||
var/lastEditDate = search_query.item[12]
|
||||
dat += "<tr><td align='center' colspan='5'><b>Warning last edited: [lastEditDate], by: [lastEditor].</b></td></tr>"
|
||||
dat += "<tr>"
|
||||
dat += "<td align='center' colspan='5'><b>Options:</b> "
|
||||
if(check_rights(R_ADMIN) || a_ckey == sanitizeSQL(ckey))
|
||||
dat += "<a href=\"byond://?src=\ref[src];dbwarningedit=editReason;dbwarningid=[id]\">Edit Reason</a> "
|
||||
dat += "<a href=\"byond://?src=\ref[src];dbwarningedit=editNotes;dbwarningid=[id]\">Edit Note</a> "
|
||||
dat += "<a href=\"byond://?src=\ref[src];dbwarningedit=delete;dbwarningid=[id]\">Delete Warning</a>"
|
||||
else
|
||||
dat += "You can only edit or delete notes that you have issued."
|
||||
dat += "</td>"
|
||||
dat += "</tr>"
|
||||
|
||||
dat += "<tr>"
|
||||
dat += "<td colspan='5' bgcolor='white'> </td>"
|
||||
@@ -316,3 +363,72 @@
|
||||
|
||||
usr << browse(dat, "window=lookupwarns;size=900x500")
|
||||
feedback_add_details("admin_verb","WARN-LKUP")
|
||||
|
||||
/*
|
||||
* A proc for editing and deleting warnings issued
|
||||
*/
|
||||
|
||||
/proc/warningsEdit(var/warningId, var/warningEdit)
|
||||
if(!warningId || !warningEdit)
|
||||
return
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
error("SQL connection failed while attempting to edit a note!")
|
||||
return
|
||||
|
||||
var/count = 0 //failsafe
|
||||
var/aCkey = sanitizeSQL(usr.ckey)
|
||||
var/ckey
|
||||
var/reason
|
||||
var/notes
|
||||
|
||||
var/DBQuery/initialQuery = dbcon.NewQuery("SELECT ckey, reason, notes FROM ss13_warnings WHERE id = '[warningId]';")
|
||||
initialQuery.Execute()
|
||||
while(initialQuery.NextRow())
|
||||
ckey = initialQuery.item[1]
|
||||
reason = initialQuery.item[2]
|
||||
notes = initialQuery.item[3]
|
||||
count++
|
||||
|
||||
if(count == 0)
|
||||
usr << "\red Database update failed due to a warning id not being present in the database."
|
||||
error("Database update failed due to a warning id not being present in the database.")
|
||||
return
|
||||
|
||||
if(count > 1)
|
||||
usr << "\red Database update failed due to multiple warnings having the same ID. Contact the database admin."
|
||||
error("Database update failed due to multiple warnings having the same ID. Contact the database admin.")
|
||||
return
|
||||
|
||||
switch(warningEdit)
|
||||
if("delete")
|
||||
if(alert("Delete this warning?", "Delete?", "Yes", "No") == "Yes")
|
||||
var/DBQuery/deleteQuery = dbcon.NewQuery("UPDATE ss13_warnings SET visible = 0 WHERE id = [warningId];")
|
||||
deleteQuery.Execute()
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] deleted one of [ckey]'s warnings.")
|
||||
log_admin("[key_name(usr)] deleted one of [ckey]'s warnings.")
|
||||
else
|
||||
usr << "Cancelled"
|
||||
return
|
||||
if("editReason")
|
||||
var/newReason = input("Edit this warning's reason.", "New Reason", "[reason]", null) as null|text
|
||||
newReason = sql_sanitize_text(newReason)
|
||||
if(!newReason || newReason == reason)
|
||||
usr << "Cancelled"
|
||||
return
|
||||
var/DBQuery/reasonQuery = dbcon.NewQuery("UPDATE ss13_warnings SET reason = '[newReason]', edited = 1, lasteditor = '[aCkey]', lasteditdate = NOW() WHERE id = '[warningId]';")
|
||||
reasonQuery.Execute()
|
||||
message_admins("\blue [key_name_admin(usr)] edited one of [ckey]'s warning reasons.")
|
||||
log_admin("[key_name(usr)] edited one of [ckey]'s warning reasons.")
|
||||
if("editNotes")
|
||||
var/newNotes = input("Edit this warning's notes.", "New Notes", "[notes]", null) as null|text
|
||||
newNotes = sql_sanitize_text(newNotes)
|
||||
if(!newNotes || newNotes == notes)
|
||||
usr << "Cancelled"
|
||||
return
|
||||
var/DBQuery/notesQuery = dbcon.NewQuery("UPDATE ss13_warnings SET notes = '[newNotes]', edited = 1, lasteditor = '[aCkey]', lasteditdate = NOW() WHERE id = '[warningId]';")
|
||||
notesQuery.Execute()
|
||||
message_admins("\blue [key_name_admin(usr)] edited one of [ckey]'s warning notes.")
|
||||
log_admin("[key_name(usr)] edited one of [ckey]'s warning notes.")
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
|
||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel/sec(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security2(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||
@@ -44,6 +45,7 @@
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
|
||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel/med(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||
@@ -75,6 +77,7 @@
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back)
|
||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel/tox(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
|
||||
|
||||
/datum/job/intern_eng
|
||||
@@ -95,6 +98,7 @@
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
|
||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel/eng(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/eng(H), slot_head)
|
||||
|
||||
@@ -1080,7 +1080,7 @@ datum/preferences
|
||||
g_skin = rand(0,255)
|
||||
b_skin = rand(0,255)
|
||||
if("bag")
|
||||
backbag = rand(1,4)
|
||||
backbag = rand(1,5)
|
||||
/*if("skin_style")
|
||||
h_style = random_skin_style(gender)*/
|
||||
if("all")
|
||||
@@ -1128,9 +1128,9 @@ datum/preferences
|
||||
b_hair = 0//hex2num(copytext(new_hair, 6, 8))
|
||||
|
||||
s_tone = 0
|
||||
|
||||
|
||||
organ_data = list()
|
||||
|
||||
|
||||
|
||||
if("language")
|
||||
var/languages_available
|
||||
@@ -1270,7 +1270,7 @@ datum/preferences
|
||||
covering_type=(new_coating!="None" ? new_coating : null)
|
||||
h_style = random_hair_style(gender, get_hair_species())
|
||||
f_style = random_facial_hair_style(gender, get_hair_species())
|
||||
|
||||
|
||||
if("limbs")
|
||||
customize_limbs(user,species!="Machine")
|
||||
|
||||
@@ -1539,7 +1539,7 @@ datum/preferences
|
||||
undershirt = 0
|
||||
character.undershirt = undershirt
|
||||
|
||||
if(backbag > 4 || backbag < 1)
|
||||
if(backbag > 5 || backbag < 1)
|
||||
backbag = 1 //Same as above
|
||||
character.backbag = backbag
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
item_color = "med"
|
||||
|
||||
/obj/item/clothing/tie/armband/medgreen
|
||||
name = "medical guard armband"
|
||||
name = "paramedic armband"
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and green."
|
||||
icon_state = "medgreen"
|
||||
item_color = "medgreen"
|
||||
icon_state = "emt"
|
||||
item_color = "emt"
|
||||
@@ -97,13 +97,45 @@
|
||||
icon_state = "raieed_sandals"
|
||||
contained_sprite = 1
|
||||
|
||||
/obj/item/clothing/suit/storage/fluff/raieed_labcoat //Treasured Labcoat - Raieed Amari - nikolaithebeast - DONE
|
||||
name = "torn labcoat"
|
||||
desc = "A old labcoat, torn beyond reorganization, but yet it still seems to be kept for."
|
||||
// Rai Amari - nikolaithebeast - Stitched Labcoat
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/raieed_labcoat
|
||||
name = "stitched labcoat"
|
||||
desc = "A stiched up labcoat. It looks particularly torn up, but someone has spent a great deal of time fixing the damage."
|
||||
icon = 'icons/obj/custom_items/raieed_labcoat.dmi'
|
||||
icon_state = "raieed_labcoat"
|
||||
icon_state = "raieed_labcoat_open"
|
||||
contained_sprite = 1
|
||||
|
||||
// verb/toggle() as normally defined in labcoat.dm
|
||||
toggle()
|
||||
set name = "Toggle Labcoat Buttons"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(!usr.canmove || usr.stat || usr.restrained())
|
||||
return 0
|
||||
|
||||
switch(icon_state)
|
||||
if("raieed_labcoat_open")
|
||||
icon_state = "raieed_labcoat_closed"
|
||||
usr << "You button up the stitched labcoat."
|
||||
if("raieed_labcoat_closed")
|
||||
icon_state = "raieed_labcoat_open"
|
||||
usr << "You unbutton the stiched labcoat."
|
||||
|
||||
else
|
||||
usr << "SierraKomodo broke a thing. Bug report time!"
|
||||
return
|
||||
|
||||
usr.update_inv_wear_suit()
|
||||
|
||||
// Old item
|
||||
// /obj/item/clothing/suit/storage/fluff/raieed_labcoat //Treasured Labcoat - Raieed Amari - nikolaithebeast - DONE
|
||||
// name = "torn labcoat"
|
||||
// desc = "A old labcoat, torn beyond reorganization, but yet it still seems to be kept for."
|
||||
// icon = 'icons/obj/custom_items/raieed_labcoat.dmi'
|
||||
// icon_state = "raieed_labcoat"
|
||||
// contained_sprite = 1
|
||||
|
||||
/obj/item/weapon/folder/fluff/may_notebook //May Izumi's Notebook - May Izumi - lk600 - DONE
|
||||
name = "May Izumi's Notebook"
|
||||
desc = "A pink notebook that is covered in hearts and little manga stickers. It is filled with lots of questions, replies and conversations from her past. It has 'May Izumi' printed on the front."
|
||||
@@ -1247,3 +1279,48 @@ END R I P HAZERI
|
||||
/obj/item/clothing/tie/fluff/straughan_necklace/attack_self(mob/user as mob)
|
||||
if(isliving(user))
|
||||
user.visible_message("\red [user] holds up their [src].\nIt reads: Prosthetic rejection syndrome. Patient's body rejects mechanical eyes. Shaded eyewear required.","\red You display the [src], showing the room your medical condition.")
|
||||
|
||||
|
||||
// Hayden Green's Mech Helmet - Doomberg
|
||||
/obj/item/clothing/head/helmet/fluff/hayden_mechhelmet
|
||||
name = "mech pilot helmet"
|
||||
desc = "A sturdy green helmet with a dark visor. Not brand new, but well maintained."
|
||||
icon = 'icons/obj/custom_items/hayden_mechhelmet.dmi'
|
||||
icon_state = "hayden_mechhelmet"
|
||||
item_state = "hayden_mechhelmet"
|
||||
flags_inv = HIDEEARS
|
||||
contained_sprite = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
// Chive's Engraved Auto Injector - cobracoco007
|
||||
/obj/item/fluff/chive_engravedautoinjector
|
||||
name = "engraved broken autoinjector"
|
||||
desc = "A slightly rusty auto-injector that appears to have the initials 'W.N.' engraved on it."
|
||||
icon = 'icons/obj/custom_items/chive_engravedautoinjector.dmi'
|
||||
icon_state = "chive_engravedautoinjector"
|
||||
item_state = "chive_engravedautoinjector"
|
||||
contained_sprite = 1
|
||||
sharp = 1
|
||||
force = 1
|
||||
|
||||
// Varan Truesight's Dataslate - Gollee
|
||||
/obj/item/fluff/varan_dataslate
|
||||
name = "data slate"
|
||||
desc = "A chrome-silver data slate. Along the side, there is a stylised brand mark, with 'Biesel Electronics Ophreion 4000' written underneath."
|
||||
icon = 'icons/obj/custom_items/varan_dataslate.dmi'
|
||||
icon_state = "varan_dataslate"
|
||||
item_state = "varan_dataslate"
|
||||
contained_sprite = 1
|
||||
|
||||
// Fortune Bloise - swat43 - Shield Pendant
|
||||
/obj/item/clothing/tie/fluff/fortune_shieldpendant
|
||||
name = "shield pendant"
|
||||
desc = "A small blue shield shaped pendant with two small wings attached to it."
|
||||
icon = 'icons/obj/custom_items/fortune_shieldpendant.dmi'
|
||||
icon_state = "fortune_shieldpendant"
|
||||
item_color = "fortune_shieldpendant"
|
||||
contained_sprite = 1
|
||||
slot_flags = SLOT_MASK
|
||||
|
||||
/obj/item/clothing/tie/fluff/fortune_shieldpendant/New()
|
||||
inv_overlay = image("icon" = 'icons/obj/custom_items/fortune_shieldpendant.dmi', "icon_state" = "fortune_shieldpendant_w")
|
||||
@@ -234,7 +234,7 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
overlays_standing[DAMAGE_LAYER] = standing_image
|
||||
|
||||
if(update_icons) update_icons()
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_skin_tone_key()
|
||||
if (species.flags & HAS_SKIN_COLOR)
|
||||
@@ -242,7 +242,7 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
if(species.flags & HAS_SKIN_TONE)
|
||||
return "[s_tone]"
|
||||
return ""
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_icon_key(var/list/mutations=list())
|
||||
if (!mutations)
|
||||
@@ -316,13 +316,13 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
var/deform_icon = (mutations["skeleton"] ? 'icons/mob/human_races/r_skeleton.dmi' : species.icobase)
|
||||
|
||||
var/list/skin_info = skin_colour_info(mutations) // get the skin tone info
|
||||
|
||||
|
||||
//Robotic limbs are handled in get_icon() so all we worry about are missing or dead limbs.
|
||||
//No icon stored, so we need to start with a basic one.
|
||||
var/datum/organ/external/chest = get_organ("chest")
|
||||
base_icon = chest.get_icon(race_icon,deform_icon,skin_info)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(chest.status & ORGAN_DEAD)
|
||||
base_icon.ColorTone(necrosis_color_mod)
|
||||
@@ -419,7 +419,7 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
|
||||
/mob/living/carbon/human/proc/create_hair_icon()
|
||||
if(!should_we_show_hair()) // if we're missing our head or we're wearing a mask, no hair
|
||||
return
|
||||
return
|
||||
validate_hair() // make sure our hair is valid
|
||||
var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s") //base icons
|
||||
var/icon/facial_s = facial_hair_icon()
|
||||
@@ -437,7 +437,7 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
create_hair_icon() // do the hair blending
|
||||
if(update_icons)
|
||||
update_icons()
|
||||
|
||||
|
||||
|
||||
/mob/living/carbon/human/update_mutations(var/update_icons=1)
|
||||
var/fat
|
||||
@@ -583,22 +583,34 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
if(w_uniform:hastie) //WE CHECKED THE TYPE ABOVE. THIS REALLY SHOULD BE FINE.
|
||||
var/tie_color = w_uniform:hastie.item_color
|
||||
if(!tie_color) tie_color = w_uniform:hastie.icon_state
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]")
|
||||
if (w_uniform:hastie.contained_sprite == 1)
|
||||
standing.overlays += image("icon" = w_uniform:hastie.icon, "icon_state" = "[tie_color]_w")
|
||||
else
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]")
|
||||
|
||||
if(w_uniform:aband) //SAME THING AS ABOVE, WHY AM I TYPING LIKE THIS, BECAUSE ABOVE
|
||||
var/aband_color = w_uniform:aband.item_color
|
||||
if(!aband_color) aband_color = w_uniform:aband.icon_state
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[aband_color]")
|
||||
if (w_uniform:aband.contained_sprite == 1)
|
||||
standing.overlays += image("icon" = w_uniform:aband.icon, "icon_state" = "[aband_color]_w")
|
||||
else
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[aband_color]")
|
||||
|
||||
if(w_uniform:webbing) //SAME THING AS ABOVE, LETS ADD TWO MORE FOR LOLS
|
||||
var/webbing_color = w_uniform:webbing.item_color
|
||||
if(!webbing_color) webbing_color = w_uniform:webbing.icon_state
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[webbing_color]")
|
||||
if (w_uniform:webbing.contained_sprite == 1)
|
||||
standing.overlays += image("icon" = w_uniform:webbing.icon, "icon_state" = "[webbing_color]_w")
|
||||
else
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[webbing_color]")
|
||||
|
||||
if(w_uniform:holster) //SAME THING AS ABOVE, THIS IS FUN
|
||||
var/holster_color = w_uniform:holster.item_color
|
||||
if(!holster_color) holster_color = w_uniform:holster.icon_state
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[holster_color]")
|
||||
if (w_uniform:holster.contained_sprite == 1)
|
||||
standing.overlays += image("icon" = w_uniform:holster.icon, "icon_state" = "[holster_color]_w")
|
||||
else
|
||||
standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[holster_color]")
|
||||
|
||||
overlays_standing[UNIFORM_LAYER] = standing
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user