Merge pull request #7061 from Fox-McCloud/damn-cells

Damn cells
This commit is contained in:
Crazy Lemon
2017-04-09 13:55:30 -07:00
committed by GitHub
28 changed files with 212 additions and 216 deletions
@@ -63,7 +63,7 @@
desc = "Horrendous and awful. It smells like cancer. The fact it has wires attached to it is incidental."
var/obj/item/weapon/stock_parts/cell/cell = null
var/stun_strength = 5
var/stun_cost = 3750
var/stun_cost = 2000
/obj/item/clothing/gloves/color/yellow/stun/New()
..()
@@ -221,7 +221,7 @@
/obj/item/weapon/robot_module/security/New()
..()
modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg(src)
modules += new /obj/item/weapon/melee/baton/loaded/robot(src)
modules += new /obj/item/weapon/melee/baton/loaded(src)
modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src)
modules += new /obj/item/taperoll/police(src)
modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src)
+1 -5
View File
@@ -90,7 +90,6 @@
var/update_overlay = -1
var/global/status_overlays = 0
var/updating_icon = 0
var/standard_max_charge
var/datum/wires/apc/wires = null
//var/debug = 0
var/global/list/status_overlays_lock
@@ -142,9 +141,6 @@
apcs += src
apcs = sortAtom(apcs)
wires = new(src)
var/tmp/obj/item/weapon/stock_parts/cell/tmp_cell = new
standard_max_charge = tmp_cell.maxcharge
qdel(tmp_cell)
// offset 24 pixels in direction of dir
// this allows the APC to be embedded in a wall, yet still inside an area
@@ -198,7 +194,7 @@
if(cell_type)
src.cell = new/obj/item/weapon/stock_parts/cell(src)
cell.maxcharge = cell_type // cell_type is maximum charge (old default was 1000 or 2500 (values one and two respectively)
cell.charge = start_charge * cell.maxcharge / 100.0 // (convert percentage to actual value)
cell.charge = start_charge * cell.maxcharge / 100 // (convert percentage to actual value)
var/area/A = get_area(src)
+8 -8
View File
@@ -5,24 +5,25 @@
return 100.0*charge/maxcharge
// use power from a cell
/obj/item/weapon/stock_parts/cell/proc/use(var/amount)
/obj/item/weapon/stock_parts/cell/proc/use(amount)
if(rigged && amount > 0)
explode()
return 0
if(charge < amount) return 0
if(charge < amount)
return 0
charge = (charge - amount)
return 1
// recharge the cell
/obj/item/weapon/stock_parts/cell/proc/give(var/amount)
/obj/item/weapon/stock_parts/cell/proc/give(amount)
if(rigged && amount > 0)
explode()
return 0
if(maxcharge < amount) return 0
if(maxcharge < amount)
return 0
var/power_used = min(maxcharge-charge,amount)
if(crit_fail) return 0
if(crit_fail)
return 0
if(!prob(reliability))
minor_fault++
if(prob(minor_fault))
@@ -31,7 +32,6 @@
charge += power_used
return power_used
/obj/item/weapon/stock_parts/cell/examine(mob/user)
if(..(user, 1))
if(maxcharge <= 2500)
+17 -15
View File
@@ -3,7 +3,7 @@
desc = "The part of the gun that makes the laser go pew"
caliber = "energy"
projectile_type = /obj/item/projectile/energy
var/e_cost = 1000 //The amount of energy a cell needs to expend to create this shot.
var/e_cost = 100 //The amount of energy a cell needs to expend to create this shot.
var/select_name = "energy"
fire_sound = 'sound/weapons/Laser.ogg'
@@ -13,10 +13,11 @@
/obj/item/ammo_casing/energy/lasergun
projectile_type = /obj/item/projectile/beam/laser
e_cost = 830
e_cost = 83
select_name = "kill"
/obj/item/ammo_casing/energy/laser/hos //allows balancing of HoS and blueshit guns seperately from other energy weapons
e_cost = 100
/obj/item/ammo_casing/energy/laser/practice
projectile_type = /obj/item/projectile/beam/practice
@@ -35,13 +36,13 @@
/obj/item/ammo_casing/energy/laser/pulse
projectile_type = /obj/item/projectile/beam/pulse
e_cost = 2000
e_cost = 200
select_name = "DESTROY"
fire_sound = 'sound/weapons/pulse.ogg'
/obj/item/ammo_casing/energy/laser/scatter/pulse
projectile_type = /obj/item/projectile/beam/pulse
e_cost = 2000
e_cost = 200
select_name = "ANNIHILATE"
fire_sound = 'sound/weapons/pulse.ogg'
@@ -55,26 +56,27 @@
/obj/item/ammo_casing/energy/xray
projectile_type = /obj/item/projectile/beam/xray
e_cost = 500
e_cost = 50
fire_sound = 'sound/weapons/laser3.ogg'
/obj/item/ammo_casing/energy/immolator
projectile_type = /obj/item/projectile/beam/immolator
fire_sound = 'sound/weapons/laser3.ogg'
e_cost = 1250
e_cost = 125
/obj/item/ammo_casing/energy/electrode
projectile_type = /obj/item/projectile/energy/electrode
select_name = "stun"
fire_sound = 'sound/weapons/taser.ogg'
e_cost = 2000
e_cost = 200
delay = 15
/obj/item/ammo_casing/energy/electrode/gun
fire_sound = 'sound/weapons/gunshot.ogg'
e_cost = 1000
e_cost = 100
/obj/item/ammo_casing/energy/electrode/hos //allows balancing of HoS and blueshit guns seperately from other energy weapons
e_cost = 200
/obj/item/ammo_casing/energy/ion
projectile_type = /obj/item/projectile/ion
@@ -121,7 +123,7 @@
/obj/item/ammo_casing/energy/disabler
projectile_type = /obj/item/projectile/beam/disabler
select_name = "disable"
e_cost = 500
e_cost = 50
fire_sound = 'sound/weapons/taser2.ogg'
/obj/item/ammo_casing/energy/plasma
@@ -129,12 +131,12 @@
select_name = "plasma burst"
fire_sound = 'sound/weapons/plasma_cutter.ogg'
delay = 15
e_cost = 250
e_cost = 25
/obj/item/ammo_casing/energy/plasma/adv
projectile_type = /obj/item/projectile/plasma/adv
delay = 10
e_cost = 100
e_cost = 10
/obj/item/ammo_casing/energy/wormhole
projectile_type = /obj/item/projectile/beam/wormhole
@@ -153,7 +155,7 @@
/obj/item/ammo_casing/energy/bolt
projectile_type = /obj/item/projectile/energy/bolt
select_name = "bolt"
e_cost = 5000
e_cost = 500
fire_sound = 'sound/weapons/Genhit.ogg'
/obj/item/ammo_casing/energy/bolt/large
@@ -163,7 +165,7 @@
/obj/item/ammo_casing/energy/dart
projectile_type = /obj/item/projectile/energy/dart
fire_sound = 'sound/weapons/Genhit.ogg'
e_cost = 5000
e_cost = 500
select_name = "toxic dart"
/obj/item/ammo_casing/energy/instakill
@@ -187,7 +189,7 @@
/obj/item/ammo_casing/energy/shock_revolver
fire_sound = 'sound/magic/lightningbolt.ogg'
e_cost = 2000
e_cost = 200
select_name = "lightning beam"
projectile_type = /obj/item/projectile/energy/shock_revolver
@@ -210,7 +212,7 @@
/obj/item/ammo_casing/energy/teleport
projectile_type = /obj/item/projectile/energy/teleport
fire_sound = 'sound/weapons/wave.ogg'
e_cost = 1250
e_cost = 250
select_name = "teleport beam"
var/teleport_target
@@ -26,7 +26,7 @@
/obj/item/ammo_casing/magic/chaos
projectile_type = /obj/item/projectile/magic
/obj/item/ammo_casing/magic/spellblade
projectile_type = /obj/item/projectile/magic/spellblade
@@ -49,4 +49,4 @@
projectile_type = /obj/item/projectile/bullet/midbullet3
select_name = "spraydown"
fire_sound = 'sound/weapons/gunshot_smg.ogg'
e_cost = 200
e_cost = 20
+4 -4
View File
@@ -34,7 +34,7 @@
if(selfcharge)
processing_objects.Add(src)
update_icon()
/obj/item/weapon/gun/energy/proc/update_ammo_types()
var/obj/item/ammo_casing/energy/shot
for(var/i = 1, i <= ammo_type.len, i++)
@@ -61,9 +61,9 @@
var/obj/item/ammo_casing/energy/E = ammo_type[select]
if(use_external_power)
var/obj/item/weapon/stock_parts/cell/external = get_external_power_supply()
if(!external || !external.use((E.e_cost)/10)) //Take power from the borg...
if(!external || !external.use(E.e_cost)) //Take power from the borg...
return //Note, uses /10 because of shitty mods to the cell system
power_supply.give(1000) //... to recharge the shot
power_supply.give(100) //... to recharge the shot
update_icon()
/obj/item/weapon/gun/energy/attack_self(mob/living/user as mob)
@@ -176,7 +176,7 @@
var/mob/living/silicon/robot/R = loc
if(R && R.cell)
var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot
if(R.cell.use(shot.e_cost/10)) //Take power from the borg... //Divided by 10 because cells and charge costs are fucked.
if(R.cell.use(shot.e_cost)) //Take power from the borg...
power_supply.give(shot.e_cost) //... to recharge the shot
/obj/item/weapon/gun/energy/proc/get_external_power_supply()
@@ -94,7 +94,7 @@
empty()
/obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty()
power_supply.use(5000)
power_supply.use(500)
update_icon()
/obj/item/weapon/gun/energy/kinetic_accelerator/proc/attempt_reload()
@@ -120,7 +120,7 @@
return
/obj/item/weapon/gun/energy/kinetic_accelerator/proc/reload()
power_supply.give(5000)
power_supply.give(500)
if(!suppressed)
playsound(loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
else if(isliving(loc))
@@ -144,7 +144,7 @@
/obj/item/ammo_casing/energy/kinetic
projectile_type = /obj/item/projectile/kinetic
select_name = "kinetic"
e_cost = 5000
e_cost = 500
fire_sound = 'sound/weapons/Kenetic_accel.ogg' // fine spelling there chap
/obj/item/ammo_casing/energy/kinetic/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
@@ -181,7 +181,7 @@
/obj/item/projectile/kinetic/pod
range = 4
/obj/item/projectile/kinetic/pod/regular
damage = 50
pressure_decrease = 0.5
@@ -39,8 +39,8 @@
/obj/item/weapon/gun/energy/gun/mini/New()
gun_light = new /obj/item/device/flashlight/seclite(src)
..()
power_supply.maxcharge = 6000
power_supply.charge = 6000
power_supply.maxcharge = 600
power_supply.charge = 600
/obj/item/weapon/gun/energy/gun/mini/update_icon()
..()
+17 -19
View File
@@ -157,11 +157,11 @@
if(istype(A, /obj/item/stack/sheet/mineral/plasma))
var/obj/item/stack/sheet/S = A
S.use(1)
power_supply.give(10000)
power_supply.give(1000)
to_chat(user, "<span class='notice'>You insert [A] in [src], recharging it.</span>")
else if(istype(A, /obj/item/weapon/ore/plasma))
qdel(A)
power_supply.give(5000)
power_supply.give(500)
to_chat(user, "<span class='notice'>You insert [A] in [src], recharging it.</span>")
else
..()
@@ -308,12 +308,10 @@
desc = "A gun that changes the body temperature of its targets."
var/temperature = 300
var/target_temperature = 300
var/e_cost = 1000
origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2"
ammo_type = list(/obj/item/ammo_casing/energy/temp)
selfcharge = 1
cell_type = /obj/item/weapon/stock_parts/cell
var/powercost = ""
var/powercostcolor = ""
@@ -369,19 +367,19 @@
T.temp = temperature
switch(temperature)
if(0 to 100)
T.e_cost = 3000
T.e_cost = 300
powercost = "High"
if(100 to 250)
T.e_cost = 2000
T.e_cost = 200
powercost = "Medium"
if(251 to 300)
T.e_cost = 1000
T.e_cost = 100
powercost = "Low"
if(301 to 400)
T.e_cost = 2000
T.e_cost = 200
powercost = "Medium"
if(401 to 1000)
T.e_cost = 3000
T.e_cost = 300
powercost = "High"
switch(powercost)
if("High")
@@ -471,16 +469,16 @@
/obj/item/weapon/gun/energy/temperature/proc/update_charge()
var/charge = power_supply.charge
switch(charge)
if(9000 to INFINITY) overlays += "900"
if(8000 to 9000) overlays += "800"
if(7000 to 8000) overlays += "700"
if(6000 to 7000) overlays += "600"
if(5000 to 6000) overlays += "500"
if(4000 to 5000) overlays += "400"
if(3000 to 4000) overlays += "300"
if(2000 to 3000) overlays += "200"
if(1000 to 2002) overlays += "100"
if(-INFINITY to 1000) overlays += "0"
if(900 to INFINITY) overlays += "900"
if(800 to 900) overlays += "800"
if(700 to 800) overlays += "700"
if(600 to 700) overlays += "600"
if(500 to 600) overlays += "500"
if(400 to 500) overlays += "400"
if(300 to 400) overlays += "300"
if(200 to 300) overlays += "200"
if(100 to 202) overlays += "100"
if(-INFINITY to 100) overlays += "0"
/obj/item/weapon/gun/energy/mimicgun
name = "mimic gun"
@@ -5,23 +5,12 @@
item_state = null //so the human update icon uses the icon_state instead.
ammo_type = list(/obj/item/ammo_casing/energy/electrode)
ammo_x_offset = 3
cell_type = /obj/item/weapon/stock_parts/cell/crap
/obj/item/weapon/gun/energy/taser/mounted
name = "mounted taser gun"
selfcharge = 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."
icon_state = "taser"
cell_type = /obj/item/weapon/stock_parts/cell/secborg
/obj/item/weapon/gun/energy/disabler/cyborg/newshot()
..()
robocharge()
/obj/item/weapon/gun/energy/shock_revolver
name = "tesla revolver"
desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers."
@@ -6,7 +6,6 @@
icon_state = "telegun"
item_state = "ionrifle"
origin_tech = "combat=6;materials=7;powerstorage=5;bluespace=5;syndicate=4"
cell_type = /obj/item/weapon/stock_parts/cell/crap
ammo_type = list(/obj/item/ammo_casing/energy/teleport)
shaded_charge = 1
var/teleport_target = null
+1 -1
View File
@@ -267,7 +267,7 @@
cargo_hold.emp_act(severity)
if(battery && battery.charge > 0)
battery.use((battery.charge / 2) / severity)
battery.use((battery.charge/3)/(severity*2))
deal_damage(80 / severity)
if(empcounter < (40 / severity))
empcounter = 40 / severity
+1 -1
View File
@@ -128,7 +128,7 @@
var/rand_y = 0
var/emagged = 0
var/teleporting = 0
var/chargecost = 1500
var/chargecost = 1000
/obj/item/weapon/rcs/New()
..()