From 32492a51fe479fbab1d3ae54a22bdda89f4c1174 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 2 Jan 2012 06:33:59 -0500 Subject: [PATCH 1/5] fixed edit-appearence to assign hair and facial style correctly. somehow I didn't notice it wasn't changing in testing :p --- code/modules/admin/admin_verbs.dm | 41 ++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 62da2f4a0c5..2c14d2eae61 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -802,15 +802,50 @@ M.s_tone = max(min(round(text2num(new_tone)), 220), 1) M.s_tone = -M.s_tone + 35 - var/new_style = input("Please select hair style", "Character Generation") as null|anything in list( "Cut Hair", "Short Hair", "Long Hair", "Mohawk", "Balding", "Wave", "Bedhead", "Dreadlocks", "Ponytail", "Bald" ) + // hair + var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair + var/list/hairs = list() + // loop through potential hairs + for(var/x in all_hairs) + var/datum/sprite_accessory/hair/H = new x // create new hair datum based on type x + hairs.Add(H.name) // add hair name to hairs + del(H) // delete the hair after it's all done + + var/new_style = input("Please select hair style", "Character Generation") as null|anything in hairs + + // if new style selected (not cancel) if (new_style) M.h_style = new_style - new_style = input("Please select facial style", "Character Generation") as null|anything in list("Watson", "Chaplin", "Selleck", "Full Beard", "Long Beard", "Neckbeard", "Van Dyke", "Elvis", "Abe", "Chinstrap", "Hipster", "Goatee", "Hogan", "Shaved") + for(var/x in all_hairs) // loop through all_hairs again. Might be slightly CPU expensive, but not significantly. + var/datum/sprite_accessory/hair/H = new x // create new hair datum + if(H.name == new_style) + M.hair_style = H // assign the hair_style variable a new hair datum + break + else + del(H) // if hair H not used, delete. BYOND can garbage collect, but better safe than sorry - if (new_style) + // facial hair + var/list/all_fhairs = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair + var/list/fhairs = list() + + for(var/x in all_fhairs) + var/datum/sprite_accessory/facial_hair/H = new x + fhairs.Add(H.name) + del(H) + + new_style = input("Please select facial style", "Character Generation") as null|anything in fhairs + + if(new_style) M.f_style = new_style + for(var/x in all_fhairs) + var/datum/sprite_accessory/facial_hair/H = new x + if(H.name == new_style) + M.facial_hair_style = H + break + else + del(H) var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female") if (new_gender) From 8000b5be66cc8c3970ef233189892d9706620602 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 2 Jan 2012 08:40:56 -0500 Subject: [PATCH 2/5] why did I make an afterthought commit changing it to the wrong thing.. --- code/game/magic/musician.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/magic/musician.dm b/code/game/magic/musician.dm index 464a9e9f3aa..3bb9287e6c0 100644 --- a/code/game/magic/musician.dm +++ b/code/game/magic/musician.dm @@ -460,7 +460,7 @@ onclose(user, "piano") Topic(href, href_list) - if(in_range(src, usr) && !issilicon(usr) && !anchored) + if(in_range(src, usr) && !issilicon(usr) && anchored) if(href_list["tempo"]) song.tempo += text2num(href_list["tempo"]) if(song.tempo < 1) From 87a14c067496679c970bf0a2b7a1f72d8bde4ef9 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 2 Jan 2012 11:46:19 -0500 Subject: [PATCH 3/5] machine ingredient adding more intuitive --- .../Tastyfish/wallmount_frame.dm | 22 +++++++++-- code/game/machinery/constructable_frame.dm | 37 +++++++++++++++++-- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/code/WorkInProgress/Tastyfish/wallmount_frame.dm b/code/WorkInProgress/Tastyfish/wallmount_frame.dm index d747a5c1ea4..1134dd6a463 100644 --- a/code/WorkInProgress/Tastyfish/wallmount_frame.dm +++ b/code/WorkInProgress/Tastyfish/wallmount_frame.dm @@ -63,7 +63,16 @@ req_components = circuit.req_components.Copy() for(var/A in circuit.req_components) req_components[A] = circuit.req_components[A] - if(circuit.frame_desc) desc = circuit.frame_desc + req_component_names = circuit.req_components.Copy() + for(var/A in req_components) + var/cp = text2path(A) + var/obj/ct = new cp() // have to quickly instantiate it get name + req_component_names[A] = ct.name + if(circuit.frame_desc) + desc = circuit.frame_desc + else + update_desc() + user << desc else user << "\red This frame does not accept circuit boards of this type!" if(istype(P, /obj/item/weapon/wirecutters)) @@ -126,19 +135,26 @@ if(istype(P, /obj/item/weapon)) for(var/I in req_components) if(istype(P, text2path(I)) && (req_components[I] > 0)) + playsound(src.loc, 'Deconstruct.ogg', 50, 1) if(istype(P, /obj/item/weapon/cable_coil)) var/obj/item/weapon/cable_coil/CP = P if(CP.amount > 1) + var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src) - CC.amount = 1 + CC.amount = camt + CC.update_icon() + CP.use(camt) components += CC - req_components[I]-- + req_components[I] -= camt + update_desc() break user.drop_item() P.loc = src components += P req_components[I]-- + update_desc() break + user << desc if(P.loc != src && !istype(P, /obj/item/weapon/cable_coil)) user << "\red You cannot add that component to the machine!" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 75a2ed70f87..1b253966adb 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -9,8 +9,23 @@ obj/item/weapon/circuitboard/circuit = null list/components = null list/req_components = null + list/req_component_names = null state = 1 + proc/update_desc() + var/D + if(req_components) + D = "Requires " + var/first = 1 + for(var/I in req_components) + if(req_components[I] > 0) + D += "[first?"":", "][num2text(req_components[I])] [req_component_names[I]]" + first = 0 + if(first) // nothing needs to be added, then + D += "nothing" + D += "." + desc = D + /obj/machinery/constructable_frame/machine_frame attackby(obj/item/P as obj, mob/user as mob) if(P.crit_fail) @@ -48,7 +63,16 @@ req_components = circuit.req_components.Copy() for(var/A in circuit.req_components) req_components[A] = circuit.req_components[A] - if(circuit.frame_desc) desc = circuit.frame_desc + req_component_names = circuit.req_components.Copy() + for(var/A in req_components) + var/cp = text2path(A) + var/obj/ct = new cp() // have to quickly instantiate it get name + req_component_names[A] = ct.name + if(circuit.frame_desc) + desc = circuit.frame_desc + else + update_desc() + user << desc else user << "\red This frame does not accept circuit boards of this type!" if(istype(P, /obj/item/weapon/wirecutters)) @@ -104,19 +128,26 @@ if(istype(P, /obj/item/weapon)) for(var/I in req_components) if(istype(P, text2path(I)) && (req_components[I] > 0)) + playsound(src.loc, 'Deconstruct.ogg', 50, 1) if(istype(P, /obj/item/weapon/cable_coil)) var/obj/item/weapon/cable_coil/CP = P if(CP.amount > 1) + var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src) - CC.amount = 1 + CC.amount = camt + CC.update_icon() + CP.use(camt) components += CC - req_components[I]-- + req_components[I] -= camt + update_desc() break user.drop_item() P.loc = src components += P req_components[I]-- + update_desc() break + user << desc if(P.loc != src && !istype(P, /obj/item/weapon/cable_coil)) user << "\red You cannot add that component to the machine!" From 3c15526e3fcb7c171275476813ac244d6aaed188 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 2 Jan 2012 12:52:09 -0500 Subject: [PATCH 4/5] accidentally called the wrong unequip proc, they're all so similar! --- code/modules/mob/screen.dm | 4 ++-- code/modules/recycling/disposal.dm | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index 787b7434d65..666245a89cf 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -470,7 +470,7 @@ O.show_message(text("\red [] manages to break out of the straight jacket!", usr), 1) usr << "\green You successfully break out of your straight jacket." var/obj/sj = usr:wear_suit - usr.u_equip(sj) + usr.remove_from_mob(sj) sj.loc = usr.loc else usr << "\red You attempt to get out of your straight jacket. (This will take around 4 minutes and you need to stand still)" @@ -483,7 +483,7 @@ O.show_message(text("\red [] manages to wriggle out of the straight jacket!", usr), 1) usr << "\blue You successfully get out of your straight jacket." var/obj/sj = usr:wear_suit - usr.u_equip(sj) + usr.remove_from_mob(sj) sj.loc = usr.loc if(usr:handcuffed && (usr.last_special <= world.time) && usr:buckled) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e4a15e3b6b1..d69eb32ff15 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -305,6 +305,9 @@ src.updateDialog() + if(!air_contents) // caused runtime error for the first tick, if created mid-game + return + if(flush && air_contents.return_pressure() >= SEND_PRESSURE) // flush can happen even without power flush() From 7abc22bf786ba96f99d6e963729694c223ad1d2f Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Mon, 2 Jan 2012 18:52:38 -0500 Subject: [PATCH 5/5] make pailiza tell parser less confusing --- code/WorkInProgress/Tastyfish/Eliza_Data.dm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/WorkInProgress/Tastyfish/Eliza_Data.dm b/code/WorkInProgress/Tastyfish/Eliza_Data.dm index 3537c73c2cc..0fecf95cf71 100644 --- a/code/WorkInProgress/Tastyfish/Eliza_Data.dm +++ b/code/WorkInProgress/Tastyfish/Eliza_Data.dm @@ -353,13 +353,10 @@ process(object) // get name & message - var/i = findtext(object, " that ") - var/sl = 6 + var/i = findtext(object, ",") + var/sl = 1 if(!i || lentext(object) < i + sl) - i = findtext(object, ",") - sl = 1 - if(!i || lentext(object) < i + sl) - return "Tell who that you what?" + return "Tell who that you what?" var/name = trim(copytext(object, 1, i)) object = trim(copytext(object, i + sl))