<!DOCTYPE html><htmlclass="default"lang="en"><head><metacharSet="utf-8"/><metahttp-equiv="x-ua-compatible"content="IE=edge"/><title>SandHealAttr | pokemon-rogue-battle</title><metaname="description"content="Documentation for pokemon-rogue-battle"/><metaname="viewport"content="width=device-width, initial-scale=1"/><linkrel="stylesheet"href="../assets/style.css"/><linkrel="stylesheet"href="../assets/highlight.css"/><scriptdefersrc="../assets/main.js"></script><scriptasyncsrc="../assets/icons.js"id="tsd-icons-script"></script><scriptasyncsrc="../assets/search.js"id="tsd-search-script"></script><scriptasyncsrc="../assets/navigation.js"id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme=localStorage.getItem("tsd-theme")||"os";document.body.style.display="none";setTimeout(()=>app?app.showPage():document.body.style.removeProperty("display"),500)</script><headerclass="tsd-page-toolbar"><divclass="tsd-toolbar-contents container"><divclass="table-cell"id="tsd-search"data-base=".."><divclass="field"><labelfor="tsd-search-field"class="tsd-widget tsd-toolbar-icon search no-caption"><svgwidth="16"height="16"viewBox="0 0 16 16"fill="none"><usehref="../assets/icons.svg#icon-search"></use></svg></label><inputtype="text"id="tsd-search-field"aria-label="Search"/></div><divclass="field"><divid="tsd-toolbar-links"></div></div><ulclass="results"><liclass="state loading">Preparing search index...</li><liclass="state failure">The search index is not available</li></ul><ahref="../index.html"class="title">pokemon-rogue-battle</a></div><divclass="table-cell"id="tsd-widgets"><ahref="#"class="tsd-widget tsd-toolbar-icon menu no-caption"data-toggle="menu"aria-label="Menu"><svgwidth="16"height="16"viewBox="0 0 16 16"fill="none"><usehref="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><divclass="container container-main"><divclass="col-content"><divclass="tsd-page-title"><ulclass="tsd-breadcrumb"><li><ahref="../index.html">pokemon-rogue-battle</a></li><li><ahref="../modules/data_move.html">data/move</a></li><li><ahref="data_move.SandHealAttr.html">SandHealAttr</a></li></ul><h1>Class SandHealAttr</h1></div><sectionclass="tsd-panel tsd-comment"><divclass="tsd-comment tsd-typography"><p>Heals the user or target by <ahref="data_move.HealAttr.html#healRatio"class="tsd-kind-property"><code>healRatio</code></a> depending on the value of <ahref="data_move.MoveAttr.html#selfTarget"class="tsd-kind-property"><code>selfTarget</code></a></p>
</div></section></div></details></section></section><sectionclass="tsd-panel-group tsd-member-group"><h2>Constructors</h2><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="constructor"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>constructor</span><ahref="#constructor"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures tsd-is-inherited"><liclass="tsd-signature tsd-anchor-link"><aid="constructor.new_SandHealAttr"class="tsd-anchor"></a><spanclass="tsd-kind-constructor-signature">new <wbr/>Sand<wbr/>Heal<wbr/>Attr</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><ahref="data_move.SandHealAttr.html"class="tsd-signature-type tsd-kind-class">SandHealAttr</a><ahref="#constructor.new_SandHealAttr"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><h4class="tsd-returns-title">Returns <ahref="data_move.SandHealAttr.html"class="tsd-signature-type tsd-kind-class">SandHealAttr</a></h4><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#constructor">constructor</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L1376">src/data/move.ts:1376</a></li></ul></aside></li></ul></section></section><sectionclass="tsd-panel-group tsd-member-group"><h2>Properties</h2><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="firstHitOnly"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>first<wbr/>Hit<wbr/>Only</span><ahref="#firstHitOnly"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><divclass="tsd-signature"><spanclass="tsd-kind-property">first<wbr/>Hit<wbr/>Only</span><spanclass="tsd-signature-symbol">:</span><spanclass="tsd-signature-type">boolean</span></div><divclass="tsd-comment tsd-typography"><p>Should this effect only apply on the first hit?</p>
</div><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#firstHitOnly">firstHitOnly</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L813">src/data/move.ts:813</a></li></ul></aside></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="firstTargetOnly"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>first<wbr/>Target<wbr/>Only</span><ahref="#firstTargetOnly"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><divclass="tsd-signature"><spanclass="tsd-kind-property">first<wbr/>Target<wbr/>Only</span><spanclass="tsd-signature-symbol">:</span><spanclass="tsd-signature-type">boolean</span></div><divclass="tsd-comment tsd-typography"><p>Should this effect only apply on the first target hit?</p>
</div><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#firstTargetOnly">firstTargetOnly</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L817">src/data/move.ts:817</a></li></ul></aside></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="lastHitOnly"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>last<wbr/>Hit<wbr/>Only</span><ahref="#lastHitOnly"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><divclass="tsd-signature"><spanclass="tsd-kind-property">last<wbr/>Hit<wbr/>Only</span><spanclass="tsd-signature-symbol">:</span><spanclass="tsd-signature-type">boolean</span></div><divclass="tsd-comment tsd-typography"><p>Should this effect only apply on the last hit?</p>
</div><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#lastHitOnly">lastHitOnly</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L815">src/data/move.ts:815</a></li></ul></aside></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="selfTarget"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>self<wbr/>Target</span><ahref="#selfTarget"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><divclass="tsd-signature"><spanclass="tsd-kind-property">self<wbr/>Target</span><spanclass="tsd-signature-symbol">:</span><spanclass="tsd-signature-type">boolean</span></div><divclass="tsd-comment tsd-typography"><p>Should this <ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a> target the user?</p>
</div><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#selfTarget">selfTarget</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L736">src/data/move.ts:736</a></li></ul></aside></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="trigger"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>trigger</span><ahref="#trigger"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><divclass="tsd-signature"><spanclass="tsd-kind-property">trigger</span><spanclass="tsd-signature-symbol">:</span><ahref="../enums/data_move.MoveEffectTrigger.html"class="tsd-signature-type tsd-kind-enum">MoveEffectTrigger</a></div><divclass="tsd-comment tsd-typography"><p>Defines when this effect should trigger in the move's effect order</p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">target</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span></li><li><span><spanclass="tsd-kind-parameter">healRatio</span>: <spanclass="tsd-signature-type">number</span></span></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">void</span></h4><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#addHealPhase">addHealPhase</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L1266">src/data/move.ts:1266</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="apply"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>apply</span><ahref="#apply"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures tsd-is-inherited"><liclass="tsd-signature tsd-anchor-link"><aid="apply.apply-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">apply</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">user</span>, <spanclass="tsd-kind-parameter">target</span>, <spanclass="tsd-kind-parameter">move</span>, <spanclass="tsd-kind-parameter">args</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">boolean</span><ahref="#apply.apply-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Applies move effects so long as they are able based on <ahref="data_move.MoveEffectAttr.html#canApply"class="tsd-kind-method"><code>canApply</code></a></p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">user</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span></li><li><span><spanclass="tsd-kind-parameter">target</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span></li><li><span><spanclass="tsd-kind-parameter">move</span>: <ahref="data_move.default.html"class="tsd-signature-type tsd-kind-class">default</a></span></li><li><span><spanclass="tsd-kind-parameter">args</span>: <spanclass="tsd-signature-type">any</span><spanclass="tsd-signature-symbol">[]</span></span></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">boolean</span></h4><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#apply">apply</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L1380">src/data/move.ts:1380</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="canApply"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>can<wbr/>Apply</span><ahref="#canApply"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures tsd-is-inherited"><liclass="tsd-signature tsd-anchor-link"><aid="canApply.canApply-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">can<wbr/>Apply</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">user</span>, <spanclass="tsd-kind-parameter">target</span>, <spanclass="tsd-kind-parameter">move</span>, <spanclass="tsd-kind-parameter">args</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">boolean</span><ahref="#canApply.canApply-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Determines whether the <ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a>'s effects are valid to <ahref="data_move.MoveEffectAttr.html#apply"class="tsd-kind-method"><code>apply</code></a></p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">user</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="field_pokemon.default.html"class="tsd-kind-class"><code>Pokemon</code></a> using the move</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">target</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="field_pokemon.default.html"class="tsd-kind-class"><code>Pokemon</code></a> target of the move</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">move</span>: <ahref="data_move.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a> with this attribute</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">args</span>: <spanclass="tsd-signature-type">any</span><spanclass="tsd-signature-symbol">[]</span></span><divclass="tsd-comment tsd-typography"><p>Set of unique arguments needed by this attribute</p>
</div><divclass="tsd-comment tsd-typography"></div></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">boolean</span></h4><p>true if basic application of the ability attribute should be possible</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">target</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="field_pokemon.default.html"class="tsd-kind-class"><code>Pokemon</code></a> target of the move</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">move</span>: <ahref="data_move.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a> with this attribute</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">cancelled</span>: <ahref="utils.BooleanHolder.html"class="tsd-signature-type tsd-kind-class">BooleanHolder</a></span><divclass="tsd-comment tsd-typography"><p><ahref="utils.BooleanHolder.html"class="tsd-kind-class"><code>Utils.BooleanHolder</code></a> which stores if the move should fail</p>
</div><divclass="tsd-comment tsd-typography"></div></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">string</span></h4><p>the string representing failure of this <ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a></p>
If user's ability has MoveEffectChanceMultiplierAbAttr or IgnoreMoveEffectsAbAttr modifies the base chance.</p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">user</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="field_pokemon.default.html"class="tsd-kind-class"><code>Pokemon</code></a> using this move</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">target</span>: <ahref="field_pokemon.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="field_pokemon.default.html"class="tsd-kind-class"><code>Pokemon</code></a> target of this move</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><spanclass="tsd-kind-parameter">move</span>: <ahref="data_move.default.html"class="tsd-signature-type tsd-kind-class">default</a></span><divclass="tsd-comment tsd-typography"><p><ahref="data_move.default.html"class="tsd-kind-class"><code>Move</code></a> being used</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><codeclass="tsd-tag ts-flagOptional">Optional</code><spanclass="tsd-kind-parameter">selfEffect</span>: <spanclass="tsd-signature-type">Boolean</span></span><divclass="tsd-comment tsd-typography"><p>Boolean if move targets user.</p>
<divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#getMoveChance">getMoveChance</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L856">src/data/move.ts:856</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="getTargetBenefitScore"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>get<wbr/>Target<wbr/>Benefit<wbr/>Score</span><ahref="#getTargetBenefitScore"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures tsd-is-inherited"><liclass="tsd-signature tsd-anchor-link"><aid="getTargetBenefitScore.getTargetBenefitScore-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">get<wbr/>Target<wbr/>Benefit<wbr/>Score</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">user</span>, <spanclass="tsd-kind-parameter">target</span>, <spanclass="tsd-kind-parameter">move</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">number</span><ahref="#getTargetBenefitScore.getTargetBenefitScore-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Used by the Enemy AI to rank an attack based on a given target</p>
</div><asideclass="tsd-sources"><p>Inherited from <ahref="data_move.WeatherHealAttr.html">WeatherHealAttr</a>.<ahref="data_move.WeatherHealAttr.html#getTargetBenefitScore">getTargetBenefitScore</a></p><ul><li>Defined in <ahref="https://github.com/pagefaultgames/pokerogue/blob/126174efe4162693f17fbb44116ce1723bacc0bb/src/data/move.ts#L1271">src/data/move.ts:1271</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member tsd-is-inherited"><aid="getUserBenefitScore"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>get<wbr/>User<wbr/>Benefit<wbr/>Score</span><ahref="#getUserBenefitScore"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures tsd-is-inherited"><liclass="tsd-signature tsd-anchor-link"><aid="getUserBenefitScore.getUserBenefitScore-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">get<wbr/>User<wbr/>Benefit<wbr/>Score</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">user</span>, <spanclass="tsd-kind-parameter">target</span>, <spanclass="tsd-kind-parameter">move</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">number</span><ahref="#getUserBenefitScore.getUserBenefitScore-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Used by the Enemy AI to rank an attack based on a given user</p>