User Tools

Site Tools


user:loggy:misc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user:loggy:misc [2023/02/26 17:36]
loggy unit card ukpeep
user:loggy:misc [2023/12/12 13:05] (current)
loggy digging for the apostasy bug
Line 88: Line 88:
  
   * ??Transformation??'s yellow text is nearly right. The checks really are 20% + misfortune scale to fail. Succeeding the first gives a good result. Upon failing the first check there is then a second identical check, succeeding this gives you a bad result (and feebleminds you if the new form is not mindless). Failing both checks kills you.   * ??Transformation??'s yellow text is nearly right. The checks really are 20% + misfortune scale to fail. Succeeding the first gives a good result. Upon failing the first check there is then a second identical check, succeeding this gives you a bad result (and feebleminds you if the new form is not mindless). Failing both checks kills you.
 +  * A bad result that is mindless lowers your paths to F4A4W4E4S3D4N3B4 if any of them were higher than that
 +  * Even when you fail both and die, you still get transformed into something, which feebleminds you or applies the path limiting above anyway.
 +  * %%The chance of getting a pathboost in percent is (can't push you above X10) is ((10 - drain scale) * attuned percentage * 10)/100. Magic scales count for negative drain. Attuned values are a chassis attribute, for instance cave drakes have 50% earth attuned.%%
  
   * Spell interruption chance in percent is interruptdamage + 25 + (damage*100)/maxhp. Interruptdamage is from effect 129 only. Combat casters and mindless/slave vessels are halved, both conditions will half twice, rounding down after each.   * Spell interruption chance in percent is interruptdamage + 25 + (damage*100)/maxhp. Interruptdamage is from effect 129 only. Combat casters and mindless/slave vessels are halved, both conditions will half twice, rounding down after each.
Line 1115: Line 1118:
   * This looks backwards, but if you swapped 1st and 2nd consider that any human with a sword and shield would lose their shield if given a magic shield, it's weird but is what it is   * This looks backwards, but if you swapped 1st and 2nd consider that any human with a sword and shield would lose their shield if given a magic shield, it's weird but is what it is
   * Weapon attribute 657 seems to be "needs accessible horns to use" and weapons with this are removed if a crown is equipped   * Weapon attribute 657 seems to be "needs accessible horns to use" and weapons with this are removed if a crown is equipped
 +
 +It looks like moving off the field simulates 100 rounds of affliction and regen processing, this specifically includes poison, decay, That Mystery Affliction that Does More To Undead, uwdamage, landdamage, burning, bleeding, freezing, desiccation, plague, regen
 +
 +Assassinations:
 +  * This function processes all commanders in ascending commander ID order.
 +  * Infiltration for graphs: is just 50% to succeed
 +  * Cause unrest: creates openended d20 unrest
 +  * Seduction: two map commander orders (72, seduction; 58: corruptor) do this.
 +    * Get a commander to target. This looks properly randomised (builds a list on the stack and then picks one randomly). This respects Scale Walls. Sneaking commanders are not valid targets, as many players probably know from experience.
 +    * If dream seduction, penbase = 13 + (pen bonus from items, bless etc), moralebase = <value of dream seduction>
 +    * If nondream seduction (overwrites dream if you give a unit both), penbase = 99, moralebase = <value of seduction ability>
 +    * If the unit is female (including via cat charm):
 +      * Add the amount of the gender changing effect to the morale base
 +    * If action is corrupt: penbase=99, moralebase=<value of corruptor ability>, which will overwrite anything earlier
 +    * Make 1000 attempts to pick an adjacent province you can retreat to. I could look into this in more detail if required.
 +    * If no province found, you get "With nowhere to run with the victim afterwards, %s aborted the seduction attempt."
 +    * The MR check is always rolled, even for corruption and non-dream seduction (though with a base pen of 99 they probably can't really ever fail). Specifically, if MR + DRN >= penbase + DRN then it fails (result=0, result2=0) and you get "%s tried to project %s wonderful dreams at %s, but the target resisted and no real seduction could be done."
 +    * If you have nowhere to walk to, but can fly and your size is less than your target's, you fail (result=-3, result2=0).
 +    * If the seducer and victim are the same gender, you head towards a fail state that presumably corruption will undo later (result=-1, result2=1)
 +    * If the victim is something that can't be converted (ie is a god or prophet), result1=-1, result2=0
 +    * If the victim is immobile result=-3, result2=0
 +    * Otherwise you pass (result=1, result2=0)
 +    * Roll the morale check: if moralebase + DRN > victim's morale + DRN, you keep the result1 from above.
 +      * Otherwise, result1 becomes -1 if any of the following are true: this is corruption (not seduction), or the seducer's morale roll < (the victim's morale roll - 2), or result2 != 0. If none of that was true result1 becomes -2 instead
 +    * If result1 == 1: The seduction succeeded: "%s disappeared one night and was never seen again." etc.
 +    * If result1 == 0: The (dream) seduction failed. "%s tried to project %s wonderful dreams at %s, but the target resisted and no real seduction could be done." The victim's nation does NOT get a message for this one.
 +    * If result1 == -2: "%s tried to seduce %s, but %s could not shy away from %s duties. However %s did not want %s to get caught and did not give %s away.". But nothing else happens, and the victim's nation doesn't get told anything.
 +    * If result1 == -3: You failed due to "logistical reasons" and fight anyway.
 +    * If result1 is anything else, and result2==0, and the victim has less than 20 morale: "%s failed to %s %s and a battle ensued."
 +    * Any other case: "%s failed to %s %s and a battle ensued. In fact %s wasn't even remotely interested in the offer."
 +  * Order 61 (I think this is "Lure", the Siren/Jorogomu ability)
 +    * Pick a commander to assassinate.
 +    * This also requires mixed genders.
 +    * MR: attempt fails if 16 + DRN < victim MR + DRN
 +    * Morale: attempt fails if <lure ability value> + DRN < victim morale + DRN
 +    * Also fails if victim is prophet or god
 +    * If you succeeded this far:
 +      * If this attempt is using Jorogumo's 0x2a7 ability...
 +        * If victim's strength + DRN <= 15 + DRN, you end up fighting later.
 +      * If the victim does not die when taken underwater, you end up fighting later.
 +    * All fights take place underwater (add terrain mask 4) but seemingly without setting the assassination flag and the 50% chance of darkness. **This looks like it includes the Jorogumo fight if you pass the strength check, which is probably a bug**
 +    * Much like seduction, there's a range of messages:
 +      * MR/Morale checks passed:
 +        * Jorogumo type:
 +          * "%s encountered an alluring woman that tried to seduce %s. But %s did not leave %s post." - Victim gets this
 +          * "%s failed to lure %s into her trap." - user gets this if victim has <20 morale
 +          * "%s failed to lure an enemy called %s into her trap. In fact %s wasn't attracted at all to this most beautiful song." - victim has 20+ morale
 +        * Normal type:
 +          * "%s managed to resist a magically alluring song that was heard from the water."
 +          * "%s failed to lure %s into the sea."
 +      * Complete Success:
 +        * Jorogumo type:
 +          * "%s successfully lured %s into the her webs and dragged him into the water where he drowned." - User
 +          * The victim can get two messages, with a coin flip between them: "%s disappeared one night and was never seen again. This night some people say they saw a glimpse of an extraordinarily beautiful woman." and your normal boring "%s disappeared one night and was never seen again."
 +        * Normal lure:
 +          * "%s successfully lured %s into the sea where he drowned." - User
 +          * Victim can have two messages:
 +            * 75%: "%s disappeared one night and was never seen again. This night some people heard the most beautiful song."
 +            * 25%: "%s disappeared one night and was never seen again."
 +      * Other failures:
 +        * Jorogumo type:
 +          * "%s disappeared one night when he followed an enticing young woman. He suddenly found himself trapped in spider webs, but no web is strong enough to hold %s for long. After breaking free he attacked the woman that lured him into this trap." - Victim, passed strength check
 +          * "%s successfully lured an enemy commander called %s into her web. Unfortunately he broke free from the web and a battle ensued." - User, passed strength check
 +          * "%s successfully lured an enemy commander called %s into her web. All seemed well as she dragged the helpless victim into the nearby pool of water. Unfortunately the victim later emerged unharmed from the water and attacked her." - User, victim does not die underwater
 +          * "%s disappeared one night when he followed an enticing young woman. He suddenly found himself trapped in spider webs and dragged into a pool of water. Unable to drown, %s could free himself as the web started to dissolve. After breaking free he emerged from the water and attacked the woman that lured him into this trap." - Victim, if does not die underwater
 +        * Regular lure:
 +          * "%s successfully lured an enemy commander called %s into the sea. Unfortunately he didn't drown and a battle ensued." - User, victim does not die underwater
 +          * "%s disappeared one night and entered the sea. This night some people heard the most beautiful song. %s was disappointed to find a fish being instead of the beautiful female he had envisioned. He attacked her in rage and disappointment." - Victim, when not dying underwater
 +  * Regular assassination: does what it says. I can't see any surprises here.
 +  * Seduction/regular assassinations are 50% to add what I assume is the the nighttime darkness terrain flag.
 +  * Looks like Jorogumo's lure can be used anywhere that isn't a waste.
 +
 +  * A side's "max" hp calc (this is only for adjusting the saved value of "how much hp did my side start with", the actual work just does the hp calcs with modifications as below for slaves/pd) goes like this:
 +
 +      Get real total
 +      Get tempflag1 total - I added a note saying retinue gets this flag, but pd does NOT (it's tempflag3)
 +      "Permanent" total = real - tempflag1
 +      if "permanent" total <= tempflag1 total, templflag1 total = "permanent" total
 +      Actual total of the calc = permanent + tempflag1 total
 +   * This is really confusing, but it's maybe the basis of the one commander and their retinue line?
 +     * 1x 10hp guy, 100hp of retinue
 +       * real=110
 +       * tempflag1 = 100
 +       * permanent = 10
 +       * The conditionis true, so tempflag1=10
 +       * actual total = 20
 +   * pd (temp flag=3) contribute hp/4 rounded up
 +   * slaves contribute hp/2 rounded up
 +
 +Blastsquare (and the apostasy bug)
 +  * A = size points in square + open 2d6
 +  * A gets 999 added if battle enchant/timestop or the spell has ignore shields spec value
 +  * If spell doesn't have the nonmagical spec, add 2 more to A
 +  * %%B = (2 - victim fatigue/20 rounded down) + open 2d6%%
 +  * Get your shield defence/parry value, and double it.
 +  * If spec has either "flail spec" 4 or AN 128, shield defence/parry value = 0.
 +  * Calc effective shield prot: fetch the value, if spec has AP, halve it, if spell is AN or ignores shields then this is zero.
 +  * If spec has neither flail spec 4 or AN 128, and the victim is standing on a fort wall
 +    * If shield defence/parry was less than 10, set it to 10.
 +    * If shield prot was less than 30, set it to 30. Then, if the effect was AP, half it. (this seemingly introduces an order of operations bug - if you have a prot 36 shield vs AP, you'll use the wall bonus instead despite it being worse)
 +  * If you have air shield, there's a value% chance to add 100 to B.
 +  * If A < B, the victim avoids all damage.
 +  * If A < (B + the shield's parry value), you hit the shield.
  
 FIXME look at what sets the assassination flag, very likely there is a bug in the spells that don't use it (which will cause casting AI to not have the reduced buff preference) FIXME look at what sets the assassination flag, very likely there is a bug in the spells that don't use it (which will cause casting AI to not have the reduced buff preference)
user/loggy/misc.1677433003.txt.gz ยท Last modified: 2023/02/26 17:36 by loggy