<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=User_talk%3APhol_ende_wodan%2FCombat_System_Overhaul_Draft_1</id>
	<title>User talk:Phol ende wodan/Combat System Overhaul Draft 1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=User_talk%3APhol_ende_wodan%2FCombat_System_Overhaul_Draft_1"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;action=history"/>
	<updated>2026-06-04T05:39:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.5</generator>
	<entry>
		<id>https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108555&amp;oldid=prev</id>
		<title>Phol ende wodan: Phol ende wodan moved page User talk:Phol ende wodan/Combat system overhaul to User talk:Phol ende wodan/Combat System Overhaul Draft 1 without leaving a redirect: Leaving this page as-is and now working to cut unnecessary things out</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108555&amp;oldid=prev"/>
		<updated>2017-12-18T00:10:12Z</updated>

		<summary type="html">&lt;p&gt;Phol ende wodan moved page &lt;a href=&quot;/wiki/User_talk:Phol_ende_wodan/Combat_system_overhaul&quot; title=&quot;User talk:Phol ende wodan/Combat system overhaul&quot;&gt;User talk:Phol ende wodan/Combat system overhaul&lt;/a&gt; to &lt;a href=&quot;/wiki/User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&quot; title=&quot;User talk:Phol ende wodan/Combat System Overhaul Draft 1&quot;&gt;User talk:Phol ende wodan/Combat System Overhaul Draft 1&lt;/a&gt; without leaving a redirect: Leaving this page as-is and now working to cut unnecessary things out&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:10, 18 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Phol ende wodan</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108030&amp;oldid=prev</id>
		<title>Truculent: /* Overall impression */ new section</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108030&amp;oldid=prev"/>
		<updated>2017-11-08T22:10:38Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Overall impression: &lt;/span&gt; new section&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 22:10, 8 November 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot; &gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 00:33, 8 November 2017 (UTC)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 00:33, 8 November 2017 (UTC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Overall impression ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I find the idea of considering evasiveness and damage reduction separately interesting, but I have to say that I don't like this proposal in its current state. Maybe I'm missing something, but the proposal seems to make most non-shield armor completely useless.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;As an extreme example, consider plate mail. Wearing plate would cause a large weight burden, and significantly increase the chances of being hit. And for what benefit? At most one point of damage reduction. Why would anyone ever wear plate?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I'm guessing that under this proposal, the only armor worth wearing would be:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ul&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;Shields.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;Anything with an armor penalty of 0.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;Armor with a significant magical benefit, such as gauntlets of power.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Here's a sketch of a system I think might work better:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ul&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;Damage can be reduced to 0. A fox biting plate armor shouldn't do any damage.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;The average damage reduction is quite a bit higher than in this proposal. Maybe it should be a percentage of the attack damage, not a fixed amount.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;Damage reduction is variable, not fixed. Including...&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;li&amp;gt;There is a chance, maybe only a small chance, of no damage reduction at all. A fox biting into a spot not covered by armor does its ordinary 1d3 damage.&amp;lt;/li&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 22:10, 8 November 2017 (UTC)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihackdb:diff::1.12:old-108024:rev-108030 --&gt;
&lt;/table&gt;</summary>
		<author><name>Truculent</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108024&amp;oldid=prev</id>
		<title>Truculent: /* Use floating point */</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108024&amp;oldid=prev"/>
		<updated>2017-11-08T00:49:05Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Use floating point&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:49, 8 November 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For example, by the [[wikipedia:Marsaglia polar method]], or see links in that article for a couple of other methods. This is simple, but might have a couple of drawbacks.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For example, by the [[wikipedia:Marsaglia polar method]], or see links in that article for a couple of other methods. This is simple, but might have a couple of drawbacks.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First, apparently there is some opposition to using floating point numbers inside NetHack, on the grounds that different platforms implement them differently, so the results could vary between platforms. I'd be inclined to say &amp;quot;so what?&amp;quot; if the differences are minor and confined to pseudo-random results, but I'm not on the dev team. Also, I think there are already platform-dependent differences in how NetHack computes random numbers. Looking at [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;https://nethackwiki.com/wiki/&lt;/del&gt;Source:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;NetHack_3&lt;/del&gt;.6.0/src/rnd.c &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rnd.c&lt;/del&gt;], everything seems to be based on the Rand() function, which is ultimately provided by the operating system, and intended to return a random integer in the range 0 to RAND_MAX inclusive, for some OS-dependent value RAND_MAX. On my Linux desktop, RAND_MAX is 2147483647, but I suspect on some of the old platforms supported by NetHack, it might be as low as 32767. This will affect the distribution of the return values from rn2 and the other functions in rnd.c.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First, apparently there is some opposition to using floating point numbers inside NetHack, on the grounds that different platforms implement them differently, so the results could vary between platforms. I'd be inclined to say &amp;quot;so what?&amp;quot; if the differences are minor and confined to pseudo-random results, but I'm not on the dev team. Also, I think there are already platform-dependent differences in how NetHack computes random numbers. Looking at [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/ins&gt;Source:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;NetHack 3&lt;/ins&gt;.6.0/src/rnd.c&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;], everything seems to be based on the Rand() function, which is ultimately provided by the operating system, and intended to return a random integer in the range 0 to RAND_MAX inclusive, for some OS-dependent value RAND_MAX. On my Linux desktop, RAND_MAX is 2147483647, but I suspect on some of the old platforms supported by NetHack, it might be as low as 32767. This will affect the distribution of the return values from rn2 and the other functions in rnd.c.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Second, this depends on having a way to generate samples from a uniformly-distributed real-valued distribution. For example, as the common drand48 function does. Do the older platforms supported by NetHack provide functions similar to drand48? If not, it might be necessary to include such a function in NetHack. But this is probably available somewhere.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Second, this depends on having a way to generate samples from a uniformly-distributed real-valued distribution. For example, as the common drand48 function does. Do the older platforms supported by NetHack provide functions similar to drand48? If not, it might be necessary to include such a function in NetHack. But this is probably available somewhere.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihackdb:diff::1.12:old-108022:rev-108024 --&gt;
&lt;/table&gt;</summary>
		<author><name>Truculent</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108022&amp;oldid=prev</id>
		<title>Truculent: /* Add uniform distributions */</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108022&amp;oldid=prev"/>
		<updated>2017-11-08T00:41:13Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Add uniform distributions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 00:41, 8 November 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot; &gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add uniform distributions ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Add uniform distributions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As a crude but very simple method, one could approximate the normal distribution as a sum of several independent samples from a uniform distribution. Thus instead of checking gaussian-sample &amp;gt; K/160, one might check something like 8d160 &amp;gt; K * c, where c is a constant chosen so as to get suitable results, and maybe other numbers should be used instead of 8 and 160. For this purpose, the existing d() function in rnd.c might be quite usable, as long as the number 160 isn't replaced by a much larger number.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As a crude but very simple method, one could approximate the normal distribution as a sum of several independent samples from a uniform distribution. Thus instead of checking gaussian-sample &amp;gt; K/160, one might check something like 8d160 &amp;gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(&lt;/ins&gt;K &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;- 8*161/2) &lt;/ins&gt;* c, where c is a constant chosen so as to get suitable results, and maybe other numbers should be used instead of 8 and 160. For this purpose, the existing d() function in rnd.c might be quite usable, as long as the number 160 isn't replaced by a much larger number.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 00:33, 8 November 2017 (UTC)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 00:33, 8 November 2017 (UTC)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihackdb:diff::1.12:old-108020:rev-108022 --&gt;
&lt;/table&gt;</summary>
		<author><name>Truculent</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108020&amp;oldid=prev</id>
		<title>Truculent: Created page with &quot;Just a comment on the generation of samples from a normal distribution for use in the to-hit calculation, following up on a short conversation on IRC. Some methods of doing th...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=User_talk:Phol_ende_wodan/Combat_System_Overhaul_Draft_1&amp;diff=108020&amp;oldid=prev"/>
		<updated>2017-11-08T00:35:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Just a comment on the generation of samples from a normal distribution for use in the to-hit calculation, following up on a short conversation on IRC. Some methods of doing th...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Just a comment on the generation of samples from a normal distribution for use in the to-hit calculation, following up on a short conversation on IRC. Some methods of doing this:&lt;br /&gt;
&lt;br /&gt;
== Use floating point ==&lt;br /&gt;
&lt;br /&gt;
For example, by the [[wikipedia:Marsaglia polar method]], or see links in that article for a couple of other methods. This is simple, but might have a couple of drawbacks.&lt;br /&gt;
&lt;br /&gt;
First, apparently there is some opposition to using floating point numbers inside NetHack, on the grounds that different platforms implement them differently, so the results could vary between platforms. I'd be inclined to say &amp;quot;so what?&amp;quot; if the differences are minor and confined to pseudo-random results, but I'm not on the dev team. Also, I think there are already platform-dependent differences in how NetHack computes random numbers. Looking at [https://nethackwiki.com/wiki/Source:NetHack_3.6.0/src/rnd.c rnd.c], everything seems to be based on the Rand() function, which is ultimately provided by the operating system, and intended to return a random integer in the range 0 to RAND_MAX inclusive, for some OS-dependent value RAND_MAX. On my Linux desktop, RAND_MAX is 2147483647, but I suspect on some of the old platforms supported by NetHack, it might be as low as 32767. This will affect the distribution of the return values from rn2 and the other functions in rnd.c.&lt;br /&gt;
&lt;br /&gt;
Second, this depends on having a way to generate samples from a uniformly-distributed real-valued distribution. For example, as the common drand48 function does. Do the older platforms supported by NetHack provide functions similar to drand48? If not, it might be necessary to include such a function in NetHack. But this is probably available somewhere.&lt;br /&gt;
&lt;br /&gt;
== Table-driven ==&lt;br /&gt;
&lt;br /&gt;
The to-hit calculation seems to take the form &amp;lt;math&amp;gt;sample &amp;gt; bonus&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;sample&amp;lt;/math&amp;gt; is a random sample from a Gaussian distribution, where the distribution is fixed into the source code, and &amp;lt;math&amp;gt;bonus&amp;lt;/math&amp;gt; is the sum of all the applicable bonuses, and has the form &amp;lt;math&amp;gt;K/160&amp;lt;/math&amp;gt;, for some integer &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If we assume that the sample will never be more than 10 standard deviations away from the mean (the probability of exceeding this is around &amp;lt;math&amp;gt;10^{-23}&amp;lt;/math&amp;gt;), then a table showing the probability of a hit for each &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; would have about 1600 * stddev entries. It should be feasible to precompute this table and insert it in the NetHack source code. Then the to-hit calculation can be done with just a single sample from a uniform distribution.&lt;br /&gt;
&lt;br /&gt;
But how to represent the probabilities in the table?&lt;br /&gt;
&lt;br /&gt;
They could just be floating point numbers. This has the same considerations as in the previous method, but is more efficient.&lt;br /&gt;
&lt;br /&gt;
Or we could pick some large integer N, approximate the probability as a rational number k/N, and store k in the table. Then the to-hit check becomes just rn2(N+1) &amp;gt; k. But an improved version of rn2 should be used. With the existing rn2, the value of RAND_MAX from my Linux desktop, and N = &amp;lt;math&amp;gt;10^9&amp;lt;/math&amp;gt;, small results will be 50% more likely than large results. If RAND_MAX is 32767, the results will be horrible.&lt;br /&gt;
&lt;br /&gt;
If great precision is required, we could take N=&amp;lt;math&amp;gt;10^{64}&amp;lt;/math&amp;gt;, store k as four 16-bit unsigned integers, and use one to four calls to rn2(65536) in the to-hit calculation. But that's probably overkill.&lt;br /&gt;
&lt;br /&gt;
== Add uniform distributions ==&lt;br /&gt;
&lt;br /&gt;
As a crude but very simple method, one could approximate the normal distribution as a sum of several independent samples from a uniform distribution. Thus instead of checking gaussian-sample &amp;gt; K/160, one might check something like 8d160 &amp;gt; K * c, where c is a constant chosen so as to get suitable results, and maybe other numbers should be used instead of 8 and 160. For this purpose, the existing d() function in rnd.c might be quite usable, as long as the number 160 isn't replaced by a much larger number.&lt;br /&gt;
&lt;br /&gt;
--[[User:Truculent|Truculent]] ([[User talk:Truculent|talk]]) 00:33, 8 November 2017 (UTC)&lt;/div&gt;</summary>
		<author><name>Truculent</name></author>
		
	</entry>
</feed>