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

nt expeditionary weapons #6682

Merged
merged 52 commits into from
Oct 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
af4fcee
staging sprites
silicons Aug 6, 2024
24f4765
stub everything, add SRP
silicons Aug 7, 2024
c466624
stage that
silicons Aug 21, 2024
a433483
shotguns
silicons Aug 22, 2024
d5857b6
names
silicons Aug 22, 2024
f5c26a9
heavy rifle descs
silicons Aug 22, 2024
6ba9157
rest of the descs
silicons Aug 22, 2024
4b496c2
constant expressions
silicons Aug 22, 2024
02bd69c
hrm
silicons Aug 22, 2024
81e3fb2
projectiles, split up
silicons Aug 23, 2024
980600c
Merge remote-tracking branch 'citrp/master' into thog
silicons Aug 24, 2024
5807d15
all that
silicons Aug 25, 2024
21e9273
those
silicons Aug 25, 2024
af0d572
Sprites
silicons Aug 25, 2024
3988ecd
.dmi
silicons Aug 25, 2024
d3516df
stuff
silicons Aug 25, 2024
c500db7
that
silicons Aug 25, 2024
6104775
Merge remote-tracking branch 'upstream/master' into thog
silicons Sep 2, 2024
5cef56c
better comment
silicons Sep 2, 2024
c50d49e
that
silicons Sep 2, 2024
e4aba47
Merge remote-tracking branch 'upstream/master' into thog
silicons Sep 10, 2024
0167054
that
silicons Sep 10, 2024
c4fd68c
Merge remote-tracking branch 'citrp/master' into thog
silicons Sep 28, 2024
cc1832f
that
silicons Sep 28, 2024
4b78847
heavy rifle
silicons Sep 28, 2024
42d0573
that
silicons Sep 28, 2024
2756328
progress
silicons Sep 28, 2024
fc65380
load methods
silicons Sep 28, 2024
06b26d6
fix
silicons Oct 4, 2024
10c85b6
Merge remote-tracking branch 'upstream/master' into thog
silicons Oct 4, 2024
4bd87c6
that
silicons Oct 5, 2024
eeb7e62
that
silicons Oct 5, 2024
80ff1f5
rifle sprites
silicons Oct 5, 2024
68875b1
stuff
silicons Oct 8, 2024
1dd6f5b
statusus
silicons Oct 8, 2024
d6bfa7d
Merge remote-tracking branch 'citrp/master' into thog
silicons Oct 12, 2024
9c857ac
Fix
silicons Oct 12, 2024
9b3cf82
that
silicons Oct 13, 2024
3456f73
sigh
silicons Oct 13, 2024
e256140
that
silicons Oct 13, 2024
58e8505
that
silicons Oct 13, 2024
eeb1965
renderer
silicons Oct 13, 2024
529f40e
fix
silicons Oct 13, 2024
134f8f8
fix
silicons Oct 14, 2024
a6d1e48
fix
silicons Oct 14, 2024
52ccb27
iknow this isn't an admin pr but it's so bad i can't debug so lol
silicons Oct 14, 2024
fe6608f
iknow this isn't an admin pr but it's so bad i can't debug so lol
silicons Oct 14, 2024
f700711
shorten the paths
silicons Oct 14, 2024
5c95f0d
Fix
silicons Oct 14, 2024
e584d0c
better ejection
silicons Oct 14, 2024
56923fe
make that clearer
silicons Oct 14, 2024
5c55369
Fix
silicons Oct 14, 2024
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
12 changes: 10 additions & 2 deletions citadel.dme
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@
#include "code\__DEFINES\procs\update_icon.dm"
#include "code\__DEFINES\projectiles\ammo_casing.dm"
#include "code\__DEFINES\projectiles\ammo_magazine.dm"
#include "code\__DEFINES\projectiles\gun.dm"
#include "code\__DEFINES\projectiles\guns.dm"
#include "code\__DEFINES\projectiles\projectile.dm"
#include "code\__DEFINES\projectiles\system.dm"
Expand Down Expand Up @@ -902,7 +903,6 @@
#include "code\datums\recipe\stack_recipes\frame.dm"
#include "code\datums\recipe\stack_recipes\misc.dm"
#include "code\datums\recipe\stack_recipes\structures.dm"
#include "code\datums\repositories\ammomaterial.dm"
#include "code\datums\repositories\cameras.dm"
#include "code\datums\repositories\crew.dm"
#include "code\datums\repositories\decls.dm"
Expand Down Expand Up @@ -1068,9 +1068,16 @@
#include "code\game\content\factions\corporations\corporation.dm"
#include "code\game\content\factions\corporations\gorlex\items\guns\phoron_spitter.dm"
#include "code\game\content\factions\corporations\gorlex\items\guns\wild_hunt.dm"
#include "code\game\content\factions\corporations\hephaestus\hephaestus-faction.dm"
#include "code\game\content\factions\corporations\nanotrasen\nanotrasen-faction.dm"
#include "code\game\content\factions\corporations\nanotrasen\nanotrasen-supply.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\pulse.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary-antimaterial.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary-heavy_rifle.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary-heavy_sidearm.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary-light_rifle.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary-light_sidearm.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_expeditionary.dm"
#include "code\game\content\factions\corporations\nanotrasen\items\guns\nt_pulse.dm"
#include "code\game\content\factions\corporations\nanotrasen\nanotrasen-supply\animals.dm"
#include "code\game\content\factions\corporations\nanotrasen\nanotrasen-supply\atmospherics.dm"
#include "code\game\content\factions\corporations\nanotrasen\nanotrasen-supply\contraband.dm"
Expand Down Expand Up @@ -2190,6 +2197,7 @@
#include "code\modules\admin\verbs\debug\fucky_wucky.dm"
#include "code\modules\admin\verbs\debug\profiling.dm"
#include "code\modules\admin\verbs\debug\reestablish_db_connection.dm"
#include "code\modules\admin\verbs\debug\spawn.dm"
#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"
#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/projectiles/ammo_casing.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 silicons *//
//* Copyright (c) 2024 Citadel Station Developers *//

//* /obj/item/ammo_casing casing_flags *//

Expand Down
28 changes: 26 additions & 2 deletions code/__DEFINES/projectiles/ammo_magazine.dm
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 silicons *//
//* Copyright (c) 2024 Citadel Station Developers *//

//* /obj/item/ammo_magazine magazine_type
//* /obj/item/ammo_magazine - magazine_type *//

/// normal magazines
///
/// * basically, straight or curved 'stick' magazines
#define MAGAZINE_TYPE_NORMAL (1<<0)
/// revolver-like speedloader
#define MAGAZINE_TYPE_SPEEDLOADER (1<<1)
Expand All @@ -12,6 +14,8 @@
/// loose pouch
#define MAGAZINE_TYPE_POUCH (1<<3)
/// structured box
///
/// * this refers to LMG-like box magazine, not what we call just generally normal magazines
#define MAGAZINE_TYPE_BOX (1<<3)

DEFINE_BITFIELD_NEW(ammo_magazine_types, list(
Expand All @@ -25,3 +29,23 @@ DEFINE_BITFIELD_NEW(ammo_magazine_types, list(
BITFIELD_NEW("Ammo Pouch", MAGAZINE_TYPE_POUCH),
BITFIELD_NEW("Ammo Box", MAGAZINE_TYPE_BOX),
))

//* /obj/item/ammo_magazine - magazine_class *//

/// renders as -mag
///
/// * if a magazine's class isn't in a gun's render_magazine_overlay, we use this state
#define MAGAZINE_CLASS_GENERIC (1<<0)
/// renders as -mag-drum
#define MAGAZINE_CLASS_DRUM (1<<1)
/// renders as -mag-ext
#define MAGAZINE_CLASS_EXTENDED (1<<2)
/// renders as -mag-box
#define MAGAZINE_CLASS_BOX (1<<3)

GLOBAL_REAL_LIST(magazine_class_bit_to_state) = list(
"mag",
"mag-drum",
"mag-ext",
"mag-box",
)
28 changes: 28 additions & 0 deletions code/__DEFINES/projectiles/gun.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 Citadel Station Developers *//

//* rendering enums - /obj/item/gun/ballistic *//

//? render_bolt_overlay

/// do not render bolt state
#define BALLISTIC_RENDER_BOLT_NEVER 0
/// render `[base state]-bolt` if open
#define BALLISTIC_RENDER_BOLT_OPEN 1
/// render `[base state]-bolt` if closed
#define BALLISTIC_RENDER_BOLT_CLOSE 2
/// * render `[base state]-bolt-open` if open
/// * render `[base state]-bolt-close` if closed
#define BALLISTIC_RENDER_BOLT_BOTH 3

//? render_break_overlay

/// do not render break-action state
#define BALLISTIC_RENDER_BREAK_NEVER 0
/// render `[base state]-break` if open
#define BALLISTIC_RENDER_BREAK_OPEN 1
/// render `[base state]-break` if closed
#define BALLISTIC_RENDER_BREAK_CLOSE 2
/// * render `[base state]-break-open` if open
/// * render `[base state]-break-close` if closed
#define BALLISTIC_RENDER_BREAK_BOTH 3
80 changes: 40 additions & 40 deletions code/__HELPERS/type_processing.dm
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
/**
* todo: rename this
*
* Reformat types to be more readable for admin interfaces.
*
* This is done because BYOND is hell and "input in list" is obnoxious.
*/
/proc/make_types_fancy(list/types)
if (ispath(types))
types = list(types)
. = list()
var/static/list/shortcut_lookup = list(
/obj/effect/debris = "//debris",
/obj/item/radio/headset = "//headset",
/obj/item/reagent_containers/food/drinks = "//drink",
/obj/item/reagent_containers/food = "//food",
/obj/machinery/atmospherics = "//atmos",
/obj/machinery/portable_atmospherics = "//port_atmos",
/obj/item/mecha_parts/mecha_equipment/weapon = "//mech_weapon",
/obj/item/mecha_parts = "//mech_part",
/obj/item/organ = "//organ",
/obj/item/gun/ballistic = "//ballistic",
/obj/item/gun/energy = "//energy",
/obj/item/gun/magnetic = "//magnetic",
/obj/item/gun = "//gun",
/obj/item/ammo_casing = "//ammo",
/obj/item/ammo_magazine = "//magazine",
/obj/item = "//item",
/obj/machinery = "//machine",
/obj/effect = "//effect",
/atom/movable = "//movable",
/turf/simulated/floor = "//floor",
/turf/simulated = "//simulated",
/mob/living/carbon = "//carbon",
/mob/living/simple_mob = "//simple",
/mob/living = "//living",
)
for(var/type in types)
var/typename = "[type]"
var/static/list/TYPES_SHORTCUTS = list(
/obj/effect/debris/cleanable = "CLEANABLE",
/obj/item/radio/headset = "HEADSET",
/obj/item/clothing/head/helmet/space = "SPESSHELMET",
// /obj/item/book/manual = "MANUAL",
// /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first
// /obj/item/reagent_containers/food = "FOOD",
// /obj/item/reagent_containers = "REAGENT_CONTAINERS",
/obj/machinery/atmospherics = "ATMOS_MACH",
/obj/machinery/portable_atmospherics = "PORT_ATMOS",
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK",
/obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP",
/obj/item/organ = "ORGAN",
/obj/item = "ITEM",
/obj/machinery = "MACHINERY",
/obj/effect = "EFFECT",
/obj = "O",
/datum = "D",
// /turf/open = "OPEN",
// /turf/closed = "CLOSED",
/turf = "T",
/mob/living/carbon = "CARBON",
/mob/living/simple_animal = "SIMPLE",
/mob/living = "LIVING",
/mob = "M",
)
for (var/tn in TYPES_SHORTCUTS)
if (copytext(typename,1, length("[tn]/")+1)=="[tn]/" /*findtextEx(typename,"[tn]/",1,2)*/ )
typename = TYPES_SHORTCUTS[tn]+copytext(typename,length("[tn]/"))
var/shortcut
for(var/prefix in shortcut_lookup)
if(ispath(type, prefix))
shortcut = "[shortcut_lookup[prefix]][copytext("[type]", length("[prefix]") + 1)]"
break
.[typename] = type
.[shortcut || "[type]"] = type

/proc/get_fancy_list_of_atom_types()
var/static/list/pre_generated_list
if (!pre_generated_list) //init
pre_generated_list = make_types_fancy(typesof(/atom))
return pre_generated_list
return make_types_fancy(typesof(/atom))


/proc/get_fancy_list_of_datum_types()
var/static/list/pre_generated_list
if (!pre_generated_list) //init
pre_generated_list = make_types_fancy(sortList(typesof(/datum) - typesof(/atom)))
return pre_generated_list

return make_types_fancy(typesof(/datum) - typesof(/atom))

/proc/filter_fancy_list(list/L, filter as text)
var/list/matches = new
Expand Down
10 changes: 10 additions & 0 deletions code/datums/components/items/wielding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,18 @@

//* Item Hooks *//

/**
* Called when wielded via wielding component.
*
* * This is a default hook that's always executed, even if there's a callback provided to the component.
*/
/obj/item/proc/on_wield(mob/user, hands)
return

/**
* Called when wielded via wielding component.
*
* * This is a default hook that's always executed, even if there's a callback provided to the component.
*/
/obj/item/proc/on_unwield(mob/user, hands)
return
2 changes: 1 addition & 1 deletion code/datums/outfits/spec_op.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
glasses = /obj/item/clothing/glasses/thermal/plain/eyepatch
mask = /obj/item/clothing/mask/smokable/cigarette/cigar/havana
head = /obj/item/clothing/head/beret //deathsquad
belt = /obj/item/gun/energy/pulse_carbine
belt = /obj/item/gun/energy/nt_pulse/carbine
back = /obj/item/storage/backpack/satchel
shoes = /obj/item/clothing/shoes/boots/combat
gloves = /obj/item/clothing/gloves/combat
Expand Down
2 changes: 1 addition & 1 deletion code/datums/outfits/tournament.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
head = /obj/item/clothing/head/helmet/thunderdome
suit = /obj/item/clothing/suit/armor/vest
l_hand = /obj/item/material/knife
r_hand = /obj/item/gun/energy/pulse_rifle
r_hand = /obj/item/gun/energy/nt_pulse/rifle
r_pocket = /obj/item/grenade/smokebomb
shoes = /obj/item/clothing/shoes/black

Expand Down
18 changes: 0 additions & 18 deletions code/datums/repositories/ammomaterial.dm

This file was deleted.

2 changes: 1 addition & 1 deletion code/game/antagonist/outsider/deathsquad.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ var/datum/antagonist/deathsquad/deathsquad
else
player.equip_to_slot_or_del(new /obj/item/plastique(player), SLOT_ID_LEFT_POCKET)
player.equip_to_slot_or_del(new /obj/item/gun/ballistic/revolver/combat(player), SLOT_ID_BELT)
player.equip_to_slot_or_del(new /obj/item/gun/energy/pulse_rifle(player), /datum/inventory_slot/abstract/hand/right)
player.equip_to_slot_or_del(new /obj/item/gun/energy/nt_pulse/rifle(player), /datum/inventory_slot/abstract/hand/right)
player.equip_to_slot_or_del(new /obj/item/hardsuit/ert/assetprotection(player), SLOT_ID_BACK)
player.equip_to_slot_or_del(new /obj/item/melee/transforming/energy/sword(player), SLOT_ID_SUIT_STORAGE)
// player.implant_loyalty()
Expand Down
13 changes: 10 additions & 3 deletions code/game/atoms/atom.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
var/pass_flags_self = NONE

//? Unsorted / Legacy
/// Used for changing icon states for different base sprites.
var/base_icon_state
/// Holder for the last time we have been bumped.
var/last_bumped = 0
/// The higher the germ level, the more germ on the atom.
Expand Down Expand Up @@ -151,7 +149,16 @@
/// contamination insulation; null defaults to rad_insulation, this is a multiplier. *never* set higher than 1!!
var/rad_stickiness = 1

//? Shieldcalls
//* Rendering *//

/// Used for changing icon states for different base sprites.
///
/// * Not used directly, but it's a frequent pattern to need to override this
/// and we don't want to always force usage of initial(icon_state)
var/base_icon_state

//* Shieldcalls *//

/// sorted priority list of datums for handling shieldcalls with
/// we use this instead of signals so we can enforce priorities
/// this is horrifying.
Expand Down
2 changes: 2 additions & 0 deletions code/game/backend/world/world_faction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

/// name
var/name = "Unknown Faction"
/// public abbreviation; if null, it doesn't have one
var/abbreviation
/// id - must be unique
var/id
/// short description blurb
Expand Down
2 changes: 1 addition & 1 deletion code/game/content/factions/corporations/corporation.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 silicons *//
//* Copyright (c) 2024 Citadel Station Developers *//

/datum/world_faction/corporation
abstract_type = /datum/world_faction/corporation
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
desc = "A compressed matter container meant for the Gorlex SHRAPNEL-SPITTER SMG. Contains a phoron alloy that self-oxidzes and ignites on contact with air. \n \nThey're in good shape for the shape they're in, \nbut God, I wonder how they think they can win, \nwith phoron rolling down their skin."
ammo_max = 40
ammo_caliber = /datum/ammo_caliber/phoron_shrap
ammo_type = /obj/item/ammo_casing/phoron_shrap
ammo_preload = /obj/item/ammo_casing/phoron_shrap

icon = 'icons/content/factions/corporations/gorlex/items/guns/phoron_spitter.dmi'
icon_state = "mag-1"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 Citadel Station Developers *//

/datum/world_faction/corporation/hephaestus
name = "Hephaestus Industries"
abbreviation = "HI"
id = "hephaestus"
desc = "Hephaestus Industries, the premiere Trans-Stellar Corporation for, as their name implies, \
industrial and manufacturing needs - as well as their prestigious lines of synthetics often seen serving \
on many a Frontier locale. Outside of their affinity towards Nanotrasen and Vey-Med, however, they are still at their core \
a corporation built on cut-throat industrialism, often providing the supplies and the technologies of war utilized in many Frontier conflicts. \
Nowadays, Hephaestus continues to be a reliable source of industrial supply, albeit tending to be rather dated at times \
due to their relative lack of adaptation."

location_ids = list(
/datum/world_location/frontier::id,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 Citadel Station Developers *//

// todo: while this is all valid code, this file is commented out because the current weapon racking/pumping/chamber charging system is not good enough to support this.

/**
* * Uses restricted NT-protomag antimaterial caliber.
* * Single-shot.
* * Extremely powerful. Non-acquirable by most means.
* * Synchronous Slide Charging is inbuilt and non-replaceable.
*/
/obj/item/gun/ballistic/magnetic/nt_protomag/srp
name = "anti-material rifle"
desc = "A devastating single-shot rifle. Fires ferromagnetic slugs using a bank of internal supercapacitors."
description_fluff = {"
A monstrously powerful rifle made during the peak of the Phoron War, the Hephaestus Industries
"SRP" anti-material rifle was made to counter the development of personal exosuits as well as the
looming proliferation of heavy combat synthetics. As potent as it is unwieldly, the recoil generated
by this rifle is enough to fracture bone and dent a domestic synthetic's chassis - restricting its
use to the few combat androids sturdy enough to use it in sustained fire. The line was discontinued
by treaty after the War, with few surviving prototypes able to be found here and there around the Frontier.
While technically developed in part with the 'Nanotrasen Protomag' series of prototype mag-charged
weapons, this rifle was ultimately abandoned entirely by Nanotrasen due to the existence of their
existing pulse weapons, given the similar penetration of pulse weapons despite having a fraction
of the recoil.
"}

#warn impl all
Loading
Loading