import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)


public class Astronaut extends UFO
{
    // Attribute
    public Raumschiff raumschiffObjekt; // Der Astronaut muss das Objekt raumschiff kennen
    
    
    // Konstruktor
    public Astronaut()
    {
       
    }
    
    // Methoden
    public void act()
    {
        // Objekt raumschiff holen
        this.raumschiffObjektHolen();
        
        String message = "";
        if(raumschiffObjekt.anzahlNachfuellVorgaenge <= 0)
        {
            sprechblaseErzeugen("Sauerstoffvorrat = " + raumschiffObjekt.sauerstoffvorrat + "\nKeine Nachfüllvorgänge mehr möglich.");
        }
        else if(!raumschiffObjekt.getNachfuellenMoeglich())
        {
            sprechblaseErzeugen("Noch " + raumschiffObjekt.anzahlNachfuellVorgaenge + " Füllungen möglich.\nSauerstoffvorrat: " + raumschiffObjekt.sauerstoffvorrat + "\nTaste n/a\nNachfüllsystem lädt auf ...");
        }
        else if(Greenfoot.isKeyDown(raumschiffObjekt.sauerstoffnachfuelltaste))
        {
            raumschiffObjekt.erhoeheSauerstoffvorrat(raumschiffObjekt.getNachfuellmengSauerstoff()); 
            raumschiffObjekt.setNachfuellenMoeglich(false);
            raumschiffObjekt.reduziereAnzahlNachfuellvorgaenge();
        }
        else
        {
            sprechblaseErzeugen("Noch " + raumschiffObjekt.anzahlNachfuellVorgaenge + " Füllungen möglich.\nSauerstoffvorrat: " + raumschiffObjekt.sauerstoffvorrat + "\nTaste " + raumschiffObjekt.sauerstoffnachfuelltaste + "\n(füllt " + raumschiffObjekt.getNachfuellmengSauerstoff() + " ml O2 nach)");
        }
         
        }
        
    
    public void raumschiffObjektHolen()
    {
        raumschiffObjekt = (Raumschiff) this.getWorld().getObjects(Raumschiff.class).get(0);
    }
    
    
     public void sprechblaseErzeugen(String spruch)
    {
        getWorld().removeObjects(getWorld().getObjects(SprechblaseAstronaut.class));
        SprechblaseAstronaut sk = new SprechblaseAstronaut();
        getWorld().addObject(sk, getX(), getY()+30);
        sk.textAusgeben(spruch);
    }
 
    
    
    
    

    
    
 
     

}
