GPAddons / GPSiege

Addon for GriefPrevention that allows claims to be attacked and looted.
3 stars 0 forks source link

Activity requirements/Anti-camp/Anti-grief #6

Open Jikoo opened 2 years ago

Jikoo commented 2 years ago

Camping unfortunately does seem to be a core flaw of existing siege and I'm not sure how to get around that. If the besieged user has a sealable bunker, they may as well just go AFK for the duration of the siege. Granting attackers access to levers/buttons would wreck a lot of chest securing mechanisms as you've described. Maybe defenders must move a certain distance or perform certain actions to be considered active? Taking damage from attackers is definitely participation, but the other options I'm not too sure of. I'm already envisioning someone's bunker being a 50 block tunnel that they just run back and forth in, or shooting an arrow into a wall every so often to refresh the timer. Maybe the attackers taking damage refreshes the defender's activity timer? That opens up the possibility of some kind of Home Alone situation where the defender is hiding and using a bunch of traps to discourage the attackers.

Siege should mandate some form of activity from participants to ensure that the siege is actually ongoing.

1) Defenders must be attempting to either harm to attackers or flee from them.

Initial idea: Timers for activity checks: internal timer -> display inactivity alert timer -> loss

1) Longer forgiveness period at start so that defenders can prep before activity mandates hit

Any activity on either side will refresh the timer for the entire side. The goal is to make the timer easy enough to refresh that players will never encounter it unless everyone on a side is actually not participating in the siege at all.

Jikoo commented 2 years ago

One major shortcoming of this system so far: Prepping an attacker victory by hiding/running. Couple scenarios come to mind for this, but they're all very similar: Player1 hides in an area near Player2 and the claim to siege. Player1 sieges Player2. Player3 joins the siege against Player2 and attacks, then runs away, refreshing the attacker timer before becoming disqualified for being absent. Player1 then waits out the defender timer and "wins" despite doing nothing.

Hiding alone is mitigated by the idea of using a bell to highlight attackers, which negates the need for a hacked client to see through walls/invisibility potions. If the attacker is too far away, the return to battle timer should forcibly fix that.

Maybe if the defender timer is supposed to alert but no attackers are inside accessible areas (i.e. all remaining attackers in areas the target cannot build in or under "return to battle" timer) the defender timer is refreshed.