Sometimes, I don't feel like coding realistic stuff. I want stuff to blow up! Sound effects! Something cool!
So I coded this:
If you've ever played Crusader, Mass Effect or a few other games, you'll know how this works. Cryo ammo
is an ammotype, just like AP, HP, Tracer etc..
is obviously meant for scifi.
freezes any person it hits for 2 turns. This can be stacked up to 2147483648 times. I figure this will be enough.
does no damage on its own.
requires <ammoflag>1</ammoflag> in AmmoTypes.xml
However, frozen people take a lot more damage from any source - damage resistance is lowered by 1000%!
Frozen persons cannot move, talk, or do anything really. Because they are solid. Due to code limitations, animations are a bit wonky.
If a frozen person dies, they are shattered, which uses 2 new animations I added.
Vehicles cannot be frozen... but that's mostly because I don't want to do extra shatter animations for vehicles. Theoretically, anything could be shattered. But this requires new anims, an who is going to do those?
While frozen, soldiers do not take any gas damage at all. Because A. they cannot breath, because they cannot move B. I say so. Additionally, being affected by fire (molotov cocktail) speeds up the thawing of the soldier. As a result, you can survive standing in fire if someone else freezes you for the duration (thus we now have a very unconventional but working way of surviving being molotoved).
As of GameDir r2284, the rocket rifle now has cryo ammo (item #1738) as a scifi-only item. You can add this to any gun though - the new ammo can be found in Ammotypes.xml as ammo #33. I simply feel it makes most sense with the rocket rifle, as that thing needs a justification for being there.
This has been added to the trunk in r8034 & GameDir r2284. For obvious reasons, you need the GameDir data for this, as I've added new animations and sounds. Not doing so will cause your toothbrush to apply for joint custody.
Edit: For information, these are the currently existing ammo flags in AmmoTypes.xml for <ammoflag>:
// -------- added by Flugente: various ammo flags --------
// flags used for various ammo properties (easier than adding 32 differently named variables). DO NOT CHANGE THEM, UNLESS YOU KNOW WHAT YOU ARE DOING!!!
#define AMMO_CRYO 0x00000001 //1 // this ammo shock-freezes target
#define AMMO_BLIND 0x00000002 //2 // this ammo will blind if it hits the head
#define AMMO_ANTIMATERIEL 0x00000004 //4 // this ammo is anti-materiel, bullets can destroy structures
[Updated on: Tue, 26 January 2016 01:06]
I know now that it could never work between us, as much as we wanted to, it could never be! Not because you're a rabbit, but because you're black.
If you want, you can donate to me. This will not affect how and what I code, and I will not code specific features in return. I will be thankful though.