Skip to content

Commit

Permalink
make profound brain damage only trigger once the player has reached h…
Browse files Browse the repository at this point in the history
…alf a heart
  • Loading branch information
PssbleTrngle committed Sep 20, 2024
1 parent 8bcb485 commit 31a7da7
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 25 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Project
version=3.0.0
version=3.0.1
group=galena
mod_name=Oreganized
mod_author=Xaidee as part of Team Galena
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,8 @@
"parent": "oreganized:story/like_the_romans",
"criteria": {
"stunned": {
"conditions": {
"effects": {
"oreganized:stunning": {
"amplifier": {
"max": 6
}
}
}
},
"trigger": "minecraft:effects_changed"
"conditions": {},
"trigger": "oreganized:profound_brain_damage"
}
},
"display": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package galena.oreganized.content.critera;

import com.google.gson.JsonObject;
import com.simibubi.create.foundation.advancement.CriterionTriggerBase;
import net.minecraft.advancements.critereon.AbstractCriterionTriggerInstance;
import net.minecraft.advancements.critereon.ContextAwarePredicate;
import net.minecraft.advancements.critereon.DeserializationContext;
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;

import javax.annotation.Nullable;
import java.util.List;
import java.util.function.Supplier;

public class DummyCriterionTrigger extends SimpleCriterionTrigger<DummyCriterionTrigger.TriggerInstance> {

private final ResourceLocation id;
Expand All @@ -38,14 +34,10 @@ public ResourceLocation getId() {
return id;
}

public static class TriggerInstance extends CriterionTriggerBase.Instance {
public static class TriggerInstance extends AbstractCriterionTriggerInstance {
public TriggerInstance(ResourceLocation idIn) {
super(idIn, ContextAwarePredicate.ANY);
}

protected boolean test(@Nullable List<Supplier<Object>> suppliers) {
return true;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package galena.oreganized.content.effect;

import galena.oreganized.Oreganized;
import galena.oreganized.index.OCriteriaTriggers;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.effect.MobEffect;
Expand Down Expand Up @@ -31,6 +33,10 @@ public void applyEffectTick(@NotNull LivingEntity entity, int amplifier) {
var health = entity.getHealth() / entity.getMaxHealth();
var targetAmplifier = (int) Math.ceil((1.0 - health) * MAX_AMPLIFIER);

if (entity.getHealth() <= 1 && entity instanceof ServerPlayer player) {
OCriteriaTriggers.PROFOUND_BRAIN_DAMAGE.trigger(player);
}

if (targetAmplifier == amplifier) return;
var instance = entity.getEffect(this);
if (instance == null) return;
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/galena/oreganized/data/OAdvancements.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import net.minecraft.advancements.critereon.ItemPredicate;
import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger;
import net.minecraft.advancements.critereon.LocationPredicate;
import net.minecraft.advancements.critereon.MinMaxBounds;
import net.minecraft.advancements.critereon.MobEffectsPredicate;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.PackOutput;
Expand Down Expand Up @@ -70,8 +69,7 @@ public void generate(@Nullable HolderLookup.Provider provider, Consumer<Advancem
.parent(likeTheRomans)
.display(info(OItems.MOLTEN_LEAD_BUCKET.get(), "profound_brain_damage", FrameType.TASK,
"Profound Brain Damage", "Let your health reach half a heart while having the Brain Damage effect"))
.addCriterion("stunned", EffectsChangedTrigger.TriggerInstance.hasEffects(MobEffectsPredicate.effects()
.and(OEffects.STUNNING.get(), new MobEffectsPredicate.MobEffectInstancePredicate(MinMaxBounds.Ints.atMost(6), MinMaxBounds.Ints.ANY, null, null))))
.addCriterion("stunned", OCriteriaTriggers.PROFOUND_BRAIN_DAMAGE.instance())
.save(consumer, "oreganized:story/profound_brain_damage");

var obtainSilver = Advancement.Builder.advancement()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ public class OCriteriaTriggers {

public static final DummyCriterionTrigger SEE_GARGOYLE_GARGLE = CriteriaTriggers.register(new DummyCriterionTrigger(Oreganized.modLoc("see_gargoyle_gargle")));
public static final DummyCriterionTrigger KNOCKED_BANNER_OFF = CriteriaTriggers.register(new DummyCriterionTrigger(Oreganized.modLoc("knocked_banner_off")));
public static final DummyCriterionTrigger PROFOUND_BRAIN_DAMAGE = CriteriaTriggers.register(new DummyCriterionTrigger(Oreganized.modLoc("profound_brain_damage")));

}
2 changes: 1 addition & 1 deletion src/main/resources/assets/oreganized/lang/de_de.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"advancements.oreganized.mirror_mirror.title": "Spieglein, Spieglein an der Wand...",
"advancements.oreganized.obtain_silver.description": "Beschaffe Silber",
"advancements.oreganized.obtain_silver.title": "Nicht alles was glänzt ist Gold",
"advancements.oreganized.profound_brain_damage.description": "Lass Gesundheit unter die Hälfte fallen, während du benommen bist",
"advancements.oreganized.profound_brain_damage.description": "Lass Gesundheit unter ein Herz fallen, während du benommen bist",
"advancements.oreganized.profound_brain_damage.title": "Schwere Hirnschädigung",
"advancements.oreganized.weeping_devil.description": "Tausche einen Silberbarren gegen das teuflische Grollen eines Wasserspeichers",
"advancements.oreganized.weeping_devil.title": "Jaulender Dämon",
Expand Down

0 comments on commit 31a7da7

Please sign in to comment.