diff options
| author | Benjamin Culkin <scorpress@gmail.com> | 2024-08-24 08:16:37 -0400 |
|---|---|---|
| committer | Benjamin Culkin <scorpress@gmail.com> | 2024-08-24 08:16:37 -0400 |
| commit | 70c1354a4a96698758a88c032866288f79de6f5a (patch) | |
| tree | eca51294e84b90a4cb3230bc2c7900469e784184 /src/main/java/jp/plusplus/fbs/alchemy/characteristic | |
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/alchemy/characteristic')
49 files changed, 673 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase$Type.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase$Type.class Binary files differnew file mode 100644 index 0000000..cc595d7 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase$Type.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.class Binary files differnew file mode 100644 index 0000000..ba19c11 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.java new file mode 100644 index 0000000..2141768 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicBase.java @@ -0,0 +1,114 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import jp.plusplus.fbs.alchemy.AlchemyRegistry;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/08.
+ * 錬金術の素材・生成品の「特性」
+ */
+public abstract class CharacteristicBase {
+ protected int value;
+ protected String uName="";
+
+ public CharacteristicBase(){}
+
+ /**
+ * 特性の強さの単位を得る
+ * @return 特性の強さの単位
+ */
+ public abstract Type getType();
+
+ /**
+ * 生成品のMP価格への倍率補正を返す
+ * @return 価格倍率
+ */
+ public float getMPScale(){
+ return 1.f;
+ }
+
+ /**
+ * この特性を持つアイテムをplayerが使用した際に行う処理
+ * @param world
+ * @param entity
+ */
+ public void affectEntity(World world, EntityLivingBase entity){}
+
+ /**
+ * ツールチップでの表示色を返す
+ * @return 表示色
+ */
+ public ChatFormatting getNameColor(){
+ return ChatFormatting.GRAY;
+ }
+
+ public void writeToNBT(NBTTagCompound nbt){
+ nbt.setInteger("value", getValue());
+ }
+ public void readFromNBT(NBTTagCompound nbt){
+ value=nbt.getInteger("value");
+ }
+
+ public int getValue(){ return getType().getCorrectedValue(value); }
+ /**
+ * 効果の強さを設定する
+ * @param value
+ */
+ public void setValue(int value){
+ this.value=value;
+ }
+
+
+ public int getId(){
+ return AlchemyRegistry.GetCharacteristicId(this.getClass());
+ }
+
+ public void setUnlocalizedName(String u){ uName=u; }
+ public String getUnlocalizedName(){
+ return "alchemy.chara."+uName;
+ }
+ public String getLocalizedName(){
+ return StatCollector.translateToLocal(getUnlocalizedName());
+ }
+
+ public String getUnlocalizedEffectValue(){
+ return getType().getUnlocalizedName(value);
+ }
+ public String getLocalizedEffectValue(){
+ return StatCollector.translateToLocal(getUnlocalizedEffectValue());
+ }
+
+ /**
+ * 特性の持つ、効果の強さの単位
+ * 特性はvalueが大きい順に優先される
+ */
+ public enum Type{
+ SCALE("fbs.small", "fbs.medium", "fbs.large"),
+ LENGTH("fbs.short", "fbs.medium", "fbs.long"),
+ LOOK("fbs.look.beautiful", "fbs.look.good", "fbs.look.dirty", "fbs.look.strange"),
+ WEIGHT("fbs.light", "fbs.heavy"),
+ QUALITY("fbs.great", "fbs.good", "fbs.bad"),
+ NONE();
+
+ private String[] str;
+ Type(String ... name){
+ str=name;
+ }
+ public String getUnlocalizedName(int value){
+ if(str==null || str.length==0) return "";
+
+ value=getCorrectedValue(value);
+ return "alchemy.effect."+str[value];
+ }
+ public int getCorrectedValue(int value){
+ if(value<0 || value>=str.length) value=0;
+ return value;
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Gain.class Binary files differnew file mode 100644 index 0000000..b8e6b78 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Lose.class Binary files differnew file mode 100644 index 0000000..9ebbfb8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.class Binary files differnew file mode 100644 index 0000000..e8adc96 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.java new file mode 100644 index 0000000..4088d99 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicCleverness.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import jp.plusplus.fbs.Registry;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicCleverness extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicCleverness(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.cleverness."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LENGTH;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ int lv=getType().getCorrectedValue(value);
+ int d=60+60*lv;
+
+ if(reverse) entity.removePotionEffect(Potion.poison.getId());
+ else entity.addPotionEffect(new PotionEffect(Registry.potionCleverness.getId(), 20*d, lv+1));
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicCleverness {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicCleverness {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Gain.class Binary files differnew file mode 100644 index 0000000..4601fff --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Lose.class Binary files differnew file mode 100644 index 0000000..292384c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.class Binary files differnew file mode 100644 index 0000000..e582350 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.java new file mode 100644 index 0000000..2db11fe --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicConfusion.java @@ -0,0 +1,43 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicConfusion extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicConfusion(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.poison."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LENGTH;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ int d=10+10*getType().getCorrectedValue(value);
+
+ if(reverse) entity.removePotionEffect(Potion.confusion.getId());
+ else entity.addPotionEffect(new PotionEffect(Potion.confusion.getId(), 20*d, 1));
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return !reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicConfusion {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicConfusion {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Gain.class Binary files differnew file mode 100644 index 0000000..7c2bda5 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Lose.class Binary files differnew file mode 100644 index 0000000..7c800f8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.class Binary files differnew file mode 100644 index 0000000..f7fa9da --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.java new file mode 100644 index 0000000..f206c73 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicExp.java @@ -0,0 +1,53 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemExpBottle;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicExp extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicExp(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.exp."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.SCALE;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ if(!(entity instanceof EntityPlayer)) return;
+ EntityPlayer ep=(EntityPlayer)entity;
+
+ int d=6+6*getType().getCorrectedValue(value);
+
+ if(reverse) {
+ ep.experience -= (float) d / (float) ep.xpBarCap();
+ for (ep.experienceTotal -= d; ep.experience < 0.0F; ep.experience /= (float) ep.xpBarCap()) {
+ ep.experience = (1.0f - ep.experience) * (float) ep.xpBarCap();
+ ep.addExperienceLevel(-1);
+ }
+ }
+ else ((EntityPlayer) entity).addExperience(d);
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicExp {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicExp {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Gain.class Binary files differnew file mode 100644 index 0000000..afdc59e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Lose.class Binary files differnew file mode 100644 index 0000000..5cf0a9e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.class Binary files differnew file mode 100644 index 0000000..0688752 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.java new file mode 100644 index 0000000..ac4c46f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicHealth.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicHealth extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicHealth(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.life."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.SCALE;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ float d=6+6*getType().getCorrectedValue(value);
+
+ if(reverse) entity.attackEntityFrom(new DamageSource(""), d);
+ else entity.heal(d);
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicHealth{
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicHealth{
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.class Binary files differnew file mode 100644 index 0000000..26b62bd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.java new file mode 100644 index 0000000..192ce6c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicLook.java @@ -0,0 +1,25 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicLook extends CharacteristicBase {
+
+ public CharacteristicLook(){
+ setUnlocalizedName("fbs.look");
+ }
+
+ public float getMPScale(){
+ int v=getValue();
+ if(v==0) return 2.0f;
+ if(v==1) return 1.5f;
+ if(v==2) return 0.5f;
+ if(v==3) return 1.0f;
+ return 1.f;
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LOOK;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Gain.class Binary files differnew file mode 100644 index 0000000..16ccc66 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Lose.class Binary files differnew file mode 100644 index 0000000..487a67e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.class Binary files differnew file mode 100644 index 0000000..0e9196c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.java new file mode 100644 index 0000000..cfbe4ba --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPoison.java @@ -0,0 +1,44 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicPoison extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicPoison(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.poison."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LENGTH;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ int d=10+10*getType().getCorrectedValue(value);
+
+ if(reverse) entity.removePotionEffect(Potion.poison.getId());
+ else entity.addPotionEffect(new PotionEffect(Potion.poison.getId(), 20*d, 1));
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return !reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicPoison {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicPoison {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Gain.class Binary files differnew file mode 100644 index 0000000..707e1d2 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Lose.class Binary files differnew file mode 100644 index 0000000..7a0b04b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.class Binary files differnew file mode 100644 index 0000000..b1c523f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.java new file mode 100644 index 0000000..42021ee --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicPower.java @@ -0,0 +1,50 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicPower extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicPower(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.power."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LENGTH;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ int lv=getType().getCorrectedValue(value);
+ int d=30+30*lv;
+
+ if(reverse){
+ entity.removePotionEffect(Potion.damageBoost.getId());
+ entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), 20*d, lv+1));
+ }
+ else{
+ entity.removePotionEffect(Potion.weakness.getId());
+ entity.addPotionEffect(new PotionEffect(Potion.damageBoost.getId(), 20*d, lv+1));
+ }
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicPower {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicPower {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.class Binary files differnew file mode 100644 index 0000000..63ef353 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.java new file mode 100644 index 0000000..171bf94 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicQuality.java @@ -0,0 +1,24 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicQuality extends CharacteristicBase {
+
+ public CharacteristicQuality(){
+ setUnlocalizedName("fbs.quality");
+ }
+
+ public float getMPScale(){
+ int v=getValue();
+ if(v==0) return 3.0f;
+ if(v==1) return 1.5f;
+ if(v==2) return 0.8f;
+ return 1.f;
+ }
+
+ @Override
+ public Type getType() {
+ return Type.QUALITY;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Gain.class Binary files differnew file mode 100644 index 0000000..26f3693 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Lose.class Binary files differnew file mode 100644 index 0000000..6f5dcac --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.class Binary files differnew file mode 100644 index 0000000..72c6889 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.java new file mode 100644 index 0000000..f49734b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSanity.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import jp.plusplus.fbs.exprop.SanityManager;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/09/20.
+ */
+public class CharacteristicSanity extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicSanity(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.sanity."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.SCALE;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ if(!(entity instanceof EntityPlayer)) return;
+
+ int t=getType().getCorrectedValue(value);
+ if(reverse) SanityManager.loseSanity((EntityPlayer)entity, 1+t, 6, true);
+ else SanityManager.addSanity((EntityPlayer) entity, 1 + t, 6, true);
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicSanity {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicSanity {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Gain.class Binary files differnew file mode 100644 index 0000000..128823f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Lose.class Binary files differnew file mode 100644 index 0000000..46f61dd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.class Binary files differnew file mode 100644 index 0000000..2552c14 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.java new file mode 100644 index 0000000..54e478f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicSpeed.java @@ -0,0 +1,48 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/02/23.
+ */
+public class CharacteristicSpeed extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicSpeed(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.speed."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.LENGTH;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity) {
+ int d = 10 + 10 * getType().getCorrectedValue(value);
+
+ if (reverse) {
+ entity.removePotionEffect(Potion.moveSlowdown.getId());
+ entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(), 20 * d, 1));
+ } else {
+ entity.removePotionEffect(Potion.moveSpeed.getId());
+ entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 20 * d, 1));
+ }
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicSpeed {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicSpeed {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Gain.class Binary files differnew file mode 100644 index 0000000..ee7b1dc --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Lose.class Binary files differnew file mode 100644 index 0000000..028bae8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.class Binary files differnew file mode 100644 index 0000000..995c511 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.java new file mode 100644 index 0000000..bca5d3d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicStamina.java @@ -0,0 +1,55 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.world.World;
+import shift.sextiarysector.api.SextiarySectorAPI;
+import shift.sextiarysector.packet.PacketPlayerData;
+import shift.sextiarysector.packet.SSPacketHandler;
+import shift.sextiarysector.player.CustomPlayerData;
+import shift.sextiarysector.player.EntityPlayerManager;
+import shift.sextiarysector.player.MoistureStats;
+import shift.sextiarysector.player.StaminaStats;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicStamina extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicStamina(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.stamina."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.SCALE;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ if(!(entity instanceof EntityPlayer)) return;
+ int d=30+30*getType().getCorrectedValue(value);
+
+ EntityPlayer ep=(EntityPlayer) entity;
+
+ if(reverse) SextiarySectorAPI.addStaminaExhaustion(ep, d * 10);
+ else SextiarySectorAPI.addStaminaStats(ep, d, 0.1f);
+
+ if(ep instanceof EntityPlayerMP) SSPacketHandler.INSTANCE.sendTo(new PacketPlayerData(EntityPlayerManager.getCustomPlayerData(ep)), (EntityPlayerMP)ep);
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicStamina {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicStamina {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Gain.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Gain.class Binary files differnew file mode 100644 index 0000000..2c6d26b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Gain.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Lose.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Lose.class Binary files differnew file mode 100644 index 0000000..136e8b8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater$Lose.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.class Binary files differnew file mode 100644 index 0000000..01c1d29 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.java new file mode 100644 index 0000000..dfc6f0a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWater.java @@ -0,0 +1,59 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.util.DamageSource;
+import net.minecraft.world.World;
+import shift.sextiarysector.api.SextiarySectorAPI;
+import shift.sextiarysector.packet.PacketPlayerData;
+import shift.sextiarysector.packet.SSPacketHandler;
+import shift.sextiarysector.player.CustomPlayerData;
+import shift.sextiarysector.player.EntityPlayerManager;
+import shift.sextiarysector.player.MoistureStats;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicWater extends CharacteristicBase {
+ protected boolean reverse;
+ public CharacteristicWater(boolean minus){
+ reverse=minus;
+ setUnlocalizedName("fbs.water."+(reverse?"lose":"gain"));
+ }
+
+ @Override
+ public Type getType() {
+ return Type.SCALE;
+ }
+
+ @Override
+ public void affectEntity(World world, EntityLivingBase entity){
+ if(!(entity instanceof EntityPlayer)) return;
+ int d=6+6*getType().getCorrectedValue(value);
+
+ CustomPlayerData cpd= EntityPlayerManager.getCustomPlayerData((EntityPlayer)entity);
+ if(cpd==null) return;
+ MoistureStats ms=cpd.getMoisture();
+
+ EntityPlayer ep=(EntityPlayer) entity;
+
+ if(reverse) SextiarySectorAPI.addMoistureExhaustion(ep, d*2);
+ else SextiarySectorAPI.addMoistureStats(ep, d, 0.1f);
+
+ if(ep instanceof EntityPlayerMP) SSPacketHandler.INSTANCE.sendTo(new PacketPlayerData(EntityPlayerManager.getCustomPlayerData(ep)), (EntityPlayerMP) ep);
+ }
+
+ @Override
+ public ChatFormatting getNameColor(){
+ return reverse?ChatFormatting.RED:ChatFormatting.DARK_GREEN;
+ }
+
+ public static class Gain extends CharacteristicWater {
+ public Gain(){ super(false); }
+ }
+ public static class Lose extends CharacteristicWater {
+ public Lose(){ super(true); }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.class b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.class Binary files differnew file mode 100644 index 0000000..62bc1ad --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.class diff --git a/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.java b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.java new file mode 100644 index 0000000..fa27b5d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/characteristic/CharacteristicWeight.java @@ -0,0 +1,23 @@ +package jp.plusplus.fbs.alchemy.characteristic;
+
+/**
+ * Created by plusplus_F on 2015/09/24.
+ */
+public class CharacteristicWeight extends CharacteristicBase {
+
+ public CharacteristicWeight(){
+ setUnlocalizedName("fbs.weight");
+ }
+
+ public float getMPScale(){
+ int v=getValue();
+ if(v==0) return 0.75f;
+ if(v==1) return 1.25f;
+ return 1.f;
+ }
+
+ @Override
+ public Type getType() {
+ return Type.WEIGHT;
+ }
+}
|
