Results 1 to 4 of 4

Thread: Cowardly Chivalrous? How properly tweak these trait triggers

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Default Cowardly Chivalrous? How properly tweak these trait triggers

    Quote Originally Posted by gsthoed View Post
    In export_descr_character traits.txt:

    - Repeated triggers:
    Trigger Battle_General_Took_Hits and Trigger battle1 are exactly the same.

    Trigger battle_coward3 and Trigger battle7: The only difference is the chance in the affect line. If this was intended, shouldn't one of these triggers be ommitted and the other be something like the one below?
    Spoiler Alert, click show to read: 
    Trigger battle_coward3
    WhenToTest BattleGeneralRouted

    Affects Coward 1 Chance 25
    Affects Coward 1 Chance 33



    - "AI Bad Traits Remove" section:
    Trigger ai_bad_traits_barrenwo, Trigger ai_bad_traits_horridwo,Trigger ai_bad_traits_bitchwo
    The traits that are affected by these triggers are only for generals. However, these triggers contain the condition "AgentType = princess", which I think should be removed.

    - Trigger battle_coward2
    Spoiler Alert, click show to read: 
    Trigger battle_coward2
    WhenToTest PostBattle

    Condition not GeneralFoughtInCombat
    and PercentageEnemyKilled = 0

    Affects Coward 1 Chance 10

    I think a general does not deserve of being affected from this trigger if:
    a) The enemy retreated without fighting. One possible solution to deal with this is provided by adding a condition "notWonBattle".
    b) The battle odds were overwhelmingly against him, so he retreated to "fight another day". This can also be said for Trigger battle_coward1. One possible solution to deal with this is is provided by adding a condition "and BattleOdds < 2.1" or like.
    Quote Originally Posted by Melooo182 View Post
    Thanks man will add these to thr bugfix compilation

    Regarding the Coward triggers
    BattleOdds < 2.1 is pretty much any battle, the 2.1 value is the product of the affected general's army strength divided by his opponent's army strength. So < 2.1 goes from "outnumbering" his foe 2 to 1 to being completely overwhelmed. If you aim for getting the coward roll only if odds were against him then it should be < 1.0 or lower.
    However I think they could stay as is, these are the middle ages, commanders are supposed to be warriors themselves and not just tacticians/strategists that give orders or at least that's what was expected of them, also 10% is very low chance of getting the coward trait.

    For differentiating battle7 from coward3 maybe we could add "and BattleOdds > 0.9", this means that if the general was facing an even odd and yet was routed he'll gets the roll for coward trait with 33% chance

    As for Trigger Battle_General_Took_Hits and Trigger battle1 maybe leave the 1st as is and change battle1
    Code:
    Trigger battle1
     WhenToTest PostBattle
    
    
     Condition GeneralFoughtInCombat
    
    
     Affects Brave 1 Chance 10
    Quote Originally Posted by gsthoed View Post
    It was my mistake; I meant adding something like Battleodds < 0.75 or Battleodds < 0.51 for that case.

    Regarding the "warrior commander" who fights all battles, I feel that this case is covered by trigger battle_coward1, where the general -whether his army was retreating or not- gave battle and lost without risking himself; in this case, yes, I accept he should be regarded as a coward.
    Definetely, retreating "uncowardly" was the norm for armies that were applying hit-and-run tactics, like raiding armies or armies trying to distract a major enemy force (for example, when defending own territory and waiting for reinforcements or gathering forces). But, I know, this discussion is not suitable for this thread.
    Besides, there is also the Trigger battle3Chivalry1_notchaserouters

    Code:
    Trigger battle3Chivalry1_notchaserouters
     WhenToTest PostBattle
    
     Condition WonBattle
           and BattleSuccess >= average
           and PercentageEnemyKilled < 10
           and not GeneralFoughtInCombat
           and IsGeneral
           and BattleOdds < 0.95
           and not Trait BattleDread > 0
    
     Affects BattleChivalry 1 Chance 33
    Code:
    Trigger battle_coward2
     WhenToTest PostBattle
    
     Condition not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
    
     Affects Coward 1 Chance 10
    So, postbattle, a general -if he didn't fought in combat and no enemy was killed- can acquire both BattleChivalry and Coward points, which seems, at least to me, quite contradicting.
    This cowardly acquiring of chivalry (and being chivalriously coward) did happened once for a general of mine -it was a siege attack, I had only the general and his bodyguards, the defenders lacked cavalry, I lured them out and far from their settlement and then ran to the castle center, the defenders didn't manage to keep up as they got exhausted by chasing my cavalry unit, so I kept control of the square till time ran out; I found it hilarious too.
    So, I believe that, for the trigger battle_coward2, both conditions "notWonBattle" and "Battleodds < 0.51" or like should be added.


    I like that! I had commented out one of these triggers for my own play, but now I'll do just as you said. However, the fix I suggested in my previous post has exactly the same effects as the inclusion of both triggers as they are but "consumes less CPU cycles" (sorry, no more appropriate phrase came in my mind).



    I like that too. I feel, however, that this case is covered in Trigger battle2a, where the general not only involved in combat, which could have happened even against his own will, but stayed and made some kills too.
    I prefer this trigger being commented out, as with so many triggers affecting trait brave, generals are getting too brave for my taste. Of course, this is not any kind of "demand" for the bugfix compilation [by the way, it's a great work, I 'd like to spread reputation(?), but I don't know how]; it's not critical.

    Code:
    Trigger battle2a
     WhenToTest PostBattle
    
     Condition GeneralNumKillsInBattle > 6
    
     Affects Brave 1 Chance 15
    Quote Originally Posted by Melooo182 View Post
    But what about the scenario where a general purposely stay behind while his men win the battle for him, wouldn't he be branded as a coward then?

    anyway is just 1 point of 2 needed to gain the trait which can be easily reverted by doing some courageous feats in the next battles...and about the cowardly chivalrous, why not? same as there could be dreadfully brave.
    So what you guys think?

  2. #2

    Default

    About the scenario where a general purposely stay behind while his men win the battle for him, wouldn't he be branded as a coward then?
    anyway is just 1 point of 2 needed to gain the trait which can be easily reverted by doing some courageous feats in the next battles...and about the cowardly chivalrous, why not? same as there could be dreadfully brave.
    It's all about the AI player, who does not seem to adapt different strategies to revert a bad trait. For example, a human player can plan some courageous feats in the next battles; the AI player will do only what it is coded to do.
    There is always the ability to revert bad traits with special triggers, like in the AI Bad Traits Remove section of the EDCT file; but, avoiding a mess is generally preferable to fixing, isn't it?

    About what should be branded as cowardice in battle: It is true that a tribal chieftain was expected to lead an attack and generally be "in the first line" and give the good example. If he gets killed, no problem; we 'll find someone else amongst us at no cost. It's almost the same to the in-game armies that are leaded by captains. A general, however, is quite a different story.

    A medieval2 general is not "first among equals"; he is in the ruling "noble" class. In contrast to the chieftain, this one has deigned to come with the soldiers, although (usually) he didn't have to. Fighting like a first line soldier is not the norm but something exceptional as it was his choice, in contrast to the soldier who was just ordered to do so. He has a surname; he has traits to develop and ancillaries to acquire. Kill him in battle and we are loosing his Command in autoresolving (our commanding order gets messed) and the several bonuses to morale that he is born or be developed to give to our troops. Loosing him is a big deal for the realm; the general's life has to be protected. Afterwards, who do we fight for?

    However, the last rule has its limits. There are situations in battle that the general is expected to fight; afterwards, there is a reason he is with the army. If he avoids to do so, he is a coward, bad commander etc and this affects our troop morale etc.

    So, to reply to the question if staying behind while the soldiers fight the battle is cowardly or not: if the soldiers "are winning" the battle, no, it's not. If "they are losing" and he has the opportunity to change the battle course but he does nothing (except saving only his own life), then, yes, he is a coward.

    Regarding the game itself and specifically the trait part: In EDCT there are four triggers that affect directly the trait coward: the battle_coward1 to 3 and battle7 (which is similar to coward3). The triggers that include the not GeneralFoughtInCombat condition are the two first ones.

    Code:
    Trigger battle_coward1
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled < 20
    
     Affects Coward 1 Chance 70 
    
    ;------------------------------------------
    Trigger battle_coward2
     WhenToTest PostBattle
    
     Condition not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
    
      Affects Coward 1 Chance 10
    In the first one, the battle was lost and the player's (human or AI) didn't do enough damage to the enemy. If they were retreating (as a strategy) and the enemy caught them up, according to ethics, the general ought to have been involved in fighting, to cover the retreat and to be the last who left the battlefield; he didn't, so obviously he ran away. If they were applying a hit-and-run strategy to harass the enemy or like, they ran away before doing decent damage to the enemy; the general didn't bother to help them to do decent damage, he didn't help the covering of the retreat and he wasn't the last who left the battle;he is a coward. If they involved in battle without a good a-priori possibility to do enough damage, the general should have paid or should have at least try to revert this "mistake". Finally, this trigger covers the notwonBattle cases of trigger battle_coward2that I describe next; if the suggestions for the latter trigger are to be accepted, adding a condition PercentageEnemyKilled > 0 in this trigger is a must.

    In the trigger coward2: it's a case that not even one enemy soldier was killed. I can imagine some cases that these conditions are true but no timidity.
    a) no actual fight - wonbattle: They did not want to kill any enemy soldier because the enemy were Amazons and they don't kill women and the Amazons surrendered to them willingly to marry them. The enemy is too awesome and they were respecting him. Our general and the she-general of the enemy were actually in love with each other and they didn't actually mean to fight each other. They had no intention to kill the enemy, because they wanted to capture them and use them as sacrifices to gods or heros of the past or whatever. None of these case should be considered as cowardice; nevertheless, none of them can occur in game. So, nothing to do.
    b) actual fight - notwonbattle - : They got involved in some fight but did absolutely no damage to the enemy. As far as I know, historically such complete prevailance of an army against enemy had been recorded only in 346BC (Spartans against Argeans and Arcadians), but this shouldn't be believed; it is practically impossible to happen even if only skirmishing occured. Thus, retreat is the only scenario left.
    c) actual fight - wonbattle: They didn't manage or didn't even try to follow the enemy retreat. This may have benn a good or bad decision, but cannot be regarded as chickening. We can fix this by adding a "notWonBattle" condition, because, as pointed previously, there is no other realistic way to have won the battle without killing at least one enemy soldier.
    d) no actual fight - notwonbattle:They retreated when the enemy was far from them, so nobody was killed. If the BattleOdds were severely against the general (like if BattleOdds <= 0.5, it could be higher, but, unfortunately, there is no way to put the ground factor into the equation), this is what he was expected to do; it's not brave nor coward, neither chivalric nor dreading. That' s why I suggest adding a "BattleOdds > 0.5" condition in this trigger.
    With these changes, the remaining cases are special cases of those of the previous trigger, so this trigger acts as a supplementary to that. I'd rather change the chance too, from 10% to something higher, but this is not a fix.

    About regarding coward only as anti-trait of brave: in similar triggers we have a condition like the "and not BattleDread > 0" about BattleChivalry. But, usually, this is just more "CPU cycles" that we can avoid if we have a well-written code.

    For the cowardly chivalrous and dreadfully brave :
    -Coward and chivalrous is one bad and one good thing; brave and dreaded is two good things.
    -Acquiring battle chivalry cowardly is not chivalric.
    -Brave is indeed an anti-trait of Coward, but BattleDread is not anti-trait of BattleChivalry. Being dreadfully brave is not the opposite of cowardly chivalrous.
    -Being a coward is an good strategy actually if you want to decrease battle Chivalry and Dread (triggers battle3Chivalry_Dread_Not_fighting, battle3Chivalry_Dread_Routing, battle3Chivalry_Dread_Routing2). Being brave can only have the opposite result.
    - Remember, there is a chance to achieve being a coward champion of honor who cares much more about winning than doing it honorably.

  3. #3

    Default Re: Cowardly Chivalrous? How properly tweak these trait triggers

    Alright you convinced me with your arguments and examples



    Since my experiment with BattleOdds on battle7 didn't work as BattleGeneralRouted does not export the required records for any condition.
    And for not removing a condition slot what about doing it like this?
    Code:
    ;------------------------------------------
    Trigger battle_coward1
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled < 20
           and PercentageEnemyKilled > 0
    
     Affects Coward 1 Chance 70 
    
    ;------------------------------------------
    Trigger battle_coward2
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
           and BattleOdds > 0.5
           and BattleOdds < 0.95
    
     Affects Coward 1 Chance 10 
    
    ;------------------------------------------
    Trigger battle_coward3
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
           and BattleOdds >= 0.95
    
     Affects Coward 1 Chance 25
    
    ;------------------------------------------
    Trigger battle5
     WhenToTest PostBattle
    
    
     Condition IsGeneral
           and WonBattle
           and BattleSuccess >= clear
           and not Trait Ignorance > 0
    
    
     Affects InspiringSpeaker 1 Chance 10 
    
    ;------------------------------------------
    Trigger battle7
     WhenToTest BattleGeneralRouted
    
     Affects Coward 1 Chance 33 
    
    ;------------------------------------------
    Splitting your suggestion into 2 triggers depending on the battle odds

  4. #4

    Default Re: Cowardly Chivalrous? How properly tweak these trait triggers

    Spoiler Alert, click show to read: 
    Quote Originally Posted by Melooo182 View Post
    And for not removing a condition slot what about doing it like this?
    Code:
    ;------------------------------------------
    Trigger battle_coward1
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled < 20
           and PercentageEnemyKilled > 0
    
     Affects Coward 1 Chance 70 
    
    ;------------------------------------------
    Trigger battle_coward2
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
           and BattleOdds > 0.5
           and BattleOdds < 0.95
    
     Affects Coward 1 Chance 10 
    
    ;------------------------------------------
    Trigger battle_coward3
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
           and BattleOdds >= 0.95
    
     Affects Coward 1 Chance 25
    
    ;------------------------------------------
    Trigger battle5
     WhenToTest PostBattle
    
    
     Condition IsGeneral
           and WonBattle
           and BattleSuccess >= clear
           and not Trait Ignorance > 0
    
    
     Affects InspiringSpeaker 1 Chance 10 
    
    ;------------------------------------------
    Trigger battle7
     WhenToTest BattleGeneralRouted
    
     Affects Coward 1 Chance 33 
    
    ;------------------------------------------
    Splitting your suggestion into 2 triggers depending on the battle odds


    When BattleOdds >= 0.95, then chance = 25%; in the "vanilla" version, in the same case it is = 10%. I think it is a good idea for a sub-mod.
    However, I prefer the purpose of a bug-fix in cases like this should be limited to the removal of unwanted effects and stay to the original "spirit" of the mod.
    Thus, I 'd rather propose this:

    Code:
    ;------------------------------------------
    Trigger battle_coward1
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled < 20
           and PercentageEnemyKilled > 0
    
     Affects Coward 1 Chance 70 
    
    ;------------------------------------------
    Trigger battle_coward2
     WhenToTest PostBattle
    
     Condition not WonBattle
           and not GeneralFoughtInCombat
           and PercentageEnemyKilled = 0
           and BattleOdds > 0.5
     
      Affects Coward 1 Chance 10 
      Affects Coward 1 Chance 70
    
    ;------------------------------------------
    Trigger battle_coward3
     WhenToTest BattleGeneralRouted
    
    Affects Coward 1 Chance 25
    Affects Coward 1 Chance 33
    
    ;------------------------------------------
    Trigger battle5
     WhenToTest PostBattle
    
     Condition IsGeneral
           and WonBattle
           and BattleSuccess >= clear
           and not Trait Ignorance > 0
    
     Affects InspiringSpeaker 1 Chance 10 
    
    ;------------------------------------------
     ;Trigger battle7
     ;WhenToTest BattleGeneralRouted
    
     ;  Affects Coward 1 Chance 33 
    
     ;------------------------------------------
    I put the "Affects Coward 1 Chance 70" in trigger battle_coward2 to comply with the chance given by the original version of trigger battle_coward1.
    The triggers are not performed when they shouldn't, the critical value 0.5 of BattleOdds is what it is implied (by the postbattle triggers about BatttleChivalry-BattleDread) to be the critical value between "too low" and "low" a-priori odds to win the battle and all other mechanics remain the same to the "vanilla" SS6.4 ones. And about the "CPU cycles": I think the inclusion of the additional conditions is compensated by the one less test when removing the trigger battle7.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •