- You can now recolor jumpsuits, shoes, gloves and bedsheets using the washing machine.

Screenshot: http://www.kamletos.si/laundry.png
- Some religions (currently Islam, Scientology and Atheism) set your chapel's symbols to the symbols of that religion.
Screenshot: http://www.kamletos.si/view%20variables%206.JPG (The tiles)
- Detective now has his stuff in an old-styled cabinet. (Sprite by Hempuli)
- Got rid of some.. uhh... Runtime errors... and... uhh... A certain dungeon master... I... I WAS ORDERED TO DO IT, YELL AT URIST AND CREED!
- I doubt you'll get this far in reading this changelog due to the previous point, but just in case you do... Admin tools updated:
- View variables now has a "Mark Object" option. After you've marked an object or datum, you will be able to assign the value to a variable. An example would be if you try to put an item into a closet. You'd open view variables on the item you want to move, select "mark object", open 'view variables' of the closet, click E or C next to contents and select "marked datum (type)". After this, you select 'No' for the reference question.
Screenshot: http://www.kamletos.si/references.jpg
- Also in View variables, you can now access a player's 'Player panel' if you view a mob's variables.
- Updated changelog with these changes

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2225 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
baloh.matevz
2011-09-18 22:05:00 +00:00
parent 34ec02d080
commit 2b1b121141
25 changed files with 4883 additions and 4537 deletions

View File

@@ -54,13 +54,49 @@ client
filter_text.select();
}
function loadPage(list) {
if(list.options\[list.selectedIndex\].value == ""){
return;
}
location.href=list.options\[list.selectedIndex\].value;
}
</script> "}
body += "<body onload='selectTextField()'>"
body += "<div align='center'><table width='100%'><tr><td width='50%'><div align='center'><b>[D]<br><font size='1'>[D.type]</font></b></div></td>"
body += "<td width='50%'><div align='center'><a href='byond://?src=\ref[src];datumrefresh=\ref[D];refresh=1'>Refresh</a></div></td></tr></table></div><hr>"
body += "<td width='50%'><div align='center'><a href='byond://?src=\ref[src];datumrefresh=\ref[D];refresh=1'>Refresh</a>"
//if(ismob(D))
// body += "<br><a href='byond://?src=\ref[src];mob_player_panel=\ref[D]'>Show player panel</a></div></td></tr></table></div><hr>"
body += {" <form>
<select name="file" size="1"
onchange="loadPage(this.form.elements\[0\])"
target="_parent._top"
onmouseclick="this.focus()"
style="background-color:#ffffff">
"}
body += {" <option value>Select option</option>
<option value> </option>
"}
body += "<option value='byond://?src=\ref[src];mark_object=\ref[D]'>Mark Object</option>"
body += "<option value>---</option>"
if(ismob(D))
body += "<option value='byond://?src=\ref[src];mob_player_panel=\ref[D]'>Show player panel</option>"
body += "</select></form>"
body += "</div></td></tr></table></div><hr>"
body += "<font size='1'><b>E</b> - Edit, tries to determine the variable type by itself.<br>"
body += "<b>C</b> - Change, asks you for the var type first.</font><br>"
@@ -210,6 +246,26 @@ client
if(!istype(DAT,/datum))
return
src.debug_variables(DAT)
else if (href_list["mob_player_panel"])
if(!href_list["mob_player_panel"])
return
var/mob/MOB = locate(href_list["mob_player_panel"])
if(!MOB)
return
if(!ismob(MOB))
return
if(!src.holder)
return
src.holder.show_player_panel(MOB)
else if (href_list["mark_object"])
if(!href_list["mark_object"])
return
var/datum/D = locate(href_list["mark_object"])
if(!D)
return
if(!src.holder)
return
src.holder.marked_datum = D
else
..()

View File

@@ -7,6 +7,7 @@
var/reliability = 100 //Used by SOME devices to determine how reliable they are.
var/crit_fail = 0
var/unacidable = 0 //universal "unacidabliness" var, here so you can use it in any obj.
var/datum/marked_datum
animate_movement = 2
var/throwforce = 1
proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request)

View File

@@ -19,6 +19,20 @@
icon_closed = "acloset"
icon_opened = "aclosetopen"
/obj/closet/cabinet
desc = "Old will forever be in fashion."
name = "Cabinet"
icon_state = "cabinet_closed"
icon_closed = "cabinet_closed"
icon_opened = "cabinet_open"
/obj/closet/cabinet2
desc = "Old will forever be in fashion."
name = "Cabinet"
icon_state = "cabinetdet_closed"
icon_closed = "cabinetdet_closed"
icon_opened = "cabinetdet_open"
/obj/spresent
desc = "It's a ... present?"
name = "strange present"

View File

@@ -28,6 +28,13 @@
name = "red shoes"
desc = "Stylish red shoes."
icon_state = "red"
color = "red"
/obj/item/clothing/shoes/rainbow
name = "rainbow shoes"
desc = "Very gay shoes."
icon_state = "rain_bow"
color = "rainbow"
/obj/item/clothing/mask/owl_mask
name = "Owl mask"
@@ -96,6 +103,7 @@
name = "rainbow"
desc = "rainbow"
icon_state = "rainbow"
item_state = "rainbow"
color = "rainbow"
/obj/item/clothing/under/cloud
@@ -141,6 +149,7 @@
name = "purple"
desc = "purple"
icon_state = "purple"
item_state = "p_suit"
color = "purple"
/obj/item/clothing/under/lightpurple

View File

@@ -18,13 +18,14 @@
desc = "These look pretty fancy."
icon_state = "latex"
item_state = "lgloves"
color="mime"
/obj/item/clothing/gloves/black
desc = "These gloves are fire-resistant."
name = "Black Gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
protective_temperature = 1500
heat_transfer_coefficient = 0.01
@@ -46,6 +47,7 @@
protective_temperature = 310
heat_transfer_coefficient = 0.90
armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 20, rad = 20)
color="white"
/obj/item/clothing/gloves/swat
desc = "These tactical gloves are somewhat fire and impact-resistant."
@@ -103,6 +105,7 @@
protective_temperature = 1000
heat_transfer_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 2, taser = 30, bomb = 0, bio = 0, rad = 0)
color="yellow"
/obj/item/clothing/gloves/captain
desc = "Regal blue gloves, with a nice gold trim. Swanky."
@@ -125,45 +128,60 @@
desc = "A pair of gloves, they don't look special in any way."
icon_state = "orange"
item_state = "orangegloves"
color="orange"
/obj/item/clothing/gloves/red
name = "Red Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "red"
item_state = "redgloves"
color = "red"
/obj/item/clothing/gloves/rainbow
name = "Rainbow Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "rainbow"
item_state = "rainbowgloves"
color = "rainbow"
/obj/item/clothing/gloves/blue
name = "Blue Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "blue"
item_state = "bluegloves"
color="blue"
/obj/item/clothing/gloves/purple
name = "Purple Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "purple"
item_state = "purplegloves"
color="purple"
/obj/item/clothing/gloves/green
name = "Green Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "green"
item_state = "greengloves"
color="green"
/obj/item/clothing/gloves/gray
name = "Gray Gloves"
/obj/item/clothing/gloves/grey
name = "Grey Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "gray"
item_state = "graygloves"
color="grey"
/obj/item/clothing/gloves/light_brown
name = "Light Brown Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "lightbrown"
item_state = "lightbrowngloves"
color="light brown"
/obj/item/clothing/gloves/brown
name = "Brown Gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "brown"
item_state = "browngloves"
item_state = "browngloves"
color="brown"

View File

@@ -29,15 +29,48 @@
/obj/item/clothing/shoes/black
name = "Black Shoes"
icon_state = "black"
color = "black"
/obj/item/clothing/shoes/brown
name = "Brown Shoes"
icon_state = "brown"
color = "brown"
/obj/item/clothing/shoes/blue
name = "Blue Shoes"
icon_state = "blue"
color = "blue"
/obj/item/clothing/shoes/green
name = "Green Shoes"
icon_state = "green"
color = "green"
/obj/item/clothing/shoes/yellow
name = "Yellow Shoes"
icon_state = "yellow"
color = "yellow"
/obj/item/clothing/shoes/mime
name = "Mime Shoes"
icon_state = "mime"
color = "mime"
/obj/item/clothing/shoes/purple
name = "Purple Shoes"
icon_state = "purple"
color = "purple"
/obj/item/clothing/shoes/brown
name = "Brown Shoes"
icon_state = "brown"
color = "brown"
/obj/item/clothing/shoes/orange
name = "Orange Shoes"
icon_state = "orange"
var/chained = 0
color = "orange"
/obj/item/clothing/shoes/swat
name = "SWAT shoes"
@@ -66,6 +99,7 @@
name = "White Shoes"
icon_state = "white"
permeability_coefficient = 0.25
color = "white"
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."

View File

@@ -270,6 +270,39 @@
w_class = 1.0
throw_speed = 2
throw_range = 10
var/color = "white"
/obj/item/weapon/bedsheet/blue
icon_state = "sheetblue"
color = "blue"
/obj/item/weapon/bedsheet/green
icon_state = "sheetgreen"
color = "green"
/obj/item/weapon/bedsheet/orange
icon_state = "sheetorange"
color = "orange"
/obj/item/weapon/bedsheet/purple
icon_state = "sheetpurple"
color = "purple"
/obj/item/weapon/bedsheet/rainbow
icon_state = "sheetrainbow"
color = "rainbow"
/obj/item/weapon/bedsheet/red
icon_state = "sheetred"
color = "red"
/obj/item/weapon/bedsheet/yellow
icon_state = "sheetyellow"
color = "yellow"
/obj/item/weapon/bedsheet/mime
icon_state = "sheetmime"
color = "mime"
/obj/item/weapon/bikehorn
name = "Bike Horn"

View File

@@ -203,6 +203,10 @@
if("Koran")
B.icon_state = "koran"
B.item_state = "koran"
for(var/area/chapel/main/A in world)
for(var/turf/T in A.contents)
if(T.icon_state == "carpetsymbol")
T.dir = 4
if("Scrapbook")
B.icon_state = "scrapbook"
B.item_state = "scrapbook"
@@ -221,6 +225,10 @@
if("Athiest")
B.icon_state = "athiest"
B.item_state = "syringe_kit"
for(var/area/chapel/main/A in world)
for(var/turf/T in A.contents)
if(T.icon_state == "carpetsymbol")
T.dir = 10
if("Tome")
B.icon_state = "tome"
B.item_state = "syringe_kit"
@@ -233,6 +241,10 @@
if("Scientology")
B.icon_state = "scientology"
B.item_state = "scientology"
for(var/area/chapel/main/A in world)
for(var/turf/T in A.contents)
if(T.icon_state == "carpetsymbol")
T.dir = 8
if("the bible melts")
B.icon_state = "melted"
B.item_state = "melted"
@@ -243,6 +255,10 @@
// if christian bible, revert to default
B.icon_state = "bible"
B.item_state = "bible"
for(var/area/chapel/main/A in world)
for(var/turf/T in A.contents)
if(T.icon_state == "carpetsymbol")
T.dir = 2
src:update_clothing() // so that it updates the bible's item_state in his hand

View File

@@ -167,3 +167,20 @@
new /obj/item/clothing/suit/lawyer/purpjacket(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/black(src)
/obj/closet/cabinet/New()
..()
sleep(2)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/under/det( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/head/det_hat( src )
new /obj/item/clothing/suit/det_suit( src )
new /obj/item/clothing/suit/det_suit/armor( src )
new /obj/item/weapon/storage/fcard_kit( src )
new /obj/item/clothing/gloves/black( src )
new /obj/item/weapon/storage/lglo_kit( src )
new /obj/item/weapon/fcardholder( src )
new /obj/item/weapon/clipboard( src )
new /obj/item/device/detective_scanner( src )
return

View File

@@ -20,6 +20,7 @@
//0 = not hacked
//1 = hacked
var/gibs_ready = 0
var/obj/item/toy/crayon/crayon
/obj/machinery/washing_machine/verb/start()
set name = "Start Washing"
@@ -38,6 +39,97 @@
sleep(200)
for(var/atom/A in contents)
A.clean_blood()
if(crayon)
var/color = crayon.colourName
if(color)
var/new_jumpsuit_icon_state = ""
var/new_jumpsuit_item_state = ""
var/new_jumpsuit_name = ""
var/new_glove_icon_state = ""
var/new_glove_item_state = ""
var/new_glove_name = ""
var/new_shoe_icon_state = ""
var/new_shoe_name = ""
var/new_sheet_icon_state = ""
var/new_sheet_name = ""
var/new_desc = "The colors are a bit dodgy."
for(var/T in typesof(/obj/item/clothing/under))
var/obj/item/clothing/under/J = new T
//world << "DEBUG: [color] == [J.color]"
if(color == J.color)
new_jumpsuit_icon_state = J.icon_state
new_jumpsuit_item_state = J.item_state
new_jumpsuit_name = J.name
del(J)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
del(J)
for(var/T in typesof(/obj/item/clothing/gloves))
var/obj/item/clothing/gloves/G = new T
//world << "DEBUG: [color] == [J.color]"
if(color == G.color)
new_glove_icon_state = G.icon_state
new_glove_item_state = G.item_state
new_glove_name = G.name
del(G)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
del(G)
for(var/T in typesof(/obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = new T
//world << "DEBUG: [color] == [J.color]"
if(color == S.color)
new_shoe_icon_state = S.icon_state
new_shoe_name = S.name
del(S)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
del(S)
for(var/T in typesof(/obj/item/weapon/bedsheet))
var/obj/item/weapon/bedsheet/B = new T
//world << "DEBUG: [color] == [J.color]"
if(color == B.color)
new_sheet_icon_state = B.icon_state
new_sheet_name = B.name
del(B)
//world << "DEBUG: YUP! [new_icon_state] and [new_item_state]"
break
del(B)
if(new_jumpsuit_icon_state && new_jumpsuit_item_state && new_jumpsuit_name)
for(var/obj/item/clothing/under/J in contents)
//world << "DEBUG: YUP! FOUND IT!"
J.item_state = new_jumpsuit_item_state
J.icon_state = new_jumpsuit_icon_state
J.color = color
J.name = new_jumpsuit_name
J.desc = new_desc
if(new_glove_icon_state && new_glove_item_state && new_glove_name)
for(var/obj/item/clothing/gloves/G in contents)
//world << "DEBUG: YUP! FOUND IT!"
G.item_state = new_glove_item_state
G.icon_state = new_glove_icon_state
G.color = color
G.name = new_glove_name
G.desc = new_desc
if(new_shoe_icon_state && new_shoe_name)
for(var/obj/item/clothing/shoes/S in contents)
//world << "DEBUG: YUP! FOUND IT!"
S.icon_state = new_shoe_icon_state
S.color = color
S.name = new_shoe_name
S.desc = new_desc
if(new_sheet_icon_state && new_sheet_name)
for(var/obj/item/weapon/bedsheet/B in contents)
//world << "DEBUG: YUP! FOUND IT!"
B.icon_state = new_sheet_icon_state
B.color = color
B.name = new_sheet_name
B.desc = new_desc
del(crayon)
crayon = null
if( locate(/mob,contents) )
state = 7
gibs_ready = 1
@@ -62,7 +154,17 @@
/*if(istype(W,/obj/item/weapon/screwdriver))
panel = !panel
user << "\blue you [panel ? "open" : "close"] the [src]'s maintenance panel"*/
if(istype(W,/obj/item/weapon/grab))
if(istype(W,/obj/item/toy/crayon))
if( state in list( 1, 3, 6 ) )
if(!crayon)
user.drop_item()
crayon = W
crayon.loc = src
else
..()
else
..()
else if(istype(W,/obj/item/weapon/grab))
if( (state == 1) && hacked)
var/obj/item/weapon/grab/G = W
if(ishuman(G.assailant) && iscorgi(G.affecting))
@@ -71,7 +173,7 @@
state = 3
else
..()
if(istype(W,/obj/item/clothing/under) || istype(W,/obj/item/clothing/mask) || istype(W,/obj/item/clothing/head) || istype(W,/obj/item/clothing/gloves) || istype(W,/obj/item/clothing/shoes) || istype(W,/obj/item/clothing/suit))
else if(istype(W,/obj/item/clothing/under) || istype(W,/obj/item/clothing/mask) || istype(W,/obj/item/clothing/head) || istype(W,/obj/item/clothing/gloves) || istype(W,/obj/item/clothing/shoes) || istype(W,/obj/item/clothing/suit) || istype(W,/obj/item/weapon/bedsheet))
//YES, it's hardcoded... saves a var/can_be_washed for every single clothing item.
if ( istype(W,/obj/item/clothing/suit/space ) )

View File

@@ -15,12 +15,20 @@
/client/proc/mod_list_add_ass() //haha
var/class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file")
var/class = "text"
if(src.holder && src.holder.marked_datum)
class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default","marked datum ([holder.marked_datum.type])")
else
class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
if(!class)
return
if(class == "marked datum ([holder.marked_datum.type])")
class = "marked datum"
var/var_value = null
switch(class)
@@ -46,6 +54,9 @@
if("icon")
var_value = input("Pick icon:","Icon") as icon
if("marked datum")
var_value = holder.marked_datum
if(!var_value) return
return var_value
@@ -53,12 +64,20 @@
/client/proc/mod_list_add(var/list/L)
var/class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file")
var/class = "text"
if(src.holder && src.holder.marked_datum)
class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default","marked datum ([holder.marked_datum.type])")
else
class = input("What kind of variable?","Variable Type") as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
if(!class)
return
if(class == "marked datum ([holder.marked_datum.type])")
class = "marked datum"
var/var_value = null
switch(class)
@@ -84,6 +103,9 @@
if("icon")
var_value = input("Pick icon:","Icon") as icon
if("marked datum")
var_value = holder.marked_datum
if(!var_value) return
switch(alert("Would you like to associate a var with the list entry?",,"Yes","No"))
@@ -178,12 +200,20 @@
if(dir)
usr << "If a direction, direction is: [dir]"
var/class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object", "(DELETE FROM LIST)","restore to default")
var/class = "text"
if(src.holder && src.holder.marked_datum)
class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default","marked datum ([holder.marked_datum.type])")
else
class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
if(!class)
return
if(class == "marked datum ([holder.marked_datum.type])")
class = "marked datum"
switch(class)
if("list")
@@ -227,6 +257,9 @@
variable = input("Pick icon:","Icon",variable) \
as icon
if("marked datum")
variable = holder.marked_datum
/client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0)
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "cuffed", "ka", "last_eaten", "urine", "poo", "icon", "icon_state")
@@ -378,8 +411,12 @@
if(dir)
usr << "If a direction, direction is: [dir]"
class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
if(src.holder && src.holder.marked_datum)
class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default","marked datum ([holder.marked_datum.type])")
else
class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
if(!class)
return
@@ -391,6 +428,9 @@
else
original_name = O:name
if(class == "marked datum ([holder.marked_datum.type])")
class = "marked datum"
switch(class)
if("list")
@@ -436,6 +476,9 @@
O.vars[variable] = input("Pick icon:","Icon",O.vars[variable]) \
as icon
if("marked datum")
O.vars[variable] = holder.marked_datum
log_admin("[key_name(src)] modified [original_name]'s [variable] to [O.vars[variable]]")
message_admins("[key_name_admin(src)] modified [original_name]'s [variable] to [O.vars[variable]]", 1)