-
-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added self-revive and modified damage system #2890
Added self-revive and modified damage system #2890
Conversation
Optional self-revive mechanic: - Requires first aid kit. - Once per 5min, reset by vehicle box restore and respawning. - During 5min timeout, desaturation effect and increased sway. Modifications to Antistasi damage system: - Reworked unarmoured body damage reduction. - Reworked hitpoint-dependent down/kill results. - Fixed automatic hard-kill from 50cal.
I've been using this on my locally hosted single player game the last couple play sessions and it works great. It's nice having the option of getting back into the fight when your AI are busy or just standing there watching you bleed to death. With the desaturation and weakened condition it doesn't feel OP to me |
During play testing I did run across a case where the self-revive didn't work. I was in a truck and got hit by what I think was a grenade launcher. The truck exploded and I was down beside the truck. Using the H key did the usual popup about being back up and not feeling great but I was still stuck in a downed state. Another press of H informed me I had already used the revive. Maybe the explosion did more damage than normal? |
Nah, the revive just clears the incap var and sets global damage to 0.5 so it's not really possible for it to break. What seems most likely here is that you were downed again immediately after using the self-revive, as there's no invulnerability period. Cook off explosion or fire, maybe. |
Should we maybe add in like a 5 second invulnerability period? This is mostly for small groups and single player anyway. I don't think we really need to worry about it being "over powered". Or "Abused". |
Hmm. I'm not super-happy about this idea. One issue is that setCaptive is cleared (nearly) immediately by fn_unconscious, so if there's an enemy watching you when you revive, they'll magdump you for five seconds with no effect, which looks very weird. Other way is that we give every rebel revive that 5-second immunity and kill setCaptive at the same timing. I'll have to think whether that's likely to cause further problems. |
There's some related stuff here with undocumented behaviour. Antistasi will setCaptive on down but only if the killer wasn't invaders. Not sure why this is useful as vanilla AI behaviour on localhost seems to stop shooting as soon as the target is unconscious, and start again once they're conscious. On the other hand I recall getting magdumped with ACE on community, so maybe it's working around an Arma locality bug. |
Ah whatever, this works well on localhost and at worst it'll be a bit flaky on DS, but players won't stick with allowDamage false or anything bad like that. Five seconds is about the same time as the rollout animation takes, btw, so if there's an enemy looking right at you it's still a shootout. Threw in a fix for the revive parameter not working for players. Not strictly related to this PR but close enough. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved, after fixing merge confilcts
What type of PR is this.
What have you changed and why?
Optional self-revive mechanic:
New stuff is mostly stringtabled.
I was going to add a second self-revive method where you transfer bodies to a squad AI, but that's on hold for a player event handler refactor.
Modifications to Antistasi damage system:
Please specify which Issue this PR Resolves.
closes #2865
closes #2845
closes #1925
Please verify the following and ensure all checks are completed.
Is further testing or are further changes required?
It's had a fair amount of testing but probably needs more. Shouldn't need a DS test though, it's almost all local stuff aside from the one healing-box call.