From 458726fd88541758223df0ec546b43dcaa68d8a2 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 01:22:58 +0400 Subject: [PATCH 1/9] Now rest of admin ranks will at least have OOC. --- code/game/verbs/ooc.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index d3c35946617..650d3ad9ae0 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -47,6 +47,8 @@ //todo: other adminranks OOC else if(holder.rights & R_MOD) C << "OOC: [key][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" + else + C << "OOC: [src.key]: [msg]" else C << "OOC: [holder.fakekey ? holder.fakekey : src.key]: [msg]" From 39a6b54a5a48bc37072174ffe7ea1570e9714eb3 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 01:25:52 +0400 Subject: [PATCH 2/9] Added admins some verbs that flithy mods were hogging. --- code/modules/admin/admin_verbs.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4c7016e3d91..03b27cd2c90 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -57,6 +57,9 @@ var/list/admin_verbs_admin = list( /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/ /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ /client/proc/cmd_admin_say, /*admin-only ooc chat*/ + /datum/admins/proc/PlayerNotes, + /client/proc/cmd_mod_say, + /datum/admins/proc/show_player_info, /client/proc/free_slot /*frees slot for chosen job*/ ) var/list/admin_verbs_ban = list( From 0c260c2c1714f1a837869fec3e1cc48f791aec82 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 01:28:30 +0400 Subject: [PATCH 3/9] Added rejuv verb and setting OOC event info. --- code/modules/admin/admin_verbs.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 03b27cd2c90..46ba5457926 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -60,7 +60,9 @@ var/list/admin_verbs_admin = list( /datum/admins/proc/PlayerNotes, /client/proc/cmd_mod_say, /datum/admins/proc/show_player_info, - /client/proc/free_slot /*frees slot for chosen job*/ + /client/proc/free_slot, /*frees slot for chosen job*/ + /client/proc/cmd_admin_change_custom_event, + /client/proc/cmd_admin_rejuvenate ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, From 5185dd988ea54949d777fd0e0dac8c585f393190 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 01:51:42 +0400 Subject: [PATCH 4/9] Surgery runtime checks. --- code/modules/surgery/ribcage.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm index 5e961e25a7f..04c09cd02ed 100644 --- a/code/modules/surgery/ribcage.dm +++ b/code/modules/surgery/ribcage.dm @@ -15,6 +15,8 @@ max_duration = 70 can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + if (!istype(target)) + return var/datum/organ/external/affected = target.get_organ(target_zone) return ..() && target.op_stage.ribcage == 0 && affected.open >= 2 From d1972efbb84b8c5a1ffeb05f0dc7e4df91207749 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 18:07:34 +0400 Subject: [PATCH 5/9] Can order contraband crates. Moved most of 'contraband' out of crate to others. --- code/datums/supplypacks.dm | 8 ++++---- code/game/objects/effects/decals/contraband.dm | 2 +- code/game/supplyshuttle.dm | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 0e75071a400..42b5f0ba7bd 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -103,6 +103,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/reagent_containers/food/drinks/shaker, /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, + /obj/item/weapon/lipstick/random, /obj/item/weapon/reagent_containers/food/drinks/ale, /obj/item/weapon/reagent_containers/food/drinks/ale, /obj/item/weapon/reagent_containers/food/drinks/beer, @@ -746,6 +748,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/reagent_containers/glass/paint/black, /obj/item/weapon/reagent_containers/glass/paint/white, /obj/item/weapon/reagent_containers/glass/paint/remover, + /obj/item/weapon/contraband/poster, /obj/item/weapon/wrapping_paper, /obj/item/weapon/wrapping_paper, /obj/item/weapon/wrapping_paper) @@ -756,10 +759,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/randomised/contraband num_contained = 5 - contains = list(/obj/item/weapon/contraband/poster, - /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, - /obj/item/weapon/lipstick/random, - /obj/item/seeds/bloodtomatoseed, + contains = list(/obj/item/seeds/bloodtomatoseed, /obj/item/weapon/storage/pill_bottle/zoom, /obj/item/weapon/storage/pill_bottle/happy, /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe) diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm index c002698361e..d7ac2baa6fc 100644 --- a/code/game/objects/effects/decals/contraband.dm +++ b/code/game/objects/effects/decals/contraband.dm @@ -67,7 +67,7 @@ obj/structure/sign/poster name = "poster" - desc = "A large piece of space-resistant printed paper. It's considered contraband." + desc = "A large piece of space-resistant printed paper. " icon = 'icons/obj/contraband.dmi' anchored = 1 var/serial_number //Will hold the value of src.loc if nobody initialises it diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 560ef3e49c0..1a86a5ca65a 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -570,7 +570,7 @@ var/list/mechtoys = list( temp += "Request from: [cur_supply_group]

" for(var/supply_name in supply_shuttle.supply_packs ) var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name] - if(N.hidden || N.contraband || N.group != cur_supply_group) continue //Have to send the type instead of a reference to + if(N.hidden || (N.contraband && !can_order_contraband) || N.group != cur_supply_group) continue //Have to send the type instead of a reference to temp += "[supply_name] Cost: [N.cost]
" //the obj because it would get caught by the garbage /*temp = "Supply points: [supply_shuttle.points]


Request what?

" From be67a9b3a70087a5972116da988ae5b98e830fda Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 28 Jan 2013 18:55:44 +0400 Subject: [PATCH 6/9] Readded missing icon for absinthe. --- icons/obj/drinks.dmi | Bin 56269 -> 56952 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 1a3675622fcd21ed62222524ad6f215294fd9bc6..e2082c9419e963735bc887e529fe1b428c18c2f5 100644 GIT binary patch delta 19531 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 h0Xqz&^`l^b0RZStv%{EBx Date: Mon, 28 Jan 2013 21:51:05 +0400 Subject: [PATCH 7/9] Should fix injured icons not updated. --- code/datums/organs/organ_external.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm index 3c0443ab6d5..74c28006266 100644 --- a/code/datums/organs/organ_external.dm +++ b/code/datums/organs/organ_external.dm @@ -273,6 +273,7 @@ if(germ_level > 0) for(var/datum/wound/W in wounds) if(!W.bandaged && !W.salved) W.germ_level = max(W.germ_level, germ_level) + update_icon() return proc/fracture() From 0bcda84eeb4cf5745b2cd1c9ec7ceb99fc99b727 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 30 Jan 2013 01:31:06 +0400 Subject: [PATCH 8/9] Fixed issue with magical wooden table disassembling. Generally cleaned up table code. --- code/game/objects/structures/tables_racks.dm | 160 +++---------------- 1 file changed, 23 insertions(+), 137 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 5f4b3d73956..f74740485d2 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -19,6 +19,7 @@ anchored = 1.0 layer = 2.8 throwpass = 1 //You can throw objects over this, despite it's density.") + var/parts = /obj/item/weapon/table_parts /obj/structure/table/New() ..() @@ -38,6 +39,12 @@ T.update_icon() ..() +/obj/structure/table/proc/destroy() + new parts(loc) + density = 0 + del(src) + + /obj/structure/table/update_icon() spawn(2) //So it properly updates when deleting var/dir_sum = 0 @@ -219,65 +226,34 @@ return if(3.0) if (prob(25)) - src.density = 0 + destroy() else return /obj/structure/table/blob_act() if(prob(75)) - if(istype(src, /obj/structure/table/woodentable)) - new /obj/item/weapon/table_parts/wood( src.loc ) - del(src) - return - new /obj/item/weapon/table_parts( src.loc ) - del(src) - return + destroy() /obj/structure/table/hand_p(mob/user as mob) return src.attack_paw(user) - return /obj/structure/table/attack_paw(mob/user) if(HULK in user.mutations) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - visible_message("[user] smashes the table apart!") - if(istype(src, /obj/structure/table/reinforced)) - new /obj/item/weapon/table_parts/reinforced(loc) - else if(istype(src, /obj/structure/table/woodentable)) - new/obj/item/weapon/table_parts/wood(loc) - else - new /obj/item/weapon/table_parts(loc) - density = 0 - del(src) + visible_message("[user] smashes the [src] apart!") + destroy() /obj/structure/table/attack_alien(mob/user) visible_message("[user] slices [src] apart!") - if(istype(src, /obj/structure/table/reinforced)) - new /obj/item/weapon/table_parts/reinforced(loc) - else if(istype(src, /obj/structure/table/woodentable)) - new/obj/item/weapon/table_parts/wood(loc) - else - new /obj/item/weapon/table_parts(loc) - density = 0 - del(src) - /obj/structure/table/attack_animal(mob/living/simple_animal/user) if(user.wall_smash) visible_message("[user] smashes [src] apart!") - if(istype(src, /obj/structure/table/reinforced)) - new /obj/item/weapon/table_parts/reinforced(loc) - else if(istype(src, /obj/structure/table/woodentable)) - new/obj/item/weapon/table_parts/wood(loc) - else - new /obj/item/weapon/table_parts(loc) - density = 0 - del(src) - + destroy() @@ -285,14 +261,7 @@ if(HULK in user.mutations) visible_message("[user] smashes [src] apart!") user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - if(istype(src, /obj/structure/table/reinforced)) - new /obj/item/weapon/table_parts/reinforced(loc) - else if(istype(src, /obj/structure/table/woodentable)) - new/obj/item/weapon/table_parts/wood(loc) - else - new /obj/item/weapon/table_parts(loc) - density = 0 - del(src) + destroy() /obj/structure/table/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) @@ -323,9 +292,9 @@ var/mob/living/M = G.affecting if (G.state < 2) if(user.a_intent == "hurt") - if (prob(5)) M.Weaken(5) - M.apply_damage(6) - visible_message("\red [G.assailant] slams [G.affecting] against \the [src]!") + if (prob(15)) M.Weaken(5) + M.apply_damage(8,def_zone = "head") + visible_message("\red [G.assailant] slams [G.affecting]'s face against \the [src]!") playsound(src.loc, 'sound/weapons/tablehit1.ogg', 50, 1) else user << "\red You need a better grip to do that!" @@ -341,10 +310,7 @@ user << "\blue Now disassembling table" playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user,50)) - new /obj/item/weapon/table_parts( src.loc ) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - //SN src = null - del(src) + destroy() return if(isrobot(user)) @@ -357,13 +323,10 @@ playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) for(var/mob/O in viewers(user, 4)) - O.show_message("\blue The table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2) - new /obj/item/weapon/table_parts( src.loc ) - del(src) - return + O.show_message("\blue The [src] was sliced apart by [user]!", 1, "\red You hear [src] coming apart.", 2) + destroy() user.drop_item(src) - //if(W && W.loc) W.loc = src.loc // Unnecessary - see: mob/proc/drop_item(atom) - Doohl return @@ -374,46 +337,7 @@ name = "wooden table" desc = "Do not apply fire to this. Rumour says it burns easily." icon_state = "wood_table" - - -/obj/structure/table/woodentable/attackby(obj/item/weapon/W as obj, mob/user as mob) - - if (istype(W, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = W - if(G.state<2) - user << "\red You need a better grip to do that!" - return - G.affecting.loc = src.loc - G.affecting.Weaken(5) - visible_message("\red [G.assailant] puts [G.affecting] on the table.") - del(W) - return - if (istype(W, /obj/item/weapon/wrench)) - user << "\blue Now disassembling the wooden table" - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - sleep(50) - new /obj/item/weapon/table_parts/wood( src.loc ) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - del(src) - return - if(isrobot(user)) - return - if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src.loc) - spark_system.start() - playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) - playsound(src.loc, "sparks", 50, 1) - for(var/mob/O in viewers(user, 4)) - O.show_message("\blue The wooden table was sliced apart by [user]!", 1, "\red You hear wood coming apart.", 2) - new /obj/item/weapon/table_parts/wood( src.loc ) - del(src) - return - - user.drop_item(src) - //if(W && W.loc) W.loc = src.loc - return - + parts = /obj/item/weapon/table_parts/wood /* * Reinforced tables @@ -423,21 +347,10 @@ desc = "A version of the four legged table. It is stronger." icon_state = "reinf_table" var/status = 2 + parts = /obj/item/weapon/table_parts/reinforced /obj/structure/table/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob) - - if (istype(W, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = W - if(G.state<2) - user << "\red You need a better grip to do that!" - return - G.affecting.loc = src.loc - G.affecting.Weaken(5) - visible_message("\red [G.assailant] puts [G.affecting] on the table.") - del(W) - return - if (istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0, user)) @@ -456,40 +369,13 @@ user << "\blue Table strengthened" src.status = 2 return - if(isrobot(user)) - return - user.drop_item(src) - //if(W && W.loc) W.loc = src.loc return if (istype(W, /obj/item/weapon/wrench)) - if(src.status == 1) - user << "\blue Now disassembling the reinforced table" - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - if (do_after(user, 50)) - new /obj/item/weapon/table_parts/reinforced( src.loc ) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - del(src) + if(src.status == 2) return - if(isrobot(user)) - return - - if(istype(W, /obj/item/weapon/melee/energy/blade)) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src.loc) - spark_system.start() - playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) - playsound(src.loc, "sparks", 50, 1) - for(var/mob/O in viewers(user, 4)) - O.show_message("\blue The reinforced table was sliced apart by [user]!", 1, "\red You hear metal coming apart.", 2) - new /obj/item/weapon/table_parts/reinforced( src.loc ) - del(src) - return - - user.drop_item(src) - //if(W && W.loc) W.loc = src.loc - return + ..() /* * Racks From 566ef61c230ba4812090e34be0bb5f28255c43df Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 30 Jan 2013 01:31:37 +0400 Subject: [PATCH 9/9] Made blood type selectable in preferences again. --- code/modules/client/preferences.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 45fa42a6caa..878fd8f8835 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -247,7 +247,7 @@ datum/preferences dat += "(®)" dat += "
" dat += "Species: [species]
" - dat += "Blood Type: [b_type]
" + dat += "Blood Type: [b_type]
" dat += "Skin Tone: [-s_tone + 35]/220
" //dat += "Skin pattern: Adjust
" dat += "Limbs: Adjust
" @@ -833,6 +833,11 @@ datum/preferences if(new_metadata) metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) + if("b_type") + var/new_b_type = input(user, "Choose your character's blood-type:", "Character Preference") as null|anything in list( "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-" ) + if(new_b_type) + b_type = new_b_type + if("hair") if(species == "Human" || species == "Soghun") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as color|null