Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Guns Lineart and Autowiki Handling of Base Types (#5729)
# About the pull request This PR is a follow up to #5631 and does several things related to gun icons: - Autowiki now skips mags and guns with no icon_staste set (I did the same for attachments, but none are in this scenario) - Gun lineart now has the no_name sprite as the first sprite so it is used again as the default sprite when no lineart exists - Various gun linearts have been duplicated for sub types that are basically the same icon. - The testing for missing linearts has been fixed to check icon_state instead of base_gun_icon because only a couple guns even assigned base_gun_icon before Initialize - The testing for missing linearts now skips `GUN_UNUSUAL_DESIGN` since they can't be inspected - The unit_test for spritesheets now enforces css requirements. See https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier - The 88m4 has been renamed to _88m4 to comply with css requirements. - Removed the two cases where a base_gun_icon was set in the definition (that would just get reset in Initialize) - Since many guns are now missing sprites in the missing lineart test, the testing error is downgraded to only a debug log until they can all have an exception set or the icons set. Currently all the missing sprites are below: <details> <summary>Missing Sprites in icons/obj/items/weapons/guns/lineart.dmi</summary> - /obj/item/weapon/gun/pistol/np92, icon_state="np92" - /obj/item/weapon/gun/pistol/np92/suppressed, icon_state="npz92" - /obj/item/weapon/gun/pistol/np92/suppressed/tranq, icon_state="npz92" - /obj/item/weapon/gun/pistol/t73, icon_state="tt" - /obj/item/weapon/gun/pistol/t73/leader, icon_state="ttb" - /obj/item/weapon/gun/pistol/clfpistol, icon_state="m43" - /obj/item/weapon/gun/pistol/es4, icon_state="es4" - /obj/item/weapon/gun/energy/rxfm5_eva, icon_state="rxfm5_eva" - /obj/item/weapon/gun/launcher/rocket/anti_tank, icon_state="m83a2" - /obj/item/weapon/gun/launcher/rocket/anti_tank/disposable, icon_state="m83a2" - /obj/item/weapon/gun/launcher/rocket/upp, icon_state="hjra12" - /obj/item/weapon/gun/rifle/m41a/elite/xm40, icon_state="m40sd" - /obj/item/weapon/gun/rifle/m41a/elite/xm40/ap, icon_state="m40sd" - /obj/item/weapon/gun/rifle/nsg23, icon_state="nsg23" - /obj/item/weapon/gun/rifle/nsg23/stripped, icon_state="nsg23" - /obj/item/weapon/gun/rifle/nsg23/no_lock, icon_state="nsg23" - /obj/item/weapon/gun/rifle/nsg23/no_lock/stripped, icon_state="nsg23" - /obj/item/weapon/gun/rifle/mar40/lmg, icon_state="mar50" - /obj/item/weapon/gun/rifle/mar40/lmg/tactical, icon_state="mar50" - /obj/item/weapon/gun/rifle/xm177, icon_state="xm177" - /obj/item/weapon/gun/rifle/xm177/dutch, icon_state="xm177" - /obj/item/weapon/gun/rifle/ar10, icon_state="ar10" - /obj/item/weapon/gun/rifle/m4ra, icon_state="m4ra" - /obj/item/weapon/gun/rifle/m4ra/training, icon_state="m4ra" - /obj/item/weapon/gun/rifle/l42a/abr40, icon_state="abr40" - /obj/item/weapon/gun/rifle/l42a/abr40/tactical, icon_state="abr40_tac" - /obj/item/weapon/gun/rifle/rmc_f90, icon_state="aug" - /obj/item/weapon/gun/rifle/rmc_f90/a_grip, icon_state="aug_com" - /obj/item/weapon/gun/rifle/rmc_f90/scope, icon_state="aug_dmr" - /obj/item/weapon/gun/rifle/rmc_f90/shotgun, icon_state="aug_mkey" - /obj/item/weapon/gun/rifle/m4ra_custom, icon_state="m4ra_custom" - /obj/item/weapon/gun/rifle/sniper/XM43E1, icon_state="xm43e1" - /obj/item/weapon/gun/rifle/sniper/svd, icon_state="type88" - /obj/item/weapon/gun/boltaction, icon_state="boltaction" - /obj/item/weapon/gun/boltaction/vulture, icon_state="vulture" - /obj/item/weapon/gun/boltaction/vulture/skillless, icon_state="vulture" - /obj/item/weapon/gun/lever_action, icon_state="r4t-placeholder" - /obj/item/weapon/gun/lever_action/r4t, icon_state="r4t" - /obj/item/weapon/gun/lever_action/xm88, icon_state="boomslang" - /obj/item/weapon/gun/pkp, icon_state="qjy72" - /obj/item/weapon/gun/revolver/m44/custom/pkd_special, icon_state="lapd_2019" - /obj/item/weapon/gun/revolver/m44/custom/pkd_special/k2049, icon_state="lapd_2049" - /obj/item/weapon/gun/revolver/m44/custom/pkd_special/l_series, icon_state="pkd_double" - /obj/item/weapon/gun/revolver/m44/custom/webley, icon_state="webley" - /obj/item/weapon/gun/revolver/upp, icon_state="zhnk72" - /obj/item/weapon/gun/revolver/upp/shrapnel, icon_state="zhnk72" - /obj/item/weapon/gun/shotgun/combat/riot, icon_state="mp220" - /obj/item/weapon/gun/shotgun/combat/guard, icon_state="mp221" - /obj/item/weapon/gun/shotgun/combat/marsoc, icon_state="mk210" - /obj/item/weapon/gun/shotgun/type23, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/breacher, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/breacher/slug, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/breacher/flechette, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/dual, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/dragon, icon_state="type23" - /obj/item/weapon/gun/shotgun/type23/riot_control, icon_state="type23" - /obj/item/weapon/gun/shotgun/double/twobore, icon_state="twobore" - /obj/item/weapon/gun/smartgun/rmc, icon_state="magsg" - /obj/item/weapon/gun/smg/pps43, icon_state="insasu" - /obj/item/weapon/gun/smg/pps43/extended_mag, icon_state="insasu" - /obj/item/weapon/gun/smg/bizon, icon_state="type64" - /obj/item/weapon/gun/smg/bizon/upp, icon_state="type64_u" - /obj/item/weapon/gun/smg/uzi, icon_state="uzi" - /obj/item/weapon/gun/smg/nailgun, icon_state="nailgun" - /obj/item/weapon/gun/smg/nailgun/compact, icon_state="cnailgun" </details> # Explain why it's good for the game Now the 88m4 pistol doesn't show up as the default icon, and instead is the no_name icon: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/6d02f72b-4a29-48d6-900a-8b7109cd5057) Now spritesheet states that can't be displayed (such as the 88m4 because it starts with a digit) will fail unit tests: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/180d5834-d873-46b4-9cb8-e4c0ac03d033) but I ensured the rename to _88m4 still works correctly even with the empty state: ![image](https://github.com/cmss13-devs/cmss13/assets/76988376/0b788b37-e993-4c25-af3a-f4f7778034ac) # Testing Photographs and Procedure See above. All "new" sprites are duplicates of existing. # Changelog :cl: Drathek code: Autowiki now skips guns and mags without icon_states code: Unit testing for spritesheets now enforces css requirements for class names imageadd: Gun stats lineart now uses the no_name sprite again for guns without lineart /:cl:
- Loading branch information