diff --git a/code/modules/food/glass/bottle_potion.dm b/code/modules/food/glass/bottle_potion.dm index 486a2a158e7..a5d62db130e 100644 --- a/code/modules/food/glass/bottle_potion.dm +++ b/code/modules/food/glass/bottle_potion.dm @@ -112,6 +112,11 @@ desc = "A small green bottle containing some strange purple liquid that claims to transform the drinker." prefill = list("polymorph" = 1) +/obj/item/weapon/reagent_containers/glass/bottle/potion/glamour + name = "glamour potion" + desc = "A small white potion, the perfectly white liquid inside moves in an almost gaseous manner, yet appears to produce reflections perfectly." + prefill = list("glamour" = 1) + //Failed potions /obj/item/weapon/reagent_containers/glass/bottle/potion/plain diff --git a/code/modules/reagents/machinery/alembic.dm b/code/modules/reagents/machinery/alembic.dm index 8c0aeb3c143..99f38aa049c 100644 --- a/code/modules/reagents/machinery/alembic.dm +++ b/code/modules/reagents/machinery/alembic.dm @@ -291,6 +291,14 @@ base_reagent = /obj/item/weapon/potion_base/ichor product_potion = /obj/item/weapon/reagent_containers/glass/bottle/potion/truepolymorph +/obj/item/weapon/potion_material/glamour_shard + name = "glamour_shard" + desc = "A shard of hardened white crystal that seems to change shapes as you hold it." + icon = 'icons/obj/chemical_potionreagents.dmi' + icon_state = "glamour_shard" + base_reagent = /obj/item/weapon/potion_base/aqua_regia + product_potion = /obj/item/weapon/reagent_containers/glass/bottle/potion/glamour + //base ingredients /obj/item/weapon/potion_base/aqua_regia diff --git a/code/modules/reagents/reagents/medicine_vr.dm b/code/modules/reagents/reagents/medicine_vr.dm index 4edc2ecdbb0..010103e640d 100644 --- a/code/modules/reagents/reagents/medicine_vr.dm +++ b/code/modules/reagents/reagents/medicine_vr.dm @@ -313,3 +313,18 @@ log_debug("polymorph tf_type pass") var/new_mob = new tf_type(get_turf(target)) return new_mob + +/datum/reagent/glamour + name = "Glamour" + id = "glamour" + description = "This material is from somewhere else, just being near produces changes." + taste_description = "change" + reagent_state = LIQUID + color = "#ffffff" + scannable = 1 + +/datum/reagent/glamour/affect_blood(var/mob/living/carbon/target, var/removed) + target.verbs |= /mob/living/carbon/human/proc/enter_cocoon + target.bloodstr.clear_reagents() //instantly clears reagents afterwards + target.ingested.clear_reagents() + target.touching.clear_reagents() diff --git a/icons/mob/vore128x64.dmi b/icons/mob/vore128x64.dmi index c69ec831237..a7bdfe97545 100644 Binary files a/icons/mob/vore128x64.dmi and b/icons/mob/vore128x64.dmi differ diff --git a/icons/obj/32x64.dmi b/icons/obj/32x64.dmi index 493b337ad67..a29685f4b0b 100644 Binary files a/icons/obj/32x64.dmi and b/icons/obj/32x64.dmi differ diff --git a/icons/obj/card_new_vr.dmi b/icons/obj/card_new_vr.dmi index 496b1fda27a..b10ebc83881 100644 Binary files a/icons/obj/card_new_vr.dmi and b/icons/obj/card_new_vr.dmi differ diff --git a/icons/obj/chemical_potionreagents.dmi b/icons/obj/chemical_potionreagents.dmi index d9da43bf294..2a2fb61435a 100644 Binary files a/icons/obj/chemical_potionreagents.dmi and b/icons/obj/chemical_potionreagents.dmi differ diff --git a/icons/obj/items_vr.dmi b/icons/obj/items_vr.dmi index 1833ff15146..c5ecf41b1ac 100644 Binary files a/icons/obj/items_vr.dmi and b/icons/obj/items_vr.dmi differ diff --git a/icons/turf/flooring/glamour.dmi b/icons/turf/flooring/glamour.dmi new file mode 100644 index 00000000000..74ee6430659 Binary files /dev/null and b/icons/turf/flooring/glamour.dmi differ diff --git a/maps/redgate/facility_items.dm b/maps/redgate/facility_items.dm new file mode 100644 index 00000000000..939f5bfed12 --- /dev/null +++ b/maps/redgate/facility_items.dm @@ -0,0 +1,117 @@ +/obj/item/weapon/card/id/keycard + name = "keycard" + desc = "Allows access to certain doors." + icon_state = "keycard-red" + initial_sprite_stack = list() + light_color = "#0099ff" + access = list(801) + +/obj/item/weapon/card/id/keycard/update_icon() + return + +/obj/item/weapon/card/id/keycard/read() + to_chat(usr, "It is a red keycard, it must unlock something.") + +/obj/item/weapon/card/id/keycard/attack_self(mob/living/user as mob) + return + +/obj/item/weapon/card/id/keycard/blue + icon_state = "keycard-blue" + access = list(802) + +/obj/item/weapon/card/id/keycard/green + icon_state = "keycard-green" + access = list(803) + +/obj/item/glamourcrystal + name = "white crytal" + desc = "A large white, highly reflective crystal with a slight glow to it." + icon = 'icons/obj/items_vr.dmi' + icon_state = "glamourcrystal" + +/obj/structure/crystalholder + name = "material cart" + desc = "A cart designed to fit and carry one large carefully cut crystal." + icon = 'icons/obj/items_vr.dmi' + icon_state = "crystalholder" + var/crystal = 0 + density = 1 + anchored = 0 + +/obj/structure/crystalholder/attackby(obj/item/W as obj, mob/living/user as mob) + if(istype(W,/obj/item/glamourcrystal) && !crystal) + icon_state = "crystalholder_full" + update_icon() + crystal = 1 + user.drop_item() + qdel(W) + to_chat(usr, "You insert the crystal into the receptacle.") + else + to_chat(usr, "There isn't a slot for that.") + +/obj/machinery/crystalexperimenter + name = "crystal experimenter" + desc = "A cart designed to fit and carry one large carefully cut crystal." + icon = 'icons/obj/32x64.dmi' + icon_state = "crystalexperimenter" + var/used_up = 0 + density = 0 + anchored = 1 + layer = 5 + var/id = "glamour" + +/obj/machinery/crystalexperimenter/proc/experiment() + if(used_up) + return + var/crystal_found = 0 + for(var/obj/structure/crystalholder/C in get_turf(src)) + if(C.crystal) + used_up = 1 + crystal_found = 1 + continue + + if(!crystal_found) + return + + for(var/obj/machinery/light/L in machines) + if(L.z != src.z || get_dist(src,L) > 10) + continue + else + L.flicker(10) + + for(var/obj/machinery/door/blast/M in machines) + if(M.id == id) + if(M.density) + spawn(0) + M.open() + return + else + spawn(0) + M.close() + return + + +/obj/machinery/button/remote/experimenter + name = "experimentation switch" + desc = "A switch tied to nearby machinery." + +/obj/machinery/button/remote/experimenter/trigger() + for(var/obj/machinery/crystalexperimenter/E in machines) + E.experiment() + +/turf/unsimulated/wall/glamour + name = "glamour" + desc = "A blindingly white light that appears to cast your reflection." + icon = 'icons/turf/flooring/glamour.dmi' + icon_state = "glamour" + +/turf/simulated/floor/glamour + name = "glamour" + desc = "A blindingly white light that appears to cast your reflection." + icon = 'icons/turf/flooring/glamour.dmi' + icon_state = "glamour" + light_range = 7 + light_power = 1 + light_color = "#ffffff" + light_on = TRUE + diff --git a/vorestation.dme b/vorestation.dme index 55ce8346e38..03742be14ac 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4288,6 +4288,7 @@ #include "maps\expedition_vr\beach\submaps\mountains.dm" #include "maps\expedition_vr\beach\submaps\mountains_areas.dm" #include "maps\gateway_archive_vr\blackmarketpackers.dm" +#include "maps\redgate\facility_items.dm" #include "maps\redgate\fantasy_items.dm" #include "maps\redgate\falls\atoll_decals.dm" #include "maps\redgate\falls\atoll_objs.dm"