A minimalist virtual pet: feed, play, clean. Three stats (Hunger, Happiness, Hygiene) decay over time; hit zero → game over.
// Pet.as
package {
public class Pet {
public var hunger:uint = 100;
public var happiness:uint = 100;
public var hygiene:uint = 100;
private var decayTimer:Timer;
public function Pet() {
decayTimer = new Timer(5000); // 5 sec tick
decayTimer.addEventListener(TimerEvent.TIMER, decay);
decayTimer.start();
}
private function decay(e:TimerEvent):void {
hunger = Math.max(0, hunger - 2);
happiness = Math.max(0, happiness - 1);
hygiene = Math.max(0, hygiene - 1);
dispatchEvent(new Event("statsChanged"));
}
public function feed():void {
hunger = Math.min(100, hunger + 15);
}
public function play():void {
happiness = Math.min(100, happiness + 20);
}
public function clean():void {
hygiene = Math.min(100, hygiene + 25);
}
public function isAlive():Boolean {
return hunger>0 && happiness>0 && hygiene>0;
}
}
}
Main.as → instantiate Pet, add listeners to btnFeed/btnPlay/btnClean, update progress bars on "statsChanged", check isAlive() each tick → GameOver screen.
Compile → `.swf` → embed in HTML or wrap with AIR for desktop/mobile. Flash Player EOL? Port to OpenFL/Haxe for native targets.