注册宏伟之嚎perk

This commit is contained in:
17146 2025-05-07 21:11:15 +08:00 committed by Light_Quanta
parent 816d617848
commit e10b227cce
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
10 changed files with 61 additions and 6 deletions

View file

@ -493,8 +493,8 @@ public class LivingEventHandler {
for (Perk.Type type : Perk.Type.values()) {
var instance = data.perk.getInstance(type);
if (instance != null) {
instance.perk().onHit(damage, data, instance, event.getEntity(), source);
damage = instance.perk().getModifiedDamage(damage, data, instance, event.getEntity(), source);
instance.perk().onHit(damage, data, instance, event.getEntity(), source);
if (instance.perk().shouldCancelHurtEvent(damage, data, instance, event.getEntity(), source)) {
event.setCanceled(true);
return;

View file

@ -72,6 +72,7 @@ public class ModPerks {
public static final DeferredHolder<Perk, Perk> VOLT_OVERLOAD = DAMAGE_PERKS.register("volt_overload", VoltOverload::new);
public static final DeferredHolder<Perk, Perk> DESPERADO = DAMAGE_PERKS.register("desperado", Desperado::new);
public static final DeferredHolder<Perk, Perk> VORPAL_WEAPON = DAMAGE_PERKS.register("vorpal_weapon", VorpalWeapon::new);
public static final DeferredHolder<Perk, Perk> MAGNIFICENT_HOWL = DAMAGE_PERKS.register("magnificent_howl", MagnificentHowl::new);
// public static void registerCompatPerks() {
// if (ModList.get().isLoaded(CompatHolder.DMV)) {

View file

@ -207,6 +207,8 @@ public class ModVillagers {
new ItemStack(getItemHolder("monster_hunter"), 1), 4, 25, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 40),
new ItemStack(getItemHolder("vorpal_weapon"), 1), 4, 25, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 42),
new ItemStack(getItemHolder("magnificent_howl"), 1), 4, 25, 0.05f));
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(ModItems.HUNTING_RIFLE_BLUEPRINT.get()), 10, 30, 0.05f));

View file

@ -0,0 +1,45 @@
package com.atsuishio.superbwarfare.perk.damage;
import com.atsuishio.superbwarfare.item.gun.data.GunData;
import com.atsuishio.superbwarfare.perk.Perk;
import com.atsuishio.superbwarfare.perk.PerkInstance;
import com.atsuishio.superbwarfare.tools.DamageTypeTool;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.LivingEntity;
import org.jetbrains.annotations.Nullable;
public class MagnificentHowl extends Perk {
public MagnificentHowl() {
super("magnificent_howl", Perk.Type.DAMAGE);
}
@Override
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
if (DamageTypeTool.isHeadshotDamage(source)) {
data.perk.getTag(this).putInt("MagnificentHowlCount",
Math.min(data.perk.getTag(this).getInt("MagnificentHowlCount") + 1 + instance.level() / 5, 9 + instance.level()));
}
}
@Override
public void preReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
data.perk.getTag(this).putInt("MagnificentHowlDamageCount", data.perk.getTag(this).getInt("MagnificentHowlCount"));
data.perk.getTag(this).remove("MagnificentHowlCount");
}
@Override
public void onHit(float damage, GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
if (data.perk.getTag(this).getInt("MagnificentHowlDamageCount") > 0) {
data.perk.reduceCooldown(this, "MagnificentHowlDamageCount");
}
}
@Override
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
if (data.perk.getTag(this).getInt("MagnificentHowlDamageCount") > 0) {
return damage * 1.5f;
}
return super.getModifiedDamage(damage, data, instance, target, source);
}
}

View file

@ -322,6 +322,8 @@
"des.superbwarfare.butterfly_bullet": "Replace fired bullets with Rain Shower Butterflies.",
"item.superbwarfare.bread_bullet": "Bread Bullet",
"des.superbwarfare.bread_bullet": "Deals extreme knockback and slowness to stuck mobs.",
"item.superbwarfare.micro_missile": "Micro Missile",
"des.superbwarfare.micro_missile": "Fires a high-speed projectile without gravity.",
"item.superbwarfare.heal_clip": "Heal Clip",
"des.superbwarfare.heal_clip": "Reloading after defeating a mob will heal you and your nearby allies.",
@ -356,8 +358,8 @@
"des.superbwarfare.desperado": "Reload after a headshot-kill will increase rate of fire.",
"item.superbwarfare.vorpal_weapon": "Vorpal Weapon",
"des.superbwarfare.vorpal_weapon": "Increases damage against bosses.",
"item.superbwarfare.micro_missile": "Micro Missile",
"des.superbwarfare.micro_missile": "Fires a high-speed projectile without gravity",
"item.superbwarfare.magnificent_howl": "Magnificent Howl",
"des.superbwarfare.magnificent_howl": "The number of precision final blows before reloading affects the total rounds granted with increased damage.",
"item.superbwarfare.empty_perk": "Empty Perk",
"item.superbwarfare.shortcut_pack": "Shortcut Pack",

View file

@ -320,6 +320,8 @@
"des.superbwarfare.butterfly_bullet": "将子弹替换成骤雨之蝶",
"item.superbwarfare.bread_bullet": "面包弹",
"des.superbwarfare.bread_bullet": "命中后会使目标移速下降,并造成强大的击退",
"item.superbwarfare.micro_missile": "微型导弹",
"des.superbwarfare.micro_missile": "使武器发射无视重力前进的高速弹药",
"item.superbwarfare.heal_clip": "治疗弹匣",
"des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友",
@ -354,8 +356,8 @@
"des.superbwarfare.desperado": "精准击杀后进行换弹,可暂时提升射速",
"item.superbwarfare.vorpal_weapon": "斩首武器",
"des.superbwarfare.vorpal_weapon": "提升对强大敌人造成的伤害",
"item.superbwarfare.micro_missile": "微型导弹",
"des.superbwarfare.micro_missile": "使武器发射无视重力前进的高速弹药",
"item.superbwarfare.magnificent_howl": "宏伟之嚎",
"des.superbwarfare.magnificent_howl": "填装前精准最后一击的次数会影响伤害增加的子弹总数",
"item.superbwarfare.empty_perk": "空白模组",
"item.superbwarfare.shortcut_pack": "捷径包",

View file

@ -26,6 +26,7 @@
"superbwarfare:kill_clip",
"superbwarfare:monster_hunter",
"superbwarfare:vorpal_weapon",
"superbwarfare:magnificent_howl",
"!superbwarfare:micro_missile",
"!superbwarfare:longer_wire",
"!superbwarfare:butterfly_bullet"

View file

@ -28,6 +28,7 @@
"superbwarfare:head_seeker",
"superbwarfare:desperado",
"superbwarfare:vorpal_weapon",
"superbwarfare:magnificent_howl",
"!superbwarfare:micro_missile",
"!superbwarfare:longer_wire"
]

View file

@ -25,8 +25,8 @@
"superbwarfare:gutshot_straight",
"superbwarfare:monster_hunter",
"superbwarfare:head_seeker",
"superbwarfare:desperado",
"superbwarfare:vorpal_weapon",
"superbwarfare:magnificent_howl",
"!superbwarfare:micro_missile",
"!superbwarfare:longer_wire"
]

View file

@ -25,6 +25,7 @@
"superbwarfare:gutshot_straight",
"superbwarfare:monster_hunter",
"superbwarfare:vorpal_weapon",
"superbwarfare:magnificent_howl",
"!superbwarfare:micro_missile",
"!superbwarfare:longer_wire",
"!superbwarfare:butterfly_bullet"