Raptor007 / aq2-tng

Action Quake 2: The Next Generation. Raptor007's sandbox for testing changes. When verified stable, this code is pushed to the official aq2-tng repo:
https://github.com/aq2-tng/aq2-tng/tree/bots
4 stars 2 forks source link

CTF: item_health* entities #107

Closed m4son closed 2 years ago

m4son commented 3 years ago

I believe we are missing healthdrop when killing someone in mode like CTF, how much i dont know, but at least 50hp. This could be configurable with .ctf file maybe?

Or an option to enable existing disabled entities

"item_health_small" "item_health_large" this could give e.g. 40hp and 80 hp

This entities could be placed into maps with overrides/ent files.

Raptor007 commented 3 years ago

Hmm, it seems contrary to the spirit of an Action mod to bring back health pickups, which have always been deliberately disabled for "realism". This could be an optional cvar, but not the default CTF behavior.

m4son commented 3 years ago

I agree, since we have some game changing settings turned on by default, like loud_guns ( should be 0 by default if u ask me ), we could have cvar for this also.

Raptor007 commented 3 years ago

That's fair. You're probably right that loud_guns should be 0 by default. I like being able to hear when someone is shooting at me unsilenced from the other side of actcity3, and it makes silencers actually useful by having a different sound attenuation than non-silenced. But it is a deviation from how people are used to AQ2 behaving. (Similarly, maybe helmet should not be in the default item flags since it's not an original AQ2 feature?)

m4son commented 2 years ago

The helmet has been there for a long time and it is a fun item. It tilts a shooter 100% and the victim is smiling :) Sadly I do not find DM or TDM fun at all ( we just played a few maps ), it is very boring to play cause it's just spawn-miss_a_shot-die. With itemhealth* placed smart it can be fun. The idea is to give a chance to heal up for at least one more sniper shot to kevlar. Either it's health_large "80" as suggested or at least 50 and health_small "25" could get you to survive another sniper shot... Also, dropping an e.g. sniper with 0 bullets and picking dropped sniper from an enemy who shot just 1 bullet gives you 0 bullets... That ain't right too ...

Raptor007 commented 2 years ago

Today I had a great idea for a way to implement this feature that still feels like Action Quake. Instead of instantly healing on pickup, you use bandaging to apply health items gradually. It will start healing as soon as you bandage if you are not bleeding and have no leg damage, otherwise it will wait until those conditions are healed and then apply health.

Enable with ctf_medkit 50 for dead players to drop medkits worth 50 health. It will show on the HUD how much medkit you are carrying where grenades are displayed, and cycle if you have both.

(If you hate this idea and just want instant healing like you described, you can also set ctf_medkit_instant 1 for that.)

m4son commented 2 years ago

That is just brilliant, i like your idea and it works great. Now enable this for dm & teamdm, name it something else than ctf_ and we are good :smiley:

edit: in 5on5 match, weapons,items,medkit is gone after roughly 5s

Raptor007 commented 2 years ago

Sure, I can make this work for any mode. I'll change the variable to medkit_drop and get rid of the CTF check.

CTF makes all dropped items disappear after 7 seconds (6 touchable seconds) because players respawn with full kits: https://github.com/Raptor007/aq2-tng/blob/b13178df5592eeeb269d1cadc60c6eae998dc3a1/source/g_items.c#L908-L912

If that's too short, I can make an exception for the medkits: if( ent->item->pickup == Pickup_Health ) { ... }

But how long? Maybe another cvar medkit_time so you can customize it?

m4son commented 2 years ago

medkit_time sounds cool and it should default to at least double the time right now. so around 15s :+1:

Raptor007 commented 2 years ago

I went with medkit_time 30 default, but you can reduce it if you find too many medkits cluttering the map.