Unsplicing no longer requires an item
parent
dba93a21f0
commit
e8b5d7aa3e
|
@ -551,17 +551,6 @@ export class FusePokemonModifierType extends PokemonModifierType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class UnfusePokemonModifierType extends PokemonModifierType {
|
|
||||||
constructor(name: string, iconImage?: string) {
|
|
||||||
super(name, 'Removes the fusion aspects of a spliced Pokémon, but the second Pokémon is lost', (_type, args) => new Modifiers.UnfusePokemonModifier(this, (args[0] as PlayerPokemon).id),
|
|
||||||
(pokemon: PlayerPokemon) => {
|
|
||||||
if (!pokemon.isFusion())
|
|
||||||
return PartyUiHandler.NoEffectMessage;
|
|
||||||
return null;
|
|
||||||
}, iconImage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AttackTypeBoosterModifierTypeGenerator extends ModifierTypeGenerator {
|
class AttackTypeBoosterModifierTypeGenerator extends ModifierTypeGenerator {
|
||||||
constructor() {
|
constructor() {
|
||||||
super((party: Pokemon[], pregenArgs?: any[]) => {
|
super((party: Pokemon[], pregenArgs?: any[]) => {
|
||||||
|
@ -886,7 +875,6 @@ export const modifierTypes = {
|
||||||
IV_SCANNER: () => new ModifierType('IV Scanner', 'Allows scanning the IVs of wild Pokémon', (type, _args) => new Modifiers.IvScannerModifier(type), 'scanner'),
|
IV_SCANNER: () => new ModifierType('IV Scanner', 'Allows scanning the IVs of wild Pokémon', (type, _args) => new Modifiers.IvScannerModifier(type), 'scanner'),
|
||||||
|
|
||||||
DNA_SPLICERS: () => new FusePokemonModifierType('DNA Splicers'),
|
DNA_SPLICERS: () => new FusePokemonModifierType('DNA Splicers'),
|
||||||
REVERSE_DNA_SPLICERS: () => new UnfusePokemonModifierType('Reverse DNA Splicers', 'dna_splicers'),
|
|
||||||
|
|
||||||
MINI_BLACK_HOLE: () => new TurnHeldItemTransferModifierType('Mini Black Hole'),
|
MINI_BLACK_HOLE: () => new TurnHeldItemTransferModifierType('Mini Black Hole'),
|
||||||
|
|
||||||
|
@ -995,7 +983,6 @@ const modifierPool: ModifierPool = {
|
||||||
new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3),
|
new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3),
|
||||||
new WeightedModifierType(modifierTypes.TERA_SHARD, 1),
|
new WeightedModifierType(modifierTypes.TERA_SHARD, 1),
|
||||||
new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 4 : 0),
|
new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode.isSplicedOnly && party.filter(p => !p.fusionSpecies).length > 1 ? 4 : 0),
|
||||||
new WeightedModifierType(modifierTypes.REVERSE_DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode.isSplicedOnly && party.filter(p => p.fusionSpecies).length ? 6 : 0),
|
|
||||||
].map(m => { m.setTier(ModifierTier.GREAT); return m; }),
|
].map(m => { m.setTier(ModifierTier.GREAT); return m; }),
|
||||||
[ModifierTier.ULTRA]: [
|
[ModifierTier.ULTRA]: [
|
||||||
new WeightedModifierType(modifierTypes.ULTRA_BALL, 24),
|
new WeightedModifierType(modifierTypes.ULTRA_BALL, 24),
|
||||||
|
@ -1021,7 +1008,6 @@ const modifierPool: ModifierPool = {
|
||||||
new WeightedModifierType(modifierTypes.EXP_SHARE, 12),
|
new WeightedModifierType(modifierTypes.EXP_SHARE, 12),
|
||||||
new WeightedModifierType(modifierTypes.EXP_BALANCE, 4),
|
new WeightedModifierType(modifierTypes.EXP_BALANCE, 4),
|
||||||
new WeightedModifierType(modifierTypes.TERA_ORB, (party: Pokemon[]) => Math.min(Math.max(Math.floor(party[0].scene.currentBattle.waveIndex / 50) * 2, 1), 4), 4),
|
new WeightedModifierType(modifierTypes.TERA_ORB, (party: Pokemon[]) => Math.min(Math.max(Math.floor(party[0].scene.currentBattle.waveIndex / 50) * 2, 1), 4), 4),
|
||||||
new WeightedModifierType(modifierTypes.REVERSE_DNA_SPLICERS, (party: Pokemon[]) => !party[0].scene.gameMode.isSplicedOnly && party.filter(p => p.fusionSpecies).length ? 3 : 0, 3),
|
|
||||||
new WeightedModifierType(modifierTypes.VOUCHER, (party: Pokemon[]) => !party[0].scene.gameMode.isDaily ? 3 : 0, 3),
|
new WeightedModifierType(modifierTypes.VOUCHER, (party: Pokemon[]) => !party[0].scene.gameMode.isDaily ? 3 : 0, 3),
|
||||||
].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),
|
].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),
|
||||||
[ModifierTier.ROGUE]: [
|
[ModifierTier.ROGUE]: [
|
||||||
|
|
|
@ -1210,18 +1210,6 @@ export class FusePokemonModifier extends ConsumablePokemonModifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class UnfusePokemonModifier extends ConsumablePokemonModifier {
|
|
||||||
constructor(type: ModifierType, pokemonId: integer) {
|
|
||||||
super(type, pokemonId);
|
|
||||||
}
|
|
||||||
|
|
||||||
apply(args: any[]): boolean {
|
|
||||||
(args[0] as PlayerPokemon).unfuse();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class MultipleParticipantExpBonusModifier extends PersistentModifier {
|
export class MultipleParticipantExpBonusModifier extends PersistentModifier {
|
||||||
constructor(type: ModifierType, stackCount?: integer) {
|
constructor(type: ModifierType, stackCount?: integer) {
|
||||||
super(type, stackCount);
|
super(type, stackCount);
|
||||||
|
|
|
@ -38,9 +38,10 @@ export enum PartyOption {
|
||||||
APPLY,
|
APPLY,
|
||||||
TEACH,
|
TEACH,
|
||||||
TRANSFER,
|
TRANSFER,
|
||||||
SPLICE,
|
|
||||||
SUMMARY,
|
SUMMARY,
|
||||||
UNPAUSE_EVOLUTION,
|
UNPAUSE_EVOLUTION,
|
||||||
|
SPLICE,
|
||||||
|
UNSPLICE,
|
||||||
RELEASE,
|
RELEASE,
|
||||||
SCROLL_UP = 1000,
|
SCROLL_UP = 1000,
|
||||||
SCROLL_DOWN = 1001,
|
SCROLL_DOWN = 1001,
|
||||||
|
@ -232,7 +233,7 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||||
}
|
}
|
||||||
ui.playSelect();
|
ui.playSelect();
|
||||||
return true;
|
return true;
|
||||||
} else if ((option !== PartyOption.SUMMARY && option !== PartyOption.UNPAUSE_EVOLUTION && option !== PartyOption.RELEASE && option !== PartyOption.CANCEL)
|
} else if ((option !== PartyOption.SUMMARY && option !== PartyOption.UNPAUSE_EVOLUTION && option !== PartyOption.UNSPLICE && option !== PartyOption.RELEASE && option !== PartyOption.CANCEL)
|
||||||
|| (option === PartyOption.RELEASE && this.partyUiMode === PartyUiMode.RELEASE)) {
|
|| (option === PartyOption.RELEASE && this.partyUiMode === PartyUiMode.RELEASE)) {
|
||||||
let filterResult: string;
|
let filterResult: string;
|
||||||
if (option !== PartyOption.TRANSFER && option !== PartyOption.SPLICE) {
|
if (option !== PartyOption.TRANSFER && option !== PartyOption.SPLICE) {
|
||||||
|
@ -299,6 +300,26 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||||
ui.playSelect();
|
ui.playSelect();
|
||||||
pokemon.pauseEvolutions = false;
|
pokemon.pauseEvolutions = false;
|
||||||
this.showText(`Evolutions have been unpaused for ${pokemon.name}.`, null, () => this.showText(null, 0), null, true);
|
this.showText(`Evolutions have been unpaused for ${pokemon.name}.`, null, () => this.showText(null, 0), null, true);
|
||||||
|
} else if (option === PartyOption.UNSPLICE) {
|
||||||
|
this.clearOptions();
|
||||||
|
ui.playSelect();
|
||||||
|
this.showText(`Do you really want to unsplice ${pokemon.fusionSpecies.name}\nfrom ${pokemon.name}? ${pokemon.fusionSpecies.name} will be lost.`, null, () => {
|
||||||
|
ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
||||||
|
const fusionName = pokemon.name;
|
||||||
|
pokemon.unfuse().then(() => {
|
||||||
|
this.clearPartySlots();
|
||||||
|
this.populatePartySlots();
|
||||||
|
ui.setMode(Mode.PARTY);
|
||||||
|
this.showText(`${fusionName} was reverted to ${pokemon.name}.`, null, () => {
|
||||||
|
ui.setMode(Mode.PARTY);
|
||||||
|
this.showText(null, 0);
|
||||||
|
}, null, true);
|
||||||
|
});
|
||||||
|
}, () => {
|
||||||
|
ui.setMode(Mode.PARTY);
|
||||||
|
this.showText(null, 0);
|
||||||
|
});
|
||||||
|
});
|
||||||
} else if (option === PartyOption.RELEASE) {
|
} else if (option === PartyOption.RELEASE) {
|
||||||
this.clearOptions();
|
this.clearOptions();
|
||||||
ui.playSelect();
|
ui.playSelect();
|
||||||
|
@ -574,8 +595,12 @@ export default class PartyUiHandler extends MessageUiHandler {
|
||||||
if (pokemon.pauseEvolutions && pokemonEvolutions.hasOwnProperty(pokemon.species.speciesId))
|
if (pokemon.pauseEvolutions && pokemonEvolutions.hasOwnProperty(pokemon.species.speciesId))
|
||||||
this.options.push(PartyOption.UNPAUSE_EVOLUTION);
|
this.options.push(PartyOption.UNPAUSE_EVOLUTION);
|
||||||
|
|
||||||
if (this.partyUiMode === PartyUiMode.SWITCH)
|
if (this.partyUiMode === PartyUiMode.SWITCH) {
|
||||||
|
if (pokemon.isFusion())
|
||||||
|
this.options.push(PartyOption.UNSPLICE);
|
||||||
this.options.push(PartyOption.RELEASE);
|
this.options.push(PartyOption.RELEASE);
|
||||||
|
} else if (this.partyUiMode === PartyUiMode.SPLICE && pokemon.isFusion())
|
||||||
|
this.options.push(PartyOption.UNSPLICE);
|
||||||
} else if (this.partyUiMode === PartyUiMode.MOVE_MODIFIER) {
|
} else if (this.partyUiMode === PartyUiMode.MOVE_MODIFIER) {
|
||||||
for (let m = 0; m < pokemon.moveset.length; m++)
|
for (let m = 0; m < pokemon.moveset.length; m++)
|
||||||
this.options.push(PartyOption.MOVE_1 + m);
|
this.options.push(PartyOption.MOVE_1 + m);
|
||||||
|
|
Loading…
Reference in New Issue