package Roguelike.Entity.ActivationAction; import Roguelike.Entity.Entity; import Roguelike.Entity.EnvironmentEntity; import Roguelike.Global; import Roguelike.Items.Item; import Roguelike.Items.TreasureGenerator; import Roguelike.Screens.GameScreen; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.XmlReader; /** * Created by Philip on 10-Feb-16. */ public class ActivationActionAddItem extends AbstractActivationAction { XmlReader.Element item; int quality; @Override public void evaluate( EnvironmentEntity owningEntity, Entity activatingEntity, float delta ) { if (item.getChildCount() > 0) { Item i = Item.load( item ); if (quality > 0) { i.quality = quality; } GameScreen.Instance.pickupQueue.add( i ); } else { int quality = this.quality > 0 ? this.quality : Global.getQuality(); Array<Item> items = TreasureGenerator.generateLoot( quality, item.getText(), MathUtils.random ); GameScreen.Instance.pickupQueue.addAll( items ); } } @Override public void parse( XmlReader.Element xml ) { item = xml; quality = xml.getIntAttribute( "Quality", -1 ); } }