====== Burning Fist Mob - Code References ======
{{ rpd:images:burning_fist_mob.png|Burning Fist }}
===== Java Classes =====
* [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/guts/BurningFist.java|BurningFist.java]]
===== Java Class Content =====
package com.nyrds.pixeldungeon.mobs.guts;
import com.nyrds.pixeldungeon.ai.MobAi;
import com.nyrds.pixeldungeon.ai.Wandering;
import com.nyrds.pixeldungeon.mechanics.NamedEntityKind;
import com.nyrds.pixeldungeon.ml.R;
import com.nyrds.pixeldungeon.mobs.common.IZapper;
import com.nyrds.platform.util.StringsManager;
import com.watabou.pixeldungeon.actors.Char;
import com.watabou.pixeldungeon.actors.blobs.Blob;
import com.watabou.pixeldungeon.actors.blobs.Fire;
import com.watabou.pixeldungeon.actors.blobs.ToxicGas;
import com.watabou.pixeldungeon.actors.buffs.Amok;
import com.watabou.pixeldungeon.actors.buffs.Burning;
import com.watabou.pixeldungeon.actors.buffs.Sleep;
import com.watabou.pixeldungeon.actors.buffs.Terror;
import com.watabou.pixeldungeon.actors.mobs.Mob;
import com.watabou.pixeldungeon.items.wands.WandOfFirebolt;
import com.watabou.pixeldungeon.levels.Level;
import com.watabou.pixeldungeon.mechanics.Ballistica;
import com.watabou.pixeldungeon.scenes.GameScene;
import org.jetbrains.annotations.NotNull;
public class BurningFist extends Mob implements IZapper {
{
hp(ht(400));
baseDefenseSkill = 25;
baseAttackSkill = 26;
expForKill = 0;
dmgMin = 40;
dmgMax = 62;
dr = 15;
setState(MobAi.getStateByClass(Wandering.class));
addResistance(ToxicGas.class);
addImmunity(Amok.class);
addImmunity(Sleep.class);
addImmunity(Terror.class);
addImmunity(Burning.class);
addImmunity(WandOfFirebolt.class);
}
public BurningFist() {
}
@Override
public boolean canAttack(@NotNull Char enemy) {
return Ballistica.cast(getPos(), enemy.getPos(), false, true) == enemy.getPos();
}
@Override
public boolean attack(@NotNull Char enemy) {
if (super.attack(enemy)) {
if (!adjacent(enemy)) {
enemy.getSprite().flash();
}
return true;
}
return false;
}
@Override
public boolean act() {
for (int i = 0; i < Level.NEIGHBOURS9.length; i++) {
GameScene.add(Blob.seed(getPos() + Level.NEIGHBOURS9[i], 2, Fire.class));
}
return super.act();
}
@Override
public void damage(int dmg, @NotNull NamedEntityKind src) {
for (Mob mob : level().mobs) {
mob.beckon(getPos());
}
super.damage(dmg, src);
}
@Override
public String getDescription() {
return StringsManager.getVar(R.string.Yog_Desc);
}
@Override
public boolean canBePet() {
return false;
}
}
===== Usage in Other Java Classes =====
* [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/rings/RingOfElements.java|Used in RingOfElements.java]]
* [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/guts/YogsEye.java|Referenced in YogsEye.java]]
* [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/common/MobFactory.java|Registered in MobFactory.java]]
===== String Resources =====
Burning Fist
masculine
Used for Burning Fist description (shares Yog's description)
**Note:** The BurningFist uses `Yog_Desc` string resource for its description, not a dedicated `BurningFist_Desc` resource.
===== Lua Scripts =====
This entity is implemented in Java, no Lua script exists
===== JSON Configuration =====
This entity is implemented in Java as a class, no JSON configuration exists