package uk.co.patrickhaston.mars;

public class MarsDiscoveries extends MarsArray 
{
  public MarsDiscoveries(MarsModel model)
  {
    super(model);
    this.CollectionName = "[Discoveries]";
  }

  public void readData(String line)
  {
    int idx = readIndex(line);
    if (idx>0)
    {
      MarsDiscovery d = new MarsDiscovery(line);

      this.setElementAt(d, idx);
    }
  }

  public int newDiscovery(int technology, int discoveredBy, int settlement)
  {
    String desc = ((MarsTechnology) theModel.Technologies.elementAt(technology)).name
      + " was discovered by " +
      ((MarsPerson) theModel.People.elementAt(discoveredBy)).getName();
    if(settlement > 0)
      desc = desc + " for " +
        ((MarsSettlement) theModel.Settlements.elementAt(settlement)).getName();
    desc = desc + ".";
      
    MarsDiscovery d = new MarsDiscovery(0, technology, discoveredBy, settlement, desc);

    // Add to the list
    if (this.size() < 1) this.addElement(null);
    d.setId(size());
    this.addElement(d);
    return (this.size() - 1);
  }
  
  public boolean isDiscovered(int techId)
  {
    MarsDiscovery d = null;
    if( size() > 0)
    {
      for(int i=1; i<size(); i++)
      {
        d = (MarsDiscovery) get(i);
        if(d != null)
        {
          if(d.getTech() == techId)
          {
            return true;
          }
        }
      }
    }
    return false;
  }
}
