mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Cleaned up ninja code so it's not all-over the place.
Reworked energy charging to where it's probably bug free and much easier to edit. Reworked PDA code so it's much faster and easier to use. Might have some bugs left over. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1532 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -455,42 +455,8 @@
|
||||
if(stat & (BROKEN|MAINT)) return
|
||||
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/U = user
|
||||
if(istype(U.gloves, /obj/item/clothing/gloves/space_ninja)&&U.gloves:candrain&&!U.gloves:draining)
|
||||
var/obj/item/clothing/suit/space/space_ninja/S = U.wear_suit
|
||||
var/obj/item/clothing/gloves/space_ninja/G = U.gloves
|
||||
user << "\blue Now charging battery..."
|
||||
if(cell&&cell.charge)
|
||||
var/drain = 0//To drain from battery.
|
||||
var/maxcapacity = 0//Safety check for full battery.
|
||||
var/totaldrain = 0//Total energy drained.
|
||||
G.draining = 1
|
||||
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
while(G.candrain&&cell.charge>0&&!maxcapacity)
|
||||
drain = rand(G.mindrain,G.maxdrain)
|
||||
if(cell.charge<drain)
|
||||
drain = cell.charge
|
||||
if(S.charge+drain>S.maxcharge)
|
||||
drain = S.maxcharge-S.charge
|
||||
maxcapacity = 1//Reached maximum battery capacity.
|
||||
if (do_after(U,10))
|
||||
spark_system.start()
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
cell.charge-=drain
|
||||
S.charge+=drain
|
||||
totaldrain+=drain
|
||||
else break
|
||||
U << "\blue Gained <B>[totaldrain]</B> energy from the APC."
|
||||
G.draining = 0
|
||||
if(!emagged)
|
||||
flick("apc-spark", src)
|
||||
emagged = 1
|
||||
locked = 0
|
||||
updateicon()
|
||||
return
|
||||
else
|
||||
U << "\red This APC has run dry of power. You must find another source."
|
||||
if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
|
||||
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("APC",src,user:wear_suit,user:gloves)
|
||||
return
|
||||
// do APC interaction
|
||||
user.machine = src
|
||||
|
||||
@@ -184,37 +184,8 @@
|
||||
if(stat & BROKEN) return
|
||||
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/U = user
|
||||
if(istype(U.gloves, /obj/item/clothing/gloves/space_ninja)&&U.gloves:candrain&&!U.gloves:draining)
|
||||
var/obj/item/clothing/suit/space/space_ninja/S = U.wear_suit
|
||||
var/obj/item/clothing/gloves/space_ninja/G = U.gloves
|
||||
user << "\blue Now charging battery..."
|
||||
if(charge)
|
||||
G.draining = 1
|
||||
var/drain = 0
|
||||
var/maxcapacity = 0
|
||||
var/totaldrain = 0
|
||||
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
while(G.candrain&&charge>0&&!maxcapacity)
|
||||
drain = rand(G.mindrain,G.maxdrain)
|
||||
if(charge<drain)
|
||||
drain = charge
|
||||
if(S.charge+drain>S.maxcharge)
|
||||
drain = S.maxcharge-S.charge
|
||||
maxcapacity = 1
|
||||
if (do_after(U,10))
|
||||
spark_system.start()
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
charge-=drain
|
||||
S.charge+=drain
|
||||
totaldrain+=drain
|
||||
else break
|
||||
U << "\blue Gained <B>[totaldrain]</B> energy from the SMES cell."
|
||||
G.draining = 0
|
||||
return
|
||||
else
|
||||
U << "\red This SMES cell has run dry of power. You must find another source."
|
||||
if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
|
||||
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("SMES",src,user:wear_suit,user:gloves)
|
||||
return
|
||||
|
||||
interact(user)
|
||||
|
||||
Reference in New Issue
Block a user