From: SourceForge.net <no...@so...> - 2006-09-09 08:29:57
|
Feature Requests item #1555175, was opened at 2006-09-09 06:05 Message generated for change (Comment added) made by karianna You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Campaign Support >Group: For 5.12 Status: Open Resolution: None Priority: 5 Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) >Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- >Comment By: Martijn Verburg (karianna) Date: 2006-09-09 09:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 06:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2006-09-09 19:24:56
|
Feature Requests item #1555175, was opened at 2006-09-09 07:05 Message generated for change (Comment added) made by adriaanr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support Group: For 5.12 Status: Open Resolution: None Priority: 5 Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 21:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 10:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 07:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2006-09-09 19:27:50
|
Feature Requests item #1555175, was opened at 2006-09-09 07:05 Message generated for change (Comment added) made by adriaanr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support Group: For 5.12 Status: Open Resolution: None Priority: 5 Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 21:27 Message: Logged In: YES user_id=1090922 disclaimer: I'm no java programmer, just trying to help this great project along as a user with a well defined self interest. ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 21:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 10:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 07:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2007-04-22 10:10:04
|
Feature Requests item #1555175, was opened at 2006-09-09 06:05 Message generated for change (Settings changed) made by karianna You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support >Group: For 6.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 20:27 Message: Logged In: YES user_id=1090922 disclaimer: I'm no java programmer, just trying to help this great project along as a user with a well defined self interest. ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 20:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 09:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 06:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2008-07-19 02:41:55
|
Feature Requests item #1555175, was opened at 2006-09-09 15:05 Message generated for change (Settings changed) made by jdempsey You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support >Group: Unscheduled Status: Open Resolution: None Priority: 5 Private: No Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-10 05:27 Message: Logged In: YES user_id=1090922 disclaimer: I'm no java programmer, just trying to help this great project along as a user with a well defined self interest. ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-10 05:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 18:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 15:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2008-10-22 01:06:41
|
Feature Requests item #1555175, was opened at 2006-09-09 01:05 Message generated for change (Settings changed) made by thpr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support Group: Unscheduled Status: Open Resolution: None >Priority: 4 Private: No Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 15:27 Message: Logged In: YES user_id=1090922 disclaimer: I'm no java programmer, just trying to help this great project along as a user with a well defined self interest. ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 15:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 04:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 01:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |
From: SourceForge.net <no...@so...> - 2011-07-13 17:23:04
|
Feature Requests item #1555175, was opened at 2006-09-09 01:05 Message generated for change (Comment added) made by papa_drb You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Campaign Support Group: Unscheduled >Status: Deleted Resolution: None Priority: 4 Private: No Submitted By: Paul W. King (kingpaul) Assigned to: Nobody/Anonymous (nobody) Summary: average hitpoints based on TL Initial Comment: From http://www.codemonkeypublishing.com/index.php?name=PNphpBB2&file=viewtopic&t=14231 I've been wondering about how PCGen calculates "average hitpoints". I mean Settings-preferences-character-hitpoints-hitpoint generation-average I've been seeing some odd stuff happening, but this is the first time I thought of writing it down so it can be reproduced: I am talking about the version PCGen 5.8.1 with loaded CMP datasets PHB, CD. I create a human Bard(1)/Fighter(1)/Paladin(1), 10 in all stats. (don't ask, why I stubled upon this combination, but it happend) Now with maximum hitpoints at first level, this guy should have an average amount of hitpoints: 6 + 5.5*2 = 17 hitpoints When I create this guy with pcgen, I get 16 hitpoints This from the sequence 6+5+5 it doesn't matter if the paladin or fighter level gets aquired first. Taking another 2 levels of paladin or fighter will get you 6+5 extra hitpoints, but taking Fighter(2)/Paladin(2) will "fix" the problem by giving you 12 hitpoints. I know that at even levels there can be a 1 point difference, depending on if you round up or down, but at uneven levels the hitpoint total should always be the average shouldn't it? This is not the case in PCGen because it does not round up or down at even or odd levels, but this seems to be dependant upon the chosen class. Taking even numbers over levels in classes will fix it, but is of course not feasable. EDIT: I can do even worse by adding Barbarian(1) and Rogue(1), those will give 6 and 4 hitpoints, making this character now have 2 hitpoints less as the average it should have! As the paladin/fighter example shows, it's not dependant of die size, but I'm not sure on what it does depend. Some classes seem to like to take their first level rounding down from the average, some other classes seem to want to round their first level up. EDIT2: I can reproduce this with the RSRD-basic dataset only loaded. just build a bard1/fighter1/paladin1/barbarian1/rogue1, and viola 25 hitpoints, instead of 6 + 5.5*2 + 6.5 + 3.5 =27 EDIT3: It's becoming clear now: all classes will round the first level down, so if you taken an uneven number of levels, your hitpoints will be below average if you choose the "average hitpoints" setting. This should instead be rounding up at every even/odd level and rounding down at every odd/even level. The algorithm should just look at the total class levels, not only those in the current class. === Basically, it boils down to doing the averaging on total levels instead of individual class levels. Paul W. King PR SB, BoD ---------------------------------------------------------------------- >Comment By: David R. Bender (papa_drb) Date: 2011-07-13 13:23 Message: http://jira.pcgen.org/browse/CODE-834 ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 15:27 Message: Logged In: YES user_id=1090922 disclaimer: I'm no java programmer, just trying to help this great project along as a user with a well defined self interest. ---------------------------------------------------------------------- Comment By: RogerWilco (adriaanr) Date: 2006-09-09 15:24 Message: Logged In: YES user_id=1090922 I submitted this to the CMP board - which KingPaul was kind enough to cross-post. And now I've recovered my old SF account, I'd like to ask: Why would you want to keep the old method around? Once you do have a way of calculating the average hitpoints, who would like to use "PCGen somewhat like close to average hitpoints method"? It clearly disadvangages multiclassers with an odd number of class levels. I can see no game reason why you'd want to use it. I consider the current implementation a simple bug. (no offense meant to the implementor of the current calculation, I'm a programmer myself,having seen and made lot's of similar mistakes) Maybe it's my background in Physics, but to me "average" has only one meaning, and for dice it boils down to (die_size + 0.5) The code seems to be in src/java/pcgen/core/Globals.java in the rollHP method. The function itself seems o.k., although written down a little odd, from my C/Python/Delphi perspective. So it's the level give to the function when it get's called. I think that's src/java/pcgen/core/PCClass.java, where it does rollHP(aPC, level, aPC.getTotalLevels() == 1); on line 3976 and then goes to this function where it does roll = Globals.rollHP(min, max, getName(), aLevel); on line 5613 So probably level on line 3976 is the level of the class (is PCClass a new object for every class the PC has?) and it would then require either the hitpoint rolling to be aware of the total levels of the PC, or the hitpoint rolling to be moved to the character instead of the class level. It goes beyond my skills and time to figure out where that would need to be. ---------------------------------------------------------------------- Comment By: Martijn Verburg (karianna) Date: 2006-09-09 04:29 Message: Logged In: YES user_id=252169 For 5.11.2+ ---------------------------------------------------------------------- Comment By: Andrew McDougall (tir-gwaith) Date: 2006-09-09 01:26 Message: Logged In: YES user_id=208239 Yeah, PCGen averages by class. So, basically, the CMP user is asking for averaging by TL, ignoring first HD? Sounds like an OK FReq, so long as we keep the current version around as well. How is this coded in the GameMode? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=384722&aid=1555175&group_id=25576 |