Vous n'êtes pas identifié(e).

#1 2019-05-14 12:02:36

K-lean
Inscription : 2017-08-01
Messages : 1 654

[résolu] seigneur incapturable sur case fief, protégé par unité P=0

Situation : Bataille tour par tour

Mon seigneur est sur mes cavaliers, le groupe est contre le fief de Morgan.
Capture-d-e-cran-2019-05-14-a-11-55-22.png

Capture-d-e-cran-2019-05-13-a-18-31-52.png

J'ai assez de puissance pour tout casser d'un coup.

Antoine a écrit :

Mais au déroulement du tour, d'après les logs il s'est passé ça :
1 attackers blow 3
>> [5579] 8750 cavalry fires 0% = 0/8750 = 0 damages on [5581] spy
>> [5579] 8750 cavalry fires 3.96705143392% = 347/8750 = 4164 damages on [5743] crossbowman
>> [5579] 8750 cavalry fires 96.0329485661% = 8402/8750 = 100824 damages on [5744] cavalry

Donc effectivement il y a eu une phase d'attaque normale (par rapport à ce qui est décrit dans la doc, 100% des points d'attaque ont été distribué) et une fin de phase normale (seigneur pas seul = seigneur pas capturé).

Dans ce cas là, c'est vrai que les espions "protègent" le seigneur et qu'il faudrait une seconde charge pour le capturer.


Proposition :

1- Actuel : répartition des 100% dégâts sur les unités avec puissance (les 0 prennent 0%)
2- Ajout : si puissance restante = 0 alors qu'il y a encore des unités (hors seigneur) : relancer une répartition des 100% dégâts
Reboucler si nécessaire (si on a x chars, x transports, x espions...)
3- Actuel : résolution du tour : si le seigneur est seul il est capturé


Lignée des Trofs, et autres successeurs

Hors ligne

#2 2019-05-15 10:32:11

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

Préambule : le moteur de bataille est un algo sensible, je ne veux pas faire de gros changements, quitte à garder dans le jeu ce que tu appelles une faille mais qui est en fait un effet de bord

K-Lean a écrit :

2- Ajout : si puissance restante = 0 alors qu'il y a encore des unités (hors seigneur) : relancer une répartition des 100% dégâts
Reboucler si nécessaire (si on a x chars, x transports, x espions...)

L'algo est le suivant:

Pour chaque unité on défini un % de puissance / la puissance totale de la ligne (attaquante ou défenseur).
Ce % correspond au % de la puissance qui va être distribuée sur cette unité.

Effectivement on a donc pour une ligne : espion (0 force = 0%) - chevaliers (15 force = 100%).
Mettons qu'en face tu aies des cavaliers, ils vont donc distribuer 100% de leur sur les chevaliers et les espions vont survivre (empêchant la capture du seigneur dans ce cas).

On a donc pas de "puissance restante" aujourd'hui car la répartition ne tient pas compte du montant de puissance qu'il faudrait vraiment pour détruire l'unité.

Si on veut changer l'algo pour que ces espions prennent une part des dégâts, je pense que la meilleure option revient à dire dire que seule 95% de la puissance est distribuée sur ce mode proportionnel et que 5% sont distribués équitablement.

On aura donc 2.5% sur les espions et 95 + 2.5 = 97.5% sur les chevaliers.

Petit effet secondaire, des engins de siège vs fortifications vont systématiquement disperser 5% de leur force sur les autres unités (après pourquoi pas, mais ça veut dire que les fortifications ne protègent plus à 100% les unités planquées derrière). Ca veut dire qu'en forçant le trait, avec 100k trébuchets / 100k balistes / 100k béliers, tu peux tout détruire en face.

> Avantage : avoir X unité non combattantes ne disperse pas plus de 5%/X des dégâts (= je ne peux pas "couvrir" mes arbalétriers avec 1000 espions)
> Inconvénient : c'est complexifier un peu plus l'algo et rendre les résultats encore un peu plus obscurs.

Les effets secondaires de cette option sont relativement limités (surtout le cas des sièges vs fortification va changer).
A voir si c'est préférable au système actuel.

Pour info, utiliser les mots faille et bug avec précaution, j'ai un coeur de dévelopeur sensible ;-)


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

#3 2019-05-15 12:55:30

Eleanor

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

Je comprend pas bien pourquoi les unités à force 0 comptent ? Le plus simple n'est-il pas d'exclure les espions du calcul et de faire capturer le seigneur quand il ne reste plus d'unité combattante (= à force non nulle) ?

#4 2019-05-15 14:53:08

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

La condition actuelle est :

if ($BattlePiecePlayerLord->GetPlayerLord()->GetStatus() == "free" &&
                ! isset($hBattlePieceByPos[$BattlePiecePlayerLord->CalcPosKey()]) && ( // il n'y a pas d'autre piece de type unite ou fortification sur la position
                    isset($hAttackedPos[$BattlePiecePlayerLord->CalcPosKey()]) ||   // la position est attaque
                    !isset($hHomePos[$BattlePiecePlayerLord->CalcPosKey()]))        // la position est en rase campagne
                ) {
                if (defined("FULL_TRACE")) {
                    print "\r\n      >> free player lord ".$BattlePiecePlayerLord->GetPlayerLord()->GetId()." alone on ".$BattlePiecePlayerLord->CalcPosKey()." = capture\r\n";
                }
            }
        }

Ce que tu proposes est possible, faut modifier hBattlePieceByPos pour ne garder dedans que les unites qui ont une puissance de feu.

Faut penser aux effets de bord :
- si je déplace le seigneur sur une case contenant des transporteurs et que j'attaque la case avec 1 archer = je capture le seigneur (et les transporteurs survivent)
- si j'attaques un fief qui a 1000 transporteurs et 1 seigneur avec 1 archer = je capture le seigneur (et les transporteurs survivent)

A voir s'il y a d'autres effets de bord à anticiper.
A priori c'est plus simple comme modif que mon histoire de 95-5.


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

#5 2019-05-15 15:10:34

K-lean
Inscription : 2017-08-01
Messages : 1 654

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

(Quand je dis faille c’est pas dans le sens « défaut de conception » mais « possibilité de détournement » smile
Je dis bug quand j’ai la flemme d’utiliser d’autres mots lol)

J’aime bien l’idee que l’explosion des sièges éclabousse les unités derrière.
Mais il faudrait intégrer cette réflexion dans le sujet muraille.

Mais surtout il y a toujours possibilité de détourner le système en plaçant plusieurs types d’unités , dont celles à 0, pour ne pas être capturé :
J’ai des cavaliers, des archers des fantassins, des chars, des transporteurs et des espions.
Les 95% sont dispatchés entre cavaliers Archers et fantassins, les 5% restants sont repartis sur 6 groupes, soit 0,83% de la puissance.

Imaginons que je tape avec 5000 cavaliers + bonus Roi, je tape 498 dégâts sur chaque unité :
50 transporteur suffisent
34 chars suffisent
500 espions suffisent

Bref, c’est un effet de bord certes, mais si on fait une modif pour ça , faudrait que ça n’impacte que ce sujet là et pas d’autres.


Lignée des Trofs, et autres successeurs

Hors ligne

#6 2019-05-15 15:58:55

K-lean
Inscription : 2017-08-01
Messages : 1 654

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

antoine a écrit :

Faut penser aux effets de bord :
- si je déplace le seigneur sur une case contenant des transporteurs et que j'attaque la case avec 1 archer = je capture le seigneur (et les transporteurs survivent)

Non.
L’idee c’est de faire autant de boucle que de groupe à 0 de puissance.
Si l’archer ne tue pas chaque groupe en 1 tour ça passe à la suite : le seigneur est accompagné donc non capturé.

antoine a écrit :

- si j'attaque un fief qui a 1000 transporteurs et 1 seigneur avec 1 archer = je capture le seigneur (et les transporteurs survivent)

A voir s'il y a d'autres effets de bord à anticiper.
A priori c'est plus simple comme modif que mon histoire de 95-5.

Dans la même logique, la première vague s’occupe de l’archer.
1 archer contre 1 archer, les deux meurts.
Donc plus personne pour taper les transports.

Si 2 Archers, il reste 1 archer, mais comme il ne tue pas de transporteurs alors le seigneur est sauf.


Lignée des Trofs, et autres successeurs

Hors ligne

#7 2019-05-15 16:02:40

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

K-lean a écrit :

L’idee c’est de faire autant de boucle que de groupe à 0 de puissance.
Si l’archer ne tue pas chaque groupe en 1 tour ça passe à la suite : le seigneur est accompagné donc non capturé.

Auj, c'est 1 tour par salve et pas 2.
On peut le changer pour tous les affrontements, mais pas que pour ce cas précis.

Techniquement c'est super simple mais ça change la logique des affrontements d'unité de 1 salve à 2.
Après pourquoi pas...


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

#8 2019-05-15 16:10:45

K-lean
Inscription : 2017-08-01
Messages : 1 654

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

Oui et non,
Ça ne changera que sur les cases fiefs et camp puisqu’il n’y a que là où tu peux avoir plusieurs groupes.

En fait la seule fois où le soft passera par cette boucle c’est le cas où une unité attaque la case camp/fief et que sur cette case il y a aussi des unités à 0 de puissance.

Dernière modification par K-lean (2019-05-15 16:11:28)


Lignée des Trofs, et autres successeurs

Hors ligne

#9 2019-05-15 18:11:22

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

C'est bien ce que je dis, c'est soit on le change pour TOUT les affrontements, soit on le change pas. Je ne ferais pas de cas particulier "sur fief/camp" car techniquement ça demande du refactoring (la résolution d'un affrontement n'a pas le contexte) et que j'ai pas envie de faire un cas particulier dans l'aide 1 tour d'affrontement ou 2 selon les cas.

Après dire que cela fait 2 salves de tir pour TOUT les affrontements pourquoi pas. Ca veut dire qu'il y aura un peu moins de survivants lors d'attaque d'une unité sur une autre et ça veut dire que le cas du seigneur "sauvé par des espions" arrivera moins souvent, même s'il peu arriver quand même (dans le cas où le groupe de défenseur résiste pile à 2 salves).


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

#10 2019-05-15 19:19:31

GrandJarl
Inscription : 2015-01-11
Messages : 3 059

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

deux salves ! deux salves ! *lance un chantier d'archers*

question, est ce que si tu leurs met 1 à la puissance ça résout ton soucis?, sinon comme a dis éleanor tu les exclue, de toute façon en attaque on se fais cramer ses supports gratuitement alors qu'en défense on a au moins des fortifs qui couvre, ça équilibrerais le risque attaque/défense


vous trouverez ici une rapide explication et un historique de la maison: https://www.okord.com/ranking.html?profile-3451
Le Grand Jarl Actuel: https://www.okord.com/ranking.html?profile-21203

Hors ligne

#11 2019-05-15 21:50:40

Eleanor

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

antoine a écrit :

Ce que tu proposes est possible, faut modifier hBattlePieceByPos pour ne garder dedans que les unites qui ont une puissance de feu.

Faut penser aux effets de bord :
- si je déplace le seigneur sur une case contenant des transporteurs et que j'attaque la case avec 1 archer = je capture le seigneur (et les transporteurs survivent)
- si j'attaques un fief qui a 1000 transporteurs et 1 seigneur avec 1 archer = je capture le seigneur (et les transporteurs survivent)

A voir s'il y a d'autres effets de bord à anticiper.
A priori c'est plus simple comme modif que mon histoire de 95-5.

Pour moi, ce n'est pas un effet de bord très gênant, dans le sens où si le seigneur est seul avec un archer, normal qu'il se fasse capturer. Les transporteurs ne combattant pas, ils ne vont pas pouvoir le défendre.
De même, faut être un peu kamikaze pour laisser le seigneur sur des unités non combattantes.
Pour aller un cran plus loin, il me paraîtrait logique que les transporteurs ne puissent pas se rendre sur le champs de bataille (je croyais d'ailleurs que c'était le cas, je ne vois pas bien ce qu'ils y feraient).

#12 2019-05-15 21:59:22

GrandJarl
Inscription : 2015-01-11
Messages : 3 059

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

ils peuvent pas êtres mis sur le champs de batailles, mais ils peuvent être mis dans les fiefs et camps (d'où le pépin)


vous trouverez ici une rapide explication et un historique de la maison: https://www.okord.com/ranking.html?profile-3451
Le Grand Jarl Actuel: https://www.okord.com/ranking.html?profile-21203

Hors ligne

#13 2019-05-15 22:35:33

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

Allez va pour la modification de règle en « si le seigneur est seul ou accompagné d’unités non-combattantes, il est capturé »


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

#14 2019-05-19 17:20:43

antoine
Inscription : 2014-09-14
Messages : 10 969

Re : [résolu] seigneur incapturable sur case fief, protégé par unité P=0

c'est en ligne.


Marie, gouvernante du clan Samarie.
(HRP: Admin)

Hors ligne

Pied de page des forums

Propulsé par FluxBB