From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../jp/plusplus/fbs/magic/MagicLoveHurricane.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java (limited to 'src/main/java/jp/plusplus/fbs/magic/MagicLoveHurricane.java') 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); + } + } + } +} -- cgit v1.2.3