diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java')
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java b/src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java new file mode 100644 index 0000000..f6a43ce --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java @@ -0,0 +1,54 @@ +package jp.plusplus.fbs.magic;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.ItemSword;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.Vec3;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/10/01.
+ * ピンチなら
+ * 扇いでみよう
+ * 大団扇
+ */
+public class MagicLoveHurricane extends MagicVortex {
+ @Override
+ public boolean checkSuccess() {
+ return true;
+ }
+
+ @Override
+ public void success() {
+ //効果範囲
+ int size = isSpelled ? 2 : 1;
+ size += Math.max(getLvDiff(), 0) / 5;
+
+ //ダメージ
+ float d = 8.0f + 0.5f * (Math.max(getLvDiff(), 0) / 3);
+
+ //吹き飛ばし強さ
+ float knockback = 1.f + 0.08f * Math.max(getLvDiff(), 0);
+
+ //効果範囲内の全てのEntityLivingBaseへ
+ List list = getEntities(size);
+ if (!list.isEmpty()) {
+ for (int i = 0; i < list.size(); i++) {
+ EntityLivingBase e = (EntityLivingBase) list.get(i);
+ if(e.getUniqueID()==player.getUniqueID()) continue;
+
+ e.attackEntityFrom(DamageSource.causeIndirectMagicDamage(player, e), d);
+
+ //方向の決定
+ Vec3 vec = player.getPosition(1.f).subtract(e.getPosition(1.f));
+ vec.yCoord = 0;
+ vec = vec.normalize();
+
+ //飛ばす
+ e.addVelocity(knockback * vec.xCoord, 0, knockback * vec.zCoord);
+ }
+ }
+ }
+}
|
