冲刺冲刺

This commit is contained in:
Light_Quanta 2025-05-25 01:06:17 +08:00
parent 7de3360ffd
commit 05373e9c85
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
9 changed files with 102 additions and 4 deletions

View file

@ -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
d24849d7fc09d8cc9a27203e57f1fd42f72a27a7 data/superbwarfare/advancement/main/banzai.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
392baba1930be09abc70836090c884ad4ada82e8 data/superbwarfare/advancement/main/rare_blueprint.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

View file

@ -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
}

View file

@ -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;
}
}
}

View file

@ -8,6 +8,7 @@ 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;
@ -18,7 +19,7 @@ public class RPGMeleeExplosionTrigger extends SimpleCriterionTrigger<RPGMeleeExp
}
@Override
public Codec<TriggerInstance> codec() {
public @NotNull Codec<TriggerInstance> codec() {
return TriggerInstance.CODEC;
}
@ -34,7 +35,7 @@ public class RPGMeleeExplosionTrigger extends SimpleCriterionTrigger<RPGMeleeExp
}
@Override
public Optional<ContextAwarePredicate> player() {
public @NotNull Optional<ContextAwarePredicate> player() {
return this.player;
}
}

View file

@ -1,6 +1,7 @@
package com.atsuishio.superbwarfare.datagen;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.advancement.criteria.OttoSprintTrigger;
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModTags;
@ -110,6 +111,11 @@ public class ModAdvancementProvider implements DataProvider {
.type(ModAdvancement.Type.SECRET_CHALLENGE)
.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;

View file

@ -4,7 +4,9 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig;
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.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.tools.CustomExplosion;
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
public void travel() {
Entity passenger = this.getFirstPassenger();

View file

@ -1,6 +1,7 @@
package com.atsuishio.superbwarfare.init;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.advancement.criteria.OttoSprintTrigger;
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
import net.minecraft.advancements.CriterionTrigger;
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 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);
}

View file

@ -672,6 +672,8 @@
"superbwarfare.advancement.main.enclave.des": "Where is the pendulum?",
"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.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.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",

View file

@ -672,6 +672,8 @@
"superbwarfare.advancement.main.enclave.des": "钟摆在哪?",
"superbwarfare.advancement.main.boomstick_melee": "跟你爆了",
"superbwarfare.advancement.main.boomstick_melee.des": "谁说RPG不能当棒球棒用",
"superbwarfare.advancement.main.rush_rush_run": "冲刺♿冲刺♿冲",
"superbwarfare.advancement.main.rush_rush_run.des": "电棍得配轮椅才能打得出伤害,搞的跟卓越晚期一样",
"warning.title.example": "【卓越前线 警示声明】",
"warning.content.example": "== 本模组完全免费开源,禁止用于任何商业行为 ==\n本模组代码采用GPL-3协议开源美术资源私有禁止商用\n禁止付费下载、充值获取道具等违反协议和Mojang EULA的行为\n如遇以上行为请到本模组仓库处提交Issue进行举报",
"warning.check.example": "我已阅读并同意,不再显示此警告",
@ -726,5 +728,6 @@
"superbwarfare.page.vehicle.ah_61": "$(thing)AH-6 小鸟直升机$()是一款轻型直升机可搭载4人装甲防护较为贫弱。携带4发可干扰制导锁定的热诱弹每隔一段时间自动逐发补充。",
"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_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"
}