diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 4a67b7626d4..9278d0d5f80 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -90,7 +90,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) if(hijack_only) if(!(locate(/datum/objective/hijack) in usr.mind.objectives)) - to_chat(usr, "The Syndicate lacks resources to provide you with this item.") + to_chat(usr, "The Syndicate will only issue this extremely dangerous item to agents assigned the Hijack objective.") return if(item) @@ -929,6 +929,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) reference = "SB" item = /obj/item/radio/beacon/syndicate/bomb cost = 11 + surplus = 0 + cant_discount = TRUE /datum/uplink_item/explosives/syndicate_minibomb name = "Syndicate Minibomb" @@ -978,13 +980,22 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) gamemodes = list(/datum/game_mode/nuclear) surplus = 0 -/datum/uplink_item/explosives/atmosgrenades - name = "Atmos Grenades" - desc = "A box of two (2) grenades that wreak havoc with the atmosphere of the target area. Capable of engulfing a large area in lit plasma, or N2O. Deploy with extreme caution!" - reference = "AGG" - item = /obj/item/storage/box/syndie_kit/atmosgasgrenades - cost = 11 +/datum/uplink_item/explosives/atmosn2ogrenades + name = "Knockout Gas Grenades" + desc = "A box of two (2) grenades that spread knockout gas over a large area. Equip internals before using one of these." + reference = "ANG" + item = /obj/item/storage/box/syndie_kit/atmosn2ogrenades + cost = 8 + +/datum/uplink_item/explosives/atmosfiregrenades + name = "Plasma Fire Grenades" + desc = "A box of two (2) grenades that cause large plasma fires. Can be used to deny access to a large area. Most useful if you have an atmospherics hardsuit." + reference = "APG" + item = /obj/item/storage/box/syndie_kit/atmosfiregrenades + hijack_only = TRUE + cost = 12 surplus = 0 + cant_discount = TRUE /datum/uplink_item/explosives/emp name = "EMP Grenades and Implanter Kit" diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 4d7167663a7..e6e9dfe4196 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -67,15 +67,17 @@ /mob/living/simple_animal/hostile/blob/blobspore/Life(seconds, times_fired) if(!is_zombie && isturf(src.loc)) - for(var/mob/living/carbon/human/H in oview(src,1)) //Only for corpse right next to/on same tile - if(H.stat == DEAD) + for(var/mob/living/carbon/human/H in oview(src, 1)) //Only for corpse right next to/on same tile + if(H.stat == DEAD || (!H.check_death_method() && H.health <= HEALTH_THRESHOLD_DEAD)) Zombify(H) break ..() -/mob/living/simple_animal/hostile/blob/blobspore/proc/Zombify(var/mob/living/carbon/human/H) +/mob/living/simple_animal/hostile/blob/blobspore/proc/Zombify(mob/living/carbon/human/H) + if(!H.check_death_method()) + H.death() var/obj/item/organ/external/head/head_organ = H.get_organ("head") - is_zombie = 1 + is_zombie = TRUE if(H.wear_suit) var/obj/item/clothing/suit/armor/A = H.wear_suit if(A.armor && A.armor["melee"]) @@ -89,14 +91,15 @@ icon = H.icon speak_emote = list("groans") icon_state = "zombie2_s" - head_organ.h_style = null + if(head_organ) + head_organ.h_style = null H.update_hair() human_overlays = H.overlays update_icons() - H.loc = src + H.forceMove(src) pressure_resistance = 20 //5 kPa difference required to push lowered throw_pressure_limit = 30 //15 kPa difference required to throw lowered - loc.visible_message("The corpse of [H.name] suddenly rises!") + visible_message("The corpse of [H.name] suddenly rises!") /mob/living/simple_animal/hostile/blob/blobspore/death(gibbed) // Only execute the below if we successfuly died diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index f339be06b88..cee4d92008a 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -60,9 +60,9 @@ /mob/living/simple_animal/hostile/guardian/Life(seconds, times_fired) //Dies if the summoner dies ..() if(summoner) - if(summoner.stat == DEAD) + if(summoner.stat == DEAD || (!summoner.check_death_method() && summoner.health <= HEALTH_THRESHOLD_DEAD)) to_chat(src, "Your summoner has died!") - visible_message("The [src] dies along with its user!") + visible_message("[src] dies along with its user!") ghostize() qdel(src) snapback() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 2715539d129..7ce515365ae 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -34,7 +34,7 @@ var/obj/effect/countdown/clonepod/countdown - var/list/brine_types = list("corazone", "salbutamol", "epinephrine", "salglu_solution") //stops heart attacks, heart failure, shock, and keeps their O2 levels normal + var/list/brine_types = list("corazone", "perfluorodecalin", "epinephrine", "salglu_solution") //stops heart attacks, heart failure, shock, and keeps their O2 levels normal var/list/missing_organs var/organs_number = 0 @@ -341,7 +341,7 @@ check_brine() //Also heal some oxyloss ourselves just in case!! - occupant.adjustOxyLoss(-4) + occupant.adjustOxyLoss(-10) use_power(7500) //This might need tweaking. @@ -480,6 +480,10 @@ for(var/i in missing_organs) qdel(i) missing_organs.Cut() + occupant.SetLoseBreath(0) // Stop friggin' dying, gosh damn + occupant.setOxyLoss(0) + for(var/datum/disease/critical/crit in occupant.viruses) + crit.cure() occupant.forceMove(T) occupant.update_body() domutcheck(occupant) //Waiting until they're out before possible notransform. diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index c134747cd41..acdbc1110f3 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -36,10 +36,13 @@ if(scanner.occupant && can_autoprocess()) scan_mob(scanner.occupant) - + + if(!LAZYLEN(records)) + return + for(var/obj/machinery/clonepod/pod in pods) if(!(pod.occupant || pod.mess) && (pod.efficiency > 5)) - for(var/datum/dna2/record/R in src.records) + for(var/datum/dna2/record/R in records) if(!(pod.occupant || pod.mess)) if(pod.growclone(R)) records.Remove(R) @@ -392,6 +395,12 @@ SSnanoui.update_uis(src) return + for(var/obj/machinery/clonepod/pod in pods) + if(pod.occupant && pod.clonemind == subject.mind) + scantemp = "Subject already getting cloned." + SSnanoui.update_uis(src) + return + subject.dna.check_integrity() var/datum/dna2/record/R = new /datum/dna2/record() diff --git a/code/game/objects/effects/spawners/random_spawners.dm b/code/game/objects/effects/spawners/random_spawners.dm index 18392256fb8..510e5b90380 100644 --- a/code/game/objects/effects/spawners/random_spawners.dm +++ b/code/game/objects/effects/spawners/random_spawners.dm @@ -279,7 +279,7 @@ /obj/item/clothing/glasses/thermal = 1, /obj/item/chameleon = 1, /obj/item/reagent_containers/hypospray/autoinjector/stimulants = 1, - /obj/item/storage/box/syndie_kit/atmosgasgrenades = 1, + /obj/item/storage/box/syndie_kit/atmosn2ogrenades = 1, /obj/item/grenade/plastic/x4 = 1) diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 5eb835e2940..e5bbeef7686 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -71,7 +71,10 @@ var/list/world_uplinks = list() if(I.job && I.job.len) if(!(I.job.Find(job))) continue - dat += "[I.name] ([I.cost])
" + dat += "[I.name] ([I.cost])" + if(I.hijack_only) + dat += " (HIJACK ONLY)" + dat += "
" category_items++ dat += "Random Item (??)
" @@ -94,7 +97,7 @@ var/list/world_uplinks = list() if(I.job && I.job.len) if(!(I.job.Find(job))) continue - nano[nano.len]["items"] += list(list("Name" = sanitize(I.name), "Description" = sanitize(I.description()),"Cost" = I.cost, "obj_path" = I.reference)) + nano[nano.len]["items"] += list(list("Name" = sanitize(I.name), "Description" = sanitize(I.description()),"Cost" = I.cost, "hijack_only" = I.hijack_only, "obj_path" = I.reference)) reference[I.reference] = I var/datum/nano_item_lists/result = new diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index cac42bfced7..c96271d6ddd 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -262,13 +262,24 @@ new /obj/item/spellbook/oneuse/mime/greaterwall(src) new /obj/item/spellbook/oneuse/mime/fingergun(src) -/obj/item/storage/box/syndie_kit/atmosgasgrenades - name = "Atmos Grenades" -/obj/item/storage/box/syndie_kit/atmosgasgrenades/New() +/obj/item/storage/box/syndie_kit/atmosn2ogrenades + name = "Atmos N2O Grenades" + +/obj/item/storage/box/syndie_kit/atmosn2ogrenades/New() + ..() + new /obj/item/grenade/clusterbuster/n2o(src) + new /obj/item/grenade/clusterbuster/n2o(src) + + +/obj/item/storage/box/syndie_kit/atmosfiregrenades + name = "Plasma Fire Grenades" + +/obj/item/storage/box/syndie_kit/atmosfiregrenades/New() ..() new /obj/item/grenade/clusterbuster/plasma(src) - new /obj/item/grenade/clusterbuster/n2o(src) + new /obj/item/grenade/clusterbuster/plasma(src) + /obj/item/storage/box/syndie_kit/missionary_set name = "Missionary Starter Kit" diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 88adc9643ba..6f531f5c14c 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -256,18 +256,18 @@ /obj/structure/statue/diamond hardness = 10 material_drop_type = /obj/item/stack/sheet/mineral/diamond - desc = "This is a very expensive diamond statue" + desc = "This is a very expensive diamond statue." /obj/structure/statue/diamond/captain - name = "statue of THE captain." + name = "statue of THE captain" icon_state = "cap" /obj/structure/statue/diamond/ai1 - name = "statue of the AI hologram." + name = "statue of the AI hologram" icon_state = "ai1" /obj/structure/statue/diamond/ai2 - name = "statue of the AI core." + name = "statue of the AI core" icon_state = "ai2" /obj/structure/statue/bananium diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 03726353022..aa714f0d527 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -363,7 +363,7 @@ for(var/datum/data/record/R in data_core.security) if(R.fields["id"] == E.fields["id"]) criminal = R.fields["criminal"] - var/criminal_status = hasHUD(user, "read_only_security") ? "\[[criminal]\]" : "\[[criminal]\]" + var/criminal_status = hasHUD(user, "read_only_security") ? "\[[criminal]\]" : "\[[criminal]\]" msg += "Criminal status: [criminal_status]\n" msg += "Security records: \[View\] \[Add comment\]\n" diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index f4808f46d53..13d85941a79 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -283,34 +283,25 @@ var/global/list/fax_blacklist = list() use_power(200) - var/obj/item/rcvdcopy - if(istype(copyitem, /obj/item/paper)) - rcvdcopy = copy(copyitem) - else if(istype(copyitem, /obj/item/photo)) - rcvdcopy = photocopy(copyitem) - else if(istype(copyitem, /obj/item/paper_bundle)) - rcvdcopy = bundlecopy(copyitem) - else + if(!(istype(copyitem, /obj/item/paper) || istype(copyitem, /obj/item/paper_bundle) || istype(copyitem, /obj/item/photo))) visible_message("[src] beeps, \"Error transmitting message.\"") return - rcvdcopy.loc = null //hopefully this shouldn't cause trouble - var/datum/fax/admin/A = new /datum/fax/admin() - A.name = rcvdcopy.name + A.name = copyitem.name A.from_department = department A.to_department = destination A.origin = src - A.message = rcvdcopy + A.message = copyitem A.sent_by = sender A.sent_at = world.time //message badmins that a fax has arrived switch(destination) if("Central Command") - message_admins(sender, "CENTCOM FAX", destination, rcvdcopy, "#006100") + message_admins(sender, "CENTCOM FAX", destination, copyitem, "#006100") if("Syndicate") - message_admins(sender, "SYNDICATE FAX", destination, rcvdcopy, "#DC143C") + message_admins(sender, "SYNDICATE FAX", destination, copyitem, "#DC143C") for(var/obj/machinery/photocopier/faxmachine/F in allfaxes) if(F.department == destination) F.receivefax(copyitem) diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index d2fb4eec567..6c22360face 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -765,7 +765,7 @@ /datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M) if(M.bodytemperature < 360) M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 - ..() + return ..() /datum/reagent/consumable/ethanol/devilskiss name = "Devils Kiss" @@ -819,7 +819,7 @@ /datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M) if(M.bodytemperature > 270) M.bodytemperature = max(270, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 - ..() + return ..() /datum/reagent/consumable/ethanol/grog name = "Grog" @@ -1178,7 +1178,7 @@ if(prob(25)) holder.remove_reagent(id, 15) M.fakevomit() - ..() + return ..() /datum/reagent/consumable/ethanol/synthanol/reaction_mob(mob/living/M, method=TOUCH, volume) if(M.isSynthetic()) diff --git a/code/modules/reagents/chemistry/reagents/drink_cold.dm b/code/modules/reagents/chemistry/reagents/drink_cold.dm index 8e902f014f3..707aab07b54 100644 --- a/code/modules/reagents/chemistry/reagents/drink_cold.dm +++ b/code/modules/reagents/chemistry/reagents/drink_cold.dm @@ -42,7 +42,7 @@ /datum/reagent/consumable/drink/cold/ice/on_mob_life(mob/living/M) M.bodytemperature = max(M.bodytemperature - 5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) - ..() + return ..() /datum/reagent/consumable/drink/cold/space_cola name = "Cola" diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index 3f21593a44e..9b1aca91f8d 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -448,7 +448,7 @@ /datum/reagent/consumable/egg/on_mob_life(mob/living/M) if(prob(3)) M.reagents.add_reagent("cholesterol", rand(1,2)) - ..() + return ..() /datum/reagent/consumable/corn_starch name = "Corn Starch" @@ -643,9 +643,6 @@ color = "#684435" taste_message = "burritos" -/datum/reagent/consumable/beans/on_mob_life(mob/living/M) - return ..() - /datum/reagent/consumable/bread name = "Bread" id = "bread" diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index e69813cced9..dc273278d52 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -5,6 +5,7 @@ /datum/reagent/medicine/on_mob_life(mob/living/M) current_cycle++ holder.remove_reagent(id, (metabolization_rate / M.metabolism_efficiency) * M.digestion_ratio) //medicine reagents stay longer if you have a better metabolism + return STATUS_UPDATE_NONE /datum/reagent/medicine/hydrocodone name = "Hydrocodone" @@ -526,6 +527,7 @@ taste_message = "a delightful numbing" /datum/reagent/medicine/morphine/on_mob_life(mob/living/M) + var/update_flags = STATUS_UPDATE_NONE M.AdjustJitter(-25) switch(current_cycle) if(1 to 15) @@ -534,9 +536,9 @@ if(16 to 35) M.Drowsy(20) if(36 to INFINITY) - M.Paralyse(15) + update_flags |= M.Paralyse(15, FALSE) M.Drowsy(20) - ..() + return ..() | update_flags /datum/reagent/medicine/oculine name = "Oculine" @@ -753,7 +755,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M H.update_mutations() - ..() + return ..() /datum/reagent/medicine/antihol name = "Antihol" @@ -851,6 +853,7 @@ /datum/reagent/medicine/insulin/on_mob_life(mob/living/M) M.reagents.remove_reagent("sugar", 5) + return ..() /datum/reagent/medicine/teporone name = "Teporone" @@ -867,7 +870,7 @@ M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) else if(M.bodytemperature < 311) M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) - ..() + return ..() /datum/reagent/medicine/haloperidol name = "Haloperidol" @@ -910,6 +913,7 @@ taste_message = "sleepiness" /datum/reagent/medicine/ether/on_mob_life(mob/living/M) + var/update_flags = STATUS_UPDATE_NONE M.AdjustJitter(-25) switch(current_cycle) if(1 to 30) @@ -918,9 +922,9 @@ if(31 to 40) M.Drowsy(20) if(41 to INFINITY) - M.Paralyse(15) + update_flags |= M.Paralyse(15, FALSE) M.Drowsy(20) - ..() + return ..() | update_flags /datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs name = "Restorative Nanites" diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index 9277ba33fd9..7d92080ae6b 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -162,7 +162,7 @@ if(!H.dna.species.exotic_blood && !(NO_BLOOD in H.dna.species.species_traits)) if(H.blood_volume < BLOOD_VOLUME_NORMAL) H.blood_volume += 0.8 - ..() + return ..() /datum/reagent/iron/reaction_mob(mob/living/M, method=TOUCH, volume) if(M.has_bane(BANE_IRON) && holder && holder.chem_temp < 150) //If the target is weak to cold iron, then poison them. diff --git a/code/modules/reagents/chemistry/reagents/paradise_pop.dm b/code/modules/reagents/chemistry/reagents/paradise_pop.dm index 204848e1fe9..2294088e54a 100644 --- a/code/modules/reagents/chemistry/reagents/paradise_pop.dm +++ b/code/modules/reagents/chemistry/reagents/paradise_pop.dm @@ -31,7 +31,7 @@ var/turf/simulated/T = get_turf(M) goonchem_vortex(T, 1, 0) to_chat(M, "You briefly feel super-massive, like a black hole. Probably just your imagination...") - ..() + return ..() //Berry Banned: This one is tasty and safe to drink, might have a low chance of healing a random damage type? /datum/reagent/consumable/drink/berry_banned diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 76be206f35f..d337d2a421b 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -1156,12 +1156,16 @@ M.apply_effect(2, IRRADIATE, 0, negate_armor = 1) if(!M.dna) return + var/did_mutation = FALSE if(prob(15)) randmutb(M) + did_mutation = TRUE if(prob(3)) randmutg(M) - domutcheck(M, null) - M.UpdateAppearance() + did_mutation = TRUE + if(did_mutation) + domutcheck(M, null) + M.UpdateAppearance() return ..() /datum/reagent/ants diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index 1a073eae598..cdc10bcbcc5 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -139,7 +139,7 @@ required_reagents = list("plasma" = 1, "silver" = 1, "blackpowder" = 1) result_amount = 3 mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry." - min_temp = T0C + 130 + min_temp = T0C + 50 mix_sound = null /datum/chemical_reaction/teslium/on_reaction(datum/reagents/holder, created_volume) diff --git a/html/changelog.html b/html/changelog.html index a86cfa42a28..a4f7fd50102 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,14 +56,47 @@ -->
+

06 April 2019

+

Fox McCloud updated:

+ +

Twinmold updated:

+ +

dovydas12345 updated:

+ +

farie82 updated:

+ + +

04 April 2019

+

Kyep updated:

+ +

03 April 2019

Fox McCloud updated:

farie82 updated:

02 April 2019

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 3e59c050561..e8299057623 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9665,5 +9665,37 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Fox McCloud: - bugfix: Dramatically improves human life performance (sorry, doesn't fix your actual crappy real life) + - tweak: Blobspores will additionally zomify all players who have 200 damage or + more + - tweak: Holoparasites will additionally die once their host has 200 damage or more + - bugfix: Fixes blob zombies who infect players who have no head being invisible farie82: - bugfix: Death nettle can be picked up again + - bugfix: Auto cloning now doesn't clone a person more than once. + - tweak: A person in the cloning scanner won't be scanned if he's already being + cloned +2019-04-04: + Kyep: + - tweak: Improved the interface for Syndicate Uplinks. They now clearly mark which + items are hijack-only and which are not. If you attempt to purchase a hijack-only + item without hijack, they will explain why you can't. + - tweak: Atmos Gas Grenades (the uplink grenade kit) are now split into Knockout + grenades (2 N2O grenades, 8 TC, available to all agents), and Plasma Fire grenades + (2 plasma fire grenades, 12 TC, only available if you have hijack). This both + makes knockout grenades more useful for normal traitors, and also prevents non-hijackers + using a plasma fire grenade to cause massive casualties/damage. + - tweak: Plasma Grenades and the Syndicate Bomb can no longer show up in surplus + crates, or be discounted. This means while you can buy one if you intend to, + you're not randomly encouraged to bomb your target. +2019-04-06: + Fox McCloud: + - bugfix: Fixes people popping out of cloning taking tons of damage + - bugfix: Fixes Teslium recipe + - bugfix: Fixes some reagents not causing status updates + Twinmold: + - bugfix: No longer costs toner to send a fax to Central Command + dovydas12345: + - spellcheck: Fixed diamond statue names and description. + farie82: + - bugfix: Sec huds work again. No longer does the perp need glasses to be set to + arrest. Cool does not equal arrest now diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl index c67dbca9c61..3058bb10bbb 100644 --- a/nano/templates/uplink.tmpl +++ b/nano/templates/uplink.tmpl @@ -46,7 +46,7 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm {{for value.items :itemValue:itemIndex}}
- {{:helper.link( itemValue.Name, 'gear', {'buy_item' : itemValue.obj_path, 'cost' : itemValue.Cost}, itemValue.Cost > data.crystals ? 'disabled' : null, null)}} - {{:itemValue.Cost}} + {{:helper.link( itemValue.Name, 'gear', {'buy_item' : itemValue.obj_path, 'cost' : itemValue.Cost}, itemValue.Cost > data.crystals ? 'disabled' : null, null)}} - {{:itemValue.Cost}} {{if itemValue.hijack_only}}(HIJACK AGENTS ONLY){{/if}}
{{/for}}