From f59faa04a087563a6965941534b64ed68c04a8c4 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 22 Jun 2013 17:50:18 -0700 Subject: [PATCH 1/5] Fixes #3125 --- .../machinery/computer/HolodeckControl.dm | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index cfb61b50424..db320be2935 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -96,6 +96,36 @@ if(target) loadProgram(target) + else if(href_list["desert"]) + target = locate(/area/holodeck/source_desert) + if(target) + loadProgram(target) + + else if(href_list["space"]) + target = locate(/area/holodeck/source_space) + if(target) + loadProgram(target) + + else if(href_list["picnicarea"]) + target = locate(/area/holodeck/source_picnicarea) + if(target) + loadProgram(target) + + else if(href_list["snowfield"]) + target = locate(/area/holodeck/source_snowfield) + if(target) + loadProgram(target) + + else if(href_list["theatre"]) + target = locate(/area/holodeck/source_theatre) + if(target) + loadProgram(target) + + else if(href_list["meetinghall"]) + target = locate(/area/holodeck/source_meetinghall) + if(target) + loadProgram(target) + else if(href_list["turnoff"]) target = locate(/area/holodeck/source_plating) if(target) From be16c8eff31ef2ee621441b86572a523868e2ff7 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 22 Jun 2013 20:07:21 -0700 Subject: [PATCH 2/5] Fixes #2957 --- code/game/objects/items/devices/PDA/PDA.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 07f7443fc85..8e533cf37b2 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -850,7 +850,7 @@ var/global/list/obj/item/device/pda/PDAs = list() P.overlays.Cut() P.overlays += image('icons/obj/pda.dmi', "pda-r") else - U << "ERROR: Server isn't responding." + U << "ERROR: Messaging server is not responding." /obj/item/device/pda/verb/verb_remove_id() @@ -1162,7 +1162,7 @@ var/global/list/obj/item/device/pda/PDAs = list() plist[text("[name]")] = P return plist - + //Some spare PDAs in a box /obj/item/weapon/storage/box/PDAs From 513a9d7ee8c24e512497febb1d07a6053c8a533a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 22 Jun 2013 20:22:19 -0700 Subject: [PATCH 3/5] Fixes #3052 --- code/modules/clothing/head/jobs.dm | 10 +++++----- code/modules/mob/living/carbon/human/inventory.dm | 8 ++++---- code/modules/mob/living/carbon/human/update_icons.dm | 3 +-- code/setup.dm | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 893c8f47e54..14f250ebafa 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -63,18 +63,18 @@ //Medical /obj/item/clothing/head/surgery name = "surgical cap" - desc = "A cap surgeons wear during operations. Keeps thier hair from tickling your internal organs." + desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs." icon_state = "surgcap_blue" - flags = FPRINT | TABLEPASS | BLOCKHAIR + flags = FPRINT | TABLEPASS | BLOCKHEADHAIR /obj/item/clothing/head/surgery/purple - desc = "A cap surgeons wear during operations. Keeps thier hair from tickling your internal organs. This one is deep purple." + desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is deep purple." icon_state = "surgcap_purple" /obj/item/clothing/head/surgery/blue - desc = "A cap surgeons wear during operations. Keeps thier hair from tickling your internal organs. This one is baby blue" + desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is baby blue." icon_state = "surgcap_blue" /obj/item/clothing/head/surgery/green - desc = "A cap surgeons wear during operations. Keeps thier hair from tickling your internal organs. This one is dark green" + desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is dark green." icon_state = "surgcap_green" diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 1fa82e5778d..3bdf798a6bd 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -88,7 +88,7 @@ update_inv_glasses() else if (W == head) head = null - if(W.flags & BLOCKHAIR) + if((W.flags & BLOCKHAIR) || (W.flags & BLOCKHEADHAIR)) update_hair(0) //rebuild hair success = 1 update_inv_head() @@ -107,7 +107,7 @@ else if (W == wear_mask) wear_mask = null success = 1 - if(W.flags & BLOCKHAIR) + if((W.flags & BLOCKHAIR) || (W.flags & BLOCKHEADHAIR)) update_hair(0) //rebuild hair if(internal) if(internals) @@ -188,7 +188,7 @@ update_inv_back(redraw_mob) if(slot_wear_mask) src.wear_mask = W - if(wear_mask.flags & BLOCKHAIR) + if((wear_mask.flags & BLOCKHAIR) || (wear_mask.flags & BLOCKHEADHAIR)) update_hair(redraw_mob) //rebuild hair W.equipped(src, slot) update_inv_wear_mask(redraw_mob) @@ -229,7 +229,7 @@ update_inv_gloves(redraw_mob) if(slot_head) src.head = W - if(head.flags & BLOCKHAIR) + if((head.flags & BLOCKHAIR) || (head.flags & BLOCKHEADHAIR)) update_hair(redraw_mob) //rebuild hair if(istype(W,/obj/item/clothing/head/kitty)) W.update_icon(src) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9d29d317c80..fea13b8bc10 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -350,7 +350,6 @@ proc/get_damage_icon_part(damage_state, body_part) //masks and helmets can obscure our hair. if( (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR))) if(update_icons) update_icons() - return //base icons @@ -367,7 +366,7 @@ proc/get_damage_icon_part(damage_state, body_part) face_standing.Blend(facial_s, ICON_OVERLAY) face_lying.Blend(facial_l, ICON_OVERLAY) - if(h_style) + if(h_style && !(head && (head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] if(hair_style) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") diff --git a/code/setup.dm b/code/setup.dm index c72f57f8805..f4b8d35e2ff 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -175,8 +175,7 @@ var/MAX_EXPLOSION_RANGE = 14 //FLAGS BITMASK #define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere -//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. - + //To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. #define TABLEPASS 2 // can pass by a table or rack #define MASKINTERNALS 8 // mask allows internals @@ -205,7 +204,8 @@ var/MAX_EXPLOSION_RANGE = 14 #define NOREACT 16384 //Reagents dont' react inside this container. -#define BLOCKHAIR 32768 // temporarily removes the user's hair icon +#define BLOCKHEADHAIR 4 // temporarily removes the user's hair overlay. Leaves facial hair. +#define BLOCKHAIR 32768 // temporarily removes the user's hair, facial and otherwise. //flags for pass_flags #define PASSTABLE 1 From 146462cbc6f17e44effd4661a4b871c7ffe3a26e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 22 Jun 2013 21:55:22 -0700 Subject: [PATCH 4/5] Fixes #2740 --- .../modules/mob/living/silicon/robot/emote.dm | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 4fa8a543b98..6b94c52c6da 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -10,7 +10,18 @@ switch(act) if ("me") - return custom_emote(m_type, message) + if (src.client) + if(client.prefs.muted & MUTE_IC) + src << "You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + if (stat) + return + if(!(message)) + return + else + return custom_emote(m_type, message) if ("custom") return custom_emote(m_type, message) @@ -62,20 +73,6 @@ message = "[src] flaps his wings ANGRILY!" m_type = 2 - if ("me") - if (src.client) - if(client.prefs.muted & MUTE_IC) - src << "You cannot send IC messages (muted)." - return - if (src.client.handle_spam_prevention(message,MUTE_IC)) - return - if (stat) - return - if(!(message)) - return - else - message = "[src] [message]" - if ("twitch") message = "[src] twitches violently." m_type = 1 @@ -207,8 +204,12 @@ m_type = 2 else src << "You are not security." + + if ("help") + src << "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt" else - src << text("Invalid Emote: []", act) + src << "\blue Unusable emote '[act]'. Say *help for a list." + if ((message && src.stat == 0)) if (m_type & 1) for(var/mob/O in viewers(src, null)) From f77d208d0470344f5133cf8a3df3af9a7538d984 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 22 Jun 2013 22:19:52 -0700 Subject: [PATCH 5/5] Fixes #3131 --- code/game/mecha/equipment/tools/tools.dm | 14 +++++++++++- code/game/mecha/mecha.dm | 28 ++++++++++++++++++++++++ code/game/mecha/working/ripley.dm | 18 +++------------ code/modules/customitems/item_defines.dm | 23 +++++++++++++------ 4 files changed, 60 insertions(+), 23 deletions(-) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 0cb83e5ac55..81243486139 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -1053,4 +1053,16 @@ set_ready_state(0) chassis.use_power(energy_drain) do_after_cooldown() - return 1 \ No newline at end of file + return 1 + +/obj/item/weapon/paintkit //Please don't use this for anything, it's a base type for custom mech paintjobs. + name = "mecha customisation kit" + desc = "A generic kit containing all the needed tools and parts to turn a mech into another mech." + icon = 'custom_items.dmi' + icon_state = "royce_kit" + + var/new_name = "mech" //What is the variant called? + var/new_desc = "A mech." //How is the new mech described? + var/new_icon = "ripley" //What base icon will the new mech use? + var/removable = null //Can the kit be removed? + var/list/allowed_types = list() //Types of mech that the kit will work on. \ No newline at end of file diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 9d8291733cb..c94c38c6c32 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -759,6 +759,34 @@ user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src]") return + else if(istype(W, /obj/item/weapon/paintkit)) + + if(occupant) + user << "You can't customize a mech while someone is piloting it - that would be unsafe!" + return + + var/obj/item/weapon/paintkit/P = W + var/found = null + + for(var/type in P.allowed_types) + if(type==src.initial_icon) + found = 1 + break + + if(!found) + user << "That kit isn't meant for use on this class of exosuit." + return + + user.visible_message("[user] opens [P] and spends some quality time customising [src].") + + src.name = P.new_name + src.desc = P.new_desc + src.initial_icon = P.new_icon + src.reset_icon() + + user.drop_item() + del(P) + else call((proc_res["dynattackby"]||src), "dynattackby")(W,user) /* diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 84bff5cffc4..d7e6a00fdbf 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -2,6 +2,7 @@ desc = "Autonomous Power Loader Unit. The workhorse of the exosuit world." name = "APLU \"Ripley\"" icon_state = "ripley" + initial_icon = "ripley" step_in = 6 max_temperature = 20000 health = 200 @@ -19,6 +20,7 @@ desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." name = "APLU \"Firefighter\"" icon_state = "firefighter" + initial_icon = "firefighter" max_temperature = 65000 health = 250 lights_power = 8 @@ -107,18 +109,4 @@ T.Entered(A) step_rand(A) ..() - return - - -/obj/mecha/working/ripley/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/fluff/sven_fjeltson_1))//this shit broke ripleys - src.icon_state = "earth" - src.initial_icon = "earth" - src.name = "APLU \"Strike the Earth!\"" - src.desc = "Looks like an over worked, under maintained Ripley with some horrific damage." - user << "You pick up your old \"Strike the Earth!\" APLU." - user.drop_item() - del(W) - return - else - ..() + return \ No newline at end of file diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 086f04efa0f..33c1aafbb4c 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -1,4 +1,3 @@ -hi // Add custom items you give to people here, and put their icons in custom_items.dmi // Remember to change 'icon = 'custom_items.dmi'' for items not using /obj/item/fluff as a base // Clothing item_state doesn't use custom_items.dmi. Just add them to the normal clothing files. @@ -359,19 +358,29 @@ hi ////// Ripley customisation kit - Butchery Royce - MayeDay -/obj/item/weapon/fluff/butcher_royce_1 +/obj/item/weapon/paintkit/fluff/butcher_royce_1 name = "Ripley customisation kit" desc = "A kit containing all the needed tools and parts to turn an APLU Ripley into a Titan's Fist worker mech." icon = 'custom_items.dmi' icon_state = "royce_kit" + new_name = "APLU \"Titan's Fist\"" + new_desc = "This ordinary mining Ripley has been customized to look like a unit of the Titans Fist." + new_icon = "titan" + allowed_types = list("ripley","firefighter") + ////// Ripley customisation kit - Sven Fjeltson - Mordeth221 -/obj/item/weapon/fluff/sven_fjeltson_1 - name = "Mercenary APLU kit" - desc = "A kit containing all the needed tools and parts to turn an APLU Ripley into an old Mercenaries APLU." - icon = 'custom_items.dmi' - icon_state = "sven_kit" +/obj/item/weapon/paintkit/fluff/sven_fjeltson_1 + name = "Mercenary APLU kit" + desc = "A kit containing all the needed tools and parts to turn an APLU Ripley into an old Mercenaries APLU." + icon = 'custom_items.dmi' + icon_state = "sven_kit" + + new_name = "APLU \"Strike the Earth!\"" + new_desc = "Looks like an over worked, under maintained Ripley with some horrific damage." + new_icon = "earth" + allowed_types = list("ripley","firefighter") ////////////////////////////////// //////////// Clothing ////////////