mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-11 23:07:37 +00:00
263 lines
7.6 KiB
Java
263 lines
7.6 KiB
Java
package noppes.npcs.scripted;
|
|||
|
|
|
||
|
|
import net.minecraft.entity.passive.EntityAnimal;
|
||
|
|
import net.minecraft.entity.passive.EntityTameable;
|
||
|
|
import net.minecraft.nbt.NBTTagCompound;
|
||
|
|
import noppes.npcs.controllers.PixelmonHelper;
|
||
|
|
import noppes.npcs.util.ValueUtil;
|
||
|
|
|
||
|
|
public class ScriptPixelmon extends ScriptAnimal{
|
||
|
|
private EntityTameable pixelmon;
|
||
|
|
private NBTTagCompound compound = null;
|
||
|
|
public ScriptPixelmon(EntityTameable pixelmon){
|
||
|
|
super(pixelmon);
|
||
|
|
this.pixelmon = pixelmon;
|
||
|
|
compound = new NBTTagCompound();
|
||
|
|
pixelmon.writeEntityToNBT(compound);
|
||
|
|
}
|
||
|
|
public ScriptPixelmon(EntityTameable pixelmon, NBTTagCompound compound){
|
||
|
|
this(pixelmon);
|
||
|
|
this.compound = compound;
|
||
|
|
}
|
||
|
|
|
||
|
|
public boolean getIsShiny(){
|
||
|
|
return compound.getBoolean("IsShiny");
|
||
|
|
}
|
||
|
|
|
||
|
|
public void setIsShiny(boolean bo){
|
||
|
|
compound.setBoolean("IsShiny", bo);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
public int getLevel(){
|
||
|
|
return compound.getInteger("Level");
|
||
|
|
}
|
||
|
|
|
||
|
|
public void setLevel(int level){
|
||
|
|
compound.setInteger("Level", level);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public int getIV(int type){
|
||
|
|
if(type == 0)
|
||
|
|
return compound.getInteger("IVHP");
|
||
|
|
if(type == 1)
|
||
|
|
return compound.getInteger("IVAttack");
|
||
|
|
if(type == 2)
|
||
|
|
return compound.getInteger("IVDefence");
|
||
|
|
if(type == 3)
|
||
|
|
return compound.getInteger("IVSpAtt");
|
||
|
|
if(type == 4)
|
||
|
|
return compound.getInteger("IVSpDef");
|
||
|
|
if(type == 5)
|
||
|
|
return compound.getInteger("IVSpeed");
|
||
|
|
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public void setIV(int type, int value){
|
||
|
|
if(type == 0)
|
||
|
|
compound.setInteger("IVHP", value);
|
||
|
|
else if(type == 1)
|
||
|
|
compound.setInteger("IVAttack", value);
|
||
|
|
else if(type == 2)
|
||
|
|
compound.setInteger("IVDefence", value);
|
||
|
|
else if(type == 3)
|
||
|
|
compound.setInteger("IVSpAtt", value);
|
||
|
|
else if(type == 4)
|
||
|
|
compound.setInteger("IVSpDef", value);
|
||
|
|
else if(type == 5)
|
||
|
|
compound.setInteger("IVSpeed", value);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public int getEV(int type){
|
||
|
|
if(type == 0)
|
||
|
|
return compound.getInteger("EVHP");
|
||
|
|
if(type == 1)
|
||
|
|
return compound.getInteger("EVAttack");
|
||
|
|
if(type == 2)
|
||
|
|
return compound.getInteger("EVDefence");
|
||
|
|
if(type == 3)
|
||
|
|
return compound.getInteger("EVSpecialAttack");
|
||
|
|
if(type == 4)
|
||
|
|
return compound.getInteger("EVSpecialDefence");
|
||
|
|
if(type == 5)
|
||
|
|
return compound.getInteger("EVSpeed");
|
||
|
|
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public void setEV(int type, int value){
|
||
|
|
if(type == 0)
|
||
|
|
compound.setInteger("EVHP", value);
|
||
|
|
else if(type == 1)
|
||
|
|
compound.setInteger("EVAttack", value);
|
||
|
|
else if(type == 2)
|
||
|
|
compound.setInteger("EVDefence", value);
|
||
|
|
else if(type == 3)
|
||
|
|
compound.setInteger("EVSpecialAttack", value);
|
||
|
|
else if(type == 4)
|
||
|
|
compound.setInteger("EVSpecialDefence", value);
|
||
|
|
else if(type == 5)
|
||
|
|
compound.setInteger("EVSpeed", value);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public int getStat(int type){
|
||
|
|
if(type == 0)
|
||
|
|
return compound.getInteger("StatsHP");
|
||
|
|
if(type == 1)
|
||
|
|
return compound.getInteger("StatsAttack");
|
||
|
|
if(type == 2)
|
||
|
|
return compound.getInteger("StatsDefence");
|
||
|
|
if(type == 3)
|
||
|
|
return compound.getInteger("StatsSpecialAttack");
|
||
|
|
if(type == 4)
|
||
|
|
return compound.getInteger("StatsSpecialDefence");
|
||
|
|
if(type == 5)
|
||
|
|
return compound.getInteger("StatsSpeed");
|
||
|
|
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:HP, 1:Attack, 2:Defense, 3:SpAttack, 4:SpDefense, 5:Speed
|
||
|
|
*/
|
||
|
|
public void setStat(int type, int value){
|
||
|
|
if(type == 0)
|
||
|
|
compound.setInteger("StatsHP", value);
|
||
|
|
else if(type == 1)
|
||
|
|
compound.setInteger("StatsAttack", value);
|
||
|
|
else if(type == 2)
|
||
|
|
compound.setInteger("StatsDefence", value);
|
||
|
|
else if(type == 3)
|
||
|
|
compound.setInteger("StatsSpecialAttack", value);
|
||
|
|
else if(type == 4)
|
||
|
|
compound.setInteger("StatsSpecialDefence", value);
|
||
|
|
else if(type == 5)
|
||
|
|
compound.setInteger("StatsSpeed", value);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return type 0:Pygmy, 1:Runt, 2:Small, 3:Normal, 4:Huge, 5:Giant, 6:Enormous, 7:Ginormous, 8:Microscopic
|
||
|
|
*/
|
||
|
|
public int getSize(){
|
||
|
|
return compound.getShort("Growth");
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:Pygmy, 1:Runt, 2:Small, 3:Normal, 4:Huge, 5:Giant, 6:Enormous, 7:Ginormous, 8:Microscopic
|
||
|
|
*/
|
||
|
|
public void setSize(int type){
|
||
|
|
compound.setShort("Growth", (short) type);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return 0-255
|
||
|
|
*/
|
||
|
|
public int getHapiness(){
|
||
|
|
return compound.getInteger("Friendship");
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param value 0-255
|
||
|
|
*/
|
||
|
|
public void setHapiness(int value){
|
||
|
|
value = ValueUtil.CorrectInt(value, 0, 255);
|
||
|
|
compound.setInteger("Friendship", value);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return 0:Hardy, 1:Serious, 2:Docile, 3:Bashful, 4:Quirky, 5:Lonely, 6:Brave, 7:Adamant, 8:Naughty, 9:Bold, 10:Relaxed, 11:Impish, 12:Lax, 13:Timid, 14:Hasty, 15:Jolly, 16:Naive, 17:Modest, 18:Mild, 19:Quiet, 20:Rash, 21:Calm, 22:Gentle, 23:Sassy, 24:Careful
|
||
|
|
*/
|
||
|
|
public int getNature(){
|
||
|
|
return compound.getShort("Nature");
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type 0:Hardy, 1:Serious, 2:Docile, 3:Bashful, 4:Quirky, 5:Lonely, 6:Brave, 7:Adamant, 8:Naughty, 9:Bold, 10:Relaxed, 11:Impish, 12:Lax, 13:Timid, 14:Hasty, 15:Jolly, 16:Naive, 17:Modest, 18:Mild, 19:Quiet, 20:Rash, 21:Calm, 22:Gentle, 23:Sassy, 24:Careful
|
||
|
|
*/
|
||
|
|
public void setNature(int type){
|
||
|
|
compound.setShort("Nature", (short) type);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @return -1:Uncaught, 0:Pokeball, 1:GreatBall, 2:UltraBall, 3:MasterBall, 4:LevelBall, 5:MoonBall, 6:FriendBall, 7:LoveBall, 8:SafariBall, 9:HeavyBall, 10:FastBall, 11:RepeatBall, 12:TimerBall, 13:NestBall, 14:NetBall, 15:DiveBall, 16:LuxuryBall, 17:HealBall, 18:DuskBall, 19:PremierBall, 20:SportBall, 21:QuickBall, 22:ParkBall, 23:LureBall, 24:CherishBall, 25:GSBall
|
||
|
|
*/
|
||
|
|
public int getPokeball(){
|
||
|
|
if(compound.hasKey("CaughtBall"))
|
||
|
|
return -1;
|
||
|
|
return compound.getInteger("CaughtBall");
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @param type -1:Uncaught, 0:Pokeball, 1:GreatBall, 2:UltraBall, 3:MasterBall, 4:LevelBall, 5:MoonBall, 6:FriendBall, 7:LoveBall, 8:SafariBall, 9:HeavyBall, 10:FastBall, 11:RepeatBall, 12:TimerBall, 13:NestBall, 14:NetBall, 15:DiveBall, 16:LuxuryBall, 17:HealBall, 18:DuskBall, 19:PremierBall, 20:SportBall, 21:QuickBall, 22:ParkBall, 23:LureBall, 24:CherishBall, 25:GSBall
|
||
|
|
*/
|
||
|
|
public void setPokeball(int type){
|
||
|
|
compound.setInteger("CaughtBall", type);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
public String getNickname(){
|
||
|
|
return compound.getString("Nickname");
|
||
|
|
}
|
||
|
|
|
||
|
|
public boolean hasNickname(){
|
||
|
|
return !getNickname().isEmpty();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void setNickname(String name){
|
||
|
|
compound.setString("Nickname", name);
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
|
||
|
|
public String getMove(int slot){
|
||
|
|
if(!compound.hasKey("PixelmonMoveID" + slot))
|
||
|
|
return null;
|
||
|
|
return PixelmonHelper.getAttackName(compound.getInteger("PixelmonMoveID" + slot));
|
||
|
|
}
|
||
|
|
|
||
|
|
public void setMove(int slot, String move){
|
||
|
|
slot = ValueUtil.CorrectInt(slot, 0, 3);
|
||
|
|
int id = PixelmonHelper.getAttackID(move);
|
||
|
|
compound.removeTag("PixelmonMovePP" + slot);
|
||
|
|
compound.removeTag("PixelmonMovePPBase" + slot);
|
||
|
|
if(id < 0){
|
||
|
|
compound.removeTag("PixelmonMoveID" + slot);
|
||
|
|
}
|
||
|
|
else{
|
||
|
|
compound.setInteger("PixelmonMoveID" + slot, id);
|
||
|
|
}
|
||
|
|
int size = 0;
|
||
|
|
for(int i = 0; i < 4; i++){
|
||
|
|
if(compound.hasKey("PixelmonMoveID" + i))
|
||
|
|
size++;
|
||
|
|
}
|
||
|
|
compound.setInteger("PixelmonNumberMoves", size);
|
||
|
|
|
||
|
|
pixelmon.readEntityFromNBT(compound);
|
||
|
|
}
|
||
|
|
}
|