From af78338a99e2af34c51d649ecd7fafb146be2c06 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 8 Feb 2015 00:22:13 -0500 Subject: [PATCH] Nerfborgs --- code/game/machinery/rechargestation.dm | 26 +++---- .../objects/items/robot/robot_upgrades.dm | 12 ++-- .../mob/living/silicon/robot/robot_modules.dm | 4 +- .../projectiles/guns/energy/special.dm | 32 +++++++++ .../designs/mechfabricator_designs.dm | 68 +++++++++---------- 5 files changed, 87 insertions(+), 55 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 7b5ba784ef8..eea611886da 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -22,13 +22,13 @@ component_parts += new /obj/item/weapon/cell/high(src) RefreshParts() build_icon() - + /obj/machinery/recharge_station/upgraded/New() ..() component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/cell/hyper(src) + component_parts += new /obj/item/weapon/cell/hyper(src) RefreshParts() /obj/machinery/recharge_station/RefreshParts() @@ -39,8 +39,8 @@ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) repairs += M.rating - 1 for(var/obj/item/weapon/cell/C in component_parts) - recharge_speed *= C.maxcharge / 10000 - + recharge_speed *= C.maxcharge / 10000 + /obj/machinery/recharge_station/process() if(!(NOPOWER|BROKEN)) return @@ -65,8 +65,8 @@ if(occupant) occupant.emp_act(severity) go_out() - ..(severity) - + ..(severity) + /obj/machinery/recharge_station/proc/build_icon() if(NOPOWER|BROKEN) if(src.occupant) @@ -80,15 +80,15 @@ if (istype(P, /obj/item/weapon/screwdriver)) if(src.occupant) user << "The maintenance panel is locked." - return + return default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P) - return + return if(exchange_parts(user, P)) - return - - default_deconstruction_crowbar(P) - + return + + default_deconstruction_crowbar(P) + /obj/machinery/recharge_station/proc/process_occupant() if(src.occupant) if (istype(occupant, /mob/living/silicon/robot)) @@ -137,7 +137,7 @@ O:broken = 0 O:times_used = 0 O:icon_state = "flash" - if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg)) + if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg)) if(O:power_supply.charge < O:power_supply.maxcharge) O:power_supply.give(O:charge_cost) O:update_icon() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 66db8bfb189..23bed41262c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -100,15 +100,15 @@ return 1 -/obj/item/borg/upgrade/tasercooler - name = "robotic Rapid Taser Cooling Module" - desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate." +/obj/item/borg/upgrade/disablercooler + name = "robotic Rapid Disabler Cooling Module" + desc = "Used to cool a mounted disabler, increasing the potential current in it and thus its recharge rate." construction_cost = list("metal"=80000 , "glass"=6000 , "gold"= 2000, "diamond" = 500) icon_state = "cyborg_upgrade3" require_module = 1 -/obj/item/borg/upgrade/tasercooler/action(var/mob/living/silicon/robot/R) +/obj/item/borg/upgrade/disablercooler/action(var/mob/living/silicon/robot/R) if(..()) return 0 if(!istype(R.module, /obj/item/weapon/robot_module/security)) @@ -116,13 +116,13 @@ usr << "There's no mounting point for the module!" return 0 - var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in R.module + var/obj/item/weapon/gun/energy/disabler/cyborg/T = locate() in R.module if(!T) T = locate() in R.module.contents if(!T) T = locate() in R.module.modules if(!T) - usr << "This robot has had its taser removed!" + usr << "This robot has had its disabler removed!" return 0 if(T.recharge_time <= 2) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 294e5859bb8..92a8f1fd557 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -222,7 +222,7 @@ src.modules += new /obj/item/device/flash/cyborg(src) src.modules += new /obj/item/weapon/handcuffs/cyborg(src) src.modules += new /obj/item/weapon/melee/baton/robot(src) - src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src) + src.modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src) src.modules += new /obj/item/taperoll/police(src) src.modules += new /obj/item/device/taperecorder(src) src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) @@ -343,7 +343,7 @@ src.modules += new /obj/item/weapon/card/emag(src) src.modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src) src.modules += new /obj/item/weapon/crowbar(src) - src.modules += new /obj/item/weapon/pinpointer/operative(src) + src.modules += new /obj/item/weapon/pinpointer/operative(src) src.emag = null return diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d598d461895..04982e8e587 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -284,6 +284,38 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. cell_type = "/obj/item/weapon/cell" charge_cost = 500 +/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) + + +/obj/item/weapon/gun/energy/disabler/cyborg/Destroy() + processing_objects.Remove(src) + ..() + +/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)) //Take power from the borg... + power_supply.give(charge_cost) //... to recharge the shot + + update_icon() + return 1 /* 3d printer 'pseudo guns' for borgs */ diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 78e522b21b1..3f784559213 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -65,7 +65,7 @@ construction_time = 200 category = list("Cyborg") -//Robot repair +//Robot repair /datum/design/borg_binary_communication name = "Cyborg Binary Communication Device" id = "borg_binary_communication" @@ -74,7 +74,7 @@ materials = list("$metal"=2500, "$glass"=1000) construction_time = 200 category = list("Cyborg Repair") - + /datum/design/borg_radio name = "Cyborg Radio" id = "borg_radio" @@ -83,7 +83,7 @@ materials = list("$metal"=2500, "$glass"=1000) construction_time = 200 category = list("Cyborg Repair") - + /datum/design/borg_actuator name = "Cyborg Actuator" id = "borg_actuator" @@ -92,7 +92,7 @@ materials = list("$metal"=3500) construction_time = 200 category = list("Cyborg Repair") - + /datum/design/borg_diagnosis_unit name = "Cyborg Diagnosis Unit" id = "borg_diagnosis_unit" @@ -101,7 +101,7 @@ materials = list("$metal"=3500) construction_time = 200 category = list("Cyborg Repair") - + /datum/design/borg_camera name = "Cyborg Camera" id = "borg_camera" @@ -110,7 +110,7 @@ materials = list("$metal"=2500, "$glass"=1000) construction_time = 200 category = list("Cyborg Repair") - + /datum/design/borg_armor name = "Cyborg Armor" id = "borg_armor" @@ -541,7 +541,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_drill name = "Exosuit Engineering Equipment (Drill)" id = "mech_drill" @@ -559,7 +559,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_hydraulic_clamp name = "Exosuit Engineering Equipment (Hydraulic Clamp)" id = "mech_hydraulic_clamp" @@ -622,7 +622,7 @@ materials = list("$metal"=20000,"$bananium"=5000) construction_time = 300 category = list("Exosuit Equipment") - + /datum/design/mech_honker name = "HoNkER BlAsT 5000" id = "mech_honker" @@ -631,7 +631,7 @@ materials = list("$metal"=20000,"$bananium"=10000) construction_time = 500 category = list("Exosuit Equipment") - + /datum/design/mech_mousetrap_mortar name = "H.O.N.K Mousetrap Mortar" id = "mech_mousetrap_mortar" @@ -640,7 +640,7 @@ materials = list("$metal"=20000,"$bananium"=5000) construction_time = 300 category = list("Exosuit Equipment") - + // Exosuit Modules /datum/design/mech_diamond_drill name = "Exosuit Module (Diamond Mining Drill)" @@ -652,7 +652,7 @@ materials = list("$metal"=10000,"$diamond"=6500) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_generator_nuclear name = "Exosuit Module (ExoNuclear Reactor)" desc = "Compact nuclear reactor module." @@ -663,7 +663,7 @@ materials = list("$metal"=10000,"$glass"=1000,"$silver"=500) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_gravcatapult name = "Exosuit Module (Gravitational Catapult Module)" desc = "An exosuit mounted Gravitational Catapult." @@ -685,7 +685,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_rcd name = "Exosuit Module (RCD Module)" desc = "An exosuit-mounted Rapid Construction Device." @@ -696,7 +696,7 @@ materials = list("$metal"=30000,"$gold"=20000,"$plasma"=25000,"$silver"=20000) construction_time = 1200 category = list("Exosuit Equipment") - + /datum/design/mech_ccw_armor name = "Exosuit Module (Reactive Armor Booster Module)" desc = "Exosuit-mounted armor booster." @@ -707,7 +707,7 @@ materials = list("$metal"=20000,"$silver"=5000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_proj_armor name = "Exosuit Module (Reflective Armor Booster Module)" desc = "Exosuit-mounted armor booster." @@ -718,7 +718,7 @@ materials = list("$metal"=20000,"$gold"=5000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_repair_droid name = "Exosuit Module (Repair Droid Module)" desc = "Automated Repair Droid. BEEP BOOP" @@ -729,7 +729,7 @@ materials = list("$metal"=10000,"$glass"=5000,"$gold"=1000,"$silver"=2000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/clusterbang_launcher name = "Exosuit Module (SOB-3 Clusterbang Launcher)" desc = "A weapon that violates the Geneva Convention at 3 rounds per minute" @@ -740,7 +740,7 @@ materials = list("$metal"=20000,"$gold"=10000,"$uranium"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_teleporter name = "Exosuit Module (Teleporter Module)" desc = "An exosuit module that allows exosuits to teleport to any position in view." @@ -751,7 +751,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_energy_relay name = "Exosuit Module (Tesla Energy Relay)" desc = "Tesla Energy Relay" @@ -761,8 +761,8 @@ build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay materials = list("$metal"=10000,"$glass"=2000,"$gold"=2000,"$silver"=3000) construction_time = 100 - category = list("Exosuit Equipment") - + category = list("Exosuit Equipment") + // Exosuit Weapons /datum/design/mech_laser_heavy name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" @@ -774,7 +774,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_laser name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" desc = "Allows for the construction of CH-PS Laser." @@ -785,7 +785,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_carbine name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" desc = "Allows for the construction of FNX-99 \"Hades\" Carbine." @@ -796,7 +796,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_scattershot name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" desc = "Allows for the construction of LBX AC 10." @@ -807,7 +807,7 @@ materials = list("$metal"=10000) construction_time = 100 category = list("Exosuit Equipment") - + /datum/design/mech_ion name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" desc = "Allows for the construction of MKIV Ion Heavy Cannon." @@ -850,7 +850,7 @@ req_tech = list("combat" = 4, "syndicate" = 3) build_path = /obj/item/borg/upgrade/syndicate category = "Cyborg Upgrade Modules" - category = list("Cyborg Upgrade Modules") + category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_jetpack name = "Cyborg Upgrade Module (Mining Jetpack)" @@ -860,16 +860,16 @@ materials = list("$metal"=10000,"$plasma"=15000,"$uranium" = 20000) construction_time = 120 category = list("Cyborg Upgrade Modules") - -/datum/design/borg_upgrade_tasercooler - name = "Cyborg Upgrade Module (Rapid Taser Cooling Module)" - id = "borg_upgrade_tasercooler" + +/datum/design/borg_upgrade_disablercooler + name = "Cyborg Upgrade Module (Rapid Disabler Cooling Module)" + id = "borg_upgrade_disablercooler" build_type = MECHFAB - build_path = /obj/item/borg/upgrade/tasercooler + build_path = /obj/item/borg/upgrade/disablercooler materials = list("$metal"=80000 , "$glass"=6000 , "$gold"= 2000, "$diamond" = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") - + /datum/design/borg_upgrade_rename name = "Cyborg Upgrade Module (Rename Module)" id = "borg_upgrade_rename" @@ -878,7 +878,7 @@ materials = list("$metal"=35000) construction_time = 120 category = list("Cyborg Upgrade Modules") - + /datum/design/borg_upgrade_reset name = "Cyborg Upgrade Module (Reset Module)" id = "borg_upgrade_reset"