mr:spinner_mob
Table of Contents
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
FleeingAI 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: Spinner.json
- Sprite texture:
spinner.png - Sprite dimensions: 16×16
- Animations: idle, run, attack, die
- Blood color: 0xFFBFE5B8 (light green)
String Resources
- English:
Spinner_Name= “cave spinner” (strings_all.xml#L1332) - Russian:
Spinner_Name= “пещерный паук” (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
- poison_buff - Applied on attack
- roots_buff - Immune to this
- terror_buff - Affects fleeing behavior
Related Blobs
- web_blob - Left when fleeing
Source Links
mr/spinner_mob.txt · Last modified: by 127.0.0.1
