<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pokemon3d.net/index.php?action=history&amp;feed=atom&amp;title=Attacks_API</id>
	<title>Attacks API - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pokemon3d.net/index.php?action=history&amp;feed=atom&amp;title=Attacks_API"/>
	<link rel="alternate" type="text/html" href="https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;action=history"/>
	<updated>2026-08-10T18:26:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8502&amp;oldid=prev</id>
		<title>DracoHouston at 06:42, 3 March 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8502&amp;oldid=prev"/>
		<updated>2013-03-03T06:42:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:42, 3 March 2013&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-l172&quot;&gt;Line 172:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 172:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==Helper Functions==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==Helper Functions==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;The following are not engine interfaces, but helper functions in the base game's Attacks.lua&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[DoStatChanceAnimation|DoStatChanceAnimation(Change, startDelay)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_PlaceholderFireAttackAnimation|Attacks_PlaceholderFireAttackAnimation()]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_PlaceholderFireHitAnimation|Attacks_PlaceholderFireHitAnimation()]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetTypeIndexByName|Attacks_GetTypeIndexByName(typename)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetCategoryIndexByName|Attacks_GetCategoryIndexByName(typename)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetAttackCategoryIndexByName|Attacks_GetAttackCategoryIndexByName(typename)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetContestCategoryIndexByName|Attacks_GetContestCategoryIndexByName(typename)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetTypeNameByIndex|Attacks_GetTypeNameByIndex(typeidx)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_GetTargetStringByAttackTarget|Attacks_GetTargetStringByAttackTarget(desiredtarget)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToSleep|Attacks_TryToSleep(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToParalyze|Attacks_TryToParalyze(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToBurn|Attacks_TryToBurn(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToFreeze|Attacks_TryToFreeze(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToPoison|Attacks_TryToPoison(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToConfuse|Attacks_TryToConfuse(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryToFlinch|Attacks_TryToFlinch(chance, target)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[Attacks_TryStatChange|Attacks_TryStatChange(chance, target, targetstat, change)]]====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DracoHouston</name></author>
	</entry>
	<entry>
		<id>https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8501&amp;oldid=prev</id>
		<title>DracoHouston at 06:36, 3 March 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8501&amp;oldid=prev"/>
		<updated>2013-03-03T06:36:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:36, 3 March 2013&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-l66&quot;&gt;Line 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;====[[AttacksSpawnBillMoveAnimation|AttacksSpawnBillMoveAnimation(ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;====[[AttacksSpawnBillMoveAnimation|AttacksSpawnBillMoveAnimation(ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;====[[AttacksSpawnSoundAnimation|AttacksSpawnSoundAnimation(ByVal s As String, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;====[[AttacksSpawnSoundAnimation|AttacksSpawnSoundAnimation(ByVal s As String, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[AttacksSpawnSizeAnimation|AttacksSpawnSizeAnimation(ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal Texture As String, ByVal ScaleX As Single, ByVal ScaleY As Single, ByVal ScaleZ As Single, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;====[[AttacksSpawnSizeAnimation|AttacksSpawnSizeAnimation(ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal Texture As String, ByVal ScaleX As Single, ByVal ScaleY As Single, ByVal ScaleZ As Single, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single)&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 class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==Event-Time Globals==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==Event-Time Globals==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DracoHouston</name></author>
	</entry>
	<entry>
		<id>https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8500&amp;oldid=prev</id>
		<title>DracoHouston: Created page with &quot;==Interface Functions==  ===Attack Registration===  ====[[RegisterAttack|RegisterAttack(ByVal ID As Integer, ByVal Name As String, ByVal Description As String, ByVal Script As...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.pokemon3d.net/index.php?title=Attacks_API&amp;diff=8500&amp;oldid=prev"/>
		<updated>2013-03-03T06:36:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Interface Functions==  ===Attack Registration===  ====[[RegisterAttack|RegisterAttack(ByVal ID As Integer, ByVal Name As String, ByVal Description As String, ByVal Script As...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Interface Functions==&lt;br /&gt;
&lt;br /&gt;
===Attack Registration===&lt;br /&gt;
&lt;br /&gt;
====[[RegisterAttack|RegisterAttack(ByVal ID As Integer, ByVal Name As String, ByVal Description As String, ByVal Script As String)]]====&lt;br /&gt;
====[[SetAttackBaseDamage|SetAttackBaseDamage(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackMaxPP|SetAttackMaxPP(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackType|SetAttackType(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackAccuracy|SetAttackAccuracy(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackContestCategory|SetAttackContestCategory(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackCategory|SetAttackCategory(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackAttackCategory|SetAttackAttackCategory(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackAccuracyCheck|SetAttackAccuracyCheck(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackKingStoneAffected|SetAttackKingStoneAffected(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackPriority|SetAttackPriority(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackEffectChance|SetAttackEffectChance(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackHasAttackEffect|SetAttackHasAttackEffect(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackHasHitEffect|SetAttackHasHitEffect(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackIsHMMove|SetAttackIsHMMove(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackProtectDetectWorks|SetAttackProtectDetectWorks(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackMagicCatAffected|SetAttackMagicCatAffected(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackCanBeCopiedByMirrorMove|SetAttackCanBeCopiedByMirrorMove(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackRemoveFrozen|SetAttackRemoveFrozen(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackHighCriticalChance|SetAttackHighCriticalChance(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackIsHealingMove|SetAttackIsHealingMove(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackIsRoundBasedMove|SetAttackIsRoundBasedMove(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackDisabledWhileGravity|SetAttackDisabledWhileGravity(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackUseSuperEffective|SetAttackUseSuperEffective(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackUseNotEffective|SetAttackUseNotEffective(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackUseNotAffected|SetAttackUseNotAffected(ByVal ID As Integer, ByVal val As Boolean)]]====&lt;br /&gt;
====[[SetAttackTimesToAttack|SetAttackTimesToAttack(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackAbsoluteDamage|SetAttackAbsoluteDamage(ByVal ID As Integer, ByVal val As Integer)]]====&lt;br /&gt;
====[[SetAttackAttackingAnimationDelegate|SetAttackAttackingAnimationDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
====[[SetAttackHitAnimationDelegate|SetAttackHitAnimationDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
====[[SetAttackSpecialAttackDelegate|SetAttackSpecialAttackDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
====[[SetAttackOnUserSwitchDelegate|SetAttackOnUserSwitchDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
====[[SetAttackPreAttackDelegate|SetAttackPreAttackDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
====[[SetAttackMissedDelegate|SetAttackMissedDelegate(ByVal ID As Integer, ByVal s As String)]]====&lt;br /&gt;
&lt;br /&gt;
===Event-Time Functions (non-animation)===&lt;br /&gt;
====[[Attacks_SetBaseDamage|Attacks_SetBaseDamage(ByVal val As Integer)]]====&lt;br /&gt;
====[[Attacks_SetStore|Attacks_SetStore(ByVal val As String)]]====&lt;br /&gt;
====[[Attacks_SetTimesToAttack|Attacks_SetTimesToAttack(ByVal val As Integer)]]====&lt;br /&gt;
====[[Attacks_SetAbsoluteDamage|Attacks_SetAbsoluteDamage(ByVal val As Integer)]]====&lt;br /&gt;
====[[Attacks_SetAccuracy|Attacks_SetAccuracy(ByVal val As Integer)]]====&lt;br /&gt;
====[[Attacks_AddBattleStep|Attacks_AddBattleStep(ByVal bstep As String, ByVal args As String)]]====&lt;br /&gt;
====[[Attacks_TryAddVolitileStatus|Attacks_TryAddVolitileStatus(ByVal target As String, ByVal statuseffect As String) As Boolean]]====&lt;br /&gt;
====[[Attacks_TryRemoveVolitileStatus|Attacks_TryRemoveVolitileStatus(ByVal target As String, ByVal statuseffect As String) As Boolean]]====&lt;br /&gt;
====[[Attacks_GetTargetAffectedByVolitileStatus|Attacks_GetTargetAffectedByVolitileStatus(ByVal target As String, ByVal statuseffect As String) As Boolean]]====&lt;br /&gt;
====[[Attacks_GetTargetStatusEffect|Attacks_GetTargetStatusEffect(ByVal target As String) As String]]====&lt;br /&gt;
====[[Attacks_GetTargetMoveTypeByIndex|Attacks_GetTargetMoveTypeByIndex(ByVal target As String, ByVal moveidx As Integer) As Integer]]====&lt;br /&gt;
====[[Attacks_GetTargetMovesByIndex|Attacks_GetTargetMovesByIndex(ByVal target As String, ByVal moveidx As Integer) As Integer]]====&lt;br /&gt;
====[[Attacks_SetTargetMoves|Attacks_SetTargetMoves(ByVal target As String, ByVal newmove1 As Integer, ByVal newmove2 As Integer, ByVal newmove3 As Integer, ByVal newmove4 As Integer)]]====&lt;br /&gt;
====[[Attacks_GetTargetStatsByName|Attacks_GetTargetStatsByName(ByVal target As String, ByVal statname As String) As Integer]]====&lt;br /&gt;
====[[Attacks_SetTargetStats|Attacks_SetTargetStats(ByVal target As String, ByVal atk As Integer, ByVal def As Integer, ByVal spatk As Integer, ByVal spdef As Integer, ByVal speed As Integer)]]====&lt;br /&gt;
====[[Attacks_SetTargetAnimationName|Attacks_SetTargetAnimationName(ByVal target As String, ByVal newname As String)]]====&lt;br /&gt;
====[[Attacks_GetTargetAnimationName|Attacks_GetTargetAnimationName(ByVal target As String) As String]]====&lt;br /&gt;
====[[Attacks_SetTargetTypes|Attacks_SetTargetTypes(ByVal target As String, ByVal type1idx As Integer, ByVal type2idx As Integer)]]====&lt;br /&gt;
&lt;br /&gt;
===Animation Event Functions===&lt;br /&gt;
&lt;br /&gt;
====[[AnimationSequenceBegin|AnimationSequenceBegin()]]====&lt;br /&gt;
====[[AnimationSequenceEnd|AnimationSequenceEnd()]]====&lt;br /&gt;
====[[AttacksSpawnOpacityAnimation|AttacksSpawnOpacityAnimation(ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal Texture As String, ByVal ScaleX As Single, ByVal ScaleY As Single, ByVal ScaleZ As Single, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;br /&gt;
====[[AttacksSpawnMovingAnimation|AttacksSpawnMovingAnimation(ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal Texture As String, ByVal ScaleX As Single, ByVal ScaleY As Single, ByVal ScaleZ As Single, ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;br /&gt;
====[[AttacksSpawnBillMoveAnimation|AttacksSpawnBillMoveAnimation(ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;br /&gt;
====[[AttacksSpawnSoundAnimation|AttacksSpawnSoundAnimation(ByVal s As String, ByVal startDelay As Single, ByVal endDelay As Single)]]====&lt;br /&gt;
====[[AttacksSpawnSizeAnimation|AttacksSpawnSizeAnimation(ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal Texture As String, ByVal ScaleX As Single, ByVal ScaleY As Single, ByVal ScaleZ As Single, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single)&lt;br /&gt;
&lt;br /&gt;
==Event-Time Globals==&lt;br /&gt;
'''PLEASE NOTE THAT DURING ANIMATION DELEGATES YOU CAN ONLY ACCESS YOUR OWN GLOBALS, TARGET IS ALSO SET TO THE USER, IF YOUR ANIMATION REPLIES ON TARGET INFORMATION DO THE CHECK IN THE SPECIAL OR PREATTACK DELEGATE'''&lt;br /&gt;
&lt;br /&gt;
'' '''ALSO, THESE ARE READ ONLY, SETTING THEM DOES NOTHING''' ''&lt;br /&gt;
&lt;br /&gt;
====[[Attacks_Store]]====&lt;br /&gt;
String, unique to this instance of the attack, can be set at runtime [[Attacks_SetStore|see Attacks_SetStore]]&lt;br /&gt;
====[[Attacks_DamageDealt]]====&lt;br /&gt;
Number, the damage dealt by this attack. Always set to 0 except for inside Special Attack Delegates. For attacks with multiple hits, this is not the total damage dealt, but the damage dealt by that hit.&lt;br /&gt;
====[[Attacks_MyHP]]====&lt;br /&gt;
The user's HP&lt;br /&gt;
====[[Attacks_MyMaxHP]]====&lt;br /&gt;
The user's max HP&lt;br /&gt;
====[[Attacks_MyLevel]]====&lt;br /&gt;
The user's level&lt;br /&gt;
====[[Attacks_MyName]]====&lt;br /&gt;
The user's name&lt;br /&gt;
====[[Attacks_MyWeight]]====&lt;br /&gt;
The user's weight according to the pokedex&lt;br /&gt;
====[[Attacks_MyType1]]====&lt;br /&gt;
The user's 1st type&lt;br /&gt;
====[[Attacks_MyType2]]====&lt;br /&gt;
The user's 2nd type&lt;br /&gt;
====[[Attacks_PrimaryTargetHP]]====&lt;br /&gt;
The primary target of this attack's HP&lt;br /&gt;
====[[Attacks_PrimaryTargetMaxHP]]====&lt;br /&gt;
The primary target of this attack's max HP&lt;br /&gt;
====[[Attacks_PrimaryTargetLevel]]====&lt;br /&gt;
The primary target of this attack's level&lt;br /&gt;
====[[Attacks_PrimaryTargetName]]====&lt;br /&gt;
The primary target of this attack's name&lt;br /&gt;
====[[Attacks_PrimaryTargetWeight]]====&lt;br /&gt;
The primary target of this attack's weight according to the pokedex&lt;br /&gt;
====[[Attacks_PrimaryTargetType1]]====&lt;br /&gt;
The primary target of this attack's 1st type&lt;br /&gt;
====[[Attacks_PrimaryTargetType2]]====&lt;br /&gt;
The primary target of this attack's 2nd type&lt;br /&gt;
====[[Attacks_AdjacentTargetHP]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetHP1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetHP2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetLevel]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetLevel1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetLevel2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetName]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetName1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetName2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetWeight]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetWeight1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetWeight2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType11]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType12]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType21]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetType22]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetMaxHP]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetMaxHP1]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_AdjacentTargetMaxHP2]]====&lt;br /&gt;
Does nothing, for double battles&lt;br /&gt;
====[[Attacks_EnvironmentType]]====&lt;br /&gt;
The map's environment type&lt;br /&gt;
* 0 = auto (day/night cycle)&lt;br /&gt;
* 1 = always day&lt;br /&gt;
* 2 = cave&lt;br /&gt;
* 3 = always dark&lt;br /&gt;
* 4 = underwater&lt;br /&gt;
====[[Attacks_EnvironmentDayPhase]]====&lt;br /&gt;
The map's day phase&lt;br /&gt;
* 0 = night&lt;br /&gt;
* 1 = dawn&lt;br /&gt;
* 2 = day&lt;br /&gt;
* 3 = dusk&lt;br /&gt;
====[[Attacks_EnvironmentWeather]]====&lt;br /&gt;
The map's weather (not battle weather)&lt;br /&gt;
* 0 = calm day&lt;br /&gt;
* 1 = raining&lt;br /&gt;
* 2 = snowing&lt;br /&gt;
* 3 = underwater&lt;br /&gt;
====[[Attacks_IsTrainerBattleFalse]]====&lt;br /&gt;
Set to true if in a trainer battle, false if in a battle with a wild pokemon&lt;br /&gt;
====[[Attacks_TargetString]]====&lt;br /&gt;
An internal engine string representing the target of the attack. If the target string is &amp;quot;0&amp;quot; it is targeting player 1, if it is &amp;quot;1&amp;quot; it is targeting player 2&lt;br /&gt;
&lt;br /&gt;
==Helper Functions==&lt;/div&gt;</summary>
		<author><name>DracoHouston</name></author>
	</entry>
</feed>