User Tools

Site Tools


mr:berserker_subclass

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
mr:berserker_subclass [2026/09/06 00:54] – Wiki maintenance: Fix compliance issues for 5 random pages Wiki Maintenancemr:berserker_subclass [2026/09/06 00:56] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Berserker Subclass - Code References ======
  
 +===== Java Classes =====
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/hero/HeroSubClass.java|HeroSubClass.java]] - Subclass enum definition
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/buffs/Fury.java|Fury.java]] - Fury buff class
 +  * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/armor/BerserkArmor.java|BerserkArmor.java]] - Special subclass armor
 +
 +===== Enum Definition =====
 +From HeroSubClass.java (line 41):
 +<code java>
 +BERSERKER(R.string.HeroSubClass_NameBers, R.string.HeroSubClass_DescBers, "BerserkArmor"),
 +</code>
 +
 +===== Fury Activation Logic =====
 +From HeroSubClass.java (lines 198-212):
 +<code java>
 +@Override
 +public int charGotDamage(int damage, NamedEntityKind src, Char target) {
 +    switch (this) {
 +        case BERSERKER:
 +            if (0 < target.hp() && target.hp() <= target.ht() * Fury.LEVEL) {
 +                if (!target.hasBuff(BuffFactory.FURY)) {
 +                    Buff.affect(target, BuffFactory.FURY);
 +                }
 +            }
 +            break;
 +    }
 +    return damage;
 +}
 +</code>
 +
 +===== Fury Buff Class =====
 +From Fury.java:
 +<code java>
 +package com.watabou.pixeldungeon.actors.buffs;
 +
 +import com.nyrds.LuaInterface;
 +import com.nyrds.pixeldungeon.ml.R;
 +import com.nyrds.platform.util.StringsManager;
 +import com.watabou.pixeldungeon.actors.Char;
 +import com.watabou.pixeldungeon.actors.CharUtils;
 +import com.watabou.pixeldungeon.sprites.CharSprite;
 +import com.watabou.pixeldungeon.ui.BuffIndicator;
 +import com.watabou.pixeldungeon.utils.GLog;
 +import org.jetbrains.annotations.NotNull;
 +
 +@LuaInterface
 +public class Fury extends Buff {
 +
 +    public static final float LEVEL = 0.4f;
 +
 +    @Override
 +    public void act() {
 +        if (target.hp() > target.ht() * LEVEL) {
 +            detach();
 +        }
 +
 +        spend( TICK * 10 );
 +    }
 +
 +    @Override
 +    public boolean attachTo(@NotNull Char target) {
 +        if (CharUtils.isVisible(target)) {
 +            GLog.w(StringsManager.getVar(R.string.Brute_Enraged), target.getName() );
 +            target.showStatus( CharSprite.NEGATIVE, StringsManager.getVar(R.string.Brute_StaEnraged));
 +        }
 +        return super.attachTo(target);
 +    }
 +
 +    @Override
 +    public int attackProc(Char attacker, Char defender, int damage) {
 +        return damage * 2;
 +    }
 +
 +    @Override
 +    public int icon() {
 +        return BuffIndicator.FURY;
 +    }
 +}
 +</code>
 +
 +===== Stats from code =====
 +  * Fury Activation Threshold: 40% of max HP (Fury.LEVEL = 0.4f)
 +  * Fury Damage Bonus: 2x (damage * 2)
 +  * Fury Duration: Persistent while HP <= 40%
 +  * Associated Armor: "BerserkArmor"
 +
 +===== JSON Configuration =====
 +This entity is implemented in Java, no JSON configuration exists
 +
 +===== String Resources =====
 +From values/strings_all.xml:
 +<code xml>
 +<string name="HeroSubClass_NameBers">berserker</string>
 +<string name="HeroSubClass_DescBers">When severely wounded, the _Berserker_ enters a state of wild fury significantly increasing his damage output.</string>
 +<string name="Brute_Enraged">%s becomes enraged!</string>
 +<string name="Brute_StaEnraged">enraged</string>
 +</code>
 +
 +From values-ru/strings_all.xml:
 +<code xml>
 +<string name="HeroSubClass_NameBers">берсерк</string>
 +<string name="HeroSubClass_DescBers">Будучи сильно раненым, _Берсерк_ впадает в состояние дикой ярости, значительно повышая свой показатель урона.</string>
 +<string name="Brute_Enraged">%s впал в неистовство!</string>
 +<string name="Brute_StaEnraged">неистовый</string>
 +</code>
 +
 +===== Lua Scripts =====
 +This entity is implemented in Java, no Lua script exists
 +
 +===== Related mr Entities =====
 +  * [[mr:warrior_class|Warrior (Class)]] - Parent class
 +  * [[mr:fury_buff|Fury (Buff)]] - Buff that powers Berserker
 +  * [[mr:berserk_armor_item|Berserker Armor (Item)]] - Special subclass armor
 +  * [[mr:gladiator_subclass|Gladiator (Subclass)]] - Alternative Warrior subclass
mr/berserker_subclass.txt · Last modified: by 127.0.0.1