Files
2026-06-03 01:25:02 -05:00

245 lines
11 KiB
Plaintext

//Proto-Kinetic Accelerators
/obj/item/gun/energy/recharge/kinetic_accelerator/railgun
name = "proto-kinetic railgun"
desc = "Before the nice streamlined and modern day Proto-Kinetic Accelerator was created, multiple designs were drafted by the Mining Research and Development \
team. Many were failures, including this one, which came out too bulky and too ineffective. Well recently the MR&D Team got drunk and said 'fuck it we ball' and \
went back to the bulky design, overclocked it, and made it functional, turning it into what is essentially a literal man portable particle accelerator. \
The design results in a massive hard to control blast of kinetic energy, with the power to punch right through creatures and cause massive damage. The \
only problem with the design is that it is so bulky you need to carry it with two hands, and the technology has been outfitted with a special firing pin \
that denies use near or on the station, due to its destructive nature."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticrailgun"
base_icon_state = "kineticrailgun"
inhand_icon_state = "kineticgun"
w_class = WEIGHT_CLASS_HUGE
pin = /obj/item/firing_pin/wastes
recharge_time = 3 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/railgun)
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_HEAVY
max_mod_capacity = 15 // A crumb of mod capacity as a treat
recoil = 3 //railgun go brrrrr
gun_flags = NOT_A_REAL_GUN
/obj/item/gun/energy/recharge/kinetic_accelerator/repeater
name = "proto-kinetic repeater"
desc = "During the pizza party celebrating the release of the new crusher designs, the Mining Research and Development team members were only allowed one slice. \
One member exclaimed 'I wish we could have more than one slice' and another replied 'I wish we could shoot the accelerator more than once' and thus, the repeater \
on the spot. The repeater trades a bit of power for the ability to fire three shots before becoming empty, while retaining the ability to fully recharge in one \
go. The extra technology packed inside to make this possible unfortunately reduces mod space meaning you cant carry as many mods compared to a regular accelerator."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticrepeater"
base_icon_state = "kineticrepeater"
inhand_icon_state = "kineticgun"
recharge_time = 2 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/repeater)
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
max_mod_capacity = 75
/obj/item/gun/energy/recharge/kinetic_accelerator/shotgun
name = "proto-kinetic shotgun"
desc = "During the crusher design pizza party, one member of the Mining Research and Development team brought out a real riot shotgun, and killed three \
other research members with one blast. The MR&D Director immedietly thought of a genuis idea, creating the proto-kinetic shotgun moments later, which he \
immedietly used to execute the research member who brought the real shotgun. The proto-kinetic shotgun trades off some mod capacity and cooldown in favor \
of firing three shots at once with reduce range and power. The total damage of all three shots is higher than a regular PKA but the individual shots are weaker. \
Looks like you need both hands to use it effectively."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticshotgun"
base_icon_state = "kineticshotgun"
inhand_icon_state = "kineticgun"
recharge_time = 2 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/shotgun)
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_HEAVY
max_mod_capacity = 60
disabled_modkits = list(/obj/item/borg/upgrade/modkit/cooldown/aoe/) // Should cover all AOE variants
/obj/item/gun/energy/recharge/kinetic_accelerator/glock
name = "proto-kinetic pistol"
desc = "During the pizza party for the Mining Research and Development team, one special snowflake researcher wanted a mini murphy instead of a regular \
pizza slice, so reluctantly the Director bought him his mini murphy, which the dumbass immedietly dropped ontop of a PKA. Suddenly the idea to create \
a 'build your own PKA' design was created. The proto-kinetic pistol is arguably worse than the base PKA, sporting lower damage and range. But this lack \
of base efficiency allows room for nearly double the mods, making it truely 'your own PKA'."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticpistol"
base_icon_state = "kineticpistol"
inhand_icon_state = "kineticgun"
recharge_time = 2 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/glock)
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
max_mod_capacity = 200
/obj/item/gun/energy/recharge/kinetic_accelerator/shockwave
name = "proto-kinetic shockwave"
desc = "Quite frankly, we have no idea how the Mining Research and Development team came up with this one, all we know is that alot of \
beer was involved. This proto-kinetic design will slam the ground, creating a shockwave around the user, with the same power as the base PKA.\
The only downside is the lowered mod capacity, the lack of range it offers, and the higher cooldown, but its pretty good for clearing rocks."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticshockwave"
base_icon_state = "kineticshockwave"
inhand_icon_state = "kineticgun"
recharge_time = 2 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/shockwave)
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
max_mod_capacity = 75
disabled_modkits = list(/obj/item/borg/upgrade/modkit/cooldown/aoe/) // Should cover all AOE variants
/obj/item/gun/energy/recharge/kinetic_accelerator/shockwave/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
target = get_edge_target_turf(user, user.dir)
return ..()
/obj/item/gun/energy/recharge/kinetic_accelerator/m79
name = "proto-kinetic grenade launcher"
desc = "Made in a drunk frenzy during the creation of the kinetic railgun, the kinetic grenade launcher fires the same bombs used by \
the mining modsuit. Due to the technology needed to pack the bombs into this weapon, there is no space for modification."
icon = 'modular_zubbers/icons/obj/guns/guns.dmi'
icon_state = "kineticglauncher"
base_icon_state = "kineticglauncher"
inhand_icon_state = "kineticgun"
pin = /obj/item/firing_pin/wastes
recharge_time = 2 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/m79)
item_flags = NONE
obj_flags = UNIQUE_RENAME
w_class = WEIGHT_CLASS_HUGE
weapon_weight = WEAPON_HEAVY
max_mod_capacity = 0
disablemodification = TRUE
/obj/item/gun/energy/recharge/kinetic_accelerator/m79/add_bayonet_point()
return
//Accelerator Casing
//Fixed maths to use new standards
/obj/item/ammo_casing/energy/kinetic/railgun
projectile_type = /obj/projectile/kinetic/railgun
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5)
fire_sound = 'sound/items/weapons/beam_sniper.ogg'
/obj/item/ammo_casing/energy/kinetic/repeater
projectile_type = /obj/projectile/kinetic/repeater
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.15) //about three shots
fire_sound = 'sound/items/weapons/kinetic_accel.ogg'
/obj/item/ammo_casing/energy/kinetic/shotgun
projectile_type = /obj/projectile/kinetic/shotgun
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5)
pellets = 3
variance = 50
fire_sound = 'sound/items/weapons/kinetic_accel.ogg'
/obj/item/ammo_casing/energy/kinetic/glock
projectile_type = /obj/projectile/kinetic/glock
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5)
fire_sound = 'sound/items/weapons/kinetic_accel.ogg'
/obj/item/ammo_casing/energy/kinetic/shockwave
projectile_type = /obj/projectile/kinetic/shockwave
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5)
pellets = 8
variance = 360
fire_sound = 'sound/items/weapons/gun/general/cannon.ogg'
/obj/item/ammo_casing/energy/kinetic/m79
projectile_type = /obj/projectile/bullet/mining_missile //uses the mining bomb projectile from the mining modsuit
select_name = "kinetic"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5)
fire_sound = 'sound/items/weapons/gun/general/grenade_launch.ogg'
//Accelerator Projectiles
/obj/projectile/kinetic/railgun
name = "hyper kinetic force"
icon_state = null
damage = 100 // Slightly less than a crusher marked hit (110 methinks), but ranged and really fast moving, big movement slowdown and bulky.
damage_type = BRUTE
armor_flag = BOMB
range = 6
pressure_decrease = 0.10 //Pressured enviorments are a no go for the railgun
speed = 10 //NYOOM
projectile_piercing = PASSMOB
/obj/projectile/kinetic/repeater
name = "rapid kinetic force"
icon_state = null
damage = 20 // Half damage, burst fire and a bit more range.
damage_type = BRUTE
armor_flag = BOMB
range = 4
log_override = TRUE
/obj/projectile/kinetic/shotgun
name = "split kinetic force"
icon_state = null
damage = 20 // 3 projectiles, 60 base damage. Theoretically more if all shots hit.
damage_type = BRUTE
armor_flag = BOMB
range = 3
log_override = TRUE
/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/projectile/kinetic/shotgun/K)
..()
K.pressure_decrease = min(K.pressure_decrease, 0.5)
/obj/projectile/kinetic/glock
name = "light kinetic force"
icon_state = null
damage = 10 // Low dmg, high modularity. Can be made great, especially when dual wielded.
damage_type = BRUTE
armor_flag = BOMB
range = 3
log_override = TRUE
/obj/projectile/kinetic/shockwave
name = "concussive kinetic force"
icon_state = null
damage = 40 // 8 projectiles in a 360 around you. Good for CC and rock clearing.
damage_type = BRUTE
armor_flag = BOMB
range = 1
log_override = TRUE
//Wastes firing pin - restricts a weapon to only outside when mining - based on area defines not z-level
/obj/item/firing_pin/wastes
name = "Wastes firing pin"
desc = "This safety firing pin allows weapons to be fired only outside on the wastes of lavaland or icemoon."
fail_message = "Wastes check failed! - Try getting further from the station first."
pin_hot_swappable = FALSE
pin_removable = FALSE
var/list/wastes = list(/area/icemoon/underground/unexplored/rivers,
/area/icemoon/surface/outdoors,
/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters,
/area/icemoon/underground/unexplored/rivers/deep/shoreline,
/area/icemoon/underground/explored,
/area/moonstation/surface,
/area/moonstation/surface/unexplored,
/area/moonstation/underground,
/area/moonstation/underground/unexplored,
/area/lavaland/surface/outdoors,
/area/lavaland/surface/outdoors/unexplored/danger,
/area/lavaland/surface/outdoors/unexplored,
/area/lavaland/surface/outdoors/explored,
/area/ocean/generated,
/area/ruin/
)
/obj/item/firing_pin/wastes/pin_auth(mob/living/user)
if(!istype(user))
return FALSE
if (is_type_in_list(get_area(user), wastes))
return TRUE
return FALSE