From 54c1d0ef3556f8a342b4019944af61610d5ceac2 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Tue, 23 Aug 2016 15:26:19 -0400 Subject: [PATCH] MODS MODS MODS GET EM NOW --- .../objects/items/robot/robot_upgrades.dm | 26 -- code/modules/mining/abandoned_crates.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 2 +- code/modules/mining/machine_vending.dm | 86 +++--- .../mob/living/silicon/robot/robot_modules.dm | 1 + .../guns/energy/kinetic_accelerator.dm | 266 +++++++++++++----- code/modules/research/designs.dm | 32 +-- .../designs/mechfabricator_designs.dm | 10 - icons/obj/projectiles.dmi | Bin 20611 -> 20668 bytes 9 files changed, 256 insertions(+), 169 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 142f4eec0f9..5256c37cd52 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -194,32 +194,6 @@ return 1 -/obj/item/borg/upgrade/aoeka - name = "mining cyborg mining aoe kinetic accelerator" - desc = "A mining cyborg kinetic accelerator upgrade that causes it to destroy rock in an AoE." - icon_state = "cyborg_upgrade3" - require_module = 1 - module_type = /obj/item/weapon/robot_module/miner - origin_tech = "materials=6;powerstorage=4;engineering=4;magnets=4;combat=4" - -/obj/item/borg/upgrade/aoeka/action(mob/living/silicon/robot/R) - if(..()) - return - - for(var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) - var/current_mod_capacity = 0 - for(var/obj/item/modkit/M in H.modkits) - current_mod_capacity += M.cost - var/obj/item/modkit/aoe/turfs/T = new/obj/item/modkit/aoe/turfs(H) - if((current_mod_capacity + T.cost) > H.max_mod_capacity) - usr << "This unit has no space for additional modkits!" - qdel(T) - return - else - T.install(H) - - return 1 - /obj/item/borg/upgrade/syndicate name = "illegal equipment module" desc = "Unlocks the hidden, deadlier functions of a cyborg" diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 33372cc6578..67763d10403 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -65,7 +65,7 @@ if(57 to 58) new /obj/item/toy/syndicateballoon(src) if(59 to 60) - new /obj/item/modkit/aoe/mobs(src) + new /obj/item/borg/upgrade/modkit/aoe/mobs(src) new /obj/item/clothing/suit/space(src) new /obj/item/clothing/head/helmet/space(src) if(61 to 62) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 336dfb48c30..88c1b79896e 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -47,7 +47,7 @@ if(16) new /obj/item/weapon/guardiancreator(src) if(17) - new /obj/item/modkit/aoe/mobs(src) + new /obj/item/borg/upgrade/modkit/aoe/mobs(src) if(18) new /obj/item/device/warp_cube/red(src) if(19) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 6fa00908eb8..10e51a0d913 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -8,46 +8,54 @@ density = 1 anchored = 1 var/obj/item/weapon/card/id/inserted_id - var/list/prize_list = list( - new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), - new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), - new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100), - new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium,100), - new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), - new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), - new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), - new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), - new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), - new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer , 400), - new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core , 400), - new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule , 400), - new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500), + var/list/prize_list = list( //if you add something to this, please, for the love of god, use tabs and not spaces. + new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), + new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), + new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100), + new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium,100), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), + new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), + new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), + new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer, 400), + new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), + new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule, 400), + new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500), new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/weapon/storage/belt/mining, 500), new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/medipen/survival, 500), - new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), - new /datum/data/mining_equipment("Tracking Implant Kit",/obj/item/weapon/storage/box/minertracker, 600), - new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), - new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/mining_hammer, 750), - new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), - new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800), - new /datum/data/mining_equipment("Fulton Pack", /obj/item/weapon/extraction_pack, 1000), - new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), - new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1000), - new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/weapon/tank/jetpack/suit, 2000), - new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), - new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), - new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), - new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500), - new /datum/data/mining_equipment("KA Range Increase", /obj/item/modkit/range, 1000), - new /datum/data/mining_equipment("KA Damage Increase", /obj/item/modkit/damage, 1000), - new /datum/data/mining_equipment("KA Cooldown Decrease",/obj/item/modkit/cooldown, 1000), - new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), - new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800), - new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400), - new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), - new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), - new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), - new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), + new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), + new /datum/data/mining_equipment("Tracking Implant Kit",/obj/item/weapon/storage/box/minertracker, 600), + new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750), + new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/mining_hammer, 750), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750), + new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800), + new /datum/data/mining_equipment("Fulton Pack", /obj/item/weapon/extraction_pack, 1000), + new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), + new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1000), + new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/weapon/tank/jetpack/suit, 2000), + new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500), + new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 200), + new /datum/data/mining_equipment("KA Brown Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/brown, 250), + new /datum/data/mining_equipment("KA Yellow Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/yellow, 250), + new /datum/data/mining_equipment("KA Orange Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/orange, 250), + new /datum/data/mining_equipment("KA Green Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/green, 250), + new /datum/data/mining_equipment("KA Purple Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/purple, 250), + new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 400), + new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 500), + new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), + new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), + new /datum/data/mining_equipment("KA Cooldown Decrease",/obj/item/borg/upgrade/modkit/cooldown, 1000), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), + new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800), + new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400), + new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), + new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), + new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), + new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), ) /datum/data/mining_equipment/ @@ -209,7 +217,7 @@ new /datum/data/mining_equipment("Sulphuric Acid", /obj/item/weapon/reagent_containers/glass/beaker/sulphuric, 500), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600), new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), - new /datum/data/mining_equipment("Modification Kit", /obj/item/modkit, 1700), + new /datum/data/mining_equipment("Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1700), new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/weapon/storage/box/rndboards, 2000), ) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3f5482fe267..878bec54561 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -318,6 +318,7 @@ modules += new /obj/item/weapon/storage/bag/ore/cyborg(src) modules += new /obj/item/weapon/pickaxe/drill/cyborg(src) modules += new /obj/item/weapon/shovel(src) + modules += new /obj/item/weapon/crowbar/cyborg(src) modules += new /obj/item/weapon/weldingtool/mini(src) modules += new /obj/item/weapon/extinguisher/mini(src) modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index a60df91fdbe..53027608459 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -17,49 +17,52 @@ var/unique_frequency = FALSE // modified by KA modkits var/overheat = FALSE - var/max_mod_capacity = 6 + var/max_mod_capacity = 100 var/list/modkits = list() /obj/item/weapon/gun/energy/kinetic_accelerator/examine(mob/user) ..() - for(var/A in modkits) - var/obj/item/modkit/M = A - user <<"There is a [M.name] mod installed." + user << "[get_remaining_mod_capacity()]% mod capacity remaining." + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + user << "There is a [M.name] mod installed, using [M.cost]% capacity." /obj/item/weapon/gun/energy/kinetic_accelerator/attackby(obj/item/A, mob/user) if(istype(A, /obj/item/weapon/crowbar)) if(modkits.len) user << "You pry the modifications out." playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) - for(var/obj/item/modkit/M in modkits) + for(var/obj/item/borg/upgrade/modkit/M in modkits) M.uninstall(src) else user << "There are no modifications currently installed." - else if(istype(A, /obj/item/modkit)) - var/obj/item/modkit/MK = A - var/current_mod_capacity = 0 - for(var/obj/item/modkit/M in modkits) - current_mod_capacity += M.cost - if((current_mod_capacity + MK.cost) > max_mod_capacity) - user << "You don't have room to install this modkit. Use a crowbar to remove existing modkits." - return - else - user << "You install the modkit." - playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) - user.unEquip(MK) - MK.install(src) + else if(istype(A, /obj/item/borg/upgrade/modkit)) + var/obj/item/borg/upgrade/modkit/MK = A + MK.install(src, user) else ..() +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_remaining_mod_capacity() + var/current_capacity_used = 0 + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + current_capacity_used += M.cost + return max_mod_capacity - current_capacity_used + +/obj/item/weapon/gun/energy/kinetic_accelerator/proc/get_modkits() + . = list() + for(var/A in modkits) + . += A /obj/item/weapon/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/item/projectile/kinetic/K) - for(var/obj/item/modkit/M in src) + for(var/A in get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A M.modify_projectile(K) /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg holds_charge = TRUE unique_frequency = TRUE - max_mod_capacity = 2 + max_mod_capacity = 80 /obj/item/weapon/gun/energy/kinetic_accelerator/New() . = ..() @@ -151,7 +154,7 @@ if(pressure > 50) BB.name = "weakened [BB.name]" var/obj/item/projectile/kinetic/K = BB - K.damage /= K.damage_divisor + K.damage *= K.pressure_decrease //Projectiles @@ -162,31 +165,30 @@ damage_type = BRUTE flag = "bomb" range = 3 - var/damage_divisor = 4 + var/pressure_decrease = 0.25 var/turf_aoe = FALSE var/mob_aoe = 0 + var/list/hit_overlays = list() /obj/item/projectile/kinetic/on_range() - if(turf_aoe || mob_aoe) - aoe_blast() - PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, loc) + strike_thing() ..() /obj/item/projectile/kinetic/on_hit(atom/target) - if(turf_aoe || mob_aoe) - aoe_blast(target) - var/turf/target_turf= get_turf(target) - if(istype(target_turf, /turf/closed/mineral)) - var/turf/closed/mineral/M = target_turf - M.gets_drilled(firer) - PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, target_turf) + strike_thing(target) . = ..() -/obj/item/projectile/kinetic/proc/aoe_blast(atom/target) +/obj/item/projectile/kinetic/proc/strike_thing(atom/target) var/turf/target_turf = get_turf(target) if(!target_turf) target_turf = get_turf(src) - PoolOrNew(/obj/effect/overlay/temp/explosion/fast, target_turf) + if(istype(target_turf, /turf/closed/mineral)) + var/turf/closed/mineral/M = target_turf + M.gets_drilled(firer) + var/obj/effect/overlay/temp/kinetic_blast/K = PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, target_turf) + K.color = color + for(var/type in hit_overlays) + PoolOrNew(type, target_turf) if(turf_aoe) for(var/T in RANGE_TURFS(1, target_turf) - target_turf) if(istype(T, /turf/closed/mineral)) @@ -197,108 +199,220 @@ var/armor = L.run_armor_check(def_zone, flag, "", "", armour_penetration) L.apply_damage(damage*mob_aoe, damage_type, def_zone, armor) L << "You're struck by a [name]!" - world << "hit [L]" //Modkits -/obj/item/modkit +/obj/item/borg/upgrade/modkit name = "modification kit" desc = "An upgrade for kinetic accelerators." icon = 'icons/obj/objects.dmi' icon_state = "modkit" origin_tech = "programming=2;materials=2;magnets=4" - var/cost = 2 + require_module = 1 + module_type = /obj/item/weapon/robot_module/miner + var/denied_type = null + var/maximum_of_type = 1 + var/cost = 30 var/modifier = 1 //For use in any mod kit that has numerical modifiers -/obj/item/modkit/proc/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA) - forceMove(KA) - KA.modkits += src +/obj/item/borg/upgrade/modkit/examine(mob/user) + ..() + user << "Occupies [cost]% of mod capacity." -/obj/item/modkit/proc/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R) + if(..()) + return + + for(var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/H in R.module.modules) + return install(H, usr) + +/obj/item/borg/upgrade/modkit/proc/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + . = TRUE + if(denied_type) + var/number_of_denied = 0 + for(var/A in KA.get_modkits()) + var/obj/item/borg/upgrade/modkit/M = A + if(istype(M, denied_type)) + number_of_denied++ + if(number_of_denied >= maximum_of_type) + . = FALSE + break + if(.) + if(KA.get_remaining_mod_capacity() >= cost) + user << "You install the modkit." + playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1) + user.unEquip(src) + forceMove(KA) + KA.modkits += src + else + user << "You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits." + . = FALSE + else + user << "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits." + + +/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) forceMove(get_turf(KA)) KA.modkits -= src -/obj/item/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) //Range -/obj/item/modkit/range +/obj/item/borg/upgrade/modkit/range name = "range increase" - desc = "Increases the range of a kinetic accelerator when installed. Occupies two mod slots." + desc = "Increases the range of a kinetic accelerator when installed." modifier = 1 + cost = 24 //so you can fit four plus a tracer cosmetic -/obj/item/modkit/range/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/range/modify_projectile(obj/item/projectile/kinetic/K) K.range += modifier //Damage -/obj/item/modkit/damage +/obj/item/borg/upgrade/modkit/damage name = "damage increase" - desc = "Increases the damage of kinetic accelerator when installed. Occupies two mod slots." + desc = "Increases the damage of kinetic accelerator when installed." modifier = 10 -/obj/item/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K) K.damage += modifier //Cooldown -/obj/item/modkit/cooldown +/obj/item/borg/upgrade/modkit/cooldown name = "cooldown decrease" - desc = "Decreases the cooldown of a kinetic accelerator. Occupies two mod slots." + desc = "Decreases the cooldown of a kinetic accelerator." modifier = 2.5 -/obj/item/modkit/cooldown/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA) - KA.overheat_time -= modifier - ..() +/obj/item/borg/upgrade/modkit/cooldown/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + if(..()) + KA.overheat_time -= modifier -/obj/item/modkit/cooldown/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) KA.overheat_time += modifier ..() //AoE blasts -/obj/item/modkit/aoe/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/item/projectile/kinetic/K) K.name = "kinetic explosion" - ..() + if(!K.turf_aoe && !K.mob_aoe) + K.hit_overlays += /obj/effect/overlay/temp/explosion/fast -/obj/item/modkit/aoe/turfs +/obj/item/borg/upgrade/modkit/aoe/turfs name = "mining explosion" - desc = "Causes the kinetic accelerator to destroy rock in an AoE. Occupies two mod slots." + desc = "Causes the kinetic accelerator to destroy rock in an AoE." -/obj/item/modkit/aoe/turfs/modify_projectile(obj/item/projectile/kinetic/K) - K.turf_aoe = TRUE +/obj/item/borg/upgrade/modkit/aoe/turfs/modify_projectile(obj/item/projectile/kinetic/K) ..() + K.turf_aoe = TRUE -/obj/item/modkit/aoe/mobs +/obj/item/borg/upgrade/modkit/aoe/mobs name = "offensive explosion" - desc = "Causes the kinetic accelerator to damage mobs in an AoE. Occupies two mod slots." + desc = "Causes the kinetic accelerator to damage mobs in an AoE." modifier = 0.25 -/obj/item/modkit/aoe/mobs/modify_projectile(obj/item/projectile/kinetic/K) - K.mob_aoe += modifier +/obj/item/borg/upgrade/modkit/aoe/mobs/modify_projectile(obj/item/projectile/kinetic/K) ..() + K.mob_aoe += modifier //Indoors -/obj/item/modkit/indoors +/obj/item/borg/upgrade/modkit/indoors name = "decrease pressure penalty" - desc = "Increases the damage a kinetic accelerator does in a high pressure environment. Occupies three mod slots." + desc = "Increases the damage a kinetic accelerator does in a high pressure environment." modifier = 2 - cost = 3 + denied_type = /obj/item/borg/upgrade/modkit/indoors + maximum_of_type = 2 + cost = 40 -/obj/item/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K) - K.damage_divisor = Clamp(K.damage_divisor - modifier, 0, INFINITY) +/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K) + K.pressure_decrease *= modifier //Trigger Guard -/obj/item/modkit/trigger_guard +/obj/item/borg/upgrade/modkit/trigger_guard name = "modified trigger guard" - desc = "Allows creatures normally incapable of firing guns to operate the weapon when installed. Occupies two mod slots." + desc = "Allows creatures normally incapable of firing guns to operate the weapon when installed." + cost = 20 -/obj/item/modkit/trigger_guard/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA) - KA.trigger_guard = TRIGGER_GUARD_ALLOW_ALL +/obj/item/borg/upgrade/modkit/trigger_guard/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + if(..()) + KA.trigger_guard = TRIGGER_GUARD_ALLOW_ALL + +/obj/item/borg/upgrade/modkit/trigger_guard/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.trigger_guard = TRIGGER_GUARD_NORMAL ..() -/obj/item/modkit/trigger_guard/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) - KA.trigger_guard = TRIGGER_GUARD_NORMAL - ..() \ No newline at end of file + +//Cosmetic + +/obj/item/borg/upgrade/modkit/chassis_mod + name = "super chassis" + desc = "Makes your KA yellow. All the fun of having a more powerful KA without actually having a more powerful KA." + cost = 10 + denied_type = /obj/item/borg/upgrade/modkit/chassis_mod + var/chassis_icon = "kineticgun_u" + +/obj/item/borg/upgrade/modkit/chassis_mod/install(obj/item/weapon/gun/energy/kinetic_accelerator/KA, mob/user) + if(..()) + KA.icon_state = chassis_icon + +/obj/item/borg/upgrade/modkit/chassis_mod/uninstall(obj/item/weapon/gun/energy/kinetic_accelerator/KA) + KA.icon_state = initial(KA.icon_state) + ..() + +/obj/item/borg/upgrade/modkit/chassis_mod/orange + name = "hyper chassis" + desc = "Makes your KA orange. All the fun of having explosive blasts without actually having explosive blasts." + chassis_icon = "kineticgun_h" + +/obj/item/borg/upgrade/modkit/tracer + name = "white tracer bolts" + desc = "Causes kinetic accelerator bolts to have a white tracer trail and explosion." + cost = 4 + denied_type = /obj/item/borg/upgrade/modkit/tracer + +/obj/item/borg/upgrade/modkit/tracer/modify_projectile(obj/item/projectile/kinetic/K) + K.icon_state = "ka_tracer" + +/obj/item/borg/upgrade/modkit/tracer/brown + name = "brown tracer bolts" + desc = "Causes kinetic accelerator bolts to have a brown tracer trail and explosion." + +/obj/item/borg/upgrade/modkit/tracer/brown/modify_projectile(obj/item/projectile/kinetic/K) + K.color = "#C08F45" + ..() + +/obj/item/borg/upgrade/modkit/tracer/yellow + name = "yellow tracer bolts" + desc = "Causes kinetic accelerator bolts to have a yellow tracer trail and explosion." + +/obj/item/borg/upgrade/modkit/tracer/yellow/modify_projectile(obj/item/projectile/kinetic/K) + K.color = "#FFFF99" + ..() + +/obj/item/borg/upgrade/modkit/tracer/orange + name = "orange tracer bolts" + desc = "Causes kinetic accelerator bolts to have an orange tracer trail and explosion." + +/obj/item/borg/upgrade/modkit/tracer/orange/modify_projectile(obj/item/projectile/kinetic/K) + K.color = "#FF9933" + ..() + +/obj/item/borg/upgrade/modkit/tracer/green + name = "green tracer bolts" + desc = "Causes kinetic accelerator bolts to have a green tracer trail and explosion." + +/obj/item/borg/upgrade/modkit/tracer/green/modify_projectile(obj/item/projectile/kinetic/K) + K.color = "#515B41" + ..() + +/obj/item/borg/upgrade/modkit/tracer/purple + name = "purple tracer bolts" + desc = "Causes kinetic accelerator bolts to have a purple tracer trail and explosion." + +/obj/item/borg/upgrade/modkit/tracer/purple/modify_projectile(obj/item/projectile/kinetic/K) + K.color = "#8456A4" + ..() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 31e87dab6d4..156a089a40a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -176,7 +176,7 @@ other types of metals and chemistry for reagents). req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/modkit/trigger_guard + build_path = /obj/item/borg/upgrade/modkit/trigger_guard category = list("Mining Designs") /datum/design/damage_mod @@ -184,50 +184,50 @@ other types of metals and chemistry for reagents). desc = "A device which allows kinetic accelerators to deal more damage." id = "damagemod" req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/modkit/damage - category = list("Mining Designs") + build_path = /obj/item/borg/upgrade/modkit/damage + category = list("Mining Designs", "Cyborg Upgrade Modules") /datum/design/cooldown_mod name = "Kinetic Accelerator Cooldown Mod" desc = "A device which decreases the cooldown of a Kinetic Accelerator." id = "cooldownmod" req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/modkit/cooldown - category = list("Mining Designs") + build_path = /obj/item/borg/upgrade/modkit/cooldown + category = list("Mining Designs", "Cyborg Upgrade Modules") /datum/design/range_mod name = "Kinetic Accelerator Range Mod" desc = "A device which allows kinetic accelerators to fire at a further range." id = "rangemod" req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000) - build_path = /obj/item/modkit/range - category = list("Mining Designs") + build_path = /obj/item/borg/upgrade/modkit/range + category = list("Mining Designs", "Cyborg Upgrade Modules") /datum/design/superaccelerator name = "Kinetic Accelerator Pressure Mod" desc = "A modification kit which allows Kinetic Accelerators to do more damage while indoors." id = "indoormod" req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3) - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000) - build_path = /obj/item/modkit/indoors - category = list("Mining Designs") + build_path = /obj/item/borg/upgrade/modkit/indoors + category = list("Mining Designs", "Cyborg Upgrade Modules") /datum/design/hyperaccelerator name = "Kinetic Accelerator Mining AoE Mod" desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." id = "hypermod" req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) - build_path = /obj/item/modkit/aoe/turfs - category = list("Mining Designs") + build_path = /obj/item/borg/upgrade/modkit/aoe/turfs + category = list("Mining Designs", "Cyborg Upgrade Modules") ///////////////////////////////////////// diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index bc1b98e6441..6a1604a4c26 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -648,16 +648,6 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") -/datum/design/borg_upgrade_aoeka - name = "Cyborg Upgrade (KA Mining AoE Mod)" - id = "borg_upgrade_aoeka" - req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4) - build_type = MECHFAB //Reqs same as human Hyper KA - materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) - build_path = /obj/item/borg/upgrade/aoeka - construction_time = 120 - category = list("Cyborg Upgrade Modules") - /datum/design/borg_upgrade_lavaproof name = "Cyborg Upgrade (Lavaproof Tracks)" id = "borg_upgrade_lavaproof" diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index f51d10b53eaf3e683f8a6d82ff6908ec39522321..74660a09e4ae2f0f87b48972b345a85bfc2d2778 100644 GIT binary patch literal 20668 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

@0EiqrSlu^Z<#l2G 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