- distance is INFINITE, 0, or a positive integer based on get_dist() between
the examiner and examinee's turfs when they are on the same Z. When the
examiner is dead or a ghost, distance is always 0.
- also updates /examine( implementations to use it!
- adds w_class_to_name proc for reusing "It is a X item." examine behavior.
* Energy gun icons moved to their own DMI.
Electromag damage type added, allowing objects to deal EMP damage.
EMP beamtypes added as proof of concept for above, and future use.
* Sort unused icons from used.
Remove duplicates from gun2.
* lasersmg sprite returned
* E X A M P L E
Ports over TGMC's Ammo HUD and all relevant code, adapted to work for Polaris's guns. This took me several days, but hey, I learned a bunch. <:
Time to port Aim Mode + Mentorhelp. :3c
- All guns now have an ammo HUD sprite. If one lacks one, it will be ??? or blank, at which point, make an issue report, as all guns should be working by now.
- Guns will display how many rounds they have left until ammunition runs dry.
- Ammo will only count the casings that CURRENTLY have a projectile in them. This is slightly unrealistic, yes, but it is better and more intuitive for the player. This also enables guns like the revolver to work, given they recycle casings.
- Up to 4 ammo HUDs can be displayed at once, but given we lack TGMC's attachments and guncode, you'll only ever usually see 2. TBD on porting over TGMC guncode. <:
- Ammunition for multiple guns has different colors in the HUD based on what you currently have loaded.
- If you're looking at this later on to add new things. DON'T USE _FLASH IN THE HUD_STATE_EMPTY. THE _FLASH IS ADDED ON BY CODE.
- Grenades have a hud_state, pending us ever porting over a grenade launcher. Rockets ALSO have a hud_state.
Example of Laser/Energy Weapons:
https://i.imgur.com/MGvqGxh.mp4
Captain's Gun:
https://i.imgur.com/Wd0SS3C.gif
Full Test of all weapons:
https://streamable.com/usp4dy
Upstream port of https://github.com/CHOMPStation2/CHOMPStation2/pull/4033
* Starts work on the Medical Expansion.
* Further Work
* Save Everything!
* Large volume of things.
* Log of Change
* I'm an idiot.
* Kidney assisted sprites. They didn't exist, for some reason.
* Fixfix
* Fixfix
* Update encased.dm
* Update glass.dm
* Update Chemistry-Reagents.dm
I am once more an idiot.
* Split augs.
* Fixfix
* Gun sound updates
Grenade Launcher sound source:
https://freesound.org/people/LeMudCrab/sounds/163458/
* Actually, this is a better way to handle this.
* Fixed accidental inconsistent indentation
* Renames shotgun.ogg to Gunshot_shotgun.ogg
Also actually changes the file names like I was supposed to last night.
* *peers* Didn't I just fix this shit?
* Actually fixes the missing files this time
* Update audible_deception.dm
* Changed tungsten core projectile sound by request
* Actually no this line is stupid and makes me angry
Simplifies dumb code that was badly copypasted.
Also fixed missing D'eagle fire_sound
* Smarter code
Less copypasta, more runtimes prevented in case somebody decides to make
a soundless gun whether done intentionally or not.
* Update gun.dm
Gun firemodes now work by setting vars on the parent gun item. Removes the
need to unpack a bunch of firemode values when shooting and the need for
certain guns to define special firemode types.
- Replaces the creation of throwaway items from New() with initial() calls for all chameleon items.
- Unfortunately throwaway items could not be removed when switch appearance, as initial() does not work very will with list vars.
- Makes chameleon item name cache lists global.
- Makes chameleon guns a subtype of energy guns, removes chameleon magazines.
- Moves chameleon.dm to clothing module root
- Items without icon or icon_state are no longer selectable as chameleon appearances.
- Chameleon verbs go in their own panel.
In particular, charge costs were chosen so that mounted energy guns
drain 80% of a default rig's power cell in 40 shots, and mounted laser
cannons drain the same in 20 shots.
Adds a type of smaller power cell for powering devices. Not used by much
at the moment, but it's one step closer to a more coherent picture of
power cells.
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.
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
Rewrites gun.dm. Reorganizes the firing procedure into logical procs and cleans up some unnecessary variables or demotes them to the subtypes that actually care. Energy weapons that create their own projectiles no longer care about in_chamber. Launcher support is much more natural now.
Cleans up duplicated cyborg energy weapon power supply code. Adds support for energy weapons to recharge from external power sources, unifying cyborg and hardsuit mounted weapons. Incorporates the cyborg taser recharging mechanism. Cleans up laser tag gun duplication
Changes path strings to actual paths. Changes relative paths to absolute paths.
Renamed several targeting vars to make their purposes more clear.
Fixed targeting not handling firing correctly for certain subtypes.
* Refactors projectile Bump()
* Converts projectile_type var strings to paths
* Reorganizes bullet projectile paths
* Made a pass through all the bullet_act() definitions. Mainly ensured that damage_type is checked when dealing damage to certain objects. Removed stupid /turf bullet_act() override, replaced with on_hit() overrides on the relevant projectiles.
* Adds shotgun pellets projectile. Adds Raptor's shotgun slug sprite.
* Gives stunshots more of their own identity, refluffs them as taser cartridges for shotguns. They still aren't obtainable anywhere unless spawned.
* Makes projectiles pass through girders and cultgirders with a certain probability, unless the girder itself was clicked.
* Projectiles are also able to pass through grilles. Low damage projectiles have a chance to be blocked by grilles. High damage projectiles have a chance to have some damage absorbed by the grille.
* Makes projectiles for blanks invisible.
* Adds flash bullet types
* Adds support for 'penetrating' projectiles
* Swaps .45 and 9mm projectile types. .45s hit slightly harder, 9mils have more ammo capacity.