Spaces:
Running
Running
{ | |
"version": 3, | |
"sources": ["../../../../data/mods/sharingiscaring/scripts.ts"], | |
"sourcesContent": ["import { RESTORATIVE_BERRIES } from \"../../../sim/pokemon\";\n\nexport const Scripts: ModdedBattleScriptsData = {\n\tgen: 9,\n\tinherit: 'gen9',\n\tpokemon: {\n\t\tisGrounded(negateImmunity) {\n\t\t\tif ('gravity' in this.battle.field.pseudoWeather) return true;\n\t\t\tif ('ingrain' in this.volatiles && this.battle.gen >= 4) return true;\n\t\t\tif ('smackdown' in this.volatiles) return true;\n\t\t\tconst item = (this.ignoringItem() ? '' : this.item);\n\t\t\tif (item === 'ironball' || (this.volatiles['item:ironball'] && !this.ignoringItem())) return true;\n\t\t\t// If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded.\n\t\t\tif (!negateImmunity && this.hasType('Flying') && !(this.hasType('???') && 'roost' in this.volatiles)) return false;\n\t\t\tif (this.hasAbility('levitate') && !this.battle.suppressingAbility(this)) return null;\n\t\t\tif ('magnetrise' in this.volatiles) return false;\n\t\t\tif ('telekinesis' in this.volatiles) return false;\n\t\t\tif (item === 'airballoon' || (this.volatiles['item:airballoon'] && !this.ignoringItem())) return false;\n\t\t\treturn true;\n\t\t},\n\t\thasItem(item) {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\treturn item.some(i => this.hasItem(i));\n\t\t\t} else {\n\t\t\t\tif (this.battle.toID(item) !== this.item && !this.volatiles['item:' + this.battle.toID(item)]) return false;\n\t\t\t}\n\t\t\treturn !this.ignoringItem();\n\t\t},\n\t\tuseItem(source, sourceEffect) {\n\t\t\tconst hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:'));\n\t\t\t// Best to declare everything early because ally might have a gem that needs proccing\n\t\t\tif (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect;\n\t\t\tif (!source && this.battle.event?.target) source = this.battle.event.target;\n\t\t\tconst item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem();\n\t\t\tif ((!this.hp && !item.isGem) || !this.isActive) return false;\n\t\t\tif (!hasAnyItem) return false;\n\n\t\t\tif (this.battle.runEvent('UseItem', this, null, null, item)) {\n\t\t\t\tswitch (item.id.startsWith('item:') ? item.id.slice(5) : item.id) {\n\t\t\t\tcase 'redcard':\n\t\t\t\t\tthis.battle.add('-enditem', this, item.fullname, `[of] ${source}`);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (item.isGem) {\n\t\t\t\t\t\tthis.battle.add('-enditem', this, item.fullname, '[from] gem');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.battle.add('-enditem', this, item.fullname);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (item.boosts) {\n\t\t\t\t\tthis.battle.boost(item.boosts, this, source, item);\n\t\t\t\t}\n\n\t\t\t\tthis.battle.singleEvent('Use', item, this.itemState, this, source, sourceEffect);\n\n\t\t\t\tif (item.id.startsWith('item:')) {\n\t\t\t\t\tdelete this.volatiles[item.id];\n\t\t\t\t\tthis.m.sharedItemsUsed.push(item.id.slice(5));\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastItem = this.item;\n\t\t\t\t\tthis.item = '';\n\t\t\t\t\tthis.battle.clearEffectState(this.itemState);\n\t\t\t\t}\n\t\t\t\tthis.usedItemThisTurn = true;\n\t\t\t\tthis.battle.runEvent('AfterUseItem', this, null, null, item);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\teatItem(force, source, sourceEffect) {\n\t\t\tconst hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:'));\n\t\t\tif (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect;\n\t\t\tif (!source && this.battle.event?.target) source = this.battle.event.target;\n\t\t\tconst item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem();\n\t\t\tif (!hasAnyItem) return false;\n\t\t\tif ((!this.hp && this.battle.toID(item.name) !== 'jabocaberry' && this.battle.toID(item.name) !== 'rowapberry') ||\n\t\t\t\t!this.isActive) return false;\n\n\t\t\tif (\n\t\t\t\tthis.battle.runEvent('UseItem', this, null, null, item) &&\n\t\t\t\t(force || this.battle.runEvent('TryEatItem', this, null, null, item))\n\t\t\t) {\n\t\t\t\tthis.battle.add('-enditem', this, item.fullname, '[eat]');\n\n\t\t\t\tthis.battle.singleEvent('Eat', item, this.itemState, this, source, sourceEffect);\n\t\t\t\tthis.battle.runEvent('EatItem', this, null, null, item);\n\n\t\t\t\tif (RESTORATIVE_BERRIES.has(item.id.startsWith('item:') ? item.id.slice(5) as ID : item.id)) {\n\t\t\t\t\tswitch (this.pendingStaleness) {\n\t\t\t\t\tcase 'internal':\n\t\t\t\t\t\tif (this.staleness !== 'external') this.staleness = 'internal';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'external':\n\t\t\t\t\t\tthis.staleness = 'external';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tthis.pendingStaleness = undefined;\n\t\t\t\t}\n\n\t\t\t\tif (item.id.startsWith('item:')) {\n\t\t\t\t\tdelete this.volatiles[item.id];\n\t\t\t\t\tthis.m.sharedItemsUsed.push(item.id.slice(5));\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastItem = this.item;\n\t\t\t\t\tthis.item = '';\n\t\t\t\t\tthis.battle.clearEffectState(this.itemState);\n\t\t\t\t}\n\t\t\t\tthis.usedItemThisTurn = true;\n\t\t\t\tthis.ateBerry = true;\n\t\t\t\tthis.battle.runEvent('AfterUseItem', this, null, null, item);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tsetItem(item, source, effect) {\n\t\t\tif (!this.hp || !this.isActive) return false;\n\t\t\tif (this.itemState.knockedOff) return false;\n\t\t\tif (typeof item === 'string') item = this.battle.dex.items.get(item);\n\n\t\t\tconst effectid = this.battle.effect ? this.battle.effect.id : '';\n\t\t\tif (RESTORATIVE_BERRIES.has('leppaberry' as ID)) {\n\t\t\t\tconst inflicted = ['trick', 'switcheroo'].includes(effectid);\n\t\t\t\tconst external = inflicted && source && !source.isAlly(this);\n\t\t\t\tthis.pendingStaleness = external ? 'external' : 'internal';\n\t\t\t} else {\n\t\t\t\tthis.pendingStaleness = undefined;\n\t\t\t}\n\t\t\tconst oldItem = this.getItem();\n\t\t\tconst oldItemState = this.itemState;\n\t\t\tthis.item = item.id;\n\t\t\tthis.itemState = this.battle.initEffectState({ id: item.id, target: this });\n\t\t\tif (oldItem.exists) this.battle.singleEvent('End', oldItem, oldItemState, this);\n\t\t\tif (item.id) {\n\t\t\t\tthis.battle.singleEvent('Start', item, this.itemState, this, source, effect);\n\t\t\t\tfor (const ally of this.side.pokemon) {\n\t\t\t\t\tif (!ally.m.sharedItemsUsed) continue;\n\t\t\t\t\tally.m.sharedItemsUsed = ally.m.sharedItemsUsed.filter((i: ID) => i !== item.id);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t},\n};\n"], | |
"mappings": "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", | |
"names": [] | |
} | |