The idea to have mercs equip ballistic shields isn't exactly new. It has not come to fruition, however, as the traditional way of adding this feature would have required copying and altering a gazillion animations, which is dreadfully tedious.
So instead, we've simply decided to take an easier way out at this year's convention, and basically made shields an overlay. This is by no means perfect - you will see the shield 'jump' if a merc walks, and occasionally shine through a wall - but that is acceptable, we think.
To the feature itself:
Shields only work if you equip them in your hands.
Shields are two-handed items, but as they also work in your offhand, they allow simultaneous use of blades, pistols and MPs. You cannot equip 2 at the same time though
I've added several shields to the trunk. In the above video, Shepard carries the heaviest variant, which works well up to and including some assault rifles. Lara carries the riot shield, which works well against pistols. She would have gotten into serious damage if she had engaged the Type-85 wielding enemy though. Igor created a wooden shield. It doesn't block much, but works well enough against very tiny bullets, like buckshot pellets.
There are 2 new item tags: <usRiotShieldStrength> controls how much incoming damage is blocked. The basic formula is
but this gets altered depending on attack type, ammo type and the circumference of your mom. Yes, a value of 100 will block absolutely everything.
Codewise, quite a few things are treated as bullets that you wouldn't think are bullets. This includes throwing knifes, flamethrowers, spit and RPGs.
<usRiotShieldGraphic> controls which sets of graphics are used for the shield: There is a new .sti file, Tilecache/riotshield.sti, that contains all the graphics for each direction. So if you want, you can simply add new shields of your own. All the current graphics and item pictures were done by smeagol.
While you can of course change that, I'd advise keeping shields at their current item size, which forbids them from being kept in any other place than hands. Otherwise the player could easily exploit shields by pulling them out at the end of a turn.
For obvious reasons, shields won't work while prone or swimming.
If a shield takes the entire damage of an explosion, the character won't fall down. This makes them especially useful against those OP vacuum grenades.
The AI does not yet know how to equip shields, or what special strategies to use against them. As I'd like a certain someone to merge his AI improvements to the trunk, I'd rather not fiddle in there before he does ;)
While a shield is equipped, any movement AP costs are multiplied with the new factor SHIELD_MOVEMENT_APCOST_MODIFIER from Item_Settings.ini.
A shield does not make you invincible. Flanking, explosions from the side or back, gas/fire or anti-material rifles can still bring you down. Though I have to admit, a turtle-formation does look nice
The bodybuilding trait works extremely well with this. It increases carry strength, which is useful on heavy shields. It makes it less likely to fall on a leg hit, which would remove the shield protection. And it offers additional damage protection, making the merc even tank-ier.
This picture shows from which direction a shield will block attacks: Shepard, Lara and Buns would hit the shield, Igor and Ivan would hit Trevor unimpeded.
Riot shields have been added to starting kits for Grizzly, Raider and It.
A shield covers more than just the silhouette of the person wielding it. As a result, a shield is more likely to catch a bullet, it is possible for a bullet to pierce the shield, but not hit the person behind it. Due to some... oddities in the code that are used to prevent an extreme amount of friendly fire, it is possible for bullets to not hit the shield, as the code effectively tells them that the person they would definitely hit is nit hit.
As you might have noticed if you are familiar with the game, when you are hit, there is a random chance that a merc will change their direction. As this would easily render this feature pointless, this behaviour is now off exclusively when wielding a shield.
This is fully savegame compatible.
This has been added to the trunk in r8434 & GameDir r2381. Using the new exe without the new GameDir data will cause Mr. Orange to increase the madness up to 11 (just kidding. He'll do it anyway!).
[Updated on: Tue, 01 August 2017 22:09]
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.
Messages:344
Registered:July 2006 Location: France
Flugente wrote on Sat, 29 July 2017 23:10
This is by no means perfect - you will see the shield 'jump' if a merc walks, and occasionally shine through a wall - but that is acceptable, we think.
We think too ;)
The idea has been around for ages, to no avail, yet you made it come to life. We should use your name instead of "amazing".
Thank you to Smeagol for hosting the convention (what a fruituous brainstorm !), and for the precious artwork.
Just noticed a character with a shield is still very prone to suppression
while i like the feature beecause this will not make shields too OP
i think using a shield should make you more resistant to change stance or lose AP(not much maybe)
after all you should feel safer behind a huge shield that cover most of your body.
For example i have Grizzly using a Swat shield and he almost always change stance when he receive simple pistols bullets
even if i have to admit i made a little more effective suppression in options_ini:
Maybe it would be better instead of using cheating settings make the simple change to the code:
if suppression attack comes from direction covered by shield (and maybe one adjacent direction to both sides), the AP loss is halved.
More than the AP loss is the change of stance that is annoying
i don't know if this is related to suppression effectiveness
but this happens very often
The change to stance (from standing to crouched, from crouched to prone) is part of the suppression mechanic.
Note that with a shield, suppression is already halved effectively. A moving bullet causes suppression on the tile it currently is and all surrounding tiles. So if a bullet hits a shield (and does not pierce it), it only adds suppression once instead of the usual twice.
Of course, a merc fully utilizing a shield would take a lot more fire than usual, so it may be that an additional suppression reduction may be in line. Personally I always tune down suppression because I find the default values way too high for my taste.
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.
As of r8467, moving while wielding a shield is now slightly less awkward. Not perfect by any means, but less awkward.
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.
Hi Flug. Great work on all new features.
I have an idea. How about enemy live shields?
For example big guy(big body type) like Grizzly, Bull etc. grabs enemy and use them as shields. Live shield maybe equal to wooden type. Is it possible to code?
While possible to do similar to dragging people around, which also works on enemies, this seems a bit too nonsensical to me.
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.
I'm not even going to pretend to have read up all that has happened in the ages since I've stopped doing anything JA2-related.
Anyway, I've fixed the display of ballistic shields in r9079, now they are properly drawn over/under a merc. Previously this was done somewhat differently, which often caused glitches - the most notable one being that a shield was drawn over rooftops if a merc was inside.
While doing that I've gotten yet another neat idea. Don't know what will come of it, the main reasons I went awol was that I was working on several complex mods at the same time and kinda burned out. Hmm.
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.
Since we have the render framework and a riot shield set up, I would forgo any additional fixes to the riot shield blitting functions and instead animate and implement riot shield specific animations. We'll have to do that for LOBOT anyways, so rendering a whole sprite for the original bodies' and adding it ingame would be worthwhile.
shrugs Sure, that would be neat, but I'm not going to be the one doing it
If one wants to do the entire thing in animations that's potentially quite a few though. One of the shields also has transparent parts and something written on it, though I guess that's an easy sacrifice.
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.