Skip to content

Commit 31a7da7

Browse files
committed
make profound brain damage only trigger once the player has reached half a heart
1 parent 8bcb485 commit 31a7da7

File tree

7 files changed

+14
-25
lines changed

7 files changed

+14
-25
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Project
2-
version=3.0.0
2+
version=3.0.1
33
group=galena
44
mod_name=Oreganized
55
mod_author=Xaidee as part of Team Galena

src/generated/resources/data/oreganized/advancements/story/profound_brain_damage.json

+2-10
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,8 @@
22
"parent": "oreganized:story/like_the_romans",
33
"criteria": {
44
"stunned": {
5-
"conditions": {
6-
"effects": {
7-
"oreganized:stunning": {
8-
"amplifier": {
9-
"max": 6
10-
}
11-
}
12-
}
13-
},
14-
"trigger": "minecraft:effects_changed"
5+
"conditions": {},
6+
"trigger": "oreganized:profound_brain_damage"
157
}
168
},
179
"display": {

src/main/java/galena/oreganized/content/critera/DummyCriterionTrigger.java

+2-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package galena.oreganized.content.critera;
22

33
import com.google.gson.JsonObject;
4-
import com.simibubi.create.foundation.advancement.CriterionTriggerBase;
4+
import net.minecraft.advancements.critereon.AbstractCriterionTriggerInstance;
55
import net.minecraft.advancements.critereon.ContextAwarePredicate;
66
import net.minecraft.advancements.critereon.DeserializationContext;
77
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
88
import net.minecraft.resources.ResourceLocation;
99
import net.minecraft.server.level.ServerPlayer;
1010

11-
import javax.annotation.Nullable;
12-
import java.util.List;
13-
import java.util.function.Supplier;
14-
1511
public class DummyCriterionTrigger extends SimpleCriterionTrigger<DummyCriterionTrigger.TriggerInstance> {
1612

1713
private final ResourceLocation id;
@@ -38,14 +34,10 @@ public ResourceLocation getId() {
3834
return id;
3935
}
4036

41-
public static class TriggerInstance extends CriterionTriggerBase.Instance {
37+
public static class TriggerInstance extends AbstractCriterionTriggerInstance {
4238
public TriggerInstance(ResourceLocation idIn) {
4339
super(idIn, ContextAwarePredicate.ANY);
4440
}
45-
46-
protected boolean test(@Nullable List<Supplier<Object>> suppliers) {
47-
return true;
48-
}
4941
}
5042

5143
}

src/main/java/galena/oreganized/content/effect/StunningEffect.java

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package galena.oreganized.content.effect;
22

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

36+
if (entity.getHealth() <= 1 && entity instanceof ServerPlayer player) {
37+
OCriteriaTriggers.PROFOUND_BRAIN_DAMAGE.trigger(player);
38+
}
39+
3440
if (targetAmplifier == amplifier) return;
3541
var instance = entity.getEffect(this);
3642
if (instance == null) return;

src/main/java/galena/oreganized/data/OAdvancements.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import net.minecraft.advancements.critereon.ItemPredicate;
1717
import net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger;
1818
import net.minecraft.advancements.critereon.LocationPredicate;
19-
import net.minecraft.advancements.critereon.MinMaxBounds;
2019
import net.minecraft.advancements.critereon.MobEffectsPredicate;
2120
import net.minecraft.core.HolderLookup;
2221
import net.minecraft.data.PackOutput;
@@ -70,8 +69,7 @@ public void generate(@Nullable HolderLookup.Provider provider, Consumer<Advancem
7069
.parent(likeTheRomans)
7170
.display(info(OItems.MOLTEN_LEAD_BUCKET.get(), "profound_brain_damage", FrameType.TASK,
7271
"Profound Brain Damage", "Let your health reach half a heart while having the Brain Damage effect"))
73-
.addCriterion("stunned", EffectsChangedTrigger.TriggerInstance.hasEffects(MobEffectsPredicate.effects()
74-
.and(OEffects.STUNNING.get(), new MobEffectsPredicate.MobEffectInstancePredicate(MinMaxBounds.Ints.atMost(6), MinMaxBounds.Ints.ANY, null, null))))
72+
.addCriterion("stunned", OCriteriaTriggers.PROFOUND_BRAIN_DAMAGE.instance())
7573
.save(consumer, "oreganized:story/profound_brain_damage");
7674

7775
var obtainSilver = Advancement.Builder.advancement()

src/main/java/galena/oreganized/index/OCriteriaTriggers.java

+1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ public class OCriteriaTriggers {
1010

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

1415
}

src/main/resources/assets/oreganized/lang/de_de.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"advancements.oreganized.mirror_mirror.title": "Spieglein, Spieglein an der Wand...",
1818
"advancements.oreganized.obtain_silver.description": "Beschaffe Silber",
1919
"advancements.oreganized.obtain_silver.title": "Nicht alles was glänzt ist Gold",
20-
"advancements.oreganized.profound_brain_damage.description": "Lass Gesundheit unter die Hälfte fallen, während du benommen bist",
20+
"advancements.oreganized.profound_brain_damage.description": "Lass Gesundheit unter ein Herz fallen, während du benommen bist",
2121
"advancements.oreganized.profound_brain_damage.title": "Schwere Hirnschädigung",
2222
"advancements.oreganized.weeping_devil.description": "Tausche einen Silberbarren gegen das teuflische Grollen eines Wasserspeichers",
2323
"advancements.oreganized.weeping_devil.title": "Jaulender Dämon",

0 commit comments

Comments
 (0)