diff --git a/code/controllers/ProcessScheduler/core/_stubs.dm b/code/controllers/ProcessScheduler/core/_stubs.dm index 3615c12f19..1aa2c8efb8 100644 --- a/code/controllers/ProcessScheduler/core/_stubs.dm +++ b/code/controllers/ProcessScheduler/core/_stubs.dm @@ -14,6 +14,6 @@ */ /proc/logTheThing(type, source, target, text, diaryType) if(diaryType) - world << "Diary: \[[diaryType]:[type]] [text]" + log_debug("Diary: \[[diaryType]:[type]] [text]") else - world << "Log: \[[type]] [text]" + log_debug("Log: \[[type]] [text]") diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index caa6e78a7f..027a462070 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -287,11 +287,11 @@ var/list/mob/living/forced_ambiance_list = new return if(H.m_intent == "run") - H.AdjustStunned(2) - H.AdjustWeakened(2) + H.AdjustStunned(6) + H.AdjustWeakened(6) else - H.AdjustStunned(1) - H.AdjustWeakened(1) + H.AdjustStunned(3) + H.AdjustWeakened(3) mob << "The sudden appearance of gravity makes you fall to the floor!" /area/proc/prison_break() diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index f821ab1db6..2e36eead75 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -115,9 +115,9 @@ force = 10 w_class = 4.0 slot_flags = SLOT_BACK - force_wielded = 0.75 // 22 when wielded with hardness 15 (glass) - unwielded_force_divisor = 0.65 // 14 when unwielded based on above - thrown_force_divisor = 1.5 // 20 when thrown with weight 15 (glass) + force_divisor = 0.75 // 22 when wielded with hardness 15 (glass) + unwielded_force_divisor = 0.375 + thrown_force_divisor = 1.5 // 20 when thrown with weight 15 (glass) throw_speed = 3 edge = 0 sharp = 1 diff --git a/code/modules/reagents/Chemistry-Reagents_vr.dm b/code/modules/reagents/Chemistry-Reagents_vr.dm new file mode 100644 index 0000000000..e6bb908bb7 --- /dev/null +++ b/code/modules/reagents/Chemistry-Reagents_vr.dm @@ -0,0 +1,14 @@ +/datum/reagent/advmutationtoxin + name = "Advanced Mutation Toxin" + id = "advmutationtoxin" + description = "A corruptive toxin produced by slimes. Turns the subject of the chemical into a Promethean." + reagent_state = LIQUID + color = "#13BC5E" + +/datum/reagent/advmutationtoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.species.name != "Promethean") + M << "Your flesh rapidly mutates!" + H.set_species("Promethean") + H.shapeshifter_set_colour("#05FF9B") //They can still change their color. \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes_vr.dm b/code/modules/reagents/Chemistry-Recipes_vr.dm index ec8d8ceb87..e0c982c5b3 100644 --- a/code/modules/reagents/Chemistry-Recipes_vr.dm +++ b/code/modules/reagents/Chemistry-Recipes_vr.dm @@ -63,3 +63,223 @@ result = "unsorbitol" required_reagents = list("mutagen" = 3, "lipozine" = 2) result_amount = 5 + + + + + + + +/////////////////////////////// +//SLIME CORES BELOW HERE/////// +/////////////////////////////// + + + +/datum/chemical_reaction/slime_food + name = "Slime Bork" + id = "m_tele2" + result = null + required_reagents = list("phoron" = 10, "slimejelly" = 10, "nutriment" = 10) + result_amount = 1 + on_reaction(var/datum/reagents/holder) + + var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - /obj/item/weapon/reagent_containers/food/snacks // BORK BORK BORK + + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + + for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) + + for(var/i = 1, i <= 4 + rand(1,2), i++) + var/chosen = pick(borks) + var/obj/B = new chosen + if(B) + B.loc = get_turf(holder.my_atom) + if(prob(50)) + for(var/j = 1, j <= rand(1, 3), j++) + step(B, pick(NORTH,SOUTH,EAST,WEST)) + + + + +/datum/chemical_reaction/materials + name = "Slime materials" + id = "slimematerial" + result = null + required_reagents = list("phoron" = 20, "slimejelly" = 40, "aluminum" = 20) //Woah there! You have the possibility of making diamonds! 8 ground up slimes required for one of these, and you still have a 10% chance for it to fail. + result_amount = 1 + on_reaction(var/datum/reagents/holder) + var/fail_chance = rand(1,1000) + if(fail_chance == 1) // 0.1% chance of exploding, so scientists don't exclusively abuse this to obtain materials. + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The solution begins to vibrate violently!"), 1) // It was at this moment, the Xenobiologist knew... he fucked up. + sleep(30) + playsound(get_turf(holder.my_atom), 'sound/items/Welder2.ogg', 100, 1) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The reaction begins to rapidly sizzle and swell outwards!"), 1) + sleep(20) + explosion(get_turf(holder.my_atom), 0 ,4, 8) //Enough to cause severe damage in the area, but not so much that it'll instantly gib the person. + empulse(get_turf(holder.my_atom), 3, 7) //Uh oh, it produced some uranium, too! EMP blast! + return + + if(fail_chance < 101) // 10% chance of it not working at all. + playsound(get_turf(holder.my_atom), 'sound/items/Welder.ogg', 100, 1) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The slime core fizzles disappointingly."), 1) + return + + var/blocked = list(/obj/item/stack/material, /obj/item/stack/material/cyborg, /obj/item/stack/material/cyborg/plastic, /obj/item/stack/material/cyborg/plasteel, /obj/item/stack/material/cyborg/glass/reinforced, /obj/item/stack/material/cyborg/wood, /obj/item/stack/material/animalhide/human, /obj/item/stack/material/animalhide/corgi, /obj/item/stack/material/animalhide/cat, /obj/item/stack/material/animalhide/monkey, /obj/item/stack/material/animalhide/lizard , /obj/item/stack/material/animalhide/xeno, /obj/item/stack/material/cyborg, /obj/item/stack/material/cyborg/glass/reinforced) + var/list/material = typesof(/obj/item/stack/material) - blocked + + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + + for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) + + var/spawn_amount = rand(1,50) + var/chosen = pick(material) + var/obj/item/stack/material/C = new chosen + C.amount = spawn_amount + C.loc = get_turf(holder.my_atom) + + +/datum/chemical_reaction/slimelight + name = "Slime Glow" + id = "m_glow" + result = null + required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 10) //Takes 10 water so it doesn't mess with the frost oil. + result_amount = 1 + on_reaction(var/datum/reagents/holder) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text(" The contents of the slime core harden and begin to emit a warm, bright light."), 1) + var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime + F.loc = get_turf(holder.my_atom) + + +/datum/chemical_reaction/slimephoron + name = "Slime Phoron" + id = "m_plasma" + result = null + required_reagents = list("phoron" = 20, "uranium" = 20, "slimejelly" = 20) + result_amount = 1 + on_reaction(var/datum/reagents/holder) + var/obj/item/stack/material/phoron/P = new /obj/item/stack/material/phoron + P.amount = 10 + P.loc = get_turf(holder.my_atom) + +/datum/chemical_reaction/slimefreeze + name = "Slime Freeze" + id = "m_freeze" + result = null + required_reagents = list("phoron" = 10, "coolant" = 10, "slimejelly" = 10) + result_amount = 1 + on_reaction(var/datum/reagents/holder) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The slime extract begins to vibrate violently!"), 1) + sleep(50) + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + for(var/mob/living/M in range (get_turf(holder.my_atom), 7)) + M.bodytemperature -= 140 + M << " You suddenly feel a chill!" + + + + +/datum/chemical_reaction/slimefrost + name = "Slime Frost Oil" + id = "m_frostoil" + result = "frostoil" + required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 5, "coolant" = 5) + result_amount = 10 + + + + +/datum/chemical_reaction/slimefire + name = "Slime fire" + id = "m_fire" + result = null + required_reagents = list("phoron" = 60, "slimejelly" = 30, "potassium" = 30) + result_amount = 1 + on_reaction(var/datum/reagents/holder) + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) + O.show_message(text("The slime extract begins to vibrate violently!"), 1) + sleep(50) + var/turf/location = get_turf(holder.my_atom.loc) + for(var/turf/simulated/floor/target_tile in range(0,location)) + target_tile.assume_gas("phoron", 25, 1400) + spawn (0) target_tile.hotspot_expose(700, 400) + + +/datum/chemical_reaction/slimeify + name = "Advanced Mutation Toxin" + id = "advmutationtoxin2" + result = "advmutationtoxin" + required_reagents = list("phoron" = 15, "slimejelly" = 15, "mutationtoxin" = 15) //In case a xenobiologist wants to become a fully fledged slime person. + result_amount = 1 + + + + + +/datum/chemical_reaction/slimeheal //A slime healing mixture. Why not. + name = "Slime Health" + id = "slimeheal" + result = "null" + required_reagents = list("phoron" = 10, "bicaridine" = 10, "kelotane" = 10, "inaprovaline" = 10, "slimejelly" = 10) + on_reaction(var/datum/reagents/holder, var/created_volume) + for (var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null)) + C << "A wave of energy suddenly invigorates you." + C.adjustBruteLoss(-25) + C.adjustFireLoss(-25) + C.adjustToxLoss(-25) + C.adjustOxyLoss(-25) + C.adjustBrainLoss(-25) + C.adjustCloneLoss(-25) + C.updatehealth() + +/datum/chemical_reaction/slimejelly + name = "Slime Jam" + id = "m_jam" + result = "slimejelly" + required_reagents = list("phoron" = 20, "sugar" = 50, "lithium" = 50) //In case a xenobiologist is impatient and is willing to drain their dispenser resources, along with plasma! + result_amount = 5 + + + + + +/datum/chemical_reaction/slimevore + name = "Slime Vore" // Hostile vore mobs only + id = "m_tele" + result = null + required_reagents = list("phoron" = 20, "nutriment" = 20, "sugar" = 20, "mutationtoxin" = 20) //Can't do slime jelly as it'll conflict with another, but mutation toxin will do. + result_amount = 1 + on_reaction(var/datum/reagents/holder) + var/mob_path = /mob/living/simple_animal/hostile/vore + var/blocked = list( + /mob/living/simple_animal/hostile/vore/mimic, + /mob/living/simple_animal/hostile/vore/mimic/copy, + /mob/living/simple_animal/hostile/vore/mimic/crate, + /mob/living/simple_animal/hostile/vore/alien/queen/large + )//exclusion list for things you don't want the reaction to create. + var/list/voremobs = typesof(mob_path) - mob_path - blocked // list of possible hostile mobs + + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + + for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) + if(M:eyecheck() <= 0) + flick("e_flash", M.flash) + + var/spawn_count = rand(1,3) + for(var/i = 1, i <= spawn_count, i++) + var/chosen = pick(voremobs) + var/mob/living/simple_animal/hostile/C = new chosen + C.faction = "slimesummon" + C.loc = get_turf(holder.my_atom) + if(prob(50)) + for(var/j = 1, j <= rand(1, 3), j++) + step(C, pick(NORTH,SOUTH,EAST,WEST)) diff --git a/code/modules/xenobio2/_xeno_setup_vr.dm b/code/modules/xenobio2/_xeno_setup_vr.dm new file mode 100644 index 0000000000..96829720a1 --- /dev/null +++ b/code/modules/xenobio2/_xeno_setup_vr.dm @@ -0,0 +1,64 @@ +/hook/startup/proc/xenochems_vr() //A chemical whitelist. Adds on to the other chemical whitelist. This is required, as you don't want users getting certain chemicals (See: Adminordizine) and also don't want them to just get pure stock chemicals, as that'd be boring for the player. + xenoChemList += "inaprovaline" + xenoChemList += "bicaridine" + xenoChemList += "dylovene" + xenoChemList += "dexalinp" + xenoChemList += "tricordrazine" + xenoChemList += "cryoxadone" + xenoChemList += "clonexadone" + xenoChemList += "paracetamol" + xenoChemList += "tramadol" + xenoChemList += "oxycodone" + xenoChemList += "ryetalyn" + xenoChemList += "hyperzine" + xenoChemList += "ethylredoxrazine" + xenoChemList += "hyronalin" + xenoChemList += "arithrazine" + xenoChemList += "spaceacillin" + xenoChemList += "sterilizine" + xenoChemList += "leporazine" + xenoChemList += "methylphenidate" + xenoChemList += "citalopram" + xenoChemList += "paroxetine" + xenoChemList += "macrocillin" + xenoChemList += "microcillin" + xenoChemList += "normalcillin" + xenoChemList += "sizeoxadone" + xenoChemList += "ickypak" + xenoChemList += "unsorbitol" + xenoChemList += "toxin" + xenoChemList += "carpotoxin" + xenoChemList += "potassium_chloride" + xenoChemList += "potassium_chlorophoride" + xenoChemList += "zombiepowder" + xenoChemList += "fertilizer" + xenoChemList += "eznutrient" + xenoChemList += "left4zed" + xenoChemList += "robustharvest" + xenoChemList += "plantbgone" + xenoChemList += "serotrotium" + xenoChemList += "nicotine" + xenoChemList += "uranium" + xenoChemList += "silver" + xenoChemList += "gold" + xenoChemList += "adrenaline" + xenoChemList += "holywater" + xenoChemList += "ammonia" + xenoChemList += "diethylamine" + xenoChemList += "fluorosurfactant" + xenoChemList += "foaming_agent" + xenoChemList += "thermite" + xenoChemList += "cleaner" + xenoChemList += "lube" + xenoChemList += "silicate" + xenoChemList += "glycerol" + xenoChemList += "coolant" + xenoChemList += "luminol" + xenoChemList += "nutriment" + xenoChemList += "cornoil" + xenoChemList += "lipozine" + xenoChemList += "sodiumchloride" + xenoChemList += "frostoil" + xenoChemList += "capsaicin" + xenoChemList += "condensedcapsaicin" + xenoChemList += "neurotoxin" \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index e0ee2e5c88..1723a560d0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,16 @@ -->
+

08 June 2016

+

Yoshax updated:

+ +

07 June 2016

Datraen updated: