/**
* DefaultEnemyManager.java
*/
package rampancy.standard;
import rampancy.*;
import rampancy.util.*;
import java.awt.Graphics2D;
import java.util.*;
/**
* @author Matthew Chun-Lum
*
*/
public class RDefaultEnemyManager implements REnemyManager {
private HashMap<String, REnemyRobot> enemies;
private RampantRobot reference;
public RDefaultEnemyManager(RampantRobot reference) {
enemies = new HashMap<String, REnemyRobot>();
this.reference = reference;
}
public void updateReference(RampantRobot reference) {
this.reference = reference;
for(REnemyRobot enemy : enemies.values())
enemy.updateReference(reference);
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#add(java.lang.String)
*/
public REnemyRobot add(String name) {
System.out.println("Tracking enemy: " + name);
enemies.put(name, new REnemyRobot(name, reference));
REnemyRobot enemy = enemies.get(name);
enemy.addListener(RampantRobot.getWaveManager());
return enemy;
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#findOrCreateByName(java.lang.String)
*/
public REnemyRobot findOrCreateByName(String name) {
if(enemies.containsKey(name))
return get(name);
return add(name);
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#get(java.lang.String)
*/
public REnemyRobot get(String name) {
return enemies.get(name);
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#remove(java.lang.String)
*/
public boolean remove(String name) {
return (enemies.remove(name) != null);
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#resetAll()
*/
public void resetAll() {
for(REnemyRobot enemy : enemies.values())
enemy.resetState();
}
/* (non-Javadoc)
* @see rampancy.REnemyManager#draw(rampancy.Graphcs2D)
*/
public void draw(Graphics2D g) {
for(REnemyRobot enemy : enemies.values())
enemy.draw(g);
}
}