Page 1 of 1

NoStackKilling unit flag

Posted: Thu Feb 07, 2019 4:19 pm
by Wahazar
I propose to add "NoStackKilling" unit flag, unit with such flag would prevent stack against whole stack killing, if defender fails.
In other words, such unit would act like movable fortress (without defense bonuses, of course).

Possible uses of such flag are, for example:
fighters: instead of this ugly "unrechable_protects" hack, which make stack with fighter completely invincible, fighters would protect stack against immediately killing whole stack with one unit - you need to kill it one by one, and even if whole land stack is killed, airplane still hovers around, blocking tile - like in classic civ.
leader - game with GameLoss unit is usually boring, only you need is to hide this coward in safe place,
but leader with NoStackKilling flag can be used for a crucial battle, to encourage his army but risking end of the game,
or still hiding safely in fortified capital - interesting strategic dilemma.

Re: NoStackKilling unit flag

Posted: Thu Feb 07, 2019 5:39 pm
by Ignatus
Maybe, but for planes mare obvious solution is just ecclude unreachable one from the defenders - the reachable ones live or die disregarding what is there in the sky. Or, maybe, add some "aviation support" bonus to the defender, but probably different from adding the plane's full attack or defense - maybe something like pre-battle one-round bombardment from civ3, but maybe for all stacked aircraft. Basically, the unit you propose acts in defense much like Civ3 army but with unlimited capacity. The winning strategy with such a leader likely often will be "stack all that you have and destroy the adversary's everything".

Re: NoStackKilling unit flag

Posted: Thu Feb 07, 2019 5:48 pm
by Wahazar
Ignatus wrote:Maybe, but for planes mare obvious solution is just ecclude unreachable one from the defenders - the reachable ones live or die disregarding what is there in the sky.
It is a standard behavior with unreachableprotects disabled, but people complain, that air units are useless in such case as defenders - no air supremacy.
On the other hand, unreachableprotects enabled is much too harsh in my opinion, making flight units overpowered. And it is not an elegant solution, I was pretty sure it is a bug for the first time.
My proposal offer something in between above settings.

Re: NoStackKilling unit flag

Posted: Thu Feb 07, 2019 6:08 pm
by Ignatus
Oh, I didn't try it and thought that protecting unreachable unit actually risks itself in combat! Well, then maybe it will be a possible compromiss. But deathballs with aviation coverage are still overpowered this way, that is what killstack is supposed to prevent.

Re: NoStackKilling unit flag

Posted: Sun Feb 10, 2019 11:10 am
by nef
Wahazar wrote: leader - game with GameLoss unit is usually boring, only you need is to hide this coward in safe place
A little off topic perhaps but I tried regicide in fc2.4.4. "Coward" is a little too strong. I used it to enter huts - no death by barbs!!!

Also, makes it dead easy to take out an "ally". Easy to find, easy to kill. Piece of cake.

My suggestion here is to make the leader invisible UNLESS he is the only unit on a tile. Also not visible while moving so it can move from one hiding place to another without being noticed.

My other use was to park him in a fort to gain extra visibility of say a strategic sea passage.

Re: NoStackKilling unit flag

Posted: Mon Mar 25, 2019 9:55 am
by Lexxie
Wahazar is correct that this would be a good feature. Any feature that allows finer programming of rulesets is a good thing. There are far too many paradoxes and mazes of catch-22's to try to work around in making a ruleset now. Each new feature like this would be a good thing.

Ideally, unreachableprotects should be specified as an override at the unit level.

Consider, for example, a game where you do not want Fighters to be defensively useless and unable to defend a Worker. You do not want unreachableprotects="DISABLED" in such a case.

But what this now means is that:
1. AWACS, Cargo Planes, Satellites, Spy Balloons can all be killed by Crusaders, OR
1a. All those units have a magic ability to prevent Howitzers from attacking a Worker.

1. Submarines can't submerge and must be accessible to Fighters and all units who can attack Oceanic, OR
1a. Submarines are magic stack protectors to prevent Fighters from attacking ships.

In the mp2 ruleset, we were able to create a "hack patch" for specifying two different types of Unreachable, specified at the unit level. This solved finally the problem, so that now you can have Unreachable fighters giving proper defensive ground support, while not having things like Balloons or AWACS magically protecting a stack. We would have much preferred we didn't have to hack it, and much preferred features like Wahazar mentions, and maybe many other features to finer tune unit behaviors.

In our solution, the "unprotecting Unreachables" are just like unreachableprotects="DISABLED" and are ignored.
The "protecting Unreachables" have an adjustable value that can slide from 100% stack protection down to just a strong defence bonus.

You can contact me at #Lexxie9952 on Discord from the Freeciv-Web server if you want more immediate help in how we were able to do this.

Before I go, I'd like to say that DefenseMultiplier and DefenseDivider absolutely need to be changed from numbers like 1,2,3 to percentiles like 100,200,300. Right now the smallest bonus you can give a unit is 200% and it's ridiculous. Other strategy games release balance patches where significant game balance changes are effectuated by units being nerfed or buffed by numbers like 1.5% or -2.6% (for example.)

Re: NoStackKilling unit flag

Posted: Thu Mar 28, 2019 7:06 am
by Lachu
I propose another flag, called "NoKilledWithStack". It makes unit persist during stack killing.

Another idea is to allow increase defense bonus by effects.ruleset. Checking if unit with special attribute, like fighters, will increase defense bonus.

Fighter will have NoKilledWithStack flag and will protects other units, increasing it defense bonus.