Skip to content

Commit

Permalink
Ports Salted Zen PKA Variants (#4384)
Browse files Browse the repository at this point in the history
* Ports Monkeystation PKA Variants

* Update modular_nova/modules/mining_pka/code/firing_pin.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Changes regular desc to special_desc

* Balance Pass

* updates descriptions

* makes shockwave and shotgun spread more consistent

* solved shockwave going everywhere and making super PB shoots

* correct comment.

* Balances Damage modkits for multi bullets

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/firing_pin.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/firing_pin.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* documents Mod_mult variable for PKA proyectile damage modkits

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/kinetic_accelerator.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/modkit.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* Update modular_nova/modules/mining_pka/code/projectiles.dm

Co-authored-by: Bloop <[email protected]>

* fixes typo in auto commit

---------

Co-authored-by: Bloop <[email protected]>
  • Loading branch information
2 people authored and StealsThePRs committed Sep 20, 2024
1 parent 3751b8d commit cc4ce5f
Show file tree
Hide file tree
Showing 8 changed files with 257 additions and 0 deletions.
3 changes: 3 additions & 0 deletions modular_nova/modules/goofsec/code/sec_clothing_overrides.dm
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,7 @@
/obj/item/gun/ballistic/rifle/boltaction, //fits if you make it an obrez
/obj/item/gun/energy/laser/captain,
/obj/item/gun/energy/e_gun/hos,
/obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock,
))

/obj/item/storage/belt/holster/detective
Expand All @@ -808,6 +809,7 @@
/obj/item/gun/ballistic/rifle/boltaction, //fits if you make it an obrez
/obj/item/gun/energy/laser/captain,
/obj/item/gun/energy/e_gun/hos,
/obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock,
))

/obj/item/storage/belt/holster/energy/Initialize(mapload)
Expand All @@ -826,6 +828,7 @@
/obj/item/gun/ballistic/automatic/pistol/plasma_marksman,
/obj/item/gun/ballistic/automatic/pistol/plasma_thrower,
/obj/item/ammo_box/magazine/recharge/plasma_battery,
/obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock,
))
/*
* HEAD
Expand Down
24 changes: 24 additions & 0 deletions modular_nova/modules/mining_pka/code/firing_pin.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/obj/item/firing_pin/wastes
name = "\improper Wastes firing pin"
desc = "This safety firing pin allows weapons to be fired only on areas away from the station."
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/surface/outdoors,
/area/icemoon/underground/unexplored,
/area/icemoon/underground/explored,
/area/lavaland/surface/outdoors,
/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
var/turf/station_check = get_turf(user)
if(!station_check || is_station_level(station_check.z))
return FALSE
return TRUE
141 changes: 141 additions & 0 deletions modular_nova/modules/mining_pka/code/kinetic_accelerator.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
//Proto-Kinetic Accelerators

/obj/item/gun/energy/recharge/kinetic_accelerator/variant //Parent Variant so we can apply general changes
/obj/item/gun/energy/recharge/kinetic_accelerator/variant/Initialize(mapload)
. = ..()
if(type == /obj/item/gun/energy/recharge/kinetic_accelerator/variant) // we don't want these prototypes to exist
return INITIALIZE_HINT_QDEL

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/borg/upgrade/modkit/chassis_mod))
to_chat(user, span_notice("This weapon doesn't have variant appearances."))
else
return ..()

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/crowbar_act(mob/living/user, obj/item/I)
to_chat(user, span_notice("This weapon cannot have its modifications removed."))
return ITEM_INTERACT_BLOCKING

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/borg/upgrade/modkit))
to_chat(user, span_notice("This weapon cannot have modifications applied."))
else
return ..()


/obj/item/gun/energy/recharge/kinetic_accelerator/variant/railgun
name = "proto-kinetic railgun"
desc = parent_type::desc + " This variant seems to use all its energy into an hyper focused shoot, and needs two hands to use."
special_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. On the positive side, the weapon is easy to fire, so even those with \
chunky fingers will be able to use it."
icon = 'modular_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticrailgun"
base_icon_state = "kineticrailgun"
inhand_icon_state = "kineticgun"
w_class = WEIGHT_CLASS_HUGE
recharge_time = 3 SECONDS
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/railgun)
weapon_weight = WEAPON_HEAVY
max_mod_capacity = 0
recoil = 3
trigger_guard = TRIGGER_GUARD_ALLOW_ALL

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/railgun/add_bayonet_point()
return

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/repeater
name = "proto-kinetic repeater"
desc = parent_type::desc + " This variant seems to be specialized into firing thrice and has a longer barrel."
special_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_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticrepeater"
base_icon_state = "kineticrepeater"
inhand_icon_state = "kineticgun"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/repeater)
max_mod_capacity = 65

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/repeater/Initialize()
. = ..()
AddComponent(/datum/component/automatic_fire, 0.2 SECONDS)

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/shotgun
name = "proto-kinetic shotgun"
desc = parent_type::desc + " This variant seems to have a prism that splits the ray in three."
special_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 immediately thought of a genius idea, creating the proto-kinetic shotgun moments later, which he \
immediately 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."
icon = 'modular_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticshotgun"
base_icon_state = "kineticshotgun"
inhand_icon_state = "kineticgun"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/shotgun)
max_mod_capacity = 65
randomspread = 0

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock
name = "proto-kinetic pistol"
desc = parent_type::desc + " This variant seems bare, but has a significant amount of mod slots."
special_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 immediately 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 a bit over double the mods, making it truly 'your own PKA'."
icon = 'modular_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticpistol"
base_icon_state = "kineticpistol"
inhand_icon_state = "kineticgun"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/glock)
max_mod_capacity = 220 // 30 over base.

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock/add_bayonet_point()
return

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/shockwave
name = "proto-kinetic shockwave"
desc = parent_type::desc + " This variant produces a shockwave that surrounds the user with kinetic energy."
special_desc = "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. \
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."
icon = 'modular_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticshockwave"
base_icon_state = "kineticshockwave"
inhand_icon_state = "kineticgun"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/shockwave)
max_mod_capacity = 65
randomspread = 0

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/shockwave/add_bayonet_point()
return

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/m79
name = "proto-kinetic grenade launcher"
desc = parent_type::desc + " This variant launches mining charges, using the kinetic energy to propel them."
special_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_nova/modules/mining_pka/icons/pka.dmi'
icon_state = "kineticglauncher"
base_icon_state = "kineticglauncher"
inhand_icon_state = "kineticgun"
pin = /obj/item/firing_pin/wastes
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/m79)
w_class = WEIGHT_CLASS_HUGE
weapon_weight = WEAPON_HEAVY
max_mod_capacity = 0

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/m79/add_bayonet_point()
return

//Shockwave process_fire override to prevent Point Blank, we shoot towards the edge of the direction of the user, like with jumpboots.

/obj/item/gun/energy/recharge/kinetic_accelerator/variant/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 ..()
2 changes: 2 additions & 0 deletions modular_nova/modules/mining_pka/code/modkit.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/projectile/kinetic/kinetic_projectile)
kinetic_projectile.damage += modifier*kinetic_projectile.mod_mult
59 changes: 59 additions & 0 deletions modular_nova/modules/mining_pka/code/projectiles.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//Accelerator Casing
/obj/item/ammo_casing/energy/kinetic/railgun
projectile_type = /obj/projectile/kinetic/railgun
fire_sound = 'sound/weapons/beam_sniper.ogg'

/obj/item/ammo_casing/energy/kinetic/repeater
projectile_type = /obj/projectile/kinetic/repeater
e_cost = LASER_SHOTS(3, STANDARD_CELL_CHARGE * 0.5)

/obj/item/ammo_casing/energy/kinetic/shotgun
projectile_type = /obj/projectile/kinetic/shotgun
pellets = 3
variance = 50

/obj/item/ammo_casing/energy/kinetic/glock
projectile_type = /obj/projectile/kinetic/glock

/obj/item/ammo_casing/energy/kinetic/shockwave
projectile_type = /obj/projectile/kinetic/shockwave
pellets = 8
variance = 360
fire_sound = 'sound/weapons/gun/general/cannon.ogg'

/obj/item/ammo_casing/energy/kinetic/m79
projectile_type = /obj/projectile/bullet/mining_bomb
e_cost = LASER_SHOTS(2, STANDARD_CELL_CHARGE * 0.5)
fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg'

//Accelerator Projectiles

/obj/projectile/kinetic
var/mod_mult = 1 // Indicates to which value the damage modkit multiplicates its bonus, useful for multi proyectile pka's where the bonus is otherwise is applied to each proyectile and increases more than intended.

/obj/projectile/kinetic/railgun
name = "hyper kinetic force"
damage = 100
range = 7
pressure_decrease = 0.10
speed = 0.1
projectile_piercing = PASSMOB

/obj/projectile/kinetic/repeater
name = "rapid kinetic force"
damage = 20
range = 4
mod_mult = 0.5

/obj/projectile/kinetic/shotgun
name = "split kinetic force"
damage = 20
mod_mult = 0.5

/obj/projectile/kinetic/glock
name = "light kinetic force"
damage = 10

/obj/projectile/kinetic/shockwave
name = "concussive kinetic force"
range = 1
Binary file added modular_nova/modules/mining_pka/icons/pka.dmi
Binary file not shown.
24 changes: 24 additions & 0 deletions modular_nova/modules/mining_vendor_additions/code/order_mining.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,27 @@
/datum/orderable_item/mining/crusher/claw
item_path = /obj/item/kinetic_crusher/claw
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/repeater
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/repeater
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/shotgun
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/shotgun
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/shockwave
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/shockwave
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/glock
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/glock
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/railgun
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/railgun
cost_per_order = 1250

/datum/orderable_item/accelerator/gun/m79
item_path = /obj/item/gun/energy/recharge/kinetic_accelerator/variant/nomod/m79
cost_per_order = 1250
4 changes: 4 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -7952,6 +7952,10 @@
#include "modular_nova\modules\Midroundtraitor\code\datum_traitor.dm"
#include "modular_nova\modules\Midroundtraitor\code\event.dm"
#include "modular_nova\modules\mining_crushers\code\miningweapons.dm"
#include "modular_nova\modules\mining_pka\code\firing_pin.dm"
#include "modular_nova\modules\mining_pka\code\kinetic_accelerator.dm"
#include "modular_nova\modules\mining_pka\code\modkit.dm"
#include "modular_nova\modules\mining_pka\code\projectiles.dm"
#include "modular_nova\modules\mining_vendor_additions\code\order_mining.dm"
#include "modular_nova\modules\modsuit_armour\modsuit_armour.dm"
#include "modular_nova\modules\modsuit_pai\code\mod_pai.dm"
Expand Down

0 comments on commit cc4ce5f

Please sign in to comment.