Changes:
- Code copied over to hud.dm and commented out, to prep for upstream pull.
- Commented-out, unused code removed.
- CHOMPEdits removed, pending upstream PR.
- Medigun no longer shows 2x the actual ammo loaded.
- Curabitur now fetches the amount of shots correctly, bar 1 extra for some reason.
- Curabitur ammo updates on automatic recharge ticks.
- A ton of projectile get_ammo_count optimization - mostly swaps the massive if/else for for loops. Fixes multiple guns not getting ammo properly, now casings won't register as ammo unless they have a shell in the casing.
- hud_state_empty defined as base on all bullets.
- Corrects energy weapons missing a hud_state_empty.
- Gives Ion weapons a hud_state_empty
All changes have been tested, and bar the Curabitur having an extra shot for ??? reason, which is a base bug I've yet to fix, this is entirely ready for testmerge.
- Fixes all projectile guns not having an empty state after unloading the gun via various methods
- Fixes stun revolver not having an empty sprite
- Fixes self-charging guns not updating ammo counts
Still needing fixes:
- Revolvers do not update ammo counts after firing, only on emptying the gun/adding new shells.
Forces updates upon cycling the next round.
Fixes Chambered casings still counting for ammo despite having no associated projectile. Because for ~realism~ the casing has a BB var that determines if we currently have a bullet available to fire.
Adds rocket states for our ONE measly rocket launcher.
Phasers will now update their ammunition count on every single pump.
* Adds Collapsible AM rifle, and adds case with parts and 5 shots to Uplink. Separates it and intended merc version, both costing default telecrystal amount. Does NOT make them antagonist type specific.
* Addresses review.
* Makes rifle case traitor/merc specific. Enables ability to have specific uplink items be available only for specific antags.
- Fixes pirate gun not getting 12g caliber correctly.
- Fixes .357 caliber not being named consistently with everything else.
(Do not merge this until
https://github.com/PolarisSS13/Polaris/pull/3533 is merged pls, unless
Yosh fixes his caliber to be correct also.)
- Changes .50AE ammo to .44 because that's more consistent with what the
gun is capable of in-game, because it uses the same damage values as the
.357 and not a bullet that shoots through through your fridge, through
your house, and hits your neighbor's home invader like a .50AE is IRL.
The fact that it's .44 makes much more sense. This is purely a fluff
change because it annoyed me.
- Fixes a bunch of ammo.dmi icon names and makes the file not a jumbled
fucking mess. This means now your 762 mags and the newly renamed 44 mags
will not be broken anymore.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
Adds ability to hit a shotgun or similar weapon with a container containing ammo, to load said ammo into the shotgun one at a time automatically, instead of having to play inventory tetris, as requested by some people.
Expands on firemodes to include settings for the egun/adv egun,
floraray, and pulse rifle.
By default attack_self() now cycles firemodes for any gun. Updates
several projectile guns in a desperate attempt to avoid the need for an
unload ammo verb.
Protolathe and CI build procs moved to them from RD console.
Protolathe and CI now have a build queue. Designs take varying time to
build.
P and CI material storage is now a list instead of a set of vars.
origin_tech is now a list.
All sheets now contain exactly 2000 units of matter.
In design datum, chemicals and materials are two separate lists.
Designs are now sorted. The method is kinda hacky but flexible. They
have a var, sort_string. Designs are sorted alphabetically using it.
Circuits how show whether they build a machine or a computer in CI menu.
Adds item construction, for now protolathe is used.
Fixes SAW unloading. Fixes c20r and SAW icon states. Tweaks sniper desc, and makes clip icons for 7.62mm ammo less pixelated - still pretty much a codersprite though. Fixes ptrs item_state.
Fixes certain guns being unremovable due to unloading ammo taking
precedence over picking up. Also adds on-back icon for the merc sniper
which is just a copy of the LWAP's.
Makes syringe guns a type of launcher gun, and removes the hack
projectile.
Also moves syringe and dart gun source files into the modules/projectile
folder.
Removes can_fire() and moves some of it's functionality into
get_next_projectile(), which was renamed to consume_next_projectile() to
indicate the possibility of side-effects.
Also renamed flag var to check_armour