From 5c4034c21884de21cd811bd507639c990e1ac133 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 19 Feb 2021 20:04:14 +0200 Subject: [PATCH] Yet more minor tweaks and fixes --- .../unicopia/entity/Creature.java | 2 +- .../unicopia/entity/ai/BreakHeartGoal.java | 8 ++++++-- .../unicopia/entity/player/PlayerPhysics.java | 9 ++++++--- .../unicopia/item/CrystalHeartItem.java | 7 ++++--- .../textures/gui/ability/capture_cloud.png | Bin 1746 -> 1523 bytes 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/entity/Creature.java b/src/main/java/com/minelittlepony/unicopia/entity/Creature.java index 5c8836a4..9fa5e676 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/Creature.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/Creature.java @@ -40,7 +40,7 @@ public class Creature extends Living { targets.add(1, new WantItNeedItTargetGoal((MobEntity)entity)); goals.add(1, new WantItTakeItGoal((MobEntity)entity)); if (entity.getType().getSpawnGroup() == SpawnGroup.MONSTER) { - goals.add(2, new BreakHeartGoal((MobEntity)entity)); + goals.add(3, new BreakHeartGoal((MobEntity)entity)); } } diff --git a/src/main/java/com/minelittlepony/unicopia/entity/ai/BreakHeartGoal.java b/src/main/java/com/minelittlepony/unicopia/entity/ai/BreakHeartGoal.java index eda22f46..59b94ffe 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/ai/BreakHeartGoal.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/ai/BreakHeartGoal.java @@ -31,7 +31,11 @@ public class BreakHeartGoal extends Goal { @Override public boolean canStart() { Optional item = VecHelper.findInRange(mob, mob.world, mob.getPos(), 16, - e -> !e.removed && e instanceof FloatingArtefactEntity && ((FloatingArtefactEntity)e).getStack().getItem() == UItems.CRYSTAL_HEART) + e -> !e.removed + && e instanceof FloatingArtefactEntity + && ((FloatingArtefactEntity)e).getStack().getItem() == UItems.CRYSTAL_HEART + && mob.getVisibilityCache().canSee(e) + ) .stream() .map(e -> (FloatingArtefactEntity)e) .sorted(Comparator.comparing((Entity e) -> mob.distanceTo(e))) @@ -73,7 +77,7 @@ public class BreakHeartGoal extends Goal { if (distance > reach && distance < 16) { speed = 1.23; } else if (distance < 225) { - speed = 0.6; + speed = 1.6; } mob.getNavigation().startMovingTo(target, speed); diff --git a/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java b/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java index 21fabe58..fdcef7d4 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java @@ -141,7 +141,12 @@ public class PlayerPhysics extends EntityPhysics implements Tickable, Moti if (ticksInAir++ > (level * 100)) { Bar mana = pony.getMagicalReserves().getMana(); - mana.add((float)-getHorizontalMotion(entity) * 20F / level); + float cost = (float)-getHorizontalMotion(entity) * 20F / level; + if (entity.isSneaking()) { + cost /= 10; + } + + mana.add(cost); if (mana.getPercentFill() < 0.2) { pony.getMagicalReserves().getExertion().add(2); @@ -237,8 +242,6 @@ public class PlayerPhysics extends EntityPhysics implements Tickable, Moti float bouncyness = EnchantmentHelper.getEquipmentLevel(UEnchantments.PADDED, player) * 6; - System.out.println(bouncyness); - if (distance > 0) { wallHitCooldown = 30; diff --git a/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java b/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java index 00f05454..ad00cfb4 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java @@ -10,6 +10,7 @@ import com.minelittlepony.unicopia.entity.FloatingArtefactEntity.State; import com.minelittlepony.unicopia.particle.FollowingParticleEffect; import com.minelittlepony.unicopia.particle.ParticleUtils; import com.minelittlepony.unicopia.particle.UParticles; +import com.minelittlepony.unicopia.util.MagicalDamageSource; import com.minelittlepony.unicopia.util.VecHelper; import net.minecraft.block.BlockState; @@ -19,7 +20,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.Saddleable; import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.SpawnReason; -import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.passive.TameableEntity; import net.minecraft.entity.player.PlayerEntity; @@ -59,7 +59,7 @@ public class CrystalHeartItem extends Item implements FloatingArtefactEntity.Art if (world instanceof ServerWorld) { - FloatingArtefactEntity entity = UEntities.FLOATING_ARTEFACT.create((ServerWorld)world, context.getStack().getTag(), null, context.getPlayer(), blockPos, SpawnReason.SPAWN_EGG, true, true); + FloatingArtefactEntity entity = UEntities.FLOATING_ARTEFACT.create((ServerWorld)world, context.getStack().getTag(), null, context.getPlayer(), blockPos, SpawnReason.SPAWN_EGG, false, true); if (entity == null) { return ActionResult.FAIL; @@ -137,13 +137,14 @@ public class CrystalHeartItem extends Item implements FloatingArtefactEntity.Art } inputs.forEach(input -> { - input.damage(DamageSource.MAGIC, takes); + input.damage(MagicalDamageSource.create("feed"), takes); ParticleUtils.spawnParticles(new FollowingParticleEffect(UParticles.HEALTH_DRAIN, entity, 0.2F), input, 1); }); outputs.forEach(output -> { ParticleUtils.spawnParticles(new FollowingParticleEffect(UParticles.HEALTH_DRAIN, output, 0.2F), entity, 1); output.heal(gives); }); + entity.addSpin((int)gives); } } diff --git a/src/main/resources/assets/unicopia/textures/gui/ability/capture_cloud.png b/src/main/resources/assets/unicopia/textures/gui/ability/capture_cloud.png index 9c0dd5a0bbd50be20ce56fc8804022c7f65b48bc..7e3cfa373c4e24ec25eb5a3530cfe6601dba4c0f 100644 GIT binary patch delta 1506 zcmV<81s(d*4f6|-BYy?DNklIgB50SY zX_IV7o0;tVx%ZxPe?H9KVP^KuZY%oc4~AjRzu))w{e6GGbALwhA?&RmMpUOOn8dOE z0ethtHvcVCyG>p>VToE9)6tbeld=)dIje0|5-N7kG2+I(G|{d%3}UTKo1g7SiroJs_nA0*7wEoepR zQmSzPnV`2r(c`EQqo^o_YNafXaSm{LzRuB&ruZbo#^93-Z4_Yz+FeKlY-k7+*wE6x zr*K5XQLqO9myj9HbKltBjcS`pi-Dq-jqe&ciIv##;MX)iP_+rdtRiPA2 zD2>bZ0Dti6v71sh{>GhT$JjPVRWJd_^Cm0S#QdrV+WPwnwkP98kY*K&KL#?=ZjOeRPkjgD8@(i zQvAO9!gYx!;neFb(yqf=&{mZ0*XHYL`O8%r zt%SCRPuBy^t)}HE7(IOOz_NZ&Mm@mNY;~wt)bFG!40GltEjl#77yuu|2Fr02W?ag~tpPam z>VG|qXhaN&DgkihT7&HhP=(n3Q!Cs5!F$Sa=X z-?-h6s%RvKCW3wn*1K?9JtcWH-Fbz#Bc`(#Q~`czw%Xr&@QG>mO;tA2c?l0DJh&6X)M4?n$u2ma&ZtS%=WzYso=T_-%1hX zF`}@pH+duREX`KAwAt=g!2ZSs27l=vqsdTzq=7AI)d)KR)EVv-NYeIDf^iWq5g^ zSH79chyp{H=QLc7-tI)fV;8po_|c;i_?9D+-itL1zyyj1j~@UheEj9_%XahPkAM5w zc9%?suH8ZV`?n{lL;=am_j(!-gSeC}F=(Uk-H`{$$uGosgv={UMFjPdpW) z>7Wq=9SB+}?*H}9+W*!>z+1ClvP=dcTbXClg7XR;Xq?Xx?+`KQ5YD~X-TlAeN3j#1 zj|g;x%Tod!k+_U7ituTU4x!sgv04#SLUN-&7`KSE$N&HU07*qo IM6N<$f;PM- zWTBiO3QHi!I05WL$O?iB2M9~BW1E>ViL59QLgD}doEQ#f3mTT7Sojbj`7kFKq!XarXGf`VlGl$AuE59YdQ^3KuXav@sMxu*#D=crN*c1w{h_#UG0)@T?&&L{Qy`-$u7Fxb!^rO8i zT#`nf%zwkTUlD8yhdz|jTURIr4W)7A23Y`Lts(@_68OW@b)MQkEgYC$SUf)qz|V*K zludyw=EQI3x-2|?f1RM3>n+MB@sfmEC}WNOHs)4(-3VO8Mmc z0{XGxK1ROyrfmO8L%n{fWc${b*Dsa4cb7#|^1HtTdK1OPD|6g>OUmeYizn`@W9tSV z)W$LJ@b`1Z4y;r@Iqx{%S-EfTV4bmp7v%2SYyACs&fT}y*tuDA;H2Ze?GbGk&{lEy zbbp&K-(TlimNV6CW7Q3^;DJ|XWba^|$$8fuZ814& zx$Cwb9=s<;iNdCE;YvZ_14F$rI=(?2*gIHfyt&kL#+z*_KT{ zsacE|nC&1TLIvT|?@?$a+_E{PW)+dyfPaApUY(J(<}c=JH=qjK-oZMHE|bF_pB5hr zxIhkQ9kXp~ogj`NkeBP!f%TLFOw8l}+!CqqSAy~r1{>tg5xjF zVMHTh$kiI{xKh5S-!fzk!+l+f->P(XBU-gq$?itP$kal;*z#DviVcX@41W%$ zSTD4-@XT+r)eP+Ew|sDu?Z&~#)GXu8HoF@UxTz-CrpbZi$ z{(ZScM?8dO3``tO`P;N``b(EqrQLcGM-ioSU6v}TtX}Sxk*Qh6?}*jcA0FV+RnN^g zSuz)R_DlzT`ZIOjn1(yIC2P`HS%33Z<*<~F71+sn*A2vqweFc(%JE<4H2PwuueS+q z!TZs!p#;h{zE}Y8@|Bz+Yr51{vQ{jdyPC15-)_iMC7-=l^R2Ui9wOqjhL^=ks5>RO zL|6)*`RNulF_UvK_p4HCWNMb(ji_sVB^B7^fGa@Df$0FF`x+eo#Wjoxq<@P+puH)v zNdo;5UMr5Dx>ZfgZSyk37cf*ZjPrvOdub8R8OA%-nfglbdg;`wJz7SkT;adfwJVq4OnQrB) zO7hrnA1`0YS6RNiIu2RG-haXR3b$12zAPa`*d#_dkZv<-Ijl1H7}Bys6g-G9`oh+3 zJXC?U{Ew?ttM;rnCT4P88tzf`z8cyeLsSvKH0Le^(`XEqQ5YpIV5Uk|Z+3Au!_tdNBy2M^4QH@Z^IHe1FSP%EFB`j=)5U zU0>a*a0_>N?={!54in#5*)R4E)>pl-{`#q2YDq-?NlH3yyvu z#UqqnVQNB5MCnSDXngLe8BK;p5OgGHrFiELW>;DKXd~kAM=ZTj%zWwTwcxx$M;hk? z;vFIe9m9z;osHjy|2&HvdVfNs6I>{WbVBY*;v~Tr0UbjpE3jG-)nbBC=)&{VnT-F- Ze*imegLSW#93lV!002ovPDHLkV1f$LRwMub