// Path: core/src/com/galvarez/ttw/model/components/EventsCount.java
// public class EventsCount extends Component {
// 
//   public final ObjectIntMap<EventHandler> scores = new ObjectIntMap<>();
// 
//   public final ObjectIntMap<EventHandler> increment = new ObjectIntMap<>();
// 
//   public final ObjectIntMap<EventHandler> display = new ObjectIntMap<>();
// 
//   public final Map<EventHandler, String> reasons = new HashMap<>();
// 
//   public EventsCount() {
//   }
// 
// }


import java.util.ArrayList;
import java.util.List;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.EntitySystem;
import com.artemis.annotations.Wire;
import com.artemis.utils.ImmutableBag;
import com.galvarez.ttw.model.components.EventsCount;
package com.galvarez.ttw.model;



@Wire
public final class EventsSystem extends EntitySystem {

  public interface EventHandler {

    /** Get the score progress toward next event of this type. */
    int getProgress(Entity e);

    /** Get the reason for this event. */
    String getReason(Entity e);

    /**
     * Execute the event on the entity.
     * 
     * @return true if it could execute the event (false if some system
     *         condition prevented it)
     */
    boolean execute(Entity e);

    /** A pretty printing name for the event. */
    String getType();

  }

// Path: core/src/com/galvarez/ttw/model/components/EventsCount.java
// public class EventsCount extends Component {
// 
//   public final ObjectIntMap<EventHandler> scores = new ObjectIntMap<>();
// 
//   public final ObjectIntMap<EventHandler> increment = new ObjectIntMap<>();
// 
//   public final ObjectIntMap<EventHandler> display = new ObjectIntMap<>();
// 
//   public final Map<EventHandler, String> reasons = new HashMap<>();
// 
//   public EventsCount() {
//   }
// 
// }


// Path: core/src/com/galvarez/ttw/model/EventsSystem.java
import java.util.ArrayList;
import java.util.List;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.EntitySystem;
import com.artemis.annotations.Wire;
import com.artemis.utils.ImmutableBag;
import com.galvarez.ttw.model.components.EventsCount;

package com.galvarez.ttw.model;



@Wire
public final class EventsSystem extends EntitySystem {

  public interface EventHandler {

    /** Get the score progress toward next event of this type. */
    int getProgress(Entity e);

    /** Get the reason for this event. */
    String getReason(Entity e);

    /**
     * Execute the event on the entity.
     * 
     * @return true if it could execute the event (false if some system
     *         condition prevented it)
     */
    boolean execute(Entity e);

    /** A pretty printing name for the event. */
    String getType();

  }

  private ComponentMapper<EventsCount> counts;