diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 68cf5ad91d..32771984f6 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -13,8 +13,8 @@
firemode_type = /datum/firemode/energy
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
- var/charge_cost = 100 //How much energy is needed to fire.
- var/maxcharge = 1000 //the capacity of the weapon's power cell. Specifying a cell_type overrides this value.
+ var/charge_cost = 200 //How much energy is needed to fire.
+ var/max_shots = 10 //Determines the capacity of the weapon's power cell. Specifying a cell_type overrides this value.
var/cell_type = null
var/projectile_type = /obj/item/projectile/beam/practice
var/modifystate
@@ -47,7 +47,7 @@
if(cell_type)
power_supply = new cell_type(src)
else
- power_supply = new /obj/item/weapon/cell/device/variable(src, maxcharge)
+ power_supply = new /obj/item/weapon/cell/device/variable(src, max_shots*charge_cost)
if(self_recharge)
processing_objects.Add(src)
update_icon()
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index dffc012998..aef875b478 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -43,7 +43,7 @@ obj/item/weapon/gun/energy/retro
w_class = 3
projectile_type = /obj/item/projectile/beam
origin_tech = null
- charge_cost = 200 //to compensate a bit for self-recharging
+ max_shots = 5 //to compensate a bit for self-recharging
self_recharge = 1
/obj/item/weapon/gun/energy/lasercannon
@@ -55,7 +55,8 @@ obj/item/weapon/gun/energy/retro
origin_tech = "combat=4;materials=3;powerstorage=3"
slot_flags = SLOT_BELT|SLOT_BACK
projectile_type = /obj/item/projectile/beam/heavylaser
- charge_cost = 250
+ charge_cost = 400
+ max_shots = 5
fire_delay = 20
/obj/item/weapon/gun/energy/lasercannon/mounted
@@ -72,7 +73,8 @@ obj/item/weapon/gun/energy/retro
fire_sound = 'sound/weapons/laser3.ogg'
origin_tech = "combat=5;materials=3;magnets=2;syndicate=2"
projectile_type = /obj/item/projectile/beam/xray
- charge_cost = 50
+ charge_cost = 100
+ max_shots = 20
fire_delay = 1
/obj/item/weapon/gun/energy/sniperrifle
@@ -84,7 +86,8 @@ obj/item/weapon/gun/energy/retro
origin_tech = "combat=6;materials=5;powerstorage=4"
projectile_type = /obj/item/projectile/beam/sniper
slot_flags = SLOT_BACK
- charge_cost = 250
+ charge_cost = 400
+ max_shots = 4
fire_delay = 35
force = 10
w_class = 4
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index 1e6d22a510..adb2d7e517 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -4,8 +4,8 @@
icon_state = "energystun100"
item_state = null //so the human update icon uses the icon_state instead.
fire_sound = 'sound/weapons/Taser.ogg'
+ max_shots = 10
- charge_cost = 100 //How much energy is needed to fire.
projectile_type = /obj/item/projectile/beam/stun
origin_tech = "combat=3;magnets=2"
modifystate = "energystun"
diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm
index 62c77cf4f3..507bc22735 100644
--- a/code/modules/projectiles/guns/energy/pulse.dm
+++ b/code/modules/projectiles/guns/energy/pulse.dm
@@ -6,14 +6,14 @@
slot_flags = SLOT_BELT|SLOT_BACK
force = 10
fire_sound='sound/weapons/Laser.ogg'
- charge_cost = 50
projectile_type = /obj/item/projectile/beam
sel_mode = 2
+ max_shots = 10
firemodes = list(
list(name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'),
list(name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/Laser.ogg'),
- list(name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25, charge_cost=100),
+ list(name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25, charge_cost=400),
)
/obj/item/weapon/gun/energy/pulse_rifle/mounted
@@ -27,6 +27,7 @@
fire_delay = 25
fire_sound='sound/weapons/pulse.ogg'
projectile_type=/obj/item/projectile/beam/pulse
+ charge_cost=400
/obj/item/weapon/gun/energy/pulse_rifle/destroyer/attack_self(mob/living/user as mob)
user << "[src.name] has three settings, and they are all DESTROY."
@@ -37,4 +38,4 @@
desc = "It's not the size of the gun, it's the size of the hole it puts through people."
slot_flags = SLOT_BELT|SLOT_HOLSTER
icon_state = "m1911-p"
- cell_type = /obj/item/weapon/cell/crap
+ max_shots = 5
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 5525c25bbf..d9ef1b9504 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -9,7 +9,8 @@
force = 10
flags = CONDUCT
slot_flags = SLOT_BACK
- charge_cost = 100
+ charge_cost = 300
+ max_shots = 10
projectile_type = /obj/item/projectile/ion
/obj/item/weapon/gun/energy/ionrifle/emp_act(severity)
@@ -29,7 +30,7 @@
item_state = "decloner"
fire_sound = 'sound/weapons/pulse3.ogg'
origin_tech = "combat=5;materials=4;powerstorage=3"
- charge_cost = 100
+ max_shots = 10
projectile_type = /obj/item/projectile/energy/declone
/obj/item/weapon/gun/energy/floragun
@@ -39,6 +40,7 @@
item_state = "floramut"
fire_sound = 'sound/effects/stealthoff.ogg'
charge_cost = 100
+ max_shots = 10
projectile_type = /obj/item/projectile/energy/floramut
origin_tech = "materials=2;biotech=3;powerstorage=3"
modifystate = "floramut"
@@ -65,7 +67,6 @@
slot_flags = SLOT_BELT|SLOT_BACK
w_class = 4
projectile_type = /obj/item/projectile/meteor
- charge_cost = 100
cell_type = /obj/item/weapon/cell/potato
self_recharge = 1
recharge_time = 5 //Time it takes for shots to recharge (in ticks)
@@ -110,7 +111,7 @@
flags = CONDUCT
slot_flags = SLOT_BACK
w_class = 4.0
- charge_cost = 200
+ max_shots = 5
projectile_type = /obj/item/projectile/change
origin_tech = null
self_recharge = 1
@@ -127,7 +128,7 @@
name = "staff of animation"
desc = "An artefact that spits bolts of life-force which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines."
projectile_type = /obj/item/projectile/animate
- charge_cost = 100
+ max_shots = 10
obj/item/weapon/gun/energy/staff/focus
name = "mental focus"
@@ -140,11 +141,11 @@ obj/item/weapon/gun/energy/staff/focus
/*
attack_self(mob/living/user as mob)
if(projectile_type == "/obj/item/projectile/forcebolt")
- charge_cost = 200
+ charge_cost = 400
user << "The [src.name] will now strike a small area."
projectile_type = "/obj/item/projectile/forcebolt/strong"
else
- charge_cost = 100
+ charge_cost = 200
user << "The [src.name] will now strike only a single person."
projectile_type = "/obj/item/projectile/forcebolt"
*/
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 1d51f7957e..44d6958f45 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -4,9 +4,8 @@
icon_state = "taser"
item_state = null //so the human update icon uses the icon_state instead.
fire_sound = 'sound/weapons/Taser.ogg'
- charge_cost = 100
+ max_shots = 5
projectile_type = /obj/item/projectile/beam/stun
- cell_type = /obj/item/weapon/cell/crap
/obj/item/weapon/gun/energy/taser/mounted
name = "mounted taser gun"
@@ -15,7 +14,7 @@
/obj/item/weapon/gun/energy/taser/mounted/cyborg
name = "taser gun"
- cell_type = /obj/item/weapon/cell/secborg
+ max_shots = 6
recharge_time = 10 //Time it takes for shots to recharge (in ticks)
@@ -26,9 +25,8 @@
item_state = "stunrevolver"
fire_sound = 'sound/weapons/Gunshot.ogg'
origin_tech = "combat=3;materials=3;powerstorage=2"
- charge_cost = 125
projectile_type = /obj/item/projectile/energy/electrode/stunshot
- cell_type = /obj/item/weapon/cell
+ max_shots = 8
/obj/item/weapon/gun/energy/crossbow
@@ -43,7 +41,7 @@
silenced = 1
fire_sound = 'sound/weapons/Genhit.ogg'
projectile_type = /obj/item/projectile/energy/bolt
- cell_type = /obj/item/weapon/cell/crap
+ max_shots = 5
self_recharge = 1
charge_meter = 0