mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-21 04:48:18 +01:00
Custom Kinetic Accelerators (#4802)
This is honestly one of my biggest and most ambitious projects. I hope people are happy with this. Custom kinetic accelerators are special, customizable mining weapons that are meant to give a sense of progression, and a sense of pride and accomplishment while mining. Each custom KA is made up of 3 or 4 parts: The Frame (5 to choose from) The Cell (5 to choose from, +1 traitor) The Barrel (5 to choose from, +1 traitor) The Upgrade Chip (7 to choose from, +1 traitor) The sprites change with each addon, they are truly dynamic and there are so many combinations of parts that a miner can have. You can have several different builds for each desired mining style, it's quite a robust system. You can have a KA that shoots slowly, but delivers high-penetrating shots that go through several walls of rock. You can have a KA that shoots REALLY fast, but precisely destroys 1 rock at a time. You can have an absolute canon of a beast, that destroys rocks in a 3 tile radius around it. The parts can be obtained via research, via abandoned crates, or via RNG in the cargo warehouse. There are some custom KAs that spawn on the raider's ship, on the mercs ship, and a laser one on the merc's headquarters. That laser one can also be bought from the traitor uplink as well. ERT get a class 4 KA for use in special operations, if they choose to use it.
This commit is contained in:
@@ -95,7 +95,11 @@
|
||||
new/obj/item/weapon/pickaxe/gold(src)
|
||||
if(81 to 82)
|
||||
new/obj/item/weapon/gun/energy/plasmacutter(src)
|
||||
if(83 to 84)
|
||||
if(83)
|
||||
new/obj/random/custom_ka(src)
|
||||
new/obj/random/custom_ka(src)
|
||||
new/obj/random/custom_ka(src)
|
||||
if(84)
|
||||
new/obj/item/toy/katana(src)
|
||||
if(85)
|
||||
new/obj/item/seeds/random(src)
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
/obj/machinery/mineral/rigpress/attackby(obj/item/W, mob/user)
|
||||
if(!pressing)
|
||||
var/outcome_path
|
||||
var/list/kinetic_mods = list()
|
||||
var/kineticaccelerator
|
||||
|
||||
if(istype(W, /obj/item/clothing/glasses/material))
|
||||
outcome_path = /obj/item/rig_module/vision/meson
|
||||
|
||||
@@ -33,13 +32,6 @@
|
||||
if(istype(W, /obj/item/weapon/pickaxe/drill))
|
||||
outcome_path = /obj/item/rig_module/device/basicdrill
|
||||
|
||||
if(istype(W, /obj/item/weapon/gun/energy/kinetic_accelerator))
|
||||
outcome_path = /obj/item/rig_module/mounted/kinetic_accelerator
|
||||
var/obj/item/weapon/gun/energy/kinetic_accelerator/KA = W
|
||||
kineticaccelerator = 1
|
||||
for(var/obj/item/borg/upgrade/modkit/kmod in KA.modkits)
|
||||
kinetic_mods += kmod
|
||||
|
||||
if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
|
||||
outcome_path = /obj/item/rig_module/mounted/plasmacutter
|
||||
|
||||
@@ -61,13 +53,9 @@
|
||||
qdel(W)
|
||||
spawn(300)
|
||||
ping( "\The [src] pings, \"Module successfuly produced!\"" )
|
||||
if(kineticaccelerator)
|
||||
var/obj/item/rig_module/mounted/kinetic_accelerator/KA = new /obj/item/rig_module/mounted/kinetic_accelerator(src.loc)
|
||||
var/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg/KGUN = KA.gun
|
||||
for(var/obj/item/borg/upgrade/modkit/kmod in kinetic_mods)
|
||||
KGUN.modkits += kmod
|
||||
else
|
||||
new outcome_path(src.loc)
|
||||
|
||||
new outcome_path(src.loc)
|
||||
|
||||
use_power(500)
|
||||
pressing = 0
|
||||
update_icon()
|
||||
|
||||
@@ -17,12 +17,11 @@ var/global/list/minevendor_list = list( //keep in order of price
|
||||
new /datum/data/mining_equipment("Lantern", /obj/item/device/flashlight/lantern, 10, 75),
|
||||
new /datum/data/mining_equipment("Shovel", /obj/item/weapon/shovel, 15, 100),
|
||||
new /datum/data/mining_equipment("Pickaxe", /obj/item/weapon/pickaxe, 10, 100),
|
||||
new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 40, 100),
|
||||
new /datum/data/mining_equipment("Compressed rail cartridge", /obj/item/weapon/rrf_ammo, 50, 100),
|
||||
new /datum/data/mining_equipment("Class E Kinetic Accelerator", /obj/item/weapon/gun/custom_ka/frame01/prebuilt, 12, 200),
|
||||
new /datum/data/mining_equipment("Ore Box", /obj/structure/ore_box, -1, 150, 1),
|
||||
new /datum/data/mining_equipment("Emergency Floodlight", /obj/item/weapon/floodlight_diy, -1, 150, 1),
|
||||
new /datum/data/mining_equipment("Premium Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 30, 150),
|
||||
new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 30, 150),
|
||||
new /datum/data/mining_equipment("Seismic Charge", /obj/item/weapon/plastique/seismic, 25, 150),
|
||||
new /datum/data/mining_equipment("Lottery Chip", /obj/item/weapon/spacecash/ewallet/lotto, 50, 200),
|
||||
new /datum/data/mining_equipment("Ripley Paint Kit", /obj/item/device/kit/paint/ripley/random, 15, 200),
|
||||
@@ -30,6 +29,7 @@ var/global/list/minevendor_list = list( //keep in order of price
|
||||
new /datum/data/mining_equipment("Mining Drill", /obj/item/weapon/pickaxe/drill, 10, 200),
|
||||
new /datum/data/mining_equipment("Deep Ore Scanner", /obj/item/weapon/mining_scanner, 10, 250),
|
||||
new /datum/data/mining_equipment("Magboots", /obj/item/clothing/shoes/magboots, 10, 300),
|
||||
new /datum/data/mining_equipment("Class D Kinetic Accelerator", /obj/item/weapon/gun/custom_ka/frame02/prebuilt, 12, 400),
|
||||
new /datum/data/mining_equipment("Autochisel", /obj/item/weapon/autochisel, 10, 400),
|
||||
new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack, 10, 400),
|
||||
new /datum/data/mining_equipment("Drone Drill Upgrade", /obj/item/device/mine_bot_ugprade, 10, 400),
|
||||
@@ -45,20 +45,16 @@ var/global/list/minevendor_list = list( //keep in order of price
|
||||
new /datum/data/mining_equipment("Minecart", /obj/vehicle/train/cargo/trolley/mining, -1, 600, 1),
|
||||
new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 10, 700),
|
||||
new /datum/data/mining_equipment("Mining RIG", /obj/item/weapon/rig/industrial, 5, 750),
|
||||
new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 10, 750),
|
||||
new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 20, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 10, 750),
|
||||
new /datum/data/mining_equipment("100 credits", /obj/item/weapon/spacecash/c100, -1, 1000),
|
||||
new /datum/data/mining_equipment("Mass Driver", /obj/item/weapon/mass_driver_diy, 5, 800),
|
||||
new /datum/data/mining_equipment("Mining Drone", /mob/living/silicon/robot/drone/mining, 15, 800),
|
||||
new /datum/data/mining_equipment("Minecart Engine", /obj/vehicle/train/cargo/engine/mining, -1, 800, 1),
|
||||
new /datum/data/mining_equipment("Drone Kinetic Accelerator Upgrade", /obj/item/device/mine_bot_ugprade/ka, 10, 800),
|
||||
new /datum/data/mining_equipment("Drone KA Upgrade", /obj/item/device/mine_bot_ugprade/ka, 10, 800),
|
||||
new /datum/data/mining_equipment("Ore Summoner", /obj/item/weapon/oreportal, 35, 800),
|
||||
new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 15, 1000),
|
||||
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 25, 1000),
|
||||
new /datum/data/mining_equipment("Industrial Drill Head", /obj/machinery/mining/drill, -1, 1000, 1),
|
||||
new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 10, 1250),
|
||||
new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/turfs, 15, 1500),
|
||||
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 10, 1500),
|
||||
new /datum/data/mining_equipment("Thermal Drill", /obj/item/weapon/gun/energy/vaurca/thermaldrill, 5, 3750)
|
||||
)
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
new /obj/item/weapon/ore_radar(src)
|
||||
new /obj/item/weapon/key/minecarts(src)
|
||||
new /obj/item/device/gps/mining(src)
|
||||
new /obj/item/weapon/book/manual/ka_custom(src)
|
||||
|
||||
/******************************Lantern*******************************/
|
||||
|
||||
|
||||
@@ -53,8 +53,21 @@ var/list/mineral_can_smooth_with = list(
|
||||
|
||||
var/obj/effect/mineral/my_mineral
|
||||
|
||||
var/rock_health = 20 //10 to 20, in initialize
|
||||
|
||||
has_resources = 1
|
||||
|
||||
/turf/simulated/mineral/proc/kinetic_hit(var/damage,var/direction)
|
||||
|
||||
rock_health -= damage
|
||||
|
||||
if(rock_health <= 0)
|
||||
var/turf/simulated/mineral/next_rock = get_step(src,direction)
|
||||
if(istype(next_rock))
|
||||
new /obj/effect/overlay/temp/kinetic_blast(next_rock)
|
||||
next_rock.kinetic_hit(-rock_health,direction)
|
||||
GetDrilled(1)
|
||||
|
||||
// Copypaste parent call for performance.
|
||||
/turf/simulated/mineral/Initialize(mapload)
|
||||
if (initialized)
|
||||
@@ -83,6 +96,8 @@ var/list/mineral_can_smooth_with = list(
|
||||
if (!mapload)
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
rock_health = rand(10,20)
|
||||
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
|
||||
/turf/simulated/mineral/examine(mob/user)
|
||||
|
||||
Reference in New Issue
Block a user