Casing resprite (#23139)

>  - imageadd: "Resprited ammo casings."
>  - rscadd: "Individual rounds in an ammo pile now get rotated."

I always thought that the sprites of our ammo casing were somewhat
inconsistent, and very old. The shotgun shells were too large, and the
pistol, rifle, and so on, casings were too small. I also wanted to start
a hopefully multi-part series of gun-related PRs, so this can be part
one.

Also, individual rounds in ammo piles now also get rotated, it bothered
me that they get rotated everywhere put in piles, that is about it.

 NEW sprites on the top, old (current) on the bottom.
<img width="3072" height="1024" alt="casings and shells, shells and
casings"
src="https://github.com/user-attachments/assets/c1404a4b-278b-4beb-9a66-44822c384463"
/>
All shotgun shells and casings were resprited, but I think this gets the
idea across well enough.


### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
Modified port of sprites originally added to Shiptest in this PR:
https://github.com/shiptest-ss13/Shiptest/pull/1561
This commit is contained in:
ElorgRHG
2026-08-28 22:51:09 +00:00
committed by GitHub
parent dd339cb1d4
commit 0ad39a6534
12 changed files with 73 additions and 58 deletions
+1 -1
View File
@@ -113,7 +113,7 @@
I.color = pickweight(blood_picks)
return I
else
var/image/I = image('icons/obj/ammo.dmi', "s-casing-spent", layer = OBJ_LAYER)
var/image/I = image('icons/obj/ammunition/ammo.dmi', "bullet_casing_spent", layer = OBJ_LAYER)
I.layer = TURF_LAYER
I.dir = pick(GLOB.alldirs)
I.pixel_x = rand(-10,10)
@@ -15,7 +15,7 @@
name = "tungsten rod pack"
name_override = "tungsten rod"
desc = "A pack of rods used as ammunition for the M55A2 intermediate coilgun, if the obvious labelling and handling instructions didn't already give it away."
icon = 'icons/obj/ammo.dmi'
icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "trodpack-2"
caliber = SHIP_CALIBER_COILGUN
overmap_icon_state = "cannon"
@@ -16,7 +16,7 @@
name = "light tungsten rod pack"
name_override = "light tungsten rod"
desc = "A pack of rods used as ammunition for a light coilgun."
icon = 'icons/obj/ammo.dmi'
icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "trodpack-2"
caliber = SHIP_CALIBER_COILGUN
overmap_icon_state = "light_pulse"
+4 -4
View File
@@ -1,8 +1,8 @@
/obj/item/ammo_casing
name = "bullet casing"
desc = "A bullet casing."
icon = 'icons/obj/ammo.dmi'
icon_state = "s-casing"
icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "pistol_casing"
randpixel = 10
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT | SLOT_EARS
@@ -14,7 +14,7 @@
var/max_stack = 5 // how many of us can fit in a pile
var/projectile_type //The bullet type to create when New() is called
var/obj/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed?
var/spent_icon = "s-casing-spent"
var/spent_icon = "pistol_casing_spent"
drop_sound = SFX_CASING_DROP
pickup_sound = 'sound/items/pickup/ring.ogg'
@@ -93,7 +93,7 @@
name = "magazine"
desc = "A magazine for some kind of gun."
icon_state = "357"
icon = 'icons/obj/ammo.dmi'
icon = 'icons/obj/ammunition/ammo.dmi'
obj_flags = OBJ_FLAG_CONDUCTABLE
slot_flags = SLOT_BELT
item_state = "box"
@@ -180,7 +180,8 @@
S.remove_from_storage(bullet, src)
bullet.forceMove(src)
ammo += bullet
var/image/ammo_picture = image(bullet.icon, bullet.icon_state, dir = pick(GLOB.alldirs))
var/image/ammo_picture = image(bullet.icon, bullet.icon_state)
ammo_picture.transform = turn(ammo_picture.transform, rand(360))
ammo_picture.pixel_x = rand(-6, 6)
ammo_picture.pixel_y = rand(-6, 6)
ammo_overlays[bullet] = ammo_picture
+48 -48
View File
@@ -27,14 +27,14 @@
/obj/item/ammo_casing/c38/rubber
desc = "A .38 rubber bullet casing."
projectile_type = /obj/projectile/bullet/pistol/rubber
icon_state = "r-casing"
spent_icon = "r-casing-spent"
icon_state = "rubber_pistol_casing"
spent_icon = "rubber_pistol_casing_spent"
/obj/item/ammo_casing/c38/emp
name = ".38 haywire round"
desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
projectile_type = /obj/projectile/ion/small
icon_state = "empcasing"
icon_state = "emp_casing"
matter = list(MATERIAL_STEEL = 130, MATERIAL_URANIUM = 100)
/obj/item/ammo_casing/c38/spent/Initialize()
@@ -101,8 +101,8 @@
/obj/item/ammo_casing/c45/rubber
desc = "A .45 rubber bullet casing."
projectile_type = /obj/projectile/bullet/pistol/rubber
icon_state = "r-casing"
spent_icon = "r-casing-spent"
icon_state = "rubber_pistol_casing"
spent_icon = "rubber_pistol_casing_spent"
/obj/item/ammo_casing/c45/flash
desc = "A .45 flash shell casing."
@@ -128,8 +128,8 @@
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
desc = "A 12-gauge slug."
icon_state = "slshell"
spent_icon = "slshell-spent"
icon_state = "slug_shell"
spent_icon = "slug_shell_spent"
caliber = "shotgun"
projectile_type = /obj/projectile/bullet/shotgun
matter = list(MATERIAL_STEEL = 360)
@@ -146,8 +146,8 @@
/obj/item/ammo_casing/shotgun/pellet
name = "shotgun shell"
desc = "A 12-gauge shell."
icon_state = "gshell"
spent_icon = "gshell-spent"
icon_state = "buckshot_shell"
spent_icon = "buckshot_shell_spent"
projectile_type = /obj/projectile/bullet/pellet/shotgun
matter = list(MATERIAL_STEEL = 360)
@@ -160,24 +160,24 @@
/obj/item/ammo_casing/shotgun/blank
name = "shotgun shell"
desc = "A 12-gauge blank shell."
icon_state = "blshell"
spent_icon = "blshell-spent"
icon_state = "blank_shell"
spent_icon = "blank_shell_spent"
projectile_type = /obj/projectile/bullet/blank
matter = list(MATERIAL_STEEL = 90)
/obj/item/ammo_casing/shotgun/practice
name = "shotgun shell"
desc = "A 12-gauge practice shell."
icon_state = "pshell"
spent_icon = "pshell-spent"
icon_state = "practice_shell"
spent_icon = "practice_shell_spent"
projectile_type = /obj/projectile/bullet/shotgun/practice
matter = list(MATERIAL_STEEL = 90)
/obj/item/ammo_casing/shotgun/beanbag
name = "beanbag shell"
desc = "A 12-gauge beanbag shell."
icon_state = "bshell"
spent_icon = "bshell-spent"
icon_state = "beanbag_shell"
spent_icon = "beanbag_shell_spent"
projectile_type = /obj/projectile/bullet/shotgun/beanbag
matter = list(MATERIAL_STEEL = 180)
@@ -186,8 +186,8 @@
/obj/item/ammo_casing/shotgun/stunshell
name = "stun shell"
desc = "A 12-gauge taser cartridge."
icon_state = "stunshell"
spent_icon = "stunshell-spent"
icon_state = "stun_shell"
spent_icon = "stun_shell_spent"
projectile_type = /obj/projectile/energy/electrode/stunshot
matter = list(MATERIAL_STEEL = 360, MATERIAL_GLASS = 720)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -204,8 +204,8 @@
/obj/item/ammo_casing/shotgun/flash
name = "flash shell"
desc = "A 12-gauge chemical shell used to signal distress or provide illumination."
icon_state = "fshell"
spent_icon = "fshell-spent"
icon_state = "flash_shell"
spent_icon = "flash_shell_spent"
projectile_type = /obj/projectile/energy/flash/flare
matter = list(MATERIAL_STEEL = 90, MATERIAL_GLASS = 90)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -213,16 +213,16 @@
/obj/item/ammo_casing/shotgun/incendiary
name = "incendiary shell"
desc = "A 12-gauge incendiary shell."
icon_state = "ishell"
spent_icon = "ishell-spent"
icon_state = "incendiary_shell"
spent_icon = "incendiary_shell_spent"
projectile_type = /obj/projectile/bullet/shotgun/incendiary
matter = list(MATERIAL_STEEL = 450)
/obj/item/ammo_casing/shotgun/emp
name = "haywire slug"
desc = "A 12-gauge shotgun slug fitted with a single-use ion pulse generator."
icon_state = "empshell"
spent_icon = "empshell-spent"
icon_state = "emp_shell"
spent_icon = "emp_shell_spent"
projectile_type = /obj/projectile/ion
matter = list(MATERIAL_STEEL = 260, MATERIAL_URANIUM = 200)
reload_sound = 'sound/weapons/reload_shell_emp.ogg'
@@ -230,8 +230,8 @@
/obj/item/ammo_casing/shotgun/tracking
name = "tracking slug"
desc = "A 12-gauge shotgun slug fitted with a tracking implant, set to activate upon embedding flesh."
icon_state = "trackingshell"
spent_icon = "trackingshell-spent"
icon_state = "tracking_shell"
spent_icon = "tracking_shell_spent"
projectile_type = /obj/projectile/bullet/tracking
/obj/item/ammo_casing/shotgun/moghes
@@ -245,8 +245,8 @@
/obj/item/ammo_casing/tranq
name = "Plastic-Gas Shell"
desc = "A Plastic-Gas Shell (PGS) casing, for air powered weapons."
icon_state = "ishell"
spent_icon = "ishell-spent"
icon_state = "incendiary_shell"
spent_icon = "incendiary_shell_spent"
caliber = "PGS"
projectile_type = /obj/projectile/bullet/rifle/tranq
max_stack = 6
@@ -255,8 +255,8 @@
desc = "A 7.62mm bullet casing."
caliber = "a762"
projectile_type = /obj/projectile/bullet/rifle/a762
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
icon_state = "rifle_casing"
spent_icon = "rifle_casing_spent"
max_stack = 2
/obj/item/ammo_casing/a762/spent/Initialize()
@@ -267,8 +267,8 @@
desc = "A Z33 Tamparii bullet casing."
caliber = "6.8mm"
projectile_type = /obj/projectile/bullet/rifle/a68
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
icon_state = "rifle_casing"
spent_icon = "rifle_casing_spent"
max_stack = 5
/obj/item/ammo_casing/a68/spent/Initialize()
@@ -294,16 +294,16 @@
caliber = "14.5mm"
projectile_type = /obj/projectile/bullet/rifle/a145
matter = list(MATERIAL_STEEL = 1250)
icon_state = "lcasing"
spent_icon = "lcasing-spent"
icon_state = "heavy_rifle_casing"
spent_icon = "lcasing-heavy_rifle_casing_spent"
max_stack = 2
/obj/item/ammo_casing/a556
desc = "A 5.56mm bullet casing."
caliber = "a556"
projectile_type = /obj/projectile/bullet/rifle/a556
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
icon_state = "intermediate_rifle_casing"
spent_icon = "intermediate_rifle_casing_spent"
max_stack = 7
/obj/item/ammo_casing/a556/ap
@@ -331,14 +331,14 @@
desc_extended = "Designed by de Namur not long after the interstellar war, the 6.5mmx40mm cartridge, designed to fit the needs of Xanu's military while going away from the legacy rounds used by the Sol Alliance. This cartridge has been wildly successful, and has been adopted by the majority of the Coalition of Colonies and beyond."
caliber = "a65"
projectile_type = /obj/projectile/bullet/rifle/a65
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
icon_state = "intermediate_rifle_casing"
spent_icon = "intermediate_rifle_casing"
max_stack = 7
/obj/item/ammo_casing/rocket
name = "rocket shell"
desc = "A high explosive designed to be fired from a launcher."
icon_state = "rocketshell"
icon_state = "missile"
projectile_type = /obj/item/missile
caliber = "rocket"
max_stack = 1
@@ -375,8 +375,8 @@
projectile_type = /obj/projectile/bullet/rifle/vintage
desc = "A .30-06 Government bullet casing. It looks old, and you can barely understand the writing stamped on it."
caliber = "30-06 govt"
icon_state = "lcasing"
spent_icon = "lcasing-spent"
icon_state = "heavy_rifle_casing"
spent_icon = "heavy_rifle_casing_spent"
max_stack = 6
/obj/item/ammo_casing/vintage/spent/Initialize()
@@ -387,8 +387,8 @@
projectile_type = /obj/projectile/bullet/rifle/govt
desc = "A .45-70 Government bullet casing."
caliber = "45-70 govt"
icon_state = "gcasing"
spent_icon = "gcasing-spent"
icon_state = "government_casing"
spent_icon = "government_casing"
max_stack = 4
/obj/item/ammo_casing/slugger
@@ -538,8 +538,8 @@
/obj/item/ammo_casing/kumar_super
name =".599 kumar super casing"
icon_state = "rifle-casing"
spent_icon = "rifle-casing-spent"
icon_state = "rifle_casing"
spent_icon = "rifle_casing_spent"
caliber = ".599 Kumar Super"
projectile_type = /obj/projectile/bullet/rifle/kumar_super
max_stack = 5
@@ -552,16 +552,16 @@
/obj/item/ammo_casing/moghes_pistol
desc = "A Moghesian pistol casing."
icon_state = "moghes_casing_p"
spent_icon = "moghes_casing_p_spent"
icon_state = "moghes_pistol_casing"
spent_icon = "moghes_pistol_casing_spent"
caliber = "11.6mm"
projectile_type = /obj/projectile/bullet/pistol/medium/ap
max_stack = 15
/obj/item/ammo_casing/moghes_rifle
desc = "A Moghesian rifle casing."
icon_state = "moghes_casing"
spent_icon = "moghes_casing_spent"
icon_state = "moghes_rifle_casing"
spent_icon = "moghes_rifle_casing_spent"
caliber = "5.8mm"
projectile_type = /obj/projectile/bullet/rifle/a556
max_stack = 7
@@ -1,7 +1,7 @@
/obj/item/syringe_cartridge
name = "syringe gun cartridge"
desc = "An impact-triggered compressed gas cartridge that can be fitted to a syringe for rapid injection."
icon = 'icons/obj/ammo.dmi'
icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "syringe-cartridge"
var/icon_flight = "syringe-cartridge-flight" //so it doesn't look so weird when shot
matter = list(MATERIAL_STEEL = 125, MATERIAL_GLASS = 375)