diff --git a/baystation12.dme b/baystation12.dme index 389d9cff8f4..43610980ad7 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -6,229 +6,13 @@ // BEGIN_FILE_DIR #define FILE_DIR . #define FILE_DIR "code" -#define FILE_DIR "code/__HELPERS" -#define FILE_DIR "code/ATMOSPHERICS" -#define FILE_DIR "code/ATMOSPHERICS/components" -#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/unary" -#define FILE_DIR "code/controllers" -#define FILE_DIR "code/datums" -#define FILE_DIR "code/datums/diseases" -#define FILE_DIR "code/datums/diseases/advance" -#define FILE_DIR "code/datums/diseases/advance/symptoms" -#define FILE_DIR "code/datums/helper_datums" -#define FILE_DIR "code/datums/organs" -#define FILE_DIR "code/datums/spells" -#define FILE_DIR "code/defines" -#define FILE_DIR "code/defines/obj" -#define FILE_DIR "code/defines/procs" -#define FILE_DIR "code/FEA" -#define FILE_DIR "code/game" -#define FILE_DIR "code/game/area" -#define FILE_DIR "code/game/gamemodes" -#define FILE_DIR "code/game/gamemodes/autotraitor" -#define FILE_DIR "code/game/gamemodes/blob" -#define FILE_DIR "code/game/gamemodes/blob/blobs" -#define FILE_DIR "code/game/gamemodes/changeling" -#define FILE_DIR "code/game/gamemodes/cult" -#define FILE_DIR "code/game/gamemodes/epidemic" -#define FILE_DIR "code/game/gamemodes/events" -#define FILE_DIR "code/game/gamemodes/events/holidays" -#define FILE_DIR "code/game/gamemodes/extended" -#define FILE_DIR "code/game/gamemodes/malfunction" -#define FILE_DIR "code/game/gamemodes/meme" -#define FILE_DIR "code/game/gamemodes/meteor" -#define FILE_DIR "code/game/gamemodes/nuclear" -#define FILE_DIR "code/game/gamemodes/revolution" -#define FILE_DIR "code/game/gamemodes/sandbox" -#define FILE_DIR "code/game/gamemodes/traitor" -#define FILE_DIR "code/game/gamemodes/wizard" -#define FILE_DIR "code/game/jobs" -#define FILE_DIR "code/game/jobs/job" -#define FILE_DIR "code/game/machinery" -#define FILE_DIR "code/game/machinery/atmoalter" -#define FILE_DIR "code/game/machinery/bots" -#define FILE_DIR "code/game/machinery/camera" -#define FILE_DIR "code/game/machinery/computer" -#define FILE_DIR "code/game/machinery/doors" -#define FILE_DIR "code/game/machinery/embedded_controller" -#define FILE_DIR "code/game/machinery/kitchen" -#define FILE_DIR "code/game/machinery/pipe" -#define FILE_DIR "code/game/machinery/telecomms" -#define FILE_DIR "code/game/magic" -#define FILE_DIR "code/game/mecha" -#define FILE_DIR "code/game/mecha/combat" -#define FILE_DIR "code/game/mecha/equipment" -#define FILE_DIR "code/game/mecha/equipment/tools" -#define FILE_DIR "code/game/mecha/equipment/weapons" -#define FILE_DIR "code/game/mecha/medical" -#define FILE_DIR "code/game/mecha/working" -#define FILE_DIR "code/game/objects" -#define FILE_DIR "code/game/objects/closets" -#define FILE_DIR "code/game/objects/closets/secure" -#define FILE_DIR "code/game/objects/effects" -#define FILE_DIR "code/game/objects/effects/decals" -#define FILE_DIR "code/game/objects/effects/decals/Cleanable" -#define FILE_DIR "code/game/objects/effects/spawners" -#define FILE_DIR "code/game/objects/items" -#define FILE_DIR "code/game/objects/items/devices" -#define FILE_DIR "code/game/objects/items/devices/PDA" -#define FILE_DIR "code/game/objects/items/devices/radio" -#define FILE_DIR "code/game/objects/items/robot" -#define FILE_DIR "code/game/objects/items/stacks" -#define FILE_DIR "code/game/objects/items/stacks/sheets" -#define FILE_DIR "code/game/objects/items/stacks/tiles" -#define FILE_DIR "code/game/objects/items/weapons" -#define FILE_DIR "code/game/objects/items/weapons/grenades" -#define FILE_DIR "code/game/objects/items/weapons/implants" -#define FILE_DIR "code/game/objects/items/weapons/melee" -#define FILE_DIR "code/game/objects/items/weapons/storage" -#define FILE_DIR "code/game/objects/items/weapons/tanks" -#define FILE_DIR "code/game/objects/storage" -#define FILE_DIR "code/game/objects/structures" -#define FILE_DIR "code/game/objects/structures/crates_lockers" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" -#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" -#define FILE_DIR "code/game/structure" -#define FILE_DIR "code/game/turfs" -#define FILE_DIR "code/game/turfs/simulated" -#define FILE_DIR "code/game/turfs/space" -#define FILE_DIR "code/game/turfs/unsimulated" -#define FILE_DIR "code/game/vehicles" -#define FILE_DIR "code/game/verbs" -#define FILE_DIR "code/js" -#define FILE_DIR "code/modules" -#define FILE_DIR "code/modules/admin" -#define FILE_DIR "code/modules/admin/DB ban" -#define FILE_DIR "code/modules/admin/permissionverbs" -#define FILE_DIR "code/modules/admin/verbs" -#define FILE_DIR "code/modules/assembly" -#define FILE_DIR "code/modules/awaymissions" -#define FILE_DIR "code/modules/awaymissions/maploader" -#define FILE_DIR "code/modules/client" -#define FILE_DIR "code/modules/clothing" -#define FILE_DIR "code/modules/clothing/glasses" -#define FILE_DIR "code/modules/clothing/gloves" -#define FILE_DIR "code/modules/clothing/head" -#define FILE_DIR "code/modules/clothing/masks" -#define FILE_DIR "code/modules/clothing/shoes" -#define FILE_DIR "code/modules/clothing/spacesuits" -#define FILE_DIR "code/modules/clothing/suits" -#define FILE_DIR "code/modules/clothing/under" -#define FILE_DIR "code/modules/clothing/under/jobs" -#define FILE_DIR "code/modules/customitems" -#define FILE_DIR "code/modules/destilery" -#define FILE_DIR "code/modules/DetectiveWork" -#define FILE_DIR "code/modules/events" -#define FILE_DIR "code/modules/flufftext" -#define FILE_DIR "code/modules/food" -#define FILE_DIR "code/modules/genetics" -#define FILE_DIR "code/modules/icon generation" -#define FILE_DIR "code/modules/library" -#define FILE_DIR "code/modules/liquid" -#define FILE_DIR "code/modules/maps" -#define FILE_DIR "code/modules/mining" -#define FILE_DIR "code/modules/mob" -#define FILE_DIR "code/modules/mob/dead" -#define FILE_DIR "code/modules/mob/dead/observer" -#define FILE_DIR "code/modules/mob/living" -#define FILE_DIR "code/modules/mob/living/blob" -#define FILE_DIR "code/modules/mob/living/carbon" -#define FILE_DIR "code/modules/mob/living/carbon/alien" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" -#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" -#define FILE_DIR "code/modules/mob/living/carbon/alien/special" -#define FILE_DIR "code/modules/mob/living/carbon/brain" -#define FILE_DIR "code/modules/mob/living/carbon/human" -#define FILE_DIR "code/modules/mob/living/carbon/metroid" -#define FILE_DIR "code/modules/mob/living/carbon/monkey" -#define FILE_DIR "code/modules/mob/living/silicon" -#define FILE_DIR "code/modules/mob/living/silicon/ai" -#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" -#define FILE_DIR "code/modules/mob/living/silicon/decoy" -#define FILE_DIR "code/modules/mob/living/silicon/pai" -#define FILE_DIR "code/modules/mob/living/silicon/robot" -#define FILE_DIR "code/modules/mob/living/simple_animal" -#define FILE_DIR "code/modules/mob/living/simple_animal/friendly" -#define FILE_DIR "code/modules/mob/living/simple_animal/hostile" -#define FILE_DIR "code/modules/mob/living/simple_animal/hostile/retaliate" -#define FILE_DIR "code/modules/mob/new_player" -#define FILE_DIR "code/modules/paperwork" -#define FILE_DIR "code/modules/power" -#define FILE_DIR "code/modules/power/antimatter" -#define FILE_DIR "code/modules/power/singularity" -#define FILE_DIR "code/modules/power/singularity/particle_accelerator" -#define FILE_DIR "code/modules/projectiles" -#define FILE_DIR "code/modules/projectiles/ammunition" -#define FILE_DIR "code/modules/projectiles/guns" -#define FILE_DIR "code/modules/projectiles/guns/energy" -#define FILE_DIR "code/modules/projectiles/guns/projectile" -#define FILE_DIR "code/modules/projectiles/projectile" -#define FILE_DIR "code/modules/reagents" -#define FILE_DIR "code/modules/reagents/reagent_containers" -#define FILE_DIR "code/modules/reagents/reagent_containers/food" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" -#define FILE_DIR "code/modules/recycling" -#define FILE_DIR "code/modules/research" -#define FILE_DIR "code/modules/research/xenoarchaeology" -#define FILE_DIR "code/modules/scripting" -#define FILE_DIR "code/modules/scripting/AST" -#define FILE_DIR "code/modules/scripting/AST/Operators" -#define FILE_DIR "code/modules/scripting/Implementations" -#define FILE_DIR "code/modules/scripting/Interpreter" -#define FILE_DIR "code/modules/scripting/Parser" -#define FILE_DIR "code/modules/scripting/Scanner" -#define FILE_DIR "code/modules/security levels" -#define FILE_DIR "code/modules/surgery" #define FILE_DIR "code/TriDimension" -#define FILE_DIR "code/unused" -#define FILE_DIR "code/unused/beast" -#define FILE_DIR "code/unused/computer2" -#define FILE_DIR "code/unused/disease2" -#define FILE_DIR "code/unused/gamemodes" -#define FILE_DIR "code/unused/hivebot" -#define FILE_DIR "code/unused/mining" -#define FILE_DIR "code/unused/optics" -#define FILE_DIR "code/unused/pda2" -#define FILE_DIR "code/unused/powerarmor" -#define FILE_DIR "code/unused/spacecraft" #define FILE_DIR "code/WorkInProgress" -#define FILE_DIR "code/WorkInProgress/AI_Visibility" -#define FILE_DIR "code/WorkInProgress/animusstation" -#define FILE_DIR "code/WorkInProgress/Apples" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn" -#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Economy" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" -#define FILE_DIR "code/WorkInProgress/carn" -#define FILE_DIR "code/WorkInProgress/Chinsky" -#define FILE_DIR "code/WorkInProgress/Cib" -#define FILE_DIR "code/WorkInProgress/Cib/amorph" -#define FILE_DIR "code/WorkInProgress/Mini" -#define FILE_DIR "code/WorkInProgress/Mloc" -#define FILE_DIR "code/WorkInProgress/organs" -#define FILE_DIR "code/WorkInProgress/Ported" -#define FILE_DIR "code/WorkInProgress/Ported/Abi79" -#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy" -#define FILE_DIR "code/WorkInProgress/Ported/Spawners" -#define FILE_DIR "code/WorkInProgress/Sigyn" -#define FILE_DIR "code/WorkInProgress/Sigyn/Department Sec" -#define FILE_DIR "code/WorkInProgress/Sigyn/Softcurity" -#define FILE_DIR "code/WorkInProgress/SkyMarshal" #define FILE_DIR "code/WorkInProgress/Susan" -#define FILE_DIR "code/WorkInProgress/Tastyfish" -#define FILE_DIR "code/WorkInProgress/virus2" -#define FILE_DIR "code/WorkInProgress/virus2/Disease2" -#define FILE_DIR "code/WorkInProgress/Wrongnumber" -#define FILE_DIR "code/ZAS" #define FILE_DIR "html" #define FILE_DIR "icons" #define FILE_DIR "icons/48x48" @@ -250,9 +34,6 @@ #define FILE_DIR "icons/Testing" #define FILE_DIR "icons/turf" #define FILE_DIR "icons/vending_icons" -#define FILE_DIR "interface" -#define FILE_DIR "maps" -#define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" #define FILE_DIR "sound/ambience" @@ -268,8 +49,6 @@ #define FILE_DIR "sound/violin" #define FILE_DIR "sound/voice" #define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES #define DEBUG diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm index b7a464a6754..4ced2ffb2bb 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm @@ -1,8 +1,9 @@ -/obj/machinery/computer/rust/radiation_monitor - name = "Core Radiation Monitor" +/obj/machinery/computer/rust_radiation_monitor + name = "Radiation Monitor" + icon_state = "power" -/obj/machinery/computer/rust/energy_monitor +/obj/machinery/computer/rust_energy_monitor name = "Core Primary Monitor" icon_state = "power" var/obj/machinery/rust/core/core_generator = null diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm index f4a7f700fa4..b766ab1e0b4 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm @@ -1,5 +1,5 @@ -/obj/machinery/computer/rust/fuel_control +/obj/machinery/computer/rust_fuel_control name = "Fuel Injection Control" icon_state = "power" var/list/fuel_injectors diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm index 3926d840330..83d43833775 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm @@ -41,7 +41,7 @@ new_val = min(new_val,0.01) new_val = max(new_val,0.001) mega_energy = new_val - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["modifyrate"] ) @@ -52,7 +52,7 @@ new_val = min(new_val,1) new_val = max(new_val,10) rate = new_val - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["modifyfreq"] ) @@ -63,29 +63,29 @@ new_val = min(new_val,1) new_val = max(new_val,50000) frequency = new_val - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["activate"] ) emitting = 1 spawn(rate) Emit() - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["deactivate"] ) emitting = 0 - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["enableremote"] ) remoteenabled = 1 - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return if( href_list["disableremote"] ) remoteenabled = 0 - for(var/obj/machinery/computer/rust/gyrotron_controller/comp in range(25)) + for(var/obj/machinery/computer/rust_gyrotron_controller/comp in range(25)) comp.updateDialog() return /* diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm index 2c9b6f37d88..e2b13bc2c32 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron_controller.dm @@ -1,5 +1,5 @@ -/obj/machinery/computer/rust/gyrotron_controller +/obj/machinery/computer/rust_gyrotron_controller name = "Gyrotron Remote Controller" icon_state = "power" var/updating = 1 diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index d701bbb94f5..ea828276837 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -37,14 +37,14 @@ // Only do anything if the effect is currently strong enough if(strength_percent >= 0.4) for (var/datum/medical_effect/M in side_effects) - if (M.cure(src)) + if (M.cure(src) || M.strength > 60) side_effects -= M del(M) else - if(life_tick % 15 == 0) + if(life_tick % 45 == 0) M.on_life(src, strength_percent*M.strength) // Effect slowly growing stronger - M.strength+=0.05 + M.strength+=0.08 // HEADACHE // ======== @@ -78,10 +78,10 @@ H.custom_pain("You feel a light pain in your head.",0) if(11 to 30) H.custom_pain("You feel a throbbing pain in your head!",1) - if(31 to 99) + if(31 to 50) H.custom_pain("You feel an excrutiating pain in your head!",1) H.adjustBrainLoss(1) - if(99 to INFINITY) + if(51 to INFINITY) H.custom_pain("It feels like your head is about to split open!",1) H.adjustBrainLoss(3) var/datum/organ/external/O = H.organs_by_name["head"] @@ -102,10 +102,10 @@ H.custom_pain("You feel a bit light around the stomach.",0) if(11 to 30) H.custom_pain("Your stomach hurts.",0) - if(31 to 99) + if(31 to 50) H.custom_pain("You feel sick.",1) H.adjustToxLoss(1) - if(99 to INFINITY) + if(51 to INFINITY) H.custom_pain("You can't hold it in any longer!",1) H.vomit() @@ -125,11 +125,11 @@ H.custom_pain("The muscles in your body hurt a little.",0) if(11 to 30) H.custom_pain("The muscles in your body cramp up painfully.",0) - if(31 to 99) + if(31 to 50) H.emote("me",1,"flinches as all the muscles in their body cramp up.") H.custom_pain("There's pain all over your body.",1) H.adjustToxLoss(1) - if(99 to INFINITY) + if(51 to INFINITY) H.emote("me",1,"flinches as all the muscles in their body cramp up.") H.custom_pain("It feels as though your muscles are being ripped apart!",1) H.apply_damage(1, used_weapon = "Cramps") @@ -138,4 +138,29 @@ if(H.reagents.has_reagent("inaprovaline")) H << "\red The cramps let up.." return 1 + return 0 + +// ITCH +// ==== +/datum/medical_effect/itch/name = "Itch" +/datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength) + switch(strength) + if(1 to 10) + H.custom_pain("You feel a slight itch.",0) + if(11 to 30) + H.custom_pain("You want to scratch your itch badly.",0) + if(31 to 50) + H.emote("me",1,"shivers slightly.") + H.custom_pain("This itch makes it really hard to concentrate.",1) + H.adjustToxLoss(1) + if(51 to INFINITY) + H.emote("me",1,"shivers.") + H.custom_pain("The itch starts hurting and oozing blood.",1) + H.apply_damage(1, BURN, used_weapon = "Itch") + H.drip(1) + +/datum/medical_effect/itch/cure(mob/living/carbon/human/H) + if(H.reagents.has_reagent("inaprovaline")) + H << "\red The itching stops.." + return 1 return 0 \ No newline at end of file diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index b4f738304f1..3c66e61d80a 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -42,8 +42,19 @@ user << "\red The wounds on [M]'s [affecting.display_name] have already been bandaged." return 1 else - user.visible_message( "\blue [user] bandages wounds on [M]'s [affecting.display_name].", \ - "\blue You bandage wounds on [M]'s [affecting.display_name]." ) + for (var/datum/wound/W in affecting.wounds) + if (W.internal) + continue + if (W.current_stage <= W.max_bleeding_stage) + user.visible_message( "\blue [user] bandages [W.desc] on [M]'s [affecting.display_name].", \ + "\blue You bandage [W.desc] on [M]'s [affecting.display_name]." ) + H.add_side_effect("Itch") + else if (istype(W,/datum/wound/bruise)) + user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.display_name].", \ + "\blue You place bruise patch over [W.desc] on [M]'s [affecting.display_name]." ) + else + user.visible_message( "\blue [user] places bandaid over [W.desc] on [M]'s [affecting.display_name].", \ + "\blue You place bandaid over [W.desc] on [M]'s [affecting.display_name]." ) else if(src.heal_burn) if(!affecting.salve()) @@ -53,7 +64,6 @@ user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \ "\blue You salve wounds on [M]'s [affecting.display_name]." ) - H.add_side_effect("Cramps") H.UpdateDamageIcon() else M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2)) diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index b6894719a10..b972e2f9f80 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -54,8 +54,9 @@ src.brainmob = B src.brainmob.mind = candidate.mind - src.brainmob.name = "PBU-[rand(100, 999)]" - src.brainmob.real_name = "PBU-[rand(100, 999)]" + src.brainmob.name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" + src.brainmob.real_name = src.brainmob.name + src.name = "positronic brain ([src.brainmob.name])" src.brainmob.loc = src src.brainmob.container = src src.brainmob.robot_talk_understand = 1 @@ -69,7 +70,7 @@ src.brainmob << "You are a positronic brain, brought into existence on [station_name()]." src.brainmob << "As a synthetic intelligence, you answer to all crewmembers, as well as the AI." src.brainmob << "Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm." - src.brainmob << "Use say :b to speak to other artificial intelligences." + src.brainmob << "Use say :b to speak to other artificial intelligences." src.brainmob.mind.assigned_role = "Positronic Brain" var/turf/T = get_turf_or_move(src.loc) @@ -106,6 +107,8 @@ if(!src.brainmob.client) msg += "It appears to be in stand-by mode.\n" //afk if(UNCONSCIOUS) msg += "It doesn't seem to be responsive.\n" if(DEAD) msg += "It appears to be completely inactive.\n" + else + msg += "It appears to be completely inactive.\n" msg += "*---------*" usr << msg return diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 11646e64d8f..3dbe68a53fe 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -617,7 +617,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 Paralyse(3) // 3 gives them one second to wake up and run away a bit! if(SA_pp > SA_sleep_min) // Enough to make us sleep as well sleeping = max(sleeping+2, 10) - else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning + else if(SA_pp > 0.15) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning if(prob(20)) spawn(0) emote(pick("giggle", "laugh")) SA.moles = 0 diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index d9be362445a..1c2adbf7a6e 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -106,7 +106,7 @@ var/list/listening = hearers(1, src) listening -= src - listening += src + //listening += src var/list/heard = list() for (var/mob/M in listening) @@ -130,5 +130,5 @@ rendered = "Robotic Talk, [name] [message_a]" for (var/mob/M in dead_mob_list) - if(!istype(M,/mob/new_player) && !(istype(M,/mob/living/carbon/brain)))//No meta-evesdropping + if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping M.show_message(rendered, 2) \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index c17d4a86fcb..c54bc49c9db 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -186,6 +186,9 @@ var/mode = 0 var/condi = 0 var/useramount = 30 // Last used amount + var/bottlesprite = "1" //yes, strings + var/pillsprite = "1" + var/client/has_sprites = list() /obj/machinery/chem_master/New() var/datum/reagents/R = new/datum/reagents(100) @@ -267,7 +270,18 @@ if (href_list["analyze"]) var/dat = "" if(!condi) - dat += "Chemmaster 3000Chemical infos:

Name:
[href_list["name"]]

Description:
[href_list["desc"]]


(Back)" + if(href_list["name"] == "Blood") + var/datum/reagent/blood/G + for(var/datum/reagent/F in R.reagent_list) + if(F.name == href_list["name"]) + G = F + break + var/A = G.name + var/B = G.data["blood_type"] + var/C = G.data["blood_DNA"] + dat += "Chemmaster 3000Chemical infos:

Name:
[A]

Description:
Blood Type: [B]
DNA: [C]


(Back)" + else + dat += "Chemmaster 3000Chemical infos:

Name:
[href_list["name"]]

Description:
[href_list["desc"]]


(Back)" else dat += "Condimaster 3000Condiment infos:

Name:
[href_list["name"]]

Description:
[href_list["desc"]]


(Back)" usr << browse(dat, "window=chem_master;size=575x400") @@ -319,19 +333,13 @@ icon_state = "mixer0" else if (href_list["createpill"]) var/name = reject_bad_text(input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name())) - var/obj/item/weapon/reagent_containers/pill/P - - if(loaded_pill_bottle && loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots) - P = new/obj/item/weapon/reagent_containers/pill(loaded_pill_bottle) - else - P = new/obj/item/weapon/reagent_containers/pill(src.loc) - + var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc) if(!name) name = reagents.get_master_reagent_name() P.name = "[name] pill" P.pixel_x = rand(-7, 7) //random position P.pixel_y = rand(-7, 7) + P.icon_state = "pill"+pillsprite reagents.trans_to(P,50) - else if (href_list["createbottle"]) if(!condi) var/name = reject_bad_text(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name())) @@ -340,14 +348,31 @@ P.name = "[name] bottle" P.pixel_x = rand(-7, 7) //random position P.pixel_y = rand(-7, 7) + P.icon_state = "bottle"+bottlesprite reagents.trans_to(P,30) - - var/bottle_num = min(max(input("Enter bottle design number","Bottle number"), 0), 20) as num - P.icon_state = "bottle[bottle_num]" - desc = "A small bottle, design number #[bottle_num]." else var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc) reagents.trans_to(P,50) + else if(href_list["change_pill"]) + #define MAX_PILL_SPRITE 20 //max icon state of the pill sprites + var/dat = "" + for(var/i = 1 to MAX_PILL_SPRITE) + dat += "" + dat += "
" + usr << browse(dat, "window=chem_master") + return + else if(href_list["change_bottle"]) + #define MAX_BOTTLE_SPRITE 20 //max icon state of the bottle sprites + var/dat = "" + for(var/i = 1 to MAX_BOTTLE_SPRITE) + dat += "" + dat += "
" + usr << browse(dat, "window=chem_master") + return + else if(href_list["pill_sprite"]) + pillsprite = href_list["pill_sprite"] + else if(href_list["bottle_sprite"]) + bottlesprite = href_list["bottle_sprite"] src.updateUsrDialog() return @@ -362,6 +387,13 @@ if(stat & BROKEN) return user.set_machine(src) + if(!(user.client in has_sprites)) + spawn() + has_sprites += user.client + for(var/i = 1 to MAX_PILL_SPRITE) + usr << browse_rsc(icon('chemical.dmi', "pill" + num2text(i)), "pill[i].png") + for(var/i = 1 to MAX_BOTTLE_SPRITE) + usr << browse_rsc(icon('chemical.dmi', "bottle" + num2text(i)), "bottle[i].png") var/dat = "" if(!beaker) dat = "Please insert beaker.
" @@ -403,8 +435,8 @@ else dat += "Empty
" if(!condi) - dat += "

Create pill (50 units max)
" - dat += "Create bottle (30 units max)" + dat += "

Create pill (50 units max)
" + dat += "Create bottle (30 units max)" else dat += "Create bottle (50 units max)" if(!condi) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index acec96cba7c..3e014582c94 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -113,6 +113,12 @@ datum M.contract_disease(D) else //injected M.contract_disease(D, 1, 0) + if(self.data && self.data["virus2"]) + if(method == TOUCH) + infect_virus2(M,self.data["virus2"]) + else + infect_virus2(M,self.data["virus2"],1) + diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index bffa66a303d..0fd82e0b38a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -587,11 +587,11 @@ datum/design/paicard materials = list("$glass" = 500, "$metal" = 500) build_path = "/obj/item/device/paicard" -datum/design/paicard +datum/design/posibrain name = "Positronic Brain" desc = "Allows for the construction of a positronic brain" id = "posibrain" - req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 2, "programming" = 6) + req_tech = list("engineering" = 4, "materials" = 6, "bluespace" = 2, "programming" = 4) build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100) diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index 5c769159997..2e6e0c65d05 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -11,7 +11,7 @@ var/datum/organ/external/affected = target.get_organ(target_zone) if (!affected) return 0 - return target_zone == "mouth" && affected.open == 2 && !(affected.status & ORGAN_BLEEDING) + return target_zone == "mouth" /datum/surgery_step/generic/cut_face required_tool = /obj/item/weapon/scalpel diff --git a/html/changelog.html b/html/changelog.html index e907a104ba4..10c719b2a6f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -59,6 +59,31 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

February 14th 2013

+

CIB updated:

+ +

CaelAislinn updated:

+ + +

Gamerofthegame updated:

+ +
+

February 13th 2013

Erthilo updated: