diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/magic/enchant')
28 files changed, 609 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.class Binary files differnew file mode 100644 index 0000000..b22ec4d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.java new file mode 100644 index 0000000..07ab20c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicButterfly.java @@ -0,0 +1,64 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.AchievementRegistry;
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import jp.plusplus.fbs.entity.EntityButterfly;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.DamageSource;
+
+/**
+ * Created by plusplus_F on 2015/08/23.
+ * 重要な魔法
+ */
+public class MagicButterfly extends MagicEnchantBase {
+ public MagicButterfly() {
+ super(2, 4);
+ }
+
+ @Override
+ public void success() {
+ player.attackEntityFrom(new DamageSource("fbs.butterfly"), 10000);
+ enchant(player, true);
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ if(!success) return;
+
+ //死んでいれば絶対蝶になる
+ //死んでなくても蝶になる
+ boolean flag=entity.isDead;
+ if(rand.nextFloat()<0.3f){
+ entity.attackEntityFrom(new DamageSource("fbs.butterfly"), 10000);
+ flag=true;
+ }
+
+ if(flag){
+ EntityButterfly eb=new EntityButterfly(entity.worldObj, (float)entity.posX, (float)entity.posY+1, (float)entity.posZ);
+ entity.worldObj.spawnEntityInWorld(eb);
+
+ if(entity instanceof EntityPlayer){
+ ((EntityPlayer) entity).triggerAchievement(AchievementRegistry.sublimation);
+ }
+ }
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.35f:0.1f;
+ if(d>0) prob+=0.05f*d;
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public ParticleColor setParticleColor(){
+ ParticleColor col=new ParticleColor();
+ float v=0.1f+0.3f*rand.nextFloat();
+ col.blue-=v;
+ col.red-=v;
+ col.green=0;
+ return col;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.class Binary files differnew file mode 100644 index 0000000..f82bfdd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.java new file mode 100644 index 0000000..ee43203 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicCleverness.java @@ -0,0 +1,33 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/11/09.
+ */
+public class MagicCleverness extends MagicEnchantBase {
+ public MagicCleverness() {
+ super(1, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(90, 0.5f);
+ int a = getAmplifier(7);
+
+ if(success){
+ if(this.isSpelled) d+=120*20;
+ entity.addPotionEffect(new PotionEffect(Registry.potionCleverness.getId(), d, a));
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.class Binary files differnew file mode 100644 index 0000000..210fa11 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.java new file mode 100644 index 0000000..5d9d7a1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContemporary.java @@ -0,0 +1,40 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/09/19.
+ */
+public class MagicContemporary extends MagicEnchantBase {
+ public MagicContemporary() {
+ super(3, 10);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.6f:0.2f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(180, 1);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=60*20;
+ entity.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.resistance.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.waterBreathing.getId(), d, a));
+ }
+ else{
+ entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.blindness.getId(), d, a));
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.class Binary files differnew file mode 100644 index 0000000..5746735 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.java new file mode 100644 index 0000000..392fa49 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicContractEffect.java @@ -0,0 +1,34 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/11/09.
+ */
+public class MagicContractEffect extends MagicEnchantBase {
+ public MagicContractEffect() {
+ super(3, 10);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(90, 0.5f);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=120*20;
+ entity.addPotionEffect(new PotionEffect(Registry.potionContract.getId(), d, a));
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.class Binary files differnew file mode 100644 index 0000000..e185525 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.java new file mode 100644 index 0000000..80dcf5c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDagon.java @@ -0,0 +1,34 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/09/19.
+ */
+public class MagicDagon extends MagicEnchantBase {
+ public MagicDagon() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(90, 0.5f);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=120*20;
+ entity.addPotionEffect(new PotionEffect(Potion.waterBreathing.getId(), d, a));
+ }
+ else entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.class Binary files differnew file mode 100644 index 0000000..76bc834 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.java new file mode 100644 index 0000000..73422fd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicDamageBoost.java @@ -0,0 +1,34 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/06/16.
+ */
+public class MagicDamageBoost extends MagicEnchantBase {
+ public MagicDamageBoost() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(60, 0.3f);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=60*20;
+ entity.addPotionEffect(new PotionEffect(Potion.damageBoost.getId(), d, a));
+ }
+ else entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.class Binary files differnew file mode 100644 index 0000000..75b8880 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.java new file mode 100644 index 0000000..546817d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicEvolutionKing.java @@ -0,0 +1,39 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/06/14.
+ */
+public class MagicEvolutionKing extends MagicEnchantBase {
+ public MagicEvolutionKing() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ float prob=(isSpelled?0.6f:0.2f)+0.05f*(property.getMagicLevel()-bookData.lv);
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(60, 2);
+ int a = getAmplifier(5);
+
+ if(success){
+ if(this.isSpelled) d+=30*20;
+ entity.addPotionEffect(new PotionEffect(Potion.damageBoost.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.resistance.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.field_76434_w.getId(), d, a));
+ }
+ else{
+ entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.wither.getId(), d/5, a));
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.class Binary files differnew file mode 100644 index 0000000..7e8087e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.java new file mode 100644 index 0000000..850f611 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicFireArmor.java @@ -0,0 +1,42 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/09/19.
+ */
+public class MagicFireArmor extends MagicEnchantBase {
+ public MagicFireArmor() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(60, 1);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=30*20;
+ entity.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), d, a));
+ }
+ else entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ }
+
+ @Override
+ public ParticleColor setParticleColor(){
+ ParticleColor col=new ParticleColor();
+ col.green-=0.3f+0.25f*rand.nextFloat();
+ col.blue-=0.7f+0.3f*rand.nextFloat();
+ return col;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.class Binary files differnew file mode 100644 index 0000000..d349c08 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.java new file mode 100644 index 0000000..41a06d8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicInvisible.java @@ -0,0 +1,37 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/09/19.
+ */
+public class MagicInvisible extends MagicEnchantBase {
+ public MagicInvisible() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.5f:0.3f;
+ if(d>0) prob+=0.08f*d;
+ return rand.nextFloat()<=prob;
+ }
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(60, 2);
+ int a = getAmplifier(4);
+
+ if(success){
+ if(this.isSpelled) d+=30*20;
+ entity.addPotionEffect(new PotionEffect(Potion.invisibility.getId(), d, a));
+ }
+ else{
+ entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.blindness.getId(), d, a));
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.class Binary files differnew file mode 100644 index 0000000..100baab --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.java new file mode 100644 index 0000000..1f5d89a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicJump.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.network.play.server.S12PacketEntityVelocity;
+
+/**
+ * Createdby pluslus_Fon 2015/09/18.
+ */
+public class MagicJump extends MagicEnchantBase {
+ public MagicJump() {
+ super(2, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.35f:0.1f;
+ if(d>0) prob+=0.05f*d;
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ if(!entity.onGround) return;
+
+ int v=getLvDiff();
+ double d=0.5+Math.max(0, v*0.05);
+ if(entity instanceof EntityPlayerMP){
+ if(!success) d*=2;
+ entity.addVelocity(0, d-player.motionY, 0);
+ ((EntityPlayerMP) entity).playerNetServerHandler.sendPacket(new S12PacketEntityVelocity(entity));
+ }
+ else{
+ if(!success) d*=0.5;
+ entity.addVelocity(0, d-player.motionY, 0);
+ }
+ }
+
+ @Override
+ public float damageScale(EntityLivingBase entity){
+ return 0.5f;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.class Binary files differnew file mode 100644 index 0000000..b7f66c1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.java new file mode 100644 index 0000000..46c0c87 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicPoison.java @@ -0,0 +1,54 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/10/22.
+ */
+public class MagicPoison extends MagicEnchantBase {
+ public MagicPoison() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ if(!isSpelled) return false;
+
+ float prob=0.4f+0.02f*property.getMagicLevel();
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void success() {
+ Entity e=getTouchEntity();
+ if(e instanceof EntityLivingBase){
+ enchant((EntityLivingBase)e, true);
+ }
+ }
+
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(5, 3);
+ int a = getAmplifier(10);
+
+ if(success){
+ if(isSpelled) d+=3*20;
+ entity.addPotionEffect(new PotionEffect(Potion.poison.getId(), d, a));
+ }
+ }
+
+ @Override
+ public ParticleColor setParticleColor(){
+ ParticleColor col=new ParticleColor();
+ float v=0.1f+0.5f*rand.nextFloat();
+ col.blue-=v;
+ col.red-=v;
+ col.green=0;
+ return col;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.class Binary files differnew file mode 100644 index 0000000..418570f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.java new file mode 100644 index 0000000..b0c5ffb --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicRegeneration.java @@ -0,0 +1,35 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/06/16.
+ */
+public class MagicRegeneration extends MagicEnchantBase {
+ public MagicRegeneration() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ int d=getLvDiff();
+ float prob=isSpelled?0.35f:0.1f;
+ if(d>0) prob+=0.05f*d;
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(10, 2);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(this.isSpelled) d+=5*20;
+ entity.addPotionEffect(new PotionEffect(Potion.regeneration.getId(), d, a));
+ }
+ else entity.addPotionEffect(new PotionEffect(Potion.wither.getId(), d, a));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.class Binary files differnew file mode 100644 index 0000000..71a7997 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.java new file mode 100644 index 0000000..36cc369 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicSpeed.java @@ -0,0 +1,47 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.MagicEnchantBase;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/06/08.
+ */
+public class MagicSpeed extends MagicEnchantBase {
+ public MagicSpeed() {
+ super(4, 6);
+ }
+
+ @Override
+ public boolean checkSuccess() {
+ if(!isSpelled) return false;
+
+ float prob=0.4f+0.02f*property.getMagicLevel();
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int d = getDuration(30, 1);
+ int a = getAmplifier(8);
+
+ if(success){
+ if(isSpelled) d+=120*20;
+ entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(), d, a));
+ entity.addPotionEffect(new PotionEffect(Potion.jump.getId(), d, a));
+ }
+ else{
+ entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), d, a));
+ }
+ }
+
+ @Override
+ public ParticleColor setParticleColor(){
+ ParticleColor col=new ParticleColor();
+ float v=0.1f+0.5f*rand.nextFloat();
+ col.blue-=v;
+ col.red-=v;
+ return col;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.class b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.class Binary files differnew file mode 100644 index 0000000..f560bb9 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.class diff --git a/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.java b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.java new file mode 100644 index 0000000..eefe3bd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/enchant/MagicWedge.java @@ -0,0 +1,71 @@ +package jp.plusplus.fbs.magic.enchant;
+
+import jp.plusplus.fbs.api.IMagicEnchant;
+import jp.plusplus.fbs.api.MagicBase;
+import jp.plusplus.fbs.entity.EntityMagicWedge;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+
+/**
+ * Createdby pluslus_Fon 2015/06/14.
+ */
+public class MagicWedge extends MagicBase implements IMagicEnchant {
+ @Override
+ public boolean checkSuccess() {
+ if(isSpelled) return true;
+
+ float prob=0.4f+0.03f*property.getMagicLevel();
+ return rand.nextFloat()<=prob;
+ }
+
+ @Override
+ public void success() {
+ int l=getLvDiff();
+ int eLv=1;
+ int eDu=20*(isSpelled?20:10);
+ float dm=isSpelled?1.0f:0.5f;
+ if(l>0){
+ eLv+=l/5;
+ eDu+=20*(l/2);
+ dm+=0.5f*(l/8);
+ }
+
+ Entity e=new EntityMagicWedge(world, player, 1.0F, 1.0F, dm, eLv, eDu);
+ world.spawnEntityInWorld(e);
+ }
+
+ @Override
+ public void failure() {
+ sanity(1,6);
+ }
+
+ @Override
+ public void enchant(EntityLivingBase entity, boolean success) {
+ int l=getLvDiff();
+ int eLv=1;
+ int eDu=20*(isSpelled?20:10);
+ if(l>0){
+ eLv+=l/5;
+ eDu+=20*(l/2);
+ }
+
+ entity.addPotionEffect(new PotionEffect(Potion.weakness.getId(), eDu, eLv));
+ }
+
+ @Override
+ public float damageScale(EntityLivingBase entity) {
+ return 0.75f;
+ }
+
+ @Override
+ public float damageValue(EntityLivingBase entity) {
+ return 0.f;
+ }
+
+ @Override
+ public ParticleColor setParticleColor() {
+ return new ParticleColor();
+ }
+}
|
