-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ports Salted Zen PKA Variants (#4384)
* 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
1 parent
3751b8d
commit cc4ce5f
Showing
8 changed files
with
257 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
141
modular_nova/modules/mining_pka/code/kinetic_accelerator.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 ..() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters