====== Shopkeeper Mob - Code References ====== {{ rpd:images:shopkeeper_mob.png|Shopkeeper }} ===== Java Classes ===== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/npcs/Shopkeeper.java|Shopkeeper.java]] - Main Shopkeeper class implementation * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/npc/TownShopkeeper.java|TownShopkeeper.java]] - Town variant of Shopkeeper * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/npcs/ImpShopkeeper.java|ImpShopkeeper.java]] - Imp variant for Last Shop Level * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/npc/AzuterronNPC.java|AzuterronNPC.java]] - Special NPC extending Shopkeeper * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/npcs/NPC.java|NPC.java]] - Base NPC class * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/mobs/Mob.java|Mob.java]] - Base Mob class ===== Java Class Content ===== package com.watabou.pixeldungeon.actors.mobs.npcs; import com.nyrds.Packable; import com.nyrds.pixeldungeon.game.GameLoop; import com.nyrds.pixeldungeon.items.Treasury; import com.nyrds.pixeldungeon.mechanics.NamedEntityKind; import com.nyrds.pixeldungeon.windows.WndShopOptions; import com.nyrds.util.ModdingBase; import com.watabou.pixeldungeon.Badges; import com.watabou.pixeldungeon.Dungeon; import com.watabou.pixeldungeon.actors.Char; import com.watabou.pixeldungeon.actors.CharUtils; import com.watabou.pixeldungeon.actors.buffs.Regeneration; import com.watabou.pixeldungeon.effects.CellEmitter; import com.watabou.pixeldungeon.effects.particles.ElmoParticle; import com.watabou.pixeldungeon.items.Item; import com.watabou.pixeldungeon.items.bags.Bag; import com.watabou.pixeldungeon.items.food.Food; import com.watabou.pixeldungeon.items.food.OverpricedRation; import com.watabou.pixeldungeon.scenes.GameScene; import com.watabou.pixeldungeon.windows.WndBag; import org.jetbrains.annotations.NotNull; public class Shopkeeper extends NPC { { spriteClass = "spritesDesc/Shopkeeper.json"; movable = false; addImmunity(Regeneration.class); } @Packable public String bagSold = ""; @Override public void damage(int dmg, @NotNull NamedEntityKind src ) { destroy(); getSprite().killAndErase(); CellEmitter.get( getPos() ).burst( ElmoParticle.FACTORY, 6 ); } @Override public boolean reset() { return true; } @Override public boolean interact(final Char hero) { // Shop interaction logic } } ===== JSON Configuration ===== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/spritesDesc/Shopkeeper.json|Shopkeeper.json]] - Sprite configuration ===== String Resources ===== shopkeeper This stout guy looks more appropriate for a trade district in some large city than for a dungeon. His prices explain why he prefers to do business here. Welcome to the local Pixel-Mart branch.\nHow can I help you? Select item to buy Select an item to sell I have stuff to sell Let see your inventory Shop ===== Lua Scripts ===== This entity is implemented in Java, no Lua script exists ===== Usage in Code ===== * Shop painter creates Shopkeeper in shops: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/levels/painters/ShopPainter.java#L66|ShopPainter.java#L66]] * Registered in MobFactory: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/common/MobFactory.java#L262|MobFactory.java#L262]] * Used in WndDontLikeAds: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/windows/WndDontLikeAds.java#L15|WndDontLikeAds.java#L15]] * TownShopLevel creates TownShopkeeper variant: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/levels/TownShopLevel.java#L94|TownShopLevel.java#L94]] ===== Related mr Entities ===== * [[mr:npc|NPC]] * [[mr:imp_shopkeeper_mob|Imp Shopkeeper (Mob)]] * [[mr:azuterron_npc|Azuterron NPC]]