冲刺♿冲刺♿冲
This commit is contained in:
parent
7de3360ffd
commit
05373e9c85
9 changed files with 102 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.21.1 2025-05-09T00:21:36.5680126 Superb Warfare Advancements
|
// 1.21.1 2025-05-25T00:56:53.9873193 Superb Warfare Advancements
|
||||||
03d6ad4d0bdd3ba66b765dcae9705692070e7f94 data/superbwarfare/advancement/main/ancient_technology.json
|
03d6ad4d0bdd3ba66b765dcae9705692070e7f94 data/superbwarfare/advancement/main/ancient_technology.json
|
||||||
d24849d7fc09d8cc9a27203e57f1fd42f72a27a7 data/superbwarfare/advancement/main/banzai.json
|
d24849d7fc09d8cc9a27203e57f1fd42f72a27a7 data/superbwarfare/advancement/main/banzai.json
|
||||||
70bd4fa04553c415c80656c4b07cf3814a13110c data/superbwarfare/advancement/main/best_friend.json
|
70bd4fa04553c415c80656c4b07cf3814a13110c data/superbwarfare/advancement/main/best_friend.json
|
||||||
|
@ -14,4 +14,5 @@ c051b49513bac2be82c2c24e236734a5c3a358c8 data/superbwarfare/advancement/main/enc
|
||||||
52417b43fbf1ca3a41d95ee51eafdc4f734bfaa3 data/superbwarfare/advancement/main/physics_excalibur.json
|
52417b43fbf1ca3a41d95ee51eafdc4f734bfaa3 data/superbwarfare/advancement/main/physics_excalibur.json
|
||||||
392baba1930be09abc70836090c884ad4ada82e8 data/superbwarfare/advancement/main/rare_blueprint.json
|
392baba1930be09abc70836090c884ad4ada82e8 data/superbwarfare/advancement/main/rare_blueprint.json
|
||||||
fbba02bc4970dbaa35fd2b743f4d751b46e9998b data/superbwarfare/advancement/main/root.json
|
fbba02bc4970dbaa35fd2b743f4d751b46e9998b data/superbwarfare/advancement/main/root.json
|
||||||
|
61cbafd1a8563c8c19208309e2fd99ed064e12aa data/superbwarfare/advancement/main/rush_rush_run.json
|
||||||
6855de73219722b4e44985c87f2d57d71cfd7e15 data/superbwarfare/advancement/main/super_container.json
|
6855de73219722b4e44985c87f2d57d71cfd7e15 data/superbwarfare/advancement/main/super_container.json
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"trigger": "superbwarfare:otto_sprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.rush_rush_run.des"
|
||||||
|
},
|
||||||
|
"frame": "challenge",
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:electric_baton"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.rush_rush_run"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.atsuishio.superbwarfare.advancement.criteria;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.init.ModCriteriaTriggers;
|
||||||
|
import com.mojang.serialization.Codec;
|
||||||
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
|
import net.minecraft.advancements.Criterion;
|
||||||
|
import net.minecraft.advancements.critereon.ContextAwarePredicate;
|
||||||
|
import net.minecraft.advancements.critereon.EntityPredicate;
|
||||||
|
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public class OttoSprintTrigger extends SimpleCriterionTrigger<OttoSprintTrigger.TriggerInstance> {
|
||||||
|
|
||||||
|
public void trigger(ServerPlayer pPlayer) {
|
||||||
|
this.trigger(pPlayer, instance -> true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull Codec<TriggerInstance> codec() {
|
||||||
|
return TriggerInstance.CODEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public record TriggerInstance(Optional<ContextAwarePredicate> player) implements SimpleInstance {
|
||||||
|
|
||||||
|
public static final Codec<OttoSprintTrigger.TriggerInstance> CODEC = RecordCodecBuilder.create((instance) ->
|
||||||
|
instance.group(EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player")
|
||||||
|
.forGetter(OttoSprintTrigger.TriggerInstance::player)).apply(instance, TriggerInstance::new));
|
||||||
|
|
||||||
|
public static Criterion<OttoSprintTrigger.TriggerInstance> get() {
|
||||||
|
return ModCriteriaTriggers.OTTO_SPRINT.get().createCriterion(new TriggerInstance(Optional.empty()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull Optional<ContextAwarePredicate> player() {
|
||||||
|
return this.player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ import net.minecraft.advancements.critereon.ContextAwarePredicate;
|
||||||
import net.minecraft.advancements.critereon.EntityPredicate;
|
import net.minecraft.advancements.critereon.EntityPredicate;
|
||||||
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ -18,7 +19,7 @@ public class RPGMeleeExplosionTrigger extends SimpleCriterionTrigger<RPGMeleeExp
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Codec<TriggerInstance> codec() {
|
public @NotNull Codec<TriggerInstance> codec() {
|
||||||
return TriggerInstance.CODEC;
|
return TriggerInstance.CODEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ public class RPGMeleeExplosionTrigger extends SimpleCriterionTrigger<RPGMeleeExp
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<ContextAwarePredicate> player() {
|
public @NotNull Optional<ContextAwarePredicate> player() {
|
||||||
return this.player;
|
return this.player;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.atsuishio.superbwarfare.datagen;
|
package com.atsuishio.superbwarfare.datagen;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.advancement.criteria.OttoSprintTrigger;
|
||||||
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
||||||
import com.atsuishio.superbwarfare.init.ModItems;
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
import com.atsuishio.superbwarfare.init.ModTags;
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
@ -110,6 +111,11 @@ public class ModAdvancementProvider implements DataProvider {
|
||||||
.type(ModAdvancement.Type.SECRET_CHALLENGE)
|
.type(ModAdvancement.Type.SECRET_CHALLENGE)
|
||||||
.parent(MAIN_ROOT)),
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
RUSH_RUSH_RUN = advancement("rush_rush_run", builder -> builder.icon(ModItems.ELECTRIC_BATON.get())
|
||||||
|
.externalTrigger(OttoSprintTrigger.TriggerInstance.get())
|
||||||
|
.type(ModAdvancement.Type.SECRET_CHALLENGE)
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
END = null;
|
END = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@ import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
|
import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
|
||||||
import com.atsuishio.superbwarfare.config.server.VehicleConfig;
|
import com.atsuishio.superbwarfare.config.server.VehicleConfig;
|
||||||
import com.atsuishio.superbwarfare.entity.vehicle.base.MobileVehicleEntity;
|
import com.atsuishio.superbwarfare.entity.vehicle.base.MobileVehicleEntity;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModCriteriaTriggers;
|
||||||
import com.atsuishio.superbwarfare.init.ModDamageTypes;
|
import com.atsuishio.superbwarfare.init.ModDamageTypes;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
import com.atsuishio.superbwarfare.tools.CustomExplosion;
|
import com.atsuishio.superbwarfare.tools.CustomExplosion;
|
||||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
||||||
|
@ -128,6 +130,18 @@ public class WheelChairEntity extends MobileVehicleEntity implements GeoEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addPassenger(@NotNull Entity newPassenger) {
|
||||||
|
super.addPassenger(newPassenger);
|
||||||
|
|
||||||
|
if (newPassenger instanceof ServerPlayer player
|
||||||
|
&& (player.getMainHandItem().getItem() == ModItems.ELECTRIC_BATON.get()
|
||||||
|
|| player.getOffhandItem().getItem() == ModItems.ELECTRIC_BATON.get())
|
||||||
|
) {
|
||||||
|
ModCriteriaTriggers.OTTO_SPRINT.get().trigger(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void travel() {
|
public void travel() {
|
||||||
Entity passenger = this.getFirstPassenger();
|
Entity passenger = this.getFirstPassenger();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.atsuishio.superbwarfare.init;
|
package com.atsuishio.superbwarfare.init;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.advancement.criteria.OttoSprintTrigger;
|
||||||
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
||||||
import net.minecraft.advancements.CriterionTrigger;
|
import net.minecraft.advancements.CriterionTrigger;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
|
@ -13,4 +14,5 @@ public class ModCriteriaTriggers {
|
||||||
public static final DeferredRegister<CriterionTrigger<?>> REGISTRY = DeferredRegister.create(Registries.TRIGGER_TYPE, Mod.MODID);
|
public static final DeferredRegister<CriterionTrigger<?>> REGISTRY = DeferredRegister.create(Registries.TRIGGER_TYPE, Mod.MODID);
|
||||||
|
|
||||||
public static final Supplier<RPGMeleeExplosionTrigger> RPG_MELEE_EXPLOSION = REGISTRY.register("rpg_melee_explosion", RPGMeleeExplosionTrigger::new);
|
public static final Supplier<RPGMeleeExplosionTrigger> RPG_MELEE_EXPLOSION = REGISTRY.register("rpg_melee_explosion", RPGMeleeExplosionTrigger::new);
|
||||||
|
public static final Supplier<OttoSprintTrigger> OTTO_SPRINT = REGISTRY.register("otto_sprint", OttoSprintTrigger::new);
|
||||||
}
|
}
|
||||||
|
|
|
@ -672,6 +672,8 @@
|
||||||
"superbwarfare.advancement.main.enclave.des": "Where is the pendulum?",
|
"superbwarfare.advancement.main.enclave.des": "Where is the pendulum?",
|
||||||
"superbwarfare.advancement.main.boomstick_melee": "This is my Boomstick!",
|
"superbwarfare.advancement.main.boomstick_melee": "This is my Boomstick!",
|
||||||
"superbwarfare.advancement.main.boomstick_melee.des": "Who said RPGs can't be baseball bats?",
|
"superbwarfare.advancement.main.boomstick_melee.des": "Who said RPGs can't be baseball bats?",
|
||||||
|
"superbwarfare.advancement.main.rush_rush_run": "Rush♿Rush♿Run",
|
||||||
|
"superbwarfare.advancement.main.rush_rush_run.des": "The electric baton has to be paired with a wheelchair to deal damage, making it look as weak as a terminal superb soldier.",
|
||||||
"warning.title.example": "[SuperbWarfare Mod Warning]",
|
"warning.title.example": "[SuperbWarfare Mod Warning]",
|
||||||
"warning.content.example": "This mod is Free And Open-Source, No Commercial Use\nCode: GPL-3.0 License; Asserts: Private (No Commercialization)\nBan on paid downloads or EULA-breaking purchases\nReport violations by submitting an issue in the mod's repository",
|
"warning.content.example": "This mod is Free And Open-Source, No Commercial Use\nCode: GPL-3.0 License; Asserts: Private (No Commercialization)\nBan on paid downloads or EULA-breaking purchases\nReport violations by submitting an issue in the mod's repository",
|
||||||
"warning.check.example": "I have read and agreed to the content. Do not show this message again",
|
"warning.check.example": "I have read and agreed to the content. Do not show this message again",
|
||||||
|
|
|
@ -672,6 +672,8 @@
|
||||||
"superbwarfare.advancement.main.enclave.des": "钟摆在哪?",
|
"superbwarfare.advancement.main.enclave.des": "钟摆在哪?",
|
||||||
"superbwarfare.advancement.main.boomstick_melee": "跟你爆了",
|
"superbwarfare.advancement.main.boomstick_melee": "跟你爆了",
|
||||||
"superbwarfare.advancement.main.boomstick_melee.des": "谁说RPG不能当棒球棒用?",
|
"superbwarfare.advancement.main.boomstick_melee.des": "谁说RPG不能当棒球棒用?",
|
||||||
|
"superbwarfare.advancement.main.rush_rush_run": "冲刺♿冲刺♿冲",
|
||||||
|
"superbwarfare.advancement.main.rush_rush_run.des": "电棍得配轮椅才能打得出伤害,搞的跟卓越晚期一样",
|
||||||
"warning.title.example": "【卓越前线 警示声明】",
|
"warning.title.example": "【卓越前线 警示声明】",
|
||||||
"warning.content.example": "== 本模组完全免费开源,禁止用于任何商业行为 ==\n本模组代码采用GPL-3协议开源,美术资源私有禁止商用\n禁止付费下载、充值获取道具等违反协议和Mojang EULA的行为\n如遇以上行为,请到本模组仓库处提交Issue进行举报",
|
"warning.content.example": "== 本模组完全免费开源,禁止用于任何商业行为 ==\n本模组代码采用GPL-3协议开源,美术资源私有禁止商用\n禁止付费下载、充值获取道具等违反协议和Mojang EULA的行为\n如遇以上行为,请到本模组仓库处提交Issue进行举报",
|
||||||
"warning.check.example": "我已阅读并同意,不再显示此警告",
|
"warning.check.example": "我已阅读并同意,不再显示此警告",
|
||||||
|
@ -726,5 +728,6 @@
|
||||||
"superbwarfare.page.vehicle.ah_61": "$(thing)AH-6 小鸟直升机$()是一款轻型直升机,可搭载4人,装甲防护较为贫弱。携带4发可干扰制导锁定的热诱弹,每隔一段时间自动逐发补充。",
|
"superbwarfare.page.vehicle.ah_61": "$(thing)AH-6 小鸟直升机$()是一款轻型直升机,可搭载4人,装甲防护较为贫弱。携带4发可干扰制导锁定的热诱弹,每隔一段时间自动逐发补充。",
|
||||||
"superbwarfare.page.vehicle.ah_62": "需要至少 5 x 5 x 3 的空间放置。",
|
"superbwarfare.page.vehicle.ah_62": "需要至少 5 x 5 x 3 的空间放置。",
|
||||||
"superbwarfare.page.vehicle.ah_63": "$(l)基础属性:$()$(p)耐久值 - 250$(br)最大乘员数 - 4$(br)最大能量 - 500,000FE$(br)能耗 - 64 ~ 128FE/tick",
|
"superbwarfare.page.vehicle.ah_63": "$(l)基础属性:$()$(p)耐久值 - 250$(br)最大乘员数 - 4$(br)最大能量 - 500,000FE$(br)能耗 - 64 ~ 128FE/tick",
|
||||||
"superbwarfare.page.vehicle.ah_64": "$(l)武器属性:$()$(p)1号位:$(p)(1) 20mm机炮$(br)射速 - 500RPM$(br)直击伤害 - 25$(br)爆炸伤害 - 13$(br)爆炸半径 - 4m$(br)弹药 - $(item)小口径炮弹$()$(br)(2) 70mm火箭弹$(br)直击伤害 - 80$(br)爆炸伤害 - 40$(br)爆炸半径 - 5m$(br)弹药 - $(item)70mm火箭弹$()"
|
"superbwarfare.page.vehicle.ah_64": "$(l)武器属性:$()$(p)1号位:$(p)(1) 20mm机炮$(br)射速 - 500RPM$(br)直击伤害 - 25$(br)爆炸伤害 - 13$(br)爆炸半径 - 4m$(br)弹药 - $(item)小口径炮弹$()$(br)(2) 70mm火箭弹$(br)直击伤害 - 80$(br)爆炸伤害 - 40$(br)爆炸半径 - 5m$(br)弹药 - $(item)70mm火箭弹$()",
|
||||||
|
"des.superbwarfare.charging_station": "Charge nearby entities and adjacent blocks"
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue