mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 07:22:19 +02:00
implemented typeless
This commit is contained in:
parent
fbbd2ed045
commit
3766dce68e
@ -18,7 +18,8 @@ export enum Type {
|
||||
DRAGON,
|
||||
DARK,
|
||||
FAIRY,
|
||||
STELLAR
|
||||
STELLAR,
|
||||
TYPELESS
|
||||
};
|
||||
|
||||
export type TypeDamageMultiplier = 0 | 0.25 | 0.5 | 1 | 2 | 4;
|
||||
@ -45,6 +46,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.GHOST:
|
||||
default:
|
||||
@ -68,6 +70,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.ELECTRIC:
|
||||
case Type.ICE:
|
||||
case Type.DRAGON:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.ROCK:
|
||||
case Type.BUG:
|
||||
@ -93,6 +96,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIGHTING:
|
||||
case Type.BUG:
|
||||
@ -118,6 +122,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.ICE:
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIGHTING:
|
||||
case Type.POISON:
|
||||
@ -146,6 +151,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.POISON:
|
||||
case Type.ROCK:
|
||||
@ -171,6 +177,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.NORMAL:
|
||||
case Type.FLYING:
|
||||
@ -198,6 +205,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIGHTING:
|
||||
case Type.GROUND:
|
||||
@ -223,6 +231,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.ICE:
|
||||
case Type.DRAGON:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.POISON:
|
||||
case Type.BUG:
|
||||
@ -242,6 +251,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.WATER:
|
||||
case Type.ELECTRIC:
|
||||
case Type.DARK:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.NORMAL:
|
||||
case Type.FLYING:
|
||||
@ -273,6 +283,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.PSYCHIC:
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.BUG:
|
||||
case Type.STEEL:
|
||||
@ -301,6 +312,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.STEEL:
|
||||
case Type.FIRE:
|
||||
@ -327,6 +339,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.GROUND:
|
||||
case Type.WATER:
|
||||
@ -354,6 +367,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FLYING:
|
||||
case Type.STEEL:
|
||||
@ -381,6 +395,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.ICE:
|
||||
case Type.DRAGON:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIGHTING:
|
||||
case Type.PSYCHIC:
|
||||
@ -408,6 +423,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.DRAGON:
|
||||
case Type.DARK:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.ICE:
|
||||
return 0.5;
|
||||
@ -431,6 +447,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.STEEL:
|
||||
case Type.PSYCHIC:
|
||||
case Type.DARK:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIRE:
|
||||
case Type.WATER:
|
||||
@ -458,6 +475,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.ELECTRIC:
|
||||
case Type.ICE:
|
||||
case Type.DRAGON:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.GHOST:
|
||||
case Type.DARK:
|
||||
@ -483,6 +501,7 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
case Type.PSYCHIC:
|
||||
case Type.ICE:
|
||||
case Type.FAIRY:
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
case Type.FIGHTING:
|
||||
case Type.BUG:
|
||||
@ -494,6 +513,8 @@ export function getTypeDamageMultiplier(attackType: integer, defType: integer):
|
||||
}
|
||||
case Type.STELLAR:
|
||||
return 1;
|
||||
case Type.TYPELESS:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -537,6 +558,8 @@ export function getTypeRgb(type: Type): [ integer, integer, integer ] {
|
||||
return [ 232, 136, 200 ];
|
||||
case Type.STELLAR:
|
||||
return [ 255, 255, 255 ];
|
||||
case Type.TYPELESS:
|
||||
return [ 104, 160, 144 ];
|
||||
default:
|
||||
return [ 0, 0, 0 ];
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import Phaser from 'phaser';
|
||||
import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene';
|
||||
import BattleScene, { ABILITY_OVERRIDE, AnySound, MOVE_OVERRIDE,MOVE_OVERRIDE2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE } from '../battle-scene';
|
||||
import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from '../ui/battle-info';
|
||||
import { Moves } from "../data/enums/moves";
|
||||
import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, VariablePowerAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, MultiHitAttr, StatusMoveTypeImmunityAttr, MoveTarget, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatChangesAttr, SacrificialAttr, VariableMoveTypeAttr, VariableMoveCategoryAttr } from "../data/move";
|
||||
@ -652,8 +652,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
? this.summonData.moveset
|
||||
: this.moveset;
|
||||
|
||||
if (MOVE_OVERRIDE && this.isPlayer())
|
||||
if (MOVE_OVERRIDE && this.isPlayer()){
|
||||
this.moveset[0] = new PokemonMove(MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[MOVE_OVERRIDE].pp));
|
||||
this.moveset[1] = new PokemonMove(MOVE_OVERRIDE2, Math.min(this.moveset[1].ppUsed, allMoves[MOVE_OVERRIDE2].pp));}
|
||||
else if (OPP_MOVE_OVERRIDE && !this.isPlayer())
|
||||
this.moveset[0] = new PokemonMove(OPP_MOVE_OVERRIDE, Math.min(this.moveset[0].ppUsed, allMoves[OPP_MOVE_OVERRIDE].pp));
|
||||
|
||||
@ -700,8 +701,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
types.splice(flyingIndex, 1);
|
||||
}
|
||||
|
||||
if (!types.length)
|
||||
types.push(Type.NORMAL);
|
||||
if (!types.length) // become typeless if no types are present
|
||||
types.push(Type.TYPELESS);
|
||||
|
||||
if (types.length > 1 && types.includes(Type.TYPELESS)) { // remove typeless if other types are present
|
||||
const index = types.indexOf(Type.TYPELESS);
|
||||
if (index !== -1) {
|
||||
types.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user