Baystation Rigsuits

This commit adds baystation's rigsuit system on top of our own hardsuits;
Our own hardsuits still function fine and are around, but these are
available to admins. Next commit will contain balancing and player
implementation stuff.
This commit is contained in:
Tigercat2000
2015-10-05 16:42:00 -07:00
parent 77cb22ef18
commit 4fc91429e5
70 changed files with 5170 additions and 276 deletions
+46 -1
View File
@@ -11,6 +11,12 @@
var/modifystate
var/can_charge = 1
//self-recharging
var/self_recharge = 0 //if set, the weapon will recharge itself
var/use_external_power = 0 //if set, the weapon will look for an external power source to draw from, otherwise it recharges magically
var/recharge_time = 4
var/charge_tick = 0
/obj/item/weapon/gun/energy/emp_act(severity)
if(power_supply)
power_supply.use(round(power_supply.charge / severity))
@@ -23,7 +29,46 @@
else
power_supply = new(src)
power_supply.give(power_supply.maxcharge)
return
if(self_recharge)
processing_objects.Add(src)
update_icon()
/obj/item/weapon/gun/energy/Destroy()
if(self_recharge)
processing_objects.Remove(src)
..()
/obj/item/weapon/gun/energy/process()
if(self_recharge) //Every [recharge_time] ticks, recharge a shot for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
if(!power_supply || power_supply.charge >= power_supply.maxcharge)
return 0 // check if we actually need to recharge
if(use_external_power)
var/obj/item/weapon/stock_parts/cell/external = get_external_power_supply()
if(!external || !external.use(charge_cost)) //Take power from the borg...
return 0
power_supply.give(charge_cost) //... to recharge the shot
update_icon()
return 1
/obj/item/weapon/gun/energy/proc/get_external_power_supply()
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
return R.cell
if(istype(src.loc, /obj/item/rig_module))
var/obj/item/rig_module/module = src.loc
if(module.holder && module.holder.wearer)
var/mob/living/carbon/human/H = module.holder.wearer
if(istype(H) && H.back)
var/obj/item/weapon/rig/suit = H.back
if(istype(suit))
return suit.cell
return null
/obj/item/weapon/gun/energy/process_chambered()
if(in_chamber) return 1
+22 -72
View File
@@ -29,27 +29,8 @@ obj/item/weapon/gun/energy/laser/retro
desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
force = 10
origin_tech = null
var/charge_tick = 0
/obj/item/weapon/gun/energy/laser/captain/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/laser/captain/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/laser/captain/process()
charge_tick++
if(charge_tick < 4)
return 0
charge_tick = 0
if(!power_supply)
return 0
power_supply.give(1000)
update_icon()
return 1
self_recharge = 1
/obj/item/weapon/gun/energy/laser/cyborg
@@ -89,6 +70,13 @@ obj/item/weapon/gun/energy/laser/retro
isHandgun()
return 0
/obj/item/weapon/gun/energy/lasercannon/mounted
name = "mounted laser cannon"
self_recharge = 1
use_external_power = 1
recharge_time = 10
/obj/item/weapon/gun/energy/lasercannon/cyborg/process_chambered()
if(in_chamber)
return 1
@@ -119,35 +107,15 @@ obj/item/weapon/gun/energy/laser/retro
projectile_type = "/obj/item/projectile/lasertag/blue"
origin_tech = "combat=1;magnets=2"
clumsy_check = 0
var/charge_tick = 0
special_check(var/mob/living/carbon/human/M)
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag))
return 1
M << "\red You need to be wearing your laser tag vest!"
return 0
New()
..()
processing_objects.Add(src)
Destroy()
processing_objects.Remove(src)
return ..()
process()
charge_tick++
if(charge_tick < 4) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return 1
self_recharge = 1
/obj/item/weapon/gun/energy/laser/bluetag/special_check(var/mob/living/carbon/human/M)
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag))
return 1
M << "\red You need to be wearing your laser tag vest!"
return 0
/obj/item/weapon/gun/energy/laser/redtag
name = "laser tag gun"
@@ -156,30 +124,12 @@ obj/item/weapon/gun/energy/laser/retro
projectile_type = "/obj/item/projectile/lasertag/red"
origin_tech = "combat=1;magnets=2"
clumsy_check = 0
var/charge_tick = 0
special_check(var/mob/living/carbon/human/M)
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/redtag))
return 1
M << "\red You need to be wearing your laser tag vest!"
return 0
self_recharge = 1
New()
..()
processing_objects.Add(src)
Destroy()
processing_objects.Remove(src)
return ..()
process()
charge_tick++
if(charge_tick < 4) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return 1
/obj/item/weapon/gun/energy/laser/redtag/special_check(var/mob/living/carbon/human/M)
if(ishuman(M))
if(istype(M.wear_suit, /obj/item/clothing/suit/redtag))
return 1
M << "\red You need to be wearing your laser tag vest!"
return 0
@@ -35,8 +35,10 @@
else
user.update_inv_r_hand()
/obj/item/weapon/gun/energy/gun/mounted
name = "mounted energy gun"
self_recharge = 1
use_external_power = 1
/obj/item/weapon/gun/energy/gun/nuclear
name = "Advanced Energy Gun"
@@ -44,7 +46,6 @@
icon_state = "nucgun"
origin_tech = "combat=3;materials=5;powerstorage=3"
var/lightfail = 0
var/charge_tick = 0
can_flashlight = 0
can_charge = 0
@@ -40,25 +40,9 @@
projectile_type = "/obj/item/projectile/energy/floramut"
origin_tech = "materials=2;biotech=3;powerstorage=3"
modifystate = "floramut"
var/charge_tick = 0
var/mode = 0 //0 = mutate, 1 = yield boost
/obj/item/weapon/gun/energy/floragun/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/floragun/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/floragun/process()
charge_tick++
if(charge_tick < 4) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return 1
self_recharge = 1
/obj/item/weapon/gun/energy/floragun/attack_self(mob/living/user as mob)
switch(mode)
@@ -98,27 +82,9 @@
projectile_type = "/obj/item/projectile/meteor"
cell_type = "/obj/item/weapon/stock_parts/cell/potato"
clumsy_check = 0 //Admin spawn only, might as well let clowns use it.
var/charge_tick = 0
var/recharge_time = 5 //Time it takes for shots to recharge (in ticks)
New()
..()
processing_objects.Add(src)
Destroy()
processing_objects.Remove(src)
return ..()
process()
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return
self_recharge = 1
recharge_time = 5 //Time it takes for shots to recharge (in ticks)
/obj/item/weapon/gun/energy/meteorgun/pen
@@ -351,36 +317,12 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
/obj/item/weapon/gun/energy/disabler/cyborg
name = "cyborg disabler"
desc = "An integrated disabler that draws from a cyborg's power cell. This weapon contains a limiter to prevent the cyborg's power cell from overheating."
var/charge_tick = 0
var/recharge_time = 2.5
/obj/item/weapon/gun/energy/disabler/cyborg/New()
..()
processing_objects.Add(src)
self_recharge = 1
use_external_power = 1
recharge_time = 2.5
/obj/item/weapon/gun/energy/disabler/cyborg/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/disabler/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
if(power_supply.charge == power_supply.maxcharge)
return 0
charge_tick++
if(charge_tick < recharge_time)
return 0
charge_tick = 0
if(!power_supply) return 0 //sanity
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(R.cell.use(charge_cost/10)) //Take power from the borg...
power_supply.give(charge_cost) //... to recharge the shot
update_icon()
return 1
/* 3d printer 'pseudo guns' for borgs */
/obj/item/weapon/gun/energy/printer
@@ -392,32 +334,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
cell_type = "/obj/item/weapon/stock_parts/cell/secborg"
projectile_type = "/obj/item/projectile/bullet/midbullet3"
charge_cost = 200 //Yeah, let's NOT give them a 300 round clip that recharges, 20 is more reasonable and will actually hurt the borg's battery for overuse.
var/charge_tick = 0
var/recharge_time = 5
/obj/item/weapon/gun/energy/printer/update_icon()
return
/obj/item/weapon/gun/energy/printer/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/printer/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/printer/process()
if(power_supply.charge == power_supply.maxcharge)
return 0
charge_tick++
if(charge_tick < recharge_time)
return 0
charge_tick = 0
if(!power_supply) return 0 //sanity
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(R.cell.use(charge_cost/10)) //Take power from the borg...
power_supply.give(charge_cost) //...to recharge the shot
return 1
self_recharge = 1
use_external_power = 1
recharge_time = 5
+11 -45
View File
@@ -9,6 +9,11 @@
cell_type = "/obj/item/weapon/stock_parts/cell/crap"
fire_delay = 15
/obj/item/weapon/gun/energy/taser/mounted
name = "mounted taser gun"
self_recharge = 1
use_external_power = 1
/obj/item/weapon/gun/energy/taser/cyborg
name = "taser gun"
desc = "A small, low capacity gun used for non-lethal takedowns."
@@ -16,35 +21,9 @@
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
cell_type = "/obj/item/weapon/stock_parts/cell/secborg"
var/charge_tick = 0
var/recharge_time = 10 //Time it takes for shots to recharge (in ticks)
/obj/item/weapon/gun/energy/taser/cyborg/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/taser/cyborg/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/taser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
if(power_supply.charge == power_supply.maxcharge)
return 0
charge_tick++
if(charge_tick < recharge_time)
return 0
charge_tick = 0
if(!power_supply) return 0 //sanity
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(R.cell.use(charge_cost)) //Take power from the borg...
power_supply.give(charge_cost) //... to recharge the shot
update_icon()
return 1
self_recharge = 1
recharge_time = 10 //Time it takes for shots to recharge (in ticks)
/obj/item/weapon/gun/energy/stunrevolver
name = "stun revolver"
@@ -69,25 +48,12 @@
fire_sound = 'sound/weapons/Genhit.ogg'
projectile_type = "/obj/item/projectile/energy/bolt"
cell_type = "/obj/item/weapon/stock_parts/cell/crap"
var/charge_tick = 0
/obj/item/weapon/gun/energy/crossbow/New()
..()
processing_objects.Add(src)
self_recharge = 1
/obj/item/weapon/gun/energy/crossbow/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/energy/crossbow/process()
charge_tick++
if(charge_tick < 4)
return 0
charge_tick = 0
if(!power_supply)
return 0
power_supply.give(1000)
return 1
/obj/item/weapon/gun/energy/crossbow/ninja
name = "energy dart thrower"
projectile_type = /obj/item/projectile/energy/dart
/obj/item/weapon/gun/energy/crossbow/update_icon()
return