Table of Contents

Berserker Subclass - Code References

Java Classes

Enum Definition

From HeroSubClass.java (line 41):

BERSERKER(R.string.HeroSubClass_NameBers, R.string.HeroSubClass_DescBers, "BerserkArmor"),

Fury Activation Logic

From HeroSubClass.java (lines 198-212):

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

Fury Buff Class

From Fury.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;
    }
}

Stats from code

JSON Configuration

This entity is implemented in Java, no JSON configuration exists

String Resources

From values/strings_all.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>

From values-ru/strings_all.xml:

<string name="HeroSubClass_NameBers">берсерк</string>
<string name="HeroSubClass_DescBers">Будучи сильно раненым, _Берсерк_ впадает в состояние дикой ярости, значительно повышая свой показатель урона.</string>
<string name="Brute_Enraged">%s впал в неистовство!</string>
<string name="Brute_StaEnraged">неистовый</string>

Lua Scripts

This entity is implemented in Java, no Lua script exists