Difference between revisions of "Talk:Pain state"

From DoomWiki.org

m (100% pain chance)
(100% pain chance)
Line 11: Line 11:
 
**(80*100)/255=31.37% (doesn't agree with wiki)
 
**(80*100)/255=31.37% (doesn't agree with wiki)
 
I could go on, but you get the idea. If pain chance is really out of 256 and not 255, then the real pain% for the player and Romero's head is (255*100)/256=99.61%. --[[User:Reaper with no name|Reaper with no name]] 04:33, 31 December 2008 (UTC)
 
I could go on, but you get the idea. If pain chance is really out of 256 and not 255, then the real pain% for the player and Romero's head is (255*100)/256=99.61%. --[[User:Reaper with no name|Reaper with no name]] 04:33, 31 December 2008 (UTC)
 +
 +
: Very sensible.  According to the article, this is where an actor does or does not enter its pain state (from P_DamageMobj):
 +
 +
    if ( (P_Random () < target->info->painchance)
 +
        && !(target->flags&MF_SKULLFLY) )
 +
    {
 +
        target->flags |= MF_JUSTHIT;        // fight back!
 +
       
 +
        P_SetMobjState (target, target->info->painstate);
 +
    }
 +
 +
: Therefore, AFAICT, what "255" really means is "what fraction of the entries in m_random.c are below 255?".&nbsp; The answer is 255/256 &asymp; 99.61%.&nbsp; For "80" it would be 79/256 &asymp; 30.86%.&nbsp;&nbsp;&nbsp; [[User:Ryan W|Ryan W]] 20:18, 8 January 2009 (UTC)

Revision as of 15:18, 8 January 2009

This article needs information on pain threshold. See Quasar's note here.

100% pain chance

According to Dehacked (and the respective actor's entries here on the wiki), the player and Romero's head all have 255 pain chance. This is translated to 100%. But something is wrong. As I understand, pain chance is out of 256, which would mean that 255 pain chance would translate to 99.61%, not 100%. However, if we assume that pain chance is actually out of 255, then that throws off every other pain chance calculation. Examples:

  • Arachnotron: 128 pain chance
    • (128*100)/256=50% (agrees with wiki)
    • (128*100)/255=50.20% (doesn't agree with wiki)
  • Mancubus: 80 pain chance
    • (80*100)/256=31.25% (agrees with wiki)
    • (80*100)/255=31.37% (doesn't agree with wiki)

I could go on, but you get the idea. If pain chance is really out of 256 and not 255, then the real pain% for the player and Romero's head is (255*100)/256=99.61%. --Reaper with no name 04:33, 31 December 2008 (UTC)

Very sensible.  According to the article, this is where an actor does or does not enter its pain state (from P_DamageMobj):
   if ( (P_Random () < target->info->painchance)
        && !(target->flags&MF_SKULLFLY) )
   {
       target->flags |= MF_JUSTHIT;        // fight back!
       
       P_SetMobjState (target, target->info->painstate);
   }
Therefore, AFAICT, what "255" really means is "what fraction of the entries in m_random.c are below 255?".  The answer is 255/256 ≈ 99.61%.  For "80" it would be 79/256 ≈ 30.86%.    Ryan W 20:18, 8 January 2009 (UTC)