Add non working achievements

This commit is contained in:
Andrew-71 2023-10-21 17:19:40 +03:00
parent 78f9b80861
commit 24e5854d8c
11 changed files with 249 additions and 101 deletions

View file

@ -0,0 +1,56 @@
{
"parent": "minecraft:new_soviet/root",
"criteria": {
"rolled_100": {
"conditions": {
"item": {
"tag": "new_soviet:dice"
},
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player",
"type_specific": {
"type": "player",
"stats": [
{
"type": "minecraft:custom",
"stat": "minecraft:roll_dice",
"value": {
"min": 100
}
}
]
}
}
}
]
},
"trigger": "minecraft:using_item"
}
},
"display": {
"announce_to_chat": true,
"background": "minecraft:textures/gui/advancements/backgrounds/adventure.png",
"description": {
"translate": "advancement.new_soviet.gambler.desc"
},
"frame": "task",
"hidden": false,
"icon": {
"item": "new_soviet:dice_d6"
},
"show_toast": true,
"title": {
"translate": "advancement.new_soviet.gambler.name"
}
},
"requirements": [
[
"rolled_100"
]
],
"sends_telemetry_event": true
}

View file

@ -0,0 +1,56 @@
{
"parent": "minecraft:new_soviet/gambler",
"criteria": {
"rolled_100_perfect": {
"conditions": {
"item": {
"tag": "new_soviet:dice"
},
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player",
"type_specific": {
"type": "player",
"stats": [
{
"type": "minecraft:custom",
"stat": "minecraft:roll_perfect_dice",
"value": {
"min": 100
}
}
]
}
}
}
]
},
"trigger": "minecraft:using_item"
}
},
"display": {
"announce_to_chat": true,
"background": "minecraft:textures/gui/advancements/backgrounds/adventure.png",
"description": {
"translate": "advancement.new_soviet.lucky_throw.desc"
},
"frame": "challenge",
"hidden": false,
"icon": {
"item": "new_soviet:dice_d4"
},
"show_toast": true,
"title": {
"translate": "advancement.new_soviet.lucky_throw.name"
}
},
"requirements": [
[
"rolled_100_perfect"
]
],
"sends_telemetry_event": true
}

View file

@ -0,0 +1,56 @@
{
"parent": "minecraft:new_soviet/gambler",
"criteria": {
"rolled_1000": {
"conditions": {
"item": {
"tag": "new_soviet:dice"
},
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "minecraft:player",
"type_specific": {
"type": "player",
"stats": [
{
"type": "minecraft:custom",
"stat": "minecraft:roll_dice",
"value": {
"min": 1000
}
}
]
}
}
}
]
},
"trigger": "minecraft:using_item"
}
},
"display": {
"announce_to_chat": true,
"background": "minecraft:textures/gui/advancements/backgrounds/adventure.png",
"description": {
"translate": "advancement.new_soviet.serious_addiction.desc"
},
"frame": "challenge",
"hidden": false,
"icon": {
"item": "new_soviet:dice_d20"
},
"show_toast": true,
"title": {
"translate": "advancement.new_soviet.serious_addiction.name"
}
},
"requirements": [
[
"rolled_1000"
]
],
"sends_telemetry_event": true
}

View file

@ -4,15 +4,24 @@ import net.minecraft.advancement.Advancement;
import net.minecraft.advancement.AdvancementFrame;
import net.minecraft.advancement.criterion.InventoryChangedCriterion;
import net.minecraft.advancement.criterion.OnKilledCriterion;
import net.minecraft.advancement.criterion.UsingItemCriterion;
import net.minecraft.entity.EntityType;
import net.minecraft.item.Items;
import net.minecraft.predicate.NumberRange;
import net.minecraft.predicate.entity.DamageSourcePredicate;
import net.minecraft.predicate.entity.EntityEquipmentPredicate;
import net.minecraft.predicate.entity.EntityPredicate;
import net.minecraft.predicate.entity.PlayerPredicate;
import net.minecraft.predicate.item.ItemPredicate;
import net.minecraft.stat.Stats;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.util.UseAction;
import su.a71.new_soviet.NewSoviet;
import su.a71.new_soviet.items.DiceItem;
import su.a71.new_soviet.registration.NSE_Items;
import su.a71.new_soviet.registration.NSE_Stats;
import su.a71.new_soviet.registration.NSE_Tags;
import java.util.function.Consumer;
@ -67,34 +76,54 @@ public class Advancements implements Consumer<Consumer<Advancement>> {
.build(consumer, NewSoviet.MOD_ID + "/sickle_kill");
// // Throw a die 100 times
// Advancement gambler = Advancement.Builder.create()
// .display(
// NSE_Items.DICE_D6,
// Text.translatable("advancement.new_soviet.gambler.name"),
// Text.translatable("advancement.new_soviet.gambler.desc"),
// new Identifier("textures/gui/advancements/backgrounds/adventure.png"),
// AdvancementFrame.CHALLENGE,
// true, // Toast
// true, // Announcement
// false // Hidden
// )
// .criterion("threw_dice", InventoryChangedCriterion.Conditions.items(Items.DIRT))
// .build(consumer, NewSoviet.MOD_ID + "/gambler");
// Throw a die 1000 times
// Advancement serious_addiction = Advancement.Builder.create()
// .display(
// NSE_Items.DICE_D20,
// Text.translatable("advancement.new_soviet.serious_addiction.name"),
// Text.translatable("advancement.new_soviet.serious_addiction.desc"),
// new Identifier("textures/gui/advancements/backgrounds/adventure.png"),
// AdvancementFrame.CHALLENGE,
// true, // Toast
// true, // Announcement
// false // Hidden
// )
// .criterion("threw_dice", InventoryChangedCriterion.Conditions.items(Items.DIRT))
// .parent(gambler)
// .build(consumer, NewSoviet.MOD_ID + "/serious_addiction");
// Throw a die 100 times
Advancement gambler = Advancement.Builder.create()
.display(
NSE_Items.DICE_D6,
Text.translatable("advancement.new_soviet.gambler.name"),
Text.translatable("advancement.new_soviet.gambler.desc"),
new Identifier("textures/gui/advancements/backgrounds/adventure.png"),
AdvancementFrame.TASK,
true, // Toast
true, // Announcement
false // Hidden
)
.parent(root)
.criterion("rolled_100", UsingItemCriterion.Conditions.create(
EntityPredicate.Builder.create().type(EntityType.PLAYER).typeSpecific(PlayerPredicate.Builder.create().stat(Stats.CUSTOM.getOrCreateStat(NSE_Stats.ROLL_ANY_DICE), NumberRange.IntRange.atLeast(100)).build()),
ItemPredicate.Builder.create().tag(NSE_Tags.Items.DICE)))
.build(consumer, NewSoviet.MOD_ID + "/gambler");
// Throw a die 1000 times
Advancement serious_addiction = Advancement.Builder.create()
.display(
NSE_Items.DICE_D20,
Text.translatable("advancement.new_soviet.serious_addiction.name"),
Text.translatable("advancement.new_soviet.serious_addiction.desc"),
new Identifier("textures/gui/advancements/backgrounds/adventure.png"),
AdvancementFrame.CHALLENGE,
true, // Toast
true, // Announcement
false // Hidden
)
.criterion("rolled_1000", UsingItemCriterion.Conditions.create(EntityPredicate.Builder.create().type(EntityType.PLAYER).typeSpecific(PlayerPredicate.Builder.create().stat(Stats.CUSTOM.getOrCreateStat(NSE_Stats.ROLL_ANY_DICE), NumberRange.IntRange.atLeast(1000)).build()), ItemPredicate.Builder.create().tag(NSE_Tags.Items.DICE)))
.parent(gambler)
.build(consumer, NewSoviet.MOD_ID + "/serious_addiction");
// Roll perfect die 100 times
Advancement lucky_throw = Advancement.Builder.create()
.display(
NSE_Items.DICE_D4,
Text.translatable("advancement.new_soviet.lucky_throw.name"),
Text.translatable("advancement.new_soviet.lucky_throw.desc"),
new Identifier("textures/gui/advancements/backgrounds/adventure.png"),
AdvancementFrame.CHALLENGE,
true, // Toast
true, // Announcement
false // Hidden
)
.parent(gambler)
.criterion("rolled_100_perfect", UsingItemCriterion.Conditions.create(EntityPredicate.Builder.create().type(EntityType.PLAYER).typeSpecific(PlayerPredicate.Builder.create().stat(Stats.CUSTOM.getOrCreateStat(NSE_Stats.ROLL_PERFECT_DICE), NumberRange.IntRange.atLeast(100)).build()), ItemPredicate.Builder.create().tag(NSE_Tags.Items.DICE)))
.build(consumer, NewSoviet.MOD_ID + "/lucky_throw");
}
}

View file

@ -48,7 +48,7 @@ public class DiceItem extends Item {
user.sendMessage(Text.translatable(itemStack.getCount() == 1 ? "item.new_soviet.dice.thrown" : "item.new_soviet.dice.thrown_multiple").append(" " + output.subSequence(0, output.length() - 2)), true);
}
}
user.increaseStat(Stats.CUSTOM.getOrCreateStat(NSE_Stats.ROLL_ANY_DICE), itemStack.getCount());
user.increaseStat(Stats.USED.getOrCreateStat(this), itemStack.getCount());
return TypedActionResult.success(itemStack, world.isClient());
}

View file

@ -8,10 +8,14 @@ import net.minecraft.util.Identifier;
import su.a71.new_soviet.NewSoviet;
public class NSE_Stats extends NSE_BaseRegistration {
public static final Identifier ROLL_ANY_DICE = new Identifier(NewSoviet.MOD_ID, "roll_dice");
public static final Identifier ROLL_PERFECT_DICE = new Identifier(NewSoviet.MOD_ID, "roll_perfect_dice");
public static void init() {
Registry.register(Registries.CUSTOM_STAT, "roll_perfect_dice", ROLL_PERFECT_DICE);
Stats.CUSTOM.getOrCreateStat(ROLL_PERFECT_DICE, StatFormatter.DEFAULT);
Registry.register(Registries.CUSTOM_STAT, "roll_dice", ROLL_ANY_DICE);
Stats.CUSTOM.getOrCreateStat(ROLL_ANY_DICE, StatFormatter.DEFAULT);
}
}

View file

@ -474,5 +474,11 @@
"advancement.new_soviet.sickle.name": "Tool of a worker",
"advancement.new_soviet.sickle.desc": "Acquire a sickle",
"advancement.new_soviet.sickle_kill.name": "Kolkhoz Warrior",
"advancement.new_soviet.sickle_kill.desc": "Kill someone with a sickle"
"advancement.new_soviet.sickle_kill.desc": "Kill someone with a sickle",
"advancement.new_soviet.gambler.name": "Gambler",
"advancement.new_soviet.gambler.desc": "Roll dice 100 times",
"advancement.new_soviet.serious_addiction.name": "Serious addiction",
"advancement.new_soviet.serious_addiction.desc": "Throw a die 1000 times, and then reevaluate your life choices",
"advancement.new_soviet.lucky_throw.name": "Lucky throw",
"advancement.new_soviet.lucky_throw.desc": "Roll a perfect die 100 times"
}

View file

@ -33,8 +33,8 @@
"rotation": [90, 0, 0]
},
"gui": {
"rotation": [-157, 0, 0],
"scale": [3.5, 3.5, 3.5]
"rotation": [-155, 225, 0],
"scale": [2.5, 2.5, 2.5]
},
"head": {
"rotation": [90, 0, 0],