<?xml version="1.0" ?>
<?xml-stylesheet href="virtual3.xsl" type="text/xsl"?>
<animal>
  <animalname>Betta Fish</animalname>
  <statevar name="interval">1000</statevar>
  <statevar name="elapsed">0</statevar>
  <statevar name="wagtime">0</statevar>
  <statevar name="weight" show="yes">100</statevar>
  <state name="normal" start="yes">
     <picture>fishswim2.gif</picture>
     <label>Fish is swimming.</label>
     <switchcondition>
       <condition>weight>120</condition>
       <truestate>bloated</truestate>
     </switchcondition>
     <switchcondition>
       <condition>80>weight</condition>
       <truestate>starving</truestate>
     </switchcondition>
  </state>
  <state name="bloated">
     <picture>bloated.gif</picture>
     <label>Fish is bloated.</label>
     <switchcondition>
        <condition>120>weight</condition>
        <truestate>normal</truestate>
     </switchcondition>
     <switchcondition>
        <condition>weight>150</condition>
        <truestate>fatdead</truestate>
     </switchcondition>
   </state>
   <state name="fatdead" stopstate="yes">
      <picture>dead.gif</picture>
      <label>Fish is dead because you overfed him.</label>
   </state>
   <state name="starving">
       <picture>starving.gif</picture>
       <label>Fish is starving.</label>
       <switchcondition>
         <condition>weight>80</condition>
         <truestate>normal</truestate>
       </switchcondition>
       <switchcondition>
          <condition>60>weight</condition>
          <truestate>thindead</truestate>
       </switchcondition>
   </state>  
   <state name="thindead" stopstate="yes">
     <picture>dead.gif</picture>
     <label>Fish is dead because you starved him.</label>
   </state>
   <state name="bubbles">
      <picture>bubbles.gif</picture>
      <label>Fish is making a bubblenest.</label>
      <switchcondition>
        <condition>(wagtime++)>5</condition>
        <truestate>normal</truestate>
      </switchcondition>
   </state>
   <state name="flare">
     <picture>angryflare.gif</picture>
     <label>Fish is flaring at you. </label>
    <switchcondition>
        <condition>(wagtime++)>5</condition>
        <truestate>normal</truestate>
      </switchcondition>
   </state>
   <action label="Feed Fish">
    <procedurename>feedfish</procedurename>
    <procedure>weight=weight+10;elapsed=0;
    </procedure>
   </action>
   <action label="Play with fish">
     <procedurename>playfish</procedurename>
     <procedure> wagtime=0; prewagcurrent=curstate;
       if (Math.random()>Math.min(elapsed/interval,19)/20) 
         {curstate="bubbles";}
       else {curstate="flare";}</procedure>
   </action>
   <intervalaction>
      elapsed=elapsed+interval;
      weight=weight-1;
   </intervalaction>
</animal>