====== spinner_mob - Machine Readable Reference ====== ===== Entity Kind ===== * Entity Kind: ''Spinner'' * Used in JSON configs: ''mobsDesc/Spinner.json'' (if exists), ''spritesDesc/Spinner.json'' ===== Java Class ===== * Full Path: ''com/watabou/pixeldungeon/actors/mobs/Spinner.java'' * Parent Class: ''Mob'' * AI States: ''Fleeing'', ''Hunting'' ===== 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) ===== * HP: 50 * Base Defense Skill: 14 * Base Attack Skill: 20 * Damage: 12-16 * Defense Rating: 6 * EXP for Kill: 9 * Max Level: 16 ===== Resistances and Immunities ===== * Resistance: ''Poison'' * Immunity: ''Roots'' ===== Drops ===== * ''MysteryMeat'' (12.5% chance) ===== Behavior ===== * Uses ''Fleeing'' AI state when poisoned enemy is present * On attack: 50% chance to poison enemy for 7-9 turns and enter fleeing state * When fleeing: leaves web blobs at position (5-7 units) ===== JSON Configuration ===== * Sprite Configuration: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/spritesDesc/Spinner.json|Spinner.json]] * Sprite texture: ''spinner.png'' * Sprite dimensions: 16x16 * Animations: idle, run, attack, die * Blood color: 0xFFBFE5B8 (light green) ===== String Resources ===== * English: ''Spinner_Name'' = "cave spinner" ([[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values/strings_all.xml#L1332|strings_all.xml#L1332]]) * Russian: ''Spinner_Name'' = "пещерный паук" ([[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/res/values-ru/strings_all.xml#L2115|strings_all.xml#L2115]]) * Objective form (English): ''Spinner_Name_Objective'' = "cave spinner" * Objective form (Russian): ''Spinner_Name_Objective'' = "паука" ===== Lua Scripts ===== * No Lua scripts found for this entity (implemented entirely in Java) ===== Related Buffs ===== * [[mr:poison_buff|poison_buff]] - Applied on attack * [[mr:roots_buff|roots_buff]] - Immune to this * [[mr:terror_buff|terror_buff]] - Affects fleeing behavior ===== Related Blobs ===== * [[mr:web_blob|web_blob]] - Left when fleeing ===== Source Links ===== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Spinner.java|Spinner.java on GitHub]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/spritesDesc/Spinner.json|Spinner.json on GitHub]] {{tag> mr mobs undead caveSpinner reference}}