Table of Contents

spinner_mob - Machine Readable Reference

Entity Kind

Java Class

Java Class Content

package com.watabou.pixeldungeon.actors.mobs;
 
import com.nyrds.pixeldungeon.ai.Fleeing;
import com.nyrds.pixeldungeon.ai.Hunting;
import com.nyrds.pixeldungeon.ai.MobAi;
import com.watabou.pixeldungeon.actors.Char;
import com.watabou.pixeldungeon.actors.blobs.Blob;
import com.watabou.pixeldungeon.actors.blobs.Web;
import com.watabou.pixeldungeon.actors.buffs.Buff;
import com.watabou.pixeldungeon.actors.buffs.Poison;
import com.watabou.pixeldungeon.actors.buffs.Roots;
import com.watabou.pixeldungeon.actors.buffs.Terror;
import com.watabou.pixeldungeon.items.food.MysteryMeat;
import com.watabou.pixeldungeon.scenes.GameScene;
import com.watabou.utils.Random;
 
import org.jetbrains.annotations.NotNull;
 
public class Spinner extends Mob {
 
	public Spinner() {
		hp(ht(50));
		baseDefenseSkill = 14;
		baseAttackSkill  = 20;
		dmgMin = 12;
		dmgMax = 16;
		dr = 6;
 
		expForKill = 9;
		maxLvl = 16;
 
		loot(new MysteryMeat(), 0.125f);
 
		addResistance( Poison.class );
		addImmunity( Roots.class );
	}
 
	@Override
    public boolean act() {
		boolean result = super.act();
 
		if ((getState() instanceof Fleeing) && !hasBuff(Terror.class) && enemySeen && !getEnemy().hasBuff(Poison.class)) {
			setState(MobAi.getStateByClass(Hunting.class));
		}
		return result;
	}
 
	@Override
	public int attackProc(@NotNull Char enemy, int damage ) {
		if (Random.Int( 2 ) == 0) {
			Buff.affect( enemy, Poison.class,Random.Int( 7, 9 ) * Poison.durationFactor( enemy ) );
			setState(MobAi.getStateByClass(Fleeing.class));
		}
 
		return damage;
	}
 
	@Override
	public void move( int step ) {
		if (getState() instanceof Fleeing) {
			GameScene.add( Blob.seed( getPos(), Random.Int( 5, 7 ), Web.class ) );
		}
		super.move( step );
	}
 
}

Stats (from Java)

Resistances and Immunities

Drops

Behavior

JSON Configuration

String Resources

Lua Scripts