Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MIRROR] New non lethal gun - P207 + Fixes to the pepperball gun logistics #5246

Merged
merged 2 commits into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion code/__DEFINES/~nova_defines/projectiles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,8 @@
#define CALIBER_585TRAPPISTE ".585 Trappiste"

/// Caliber used by the pepperball gun
#define CALIBER_PEPPERBALL "pepperball"
#define CALIBER_PEPPERBALL "Pepper Ball"

/// Caliber used by the kinetic gun
#define CALIBER_KINETICBALL "Kinetic Ball"

Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@
item_type = /obj/item/gun/ballistic/automatic/pistol/sol
cost = PAYCHECK_COMMAND * 4

/datum/armament_entry/company_import/sol_defense/sidearm/type207
item_type = /obj/item/gun/ballistic/automatic/pistol/type207
cost = PAYCHECK_COMMAND * 4

/datum/armament_entry/company_import/sol_defense/sidearm/skild
item_type = /obj/item/gun/ballistic/automatic/pistol/trappiste
cost = PAYCHECK_COMMAND * 6
Expand Down Expand Up @@ -158,6 +162,9 @@
/datum/armament_entry/company_import/sol_defense/magazines/sol_rifle_short
item_type = /obj/item/ammo_box/magazine/c40sol_rifle/starts_empty

/datum/armament_entry/company_import/sol_defense/magazines/kineticballs
item_type = /obj/item/ammo_box/magazine/kineticballs/starts_empty

/datum/armament_entry/company_import/sol_defense/magazines/sol_rifle_standard
item_type = /obj/item/ammo_box/magazine/c40sol_rifle/standard/starts_empty
cost = PAYCHECK_COMMAND
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@
/datum/armament_entry/company_import/vitezstvi/ammo_boxes/trappiste585_hollowpoint
item_type = /obj/item/ammo_box/c585trappiste/hollowpoint

/datum/armament_entry/company_import/vitezstvi/ammo_boxes/kineticballs
item_type = /obj/item/ammo_box/advanced/kineticballs

// Revolver speedloaders

/datum/armament_entry/company_import/vitezstvi/speedloader
Expand Down
8 changes: 8 additions & 0 deletions modular_nova/modules/modular_vending/code/security.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@
products_nova = list(
/obj/item/storage/pouch/ammo = 2,
/obj/item/storage/barricade = 4,
/obj/item/ammo_box/magazine/kineticballs = 10,
/obj/item/ammo_box/advanced/kineticballs = 5,
/obj/item/ammo_box/magazine/pepperball = 4,
/obj/item/ammo_box/advanced/pepperballs = 2,
)
premium_nova = list(
/obj/item/gun/ballistic/automatic/pistol/type207 = 5,
/obj/item/gun/ballistic/automatic/pistol/pepperball = 2,
)
6 changes: 6 additions & 0 deletions modular_nova/modules/modular_weapons/code/autolathe_design.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/datum/techweb_node/basic_arms/New()
design_ids += list(
"kineticballs",
"pepperballs",
)
return ..()
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/obj/projectile/bullet/kineticball
name = "kinetic orb"
icon = 'modular_nova/modules/modular_weapons/icons/obj/company_and_or_faction_based/bolt_fabrications/riotrubberbullet.dmi'
icon_state = "riotrubberbullet"
// Used the hive shot stats, with 0 colateral damage, the advantage is that its not weak against armor, and its supposed to bounce a lot.
damage = 0
stamina = 30
shrapnel_type = null
sharpness = NONE
embed_data = null
impact_effect_type = /obj/effect/temp_visual/impact_effect
ricochet_incidence_leeway = 0
ricochets_max = 5
ricochet_chance = 200
ricochet_auto_aim_angle = 60
ricochet_auto_aim_range = 8
ricochet_decay_damage = 0.9
ricochet_decay_chance = 1
wound_bonus = -30
bare_wound_bonus = -10

/obj/item/ammo_casing/kineticball
name = "kinetic ball casing"
desc = "A kinetic ball casing."
icon = 'modular_nova/modules/modular_weapons/icons/obj/company_and_or_faction_based/bolt_fabrications/stingtop.dmi'
icon_state = "stingstop"
ammo_stack_type = /obj/item/ammo_box/magazine/ammo_stack/kineticball
caliber = CALIBER_KINETICBALL
projectile_type = /obj/projectile/bullet/kineticball
harmful = FALSE

/obj/item/ammo_box/magazine/ammo_stack/kineticball
name = "kinetic ball casings"
desc = "A stack of kinetic ball cartridges."
caliber = CALIBER_KINETICBALL
ammo_type = /obj/item/ammo_casing/kineticball
max_ammo = 9
casing_x_positions = list(
-7,
-5,
-3,
-1,
0,
1,
3,
5,
7,
)
casing_y_padding = 6
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/obj/item/ammo_box/magazine/kineticballs
name = "kinetic balls pistol magazine"
desc = "A gun magazine filled with balls. The kind that makes makes people stop, holds eight rounds."
icon = 'modular_nova/modules/modular_weapons/icons/obj/company_and_or_faction_based/bolt_fabrications/type207magazine.dmi'
icon_state = "type207mag"
ammo_type = /obj/item/ammo_casing/kineticball
caliber = CALIBER_KINETICBALL
max_ammo = 8
custom_price = PAYCHECK_CREW * 2
multiple_sprites = AMMO_BOX_FULL_EMPTY

/obj/item/ammo_box/magazine/kineticballs/starts_empty
start_empty = TRUE

/datum/design/kineticballs
name = "Ammo Box (Kinetic Balls)"
id = "kineticballs"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 3,
)
build_path = /obj/item/ammo_box/advanced/kineticballs
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO,
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY

/obj/item/ammo_box/advanced/kineticballs
name = "ammo box (kinetic balls)"
icon = 'modular_nova/modules/modular_weapons/icons/obj/company_and_or_faction_based/bolt_fabrications/stingstopbox.dmi'
icon_state = "stingstopbox"
desc = "A box of kinetic balls rounds, holds twenty seven rounds."
custom_price = PAYCHECK_CREW * 2
ammo_type = /obj/item/ammo_casing/kineticball
custom_materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 2,
)
max_ammo = 27
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/obj/item/gun/ballistic/automatic/pistol/type207
name = "\improper Type 207 Kinetic Pistol"
desc = "A completly non lethal sidearm used by Sol Fed Peacekeeping forces. It uses kinetic rounds to temporarily disable adversaries, it's also a popular weapon for trick shot competitions."
icon = 'modular_nova/modules/modular_weapons/icons/obj/company_and_or_faction_based/bolt_fabrications/type207.dmi'
icon_state = "type207"
lefthand_file = 'modular_nova/modules/modular_weapons/icons/mob/company_and_or_faction_based/bolt_fabrications/guns_lefthand.dmi'
righthand_file = 'modular_nova/modules/modular_weapons/icons/mob/company_and_or_faction_based/bolt_fabrications/guns_righthand.dmi'
inhand_icon_state = "type207"
w_class = WEIGHT_CLASS_SMALL
accepted_magazine_type = /obj/item/ammo_box/magazine/kineticballs
can_suppress = FALSE
fire_delay = 0.3 SECONDS
fire_sound = 'sound/effects/pop_expl.ogg'
rack_sound = 'sound/items/weapons/gun/pistol/rack.ogg'
lock_back_sound = 'sound/items/weapons/gun/pistol/slide_lock.ogg'
bolt_drop_sound = 'sound/items/weapons/gun/pistol/slide_drop.ogg'
fire_sound_volume = 70
custom_premium_price = PAYCHECK_COMMAND * 5

/obj/item/gun/ballistic/automatic/pistol/type207/give_manufacturer_examine()
AddElement(/datum/element/manufacturer_examine, COMPANY_BOLT)

/obj/item/gun/ballistic/automatic/pistol/type207/add_seclight_point()
AddComponent(/datum/component/seclite_attachable, \
starting_light = new /obj/item/flashlight/seclite(src), \
is_light_removable = FALSE, \
)
10 changes: 7 additions & 3 deletions modular_nova/modules/modular_weapons/code/pepperball_gun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
icon = 'modular_nova/modules/modular_weapons/icons/obj/pepperball/pepperball.dmi'
icon_state = "peppergun"
w_class = WEIGHT_CLASS_SMALL
custom_premium_price = PAYCHECK_COMMAND * 4
accepted_magazine_type = /obj/item/ammo_box/magazine/pepperball
can_suppress = FALSE
fire_sound = 'sound/effects/pop_expl.ogg'
Expand All @@ -20,11 +21,12 @@

/obj/item/ammo_box/magazine/pepperball
name = "pistol magazine (pepperball)"
desc = "A gun magazine filled with balls."
desc = "A gun magazine filled with balls, the kind that make your face itch. Holds eight rounds."
icon = 'modular_nova/modules/modular_weapons/icons/obj/pepperball/pepperball.dmi'
icon_state = "pepperball"
ammo_type = /obj/item/ammo_casing/pepperball
caliber = CALIBER_PEPPERBALL
custom_price = PAYCHECK_CREW * 2
max_ammo = 8
multiple_sprites = AMMO_BOX_FULL_EMPTY

Expand Down Expand Up @@ -59,7 +61,7 @@
/datum/design/pepperballs
name = "Pepperball Ammo Box"
id = "pepperballs"
build_type = AUTOLATHE | PROTOLATHE
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
)
Expand All @@ -74,8 +76,10 @@
name = "pepperball ammo box"
icon = 'modular_nova/modules/modular_weapons/icons/obj/pepperball/ammoboxes.dmi'
icon_state = "box10x24"
desc = "A box of pepper ball rounds, holds eighteen rounds."
custom_price = PAYCHECK_CREW * 2
ammo_type = /obj/item/ammo_casing/pepperball
custom_materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
)
max_ammo = 15
max_ammo = 18
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 4 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -8248,6 +8248,7 @@
#include "modular_nova\modules\modular_vending\code\tool.dm"
#include "modular_nova\modules\modular_vending\code\vending.dm"
#include "modular_nova\modules\modular_vending\code\wardrobes.dm"
#include "modular_nova\modules\modular_weapons\code\autolathe_design.dm"
#include "modular_nova\modules\modular_weapons\code\conversion_kits.dm"
#include "modular_nova\modules\modular_weapons\code\gun_launches_little_guys_element.dm"
#include "modular_nova\modules\modular_weapons\code\gun_racks.dm"
Expand All @@ -8257,6 +8258,9 @@
#include "modular_nova\modules\modular_weapons\code\pepperball_gun.dm"
#include "modular_nova\modules\modular_weapons\code\cargo_crates\armory_guns.dm"
#include "modular_nova\modules\modular_weapons\code\cargo_crates\surplus_crates.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\bolt_fabrications\ammo.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\bolt_fabrications\magazine.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\bolt_fabrications\pistol.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\carwo_defense_systems\advert.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\carwo_defense_systems\grenade_launcher.dm"
#include "modular_nova\modules\modular_weapons\code\company_and_or_faction_based\carwo_defense_systems\gunsets.dm"
Expand Down
Loading