diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 08d613ff1bb..3cc4395141b 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1244,7 +1244,8 @@
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_ILLEGAL = 7)
- var/obj/item/weapon/cell/device/weapon/power_source
+ var/cell_type = /obj/item/weapon/cell/device/weapon
+ var/obj/item/weapon/cell/power_source
var/charge_cost = 800 // cell/device/weapon has 2400
var/list/beacons = list()
@@ -1259,7 +1260,10 @@
/obj/item/device/perfect_tele/New()
..()
flags |= NOBLUDGEON
- power_source = new (src)
+ if(cell_type)
+ power_source = new cell_type(src)
+ else
+ power_source = new /obj/item/weapon/cell/device(src)
spk = new(src)
spk.set_up(5, 0, src)
spk.attach(src)
@@ -1276,7 +1280,7 @@
/obj/item/device/perfect_tele/update_icon()
if(!power_source)
icon_state = "[initial(icon_state)]_o"
- else if(ready && power_source.check_charge(charge_cost))
+ else if(ready && (power_source.check_charge(charge_cost) || power_source.fully_charged()))
icon_state = "[initial(icon_state)]"
else
icon_state = "[initial(icon_state)]_w"
@@ -1338,7 +1342,7 @@
return
/obj/item/device/perfect_tele/attackby(obj/W, mob/user)
- if(istype(W,/obj/item/weapon/cell/device/weapon) && !power_source)
+ if(istype(W,cell_type) && !power_source)
power_source = W
power_source.update_icon() //Why doesn't a cell do this already? :|
user.unEquip(power_source)
@@ -1367,7 +1371,7 @@
return FALSE
//Check for charge
- if(!power_source.check_charge(charge_cost))
+ if((!power_source.check_charge(charge_cost)) && (!power_source.fully_charged()))
to_chat(user,"\The [src] does not have enough power left!")
return FALSE
@@ -1398,10 +1402,13 @@
//No, you can't port to or from away missions. Stupidly complicated check.
var/turf/uT = get_turf(user)
var/turf/dT = get_turf(destination)
+ var/list/dat = list()
+ dat["z_level_detection"] = using_map.get_map_levels(uT.z)
+
if(!uT || !dT)
return FALSE
- if( (uT.z != dT.z) && ( (uT.z > max_default_z_level() ) || (dT.z > max_default_z_level()) ) )
+ if( (uT.z != dT.z) && (!(dT.z in dat["z_level_detection"])) )
to_chat(user,"\The [src] can't teleport you that far!")
return FALSE
@@ -1562,14 +1569,17 @@
desc = "A more limited translocator with a single beacon, useful for some things, like setting the mining department on fire accidentally. Legal for use in the pursuit of NanoTrasen interests, namely mining and exploration."
icon_state = "minitrans"
beacons_left = 1 //Just one
- charge_cost = 2400 //One per
+ cell_type = /obj/item/weapon/cell/device
+ origin_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5)
+/*
/obj/item/device/perfect_tele/one_beacon/teleport_checks(mob/living/target,mob/living/user)
var/turf/T = get_turf(destination)
if(T && user.z != T.z)
to_chat(user,"\The [src] is too far away from the beacon. Try getting closer first!")
return FALSE
return ..()
+*/
//InterroLouis: Ruda Lizden
/obj/item/clothing/accessory/badge/holo/detective/ruda
@@ -2008,7 +2018,7 @@
/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask/fluff/viktor/Initialize()
..()
reagents.add_reagent("pwine", 60)
-
+
//RadiantAurora: Tiemli Kroto
/obj/item/clothing/glasses/welding/tiemgogs
name = "custom-fitted welding goggles"