This commit is contained in:
Fox-McCloud
2015-09-21 00:25:27 -04:00
parent 263c67ea2e
commit 4e9befc310
4 changed files with 31 additions and 53 deletions
+9 -1
View File
@@ -16,7 +16,7 @@
/obj/machinery/recharger/attackby(obj/item/weapon/G as obj, mob/user as mob, params)
if(istype(user,/mob/living/silicon))
return
if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G,/obj/item/device/laptop))
if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G,/obj/item/device/laptop) || istype(G, /obj/item/weapon/rcs))
if(charging)
return
@@ -95,6 +95,14 @@
use_power(2500)
else
icon_state = icon_state_charged
if(istype(charging, /obj/item/weapon/rcs))
var/obj/item/weapon/rcs/R = charging
if(R.rcell && R.rcell.charge < R.rcell.maxcharge)
R.rcell.charge += 1750
icon_state = icon_state_charging
use_power(2000)
else
icon_state = icon_state_charged
return
@@ -180,7 +180,7 @@
if(user in contents) //to prevent self-teleporting.
return
var/obj/item/weapon/rcs/E = W
if(E.rcharges != 0)
if(E.rcell && (E.rcell.charge >= E.chargecost))
if(!(src.z in config.contact_levels))
user << "<span class='warning'>The rapid-crate-sender can't locate any telepads!</span>"
return
@@ -210,14 +210,8 @@
s.set_up(5, 1, src)
s.start()
do_teleport(src, E.pad, 0)
E.rcharges--
if(E.rcharges != 1)
user << "\blue Teleport successful. [E.rcharges] charges left."
E.desc = "Use this to send crates and closets to cargo telepads. There are [E.rcharges] charges left."
return
else
user << "\blue Teleport successful. [E.rcharges] charge left."
E.desc = "Use this to send crates and closets to cargo telepads. There is [E.rcharges] charge left."
E.rcell.use(E.chargecost)
user << "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>"
return
else
E.rand_x = rand(50,200)
@@ -234,17 +228,11 @@
s.set_up(5, 1, src)
s.start()
do_teleport(src, L)
E.rcharges--
if(E.rcharges != 1)
user << "\blue Teleport successful. [E.rcharges] charges left."
E.desc = "Use this to send crates and closets to cargo telepads. There are [E.rcharges] charges left."
return
else
user << "\blue Teleport successful. [E.rcharges] charge left."
E.desc = "Use this to send crates and closets to cargo telepads. There is [E.rcharges] charge left."
return
E.rcell.use(E.chargecost)
user << "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>"
return
else
user << "\red Out of charges."
user << "<span class='warning'>Out of charges.</span>"
return
if(src.opened)
@@ -81,7 +81,7 @@
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/rcs) && !src.opened)
var/obj/item/weapon/rcs/E = W
if(E.rcharges != 0)
if(E.rcell && (E.rcell.charge >= E.chargecost))
if(!(src.z in config.player_levels))
user << "<span class='warning'>The rapid-crate-sender can't locate any telepads!</span>"
return
@@ -111,14 +111,8 @@
s.set_up(5, 1, src)
s.start()
do_teleport(src, E.pad, 0)
E.rcharges--
if(E.rcharges != 1)
user << "\blue Teleport successful. [E.rcharges] charges left."
E.desc = "Use this to send crates and closets to cargo telepads. There are [E.rcharges] charges left."
return
else
user << "\blue Teleport successful. [E.rcharges] charge left."
E.desc = "Use this to send crates and closets to cargo telepads. There is [E.rcharges] charge left."
E.rcell.use(E.chargecost)
user << "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>"
return
else
E.rand_x = rand(50,200)
@@ -135,17 +129,11 @@
s.set_up(5, 1, src)
s.start()
do_teleport(src, L)
E.rcharges--
if(E.rcharges != 1)
user << "\blue Teleport successful. [E.rcharges] charges left."
E.desc = "Use this to send crates and closets to cargo telepads. There are [E.rcharges] charges left."
return
else
user << "\blue Teleport successful. [E.rcharges] charge left."
E.desc = "Use this to send crates and closets to cargo telepads. There is [E.rcharges] charge left."
return
E.rcell.use(E.chargecost)
user << "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>"
return
else
user << "\red Out of charges."
user << "<span class='warning'>Out of charges.</span>"
return
if(opened)
+8 -14
View File
@@ -119,36 +119,30 @@
throwforce = 10.0
throw_speed = 2
throw_range = 5
var/rcharges = 10
var/obj/item/weapon/stock_parts/cell/high/rcell = null
var/obj/machinery/pad = null
var/last_charge = 30
var/mode = 0
var/rand_x = 0
var/rand_y = 0
var/emagged = 0
var/teleporting = 0
var/chargecost = 1500
/obj/item/weapon/rcs/New()
..()
processing_objects.Add(src)
rcell = new(src)
/obj/item/weapon/rcs/examine(mob/user)
..(user)
user << "There are [rcharges] charge\s left."
user << "There are [round(rcell.charge/chargecost)] charge\s left."
/obj/item/weapon/rcs/Destroy()
processing_objects.Remove(src)
if(rcell)
qdel(rcell)
rcell = null
return ..()
/obj/item/weapon/rcs/process()
if(rcharges > 10)
rcharges = 10
if(last_charge == 0)
rcharges++
last_charge = 30
else
last_charge--
/obj/item/weapon/rcs/attack_self(mob/user)
if(emagged)
if(mode == 0)