Skip to content

Commit

Permalink
SUNS Part Two: Weaponry (#2708)
Browse files Browse the repository at this point in the history
## About The Pull Request
Wait a minute! You're not the person that did part one!

I know, she asked me to implment the swords. I did tell her to wait
adding the guns because of the hunter's pride PR, but since thats
merged, this shouldn't be too big of a deal.

While factional paint on a syndicate faction's guns is unusual, i felt
it was the best way to unifiy the weird mix of Solarian weapons and
scarborghs tactical guns. However, I didn't spend much time on the
scarborgh weapons as they are due for a resprite anyways.

## Why It's Good For The Game


![image](https://github.com/shiptest-ss13/Shiptest/assets/58402542/7250bab4-03d8-4e29-927c-5d53f4c423b2)

## Changelog

:cl:
add: SUNS's swords! Now you can duel over petty matters and potentially
die, just like your forefathers!
add: SUNS's guns! Now you can fight over serious matters and potentially
die, just like your syndicate comrades!
/:cl:

---------

Signed-off-by: retlaw34 <[email protected]>
Co-authored-by: JimKil3 <[email protected]>
  • Loading branch information
rye-rice and JimKil3 authored Feb 9, 2024
1 parent 9517a58 commit 1ce2192
Show file tree
Hide file tree
Showing 22 changed files with 203 additions and 7 deletions.
79 changes: 79 additions & 0 deletions code/game/objects/items/melee/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,85 @@
icon_state = "sabresolgov"
item_state = "sabresolgov"

/obj/item/melee/sabre/suns
name = "SUNS sabre"
desc = "A blade of Solarian origin given to SUNS followers."
icon_state = "suns-sabre"
item_state = "suns-sabre"

/obj/item/melee/sabre/suns/captain
name = "SUNS captain sabre"
desc = "An elegant blade awarded to SUNS captains. Despite its higher craftmanship, it appears to be just as effective as a normal sabre."
icon_state = "suns-capsabre"
item_state = "suns-capsabre"

/obj/item/melee/sabre/suns/cmo
name = "SUNS stick sabre"
desc = "A thin blade used by SUNS medical instructors."
icon_state = "suns-swordstick"
item_state = "suns-swordstick"

/obj/item/melee/sabre/suns/telescopic
name = "telescopic sabre"
desc = "A telescopic and retractable blade given to SUNS peacekeepers for easy concealment and carry. It's design makes it slightly less effective than normal sabres sadly, however it is still excelent at piercing armor."
icon_state = "suns-tsword"
item_state = "suns-tsword"
force = 0
throwforce = 0
block_chance = 0

slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("smacked", "prodded")


var/extended = FALSE
var/extend_sound = 'sound/weapons/batonextend.ogg'



var/on_icon_state = "suns-tsword_ext"
var/on_item_state = "suns-tsword_ext"
var/off_icon_state = "suns-tsword"
var/off_item_state = "suns-tsword"

var/force_on = 10
var/on_throwforce = 10
var/on_blockchance = 40

var/force_off = 0
var/off_throwforce = 0
var/off_blockchance = 0

var/weight_class_on = WEIGHT_CLASS_BULKY

/obj/item/melee/sabre/suns/telescopic/attack_self(mob/user)
extended = !extended

if(extended)
to_chat(user, "<span class ='warning'>You extend the [src].</span>")
icon_state = on_icon_state
item_state = on_item_state
slot_flags = 0
w_class = weight_class_on
force = force_on
throwforce = on_throwforce
block_chance = on_blockchance
attack_verb = list("slashed", "cut")
else
to_chat(user, "<span class ='notice'>You collapse the [src].</span>")
icon_state = off_icon_state
item_state = off_item_state
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
force = force_off
throwforce = off_throwforce
block_chance = off_blockchance
attack_verb = list("smacked", "prodded")

playsound(get_turf(src), extend_sound, 50, TRUE)
add_fingerprint(user)

/obj/item/melee/beesword
name = "The Stinger"
desc = "Taken from a giant bee and folded over one thousand times in pure honey. Can sting through anything."
Expand Down
86 changes: 85 additions & 1 deletion code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@
AddElement(/datum/element/update_icon_updates_onmob)
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.use_sound = null
STR.use_sound = null //if youre wondering why this is null, its so you can look in your sheath to prepare to draw, without letting anyone know youre preparing to draw it
STR.max_w_class = WEIGHT_CLASS_BULKY
STR.set_holdable(list(
/obj/item/melee/sabre
Expand Down Expand Up @@ -842,6 +842,90 @@
new /obj/item/melee/sabre/solgov(src)
update_appearance()

/obj/item/storage/belt/sabre/suns
name = "SUNS sabre sheath"
desc = "A leather sheath designed to hold a blade."

icon = 'icons/obj/clothing/faction/suns/belt.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/suns/belt.dmi'
lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi'

base_icon_state = "suns-sheath"
icon_state = "suns-sheath"
item_state = "suns-sheath"
w_class = WEIGHT_CLASS_BULKY

/obj/item/storage/belt/sabre/suns/ComponentInitialize()
AddComponent(component_type)
AddElement(/datum/element/update_icon_updates_onmob)
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.use_sound = null
STR.max_w_class = WEIGHT_CLASS_BULKY
STR.set_holdable(list(
/obj/item/melee/sabre/suns
))

/obj/item/storage/belt/sabre/suns/PopulateContents()
new /obj/item/melee/sabre/suns(src)
update_appearance()


/obj/item/storage/belt/sabre/suns/captain
name = "SUNS captain's sabre sheath"
desc = "An elegant and impressively made leather sheath designed to hold a captain's blade."

base_icon_state = "suns-capsheath"
icon_state = "suns-capsheath"
item_state = "suns-capsheath"
w_class = WEIGHT_CLASS_BULKY

/obj/item/storage/belt/sabre/suns/captain/ComponentInitialize()
AddComponent(component_type)
AddElement(/datum/element/update_icon_updates_onmob)
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.use_sound = null
STR.max_w_class = WEIGHT_CLASS_BULKY
STR.set_holdable(list(
/obj/item/melee/sabre/suns/captain
))

/obj/item/storage/belt/sabre/suns/captain/PopulateContents()
new /obj/item/melee/sabre/suns/captain(src)
update_appearance()

/obj/item/storage/belt/sabre/suns/cmo
name = "SUNS cane sheath"
desc = "A walking cane modified to hold a thin stick sabre. It does not fit on belts, contrary to popular belief."
slot_flags = null

icon = 'icons/obj/clothing/faction/suns/belt.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/suns/belt.dmi'
lefthand_file = 'icons/mob/inhands/faction/suns/suns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/faction/suns/suns_righthand.dmi'

base_icon_state = "suns-cane"
icon_state = "suns-cane"
item_state = "suns-cane"
w_class = WEIGHT_CLASS_BULKY

/obj/item/storage/belt/sabre/suns/ComponentInitialize()
AddComponent(component_type)
AddElement(/datum/element/update_icon_updates_onmob)
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.use_sound = null
STR.max_w_class = WEIGHT_CLASS_BULKY
STR.set_holdable(list(
/obj/item/melee/sabre/suns/cmo
))

/obj/item/storage/belt/sabre/suns/PopulateContents()
new /obj/item/melee/sabre/suns/cmo(src)
update_appearance()

/obj/item/storage/belt/security/webbing/inteq
name = "inteq webbing"
desc = "A set of tactical webbing for operators of the IRMG, can hold security gear."
Expand Down
8 changes: 6 additions & 2 deletions code/modules/clothing/outfits/factions/syndicate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@
head = /obj/item/clothing/head/suns/captain
gloves = /obj/item/clothing/gloves/suns/captain
suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/captain
belt = /obj/item/storage/belt/sabre/suns/captain
mask = /obj/item/clothing/mask/breath/suns
neck = /obj/item/clothing/neck/cloak/suns/cap

Expand Down Expand Up @@ -441,6 +442,7 @@
l_pocket = /obj/item/pinpointer/crew
suit = /obj/item/clothing/suit/toggle/labcoat/suns/cmo
l_hand = /obj/item/storage/firstaid/medical
r_hand = /obj/item/storage/belt/sabre/suns/cmo
suit_store = /obj/item/flashlight/pen
backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1)
gloves = /obj/item/clothing/gloves/color/latex/nitrile/suns
Expand Down Expand Up @@ -488,6 +490,7 @@

uniform = /obj/item/clothing/under/syndicate/suns/xo
suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/xo
belt = /obj/item/storage/belt/sabre/suns
shoes = /obj/item/clothing/shoes/combat/suns
head = /obj/item/clothing/head/suns
gloves = /obj/item/clothing/gloves/suns/xo
Expand Down Expand Up @@ -555,11 +558,12 @@
name = "Syndicate - Senior Peacekeeper (SUNS)"
uniform = /obj/item/clothing/under/syndicate/suns/pkuniform
suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns/hos
belt = /obj/item/melee/sabre/suns/telescopic
gloves = /obj/item/clothing/gloves/tackler/dolphin/suns
shoes = /obj/item/clothing/shoes/combat/suns
head = /obj/item/clothing/head/welding/suns/hos
glasses = /obj/item/clothing/glasses/hud/security/suns
suit_store = /obj/item/gun/ballistic/automatic/powered/gauss/modelh
suit_store = /obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns

backpack = /obj/item/storage/backpack
satchel = /obj/item/storage/backpack/satchel
Expand Down Expand Up @@ -834,7 +838,7 @@
uniform = /obj/item/clothing/under/syndicate/suns/pkuniform
suit = /obj/item/clothing/suit/armor/vest/bulletproof/suns
alt_suit = /obj/item/clothing/suit/toggle/suns/pkcoat
belt = null
belt = /obj/item/melee/sabre/suns/telescopic
gloves = /obj/item/clothing/gloves/tackler/dolphin/suns
shoes = /obj/item/clothing/shoes/jackboots/suns/long
head = /obj/item/clothing/head/welding/suns
Expand Down
17 changes: 16 additions & 1 deletion code/modules/projectiles/guns/ballistic/gauss.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

/obj/item/gun/ballistic/automatic/powered/gauss/modelh
name = "Model H"
desc = "Standard-issue pistol of the Solarian Confederation. Fires slow ferromagnetic slugs at a high energy cost, though they rend flesh with ease."
desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor."
mag_type = /obj/item/ammo_box/magazine/modelh
icon_state = "model-h"
item_state = "model-h"
Expand All @@ -46,6 +46,11 @@
spread = 3
spread_unwielded = 12

/obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns
desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor. It is painted in the colors of SUNS."
mag_type = /obj/item/ammo_box/magazine/modelh
icon_state = "model-h_suns"
item_state = "model-h_suns"

/obj/item/gun/ballistic/automatic/powered/gauss/claris
name = "Claris"
Expand All @@ -65,6 +70,11 @@
empty_indicator = FALSE
manufacturer = MANUFACTURER_SOLARARMORIES

/obj/item/gun/ballistic/automatic/powered/gauss/claris/suns
desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended. Evidently, SUNS' founders echo the sentiment, as it appears to be painted in their colors."
icon_state = "claris_suns"
item_state = "claris_suns"

/obj/item/gun/ballistic/automatic/powered/gauss/gar
name = "Solar 'GAR' Carbine"
desc = "A Solarian carbine, unusually modern for its producers. Launches ferromagnetic lances at alarming speeds."
Expand All @@ -86,3 +96,8 @@
/obj/item/gun/ballistic/automatic/powered/gauss/gar/ComponentInitialize()
. = ..()
AddComponent(/datum/component/automatic_fire, 0.2 SECONDS)

/obj/item/gun/ballistic/automatic/powered/gauss/gar/suns
desc = "A Solarian carbine, unusually modern for its producers. It's just modern enough for SUNS, however, who have painted the weapon in their colors. Launches ferromagnetic lances at alarming speeds."
icon_state = "gar_suns"
item_state = "gar_suns"
4 changes: 4 additions & 0 deletions code/modules/projectiles/guns/ballistic/pistol.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@
var/obj/item/suppressor/S = new(src)
install_suppressor(S)

/obj/item/gun/ballistic/automatic/pistol/suns
desc = "A small, easily concealable 10mm handgun that bears Scarborough Arms stamps. It is painted in the colors of SUNS."
icon_state = "pistol_suns"

/obj/item/gun/ballistic/automatic/pistol/candor
name = "\improper Candor"
desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. Chambered in .45."
Expand Down
9 changes: 7 additions & 2 deletions code/modules/projectiles/guns/ballistic/shotgun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@
can_suppress = FALSE
burst_size = 1
fire_delay = 0
pin = /obj/item/firing_pin/implant/pindicate
fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg'
actions_types = list()
mag_display = TRUE
Expand Down Expand Up @@ -238,7 +237,13 @@
pin = /obj/item/firing_pin
manufacturer = MANUFACTURER_INTEQ

/obj/item/gun/ballistic/shotgun/bulldog/minutemen
/obj/item/gun/ballistic/shotgun/bulldog/suns
name = "\improper Bulldog-C Shotgun"
desc = "A variation of the Bulldog manufactured by Scarborough Arms for SUNS. Its shorter barrel is intended to provide additional maneuverability in personal defense scenarios."
icon_state = "bulldog_suns"
item_state = "bulldog_suns"

/obj/item/gun/ballistic/shotgun/bulldog/minutemen //TODO: REPATH
name = "\improper CM-15"
desc = "A standard-issue shotgun of the Colonial Minutemen, most often used by boarding crews. Only compatible with specialized 8-round magazines."
icon = 'icons/obj/guns/48x32guns.dmi'
Expand Down
7 changes: 6 additions & 1 deletion code/modules/projectiles/guns/ballistic/smg.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

/obj/item/gun/ballistic/automatic/smg/c20r
name = "\improper C-20r SMG"
desc = "A bullpup .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.'"
icon_state = "c20r"
item_state = "c20r"
mag_type = /obj/item/ammo_box/magazine/smgm45
Expand Down Expand Up @@ -63,6 +63,11 @@
icon_state = "cobra20"
item_state = "cobra20"

/obj/item/gun/ballistic/automatic/smg/c20r/suns
desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.' This one is painted in SUNS' colors."
icon_state = "c20r_suns"
item_state = "c20r_suns"

/obj/item/gun/ballistic/automatic/smg/inteq
name = "\improper SkM-44(k)"
desc = "An extreme modification of an obsolete assault rifle, converted into a compact submachine gun by IRMG. Chambered in 10mm."
Expand Down
Binary file modified icons/mob/clothing/back.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/belt_mirror.dmi
Binary file not shown.
Binary file added icons/mob/clothing/faction/suns/belt.dmi
Binary file not shown.
Binary file modified icons/mob/clothing/faction/suns/mask.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/faction/suns/suns_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/faction/suns/suns_righthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/guns_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/guns_righthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/swords_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/swords_righthand.dmi
Binary file not shown.
Binary file added icons/obj/clothing/faction/suns/belt.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/faction/suns/mask.dmi
Binary file not shown.
Binary file modified icons/obj/guns/48x32guns.dmi
Binary file not shown.
Binary file modified icons/obj/guns/projectile.dmi
Binary file not shown.
Binary file modified icons/obj/items_and_weapons.dmi
Binary file not shown.

0 comments on commit 1ce2192

Please sign in to comment.