summaryrefslogblamecommitdiff
path: root/world/map/npc/015-3/pot.txt
blob: 523be31933fc2384a4585ed0697e959ca2ac1c81 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                          
                            
 

                                                          
                 
                                       
                  


                          
                                         
                         
                  
                       
                                         
                        
                  
                       
                  
                         
                                         
                       
                  
                     
                     

            
                              
            
                                             
                                       
                 

           
                      


                           
                 


                               
                 




                            
                                                              
            

                                                   
                                       
                                                               
            
                                                   
                                       
                                                               
            
                                           
                                       
                 

              
                            


                           
                 

            
                       


                           
                 


                                    
                 




                          
                                  
            
                                                          
                                       
                 


                                                                                                                                                   
                 

            
                                
            
                                                            
                                       
                 

           
                        


                           
                                                                                                         
                 


                                                      
                 
 

                
          



                                                                     
 
// The pot where the player can deposit stuff for the cat.

015-3,37,29,0|script|Pot|400
{
    set @cat, ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);

    if (@cat > 0)
        mes "It's that old pot again.";
    if (@cat == 0)
        mes "It's a pot.";
    next;

    if (@cat == 1 && @catNeedsAlone == 0)
        goto L_NeedsFood;
    if (@cat == 1)
        goto L_HasMilk;
    if (@cat == 2 && @catNeedsAlone == 0)
        goto L_NeedsFur;
    if (@cat == 2)
        goto L_HasFood;
    if (@cat == 3)
        goto L_NeedsWood;
    if (@cat == 4 && @catNeedsAlone == 1)
        goto L_HasWood;
    if (@cat >= 4)
        goto L_Close;
    goto L_NeedsMilk;

L_NeedsMilk:
    if (countitem("Milk") > 0)
        menu
            "Pour in some milk.", L_GiveMilk,
            "Leave it alone.", L_Close;
    goto L_Close;

L_GiveMilk:
    delitem "Milk", 1;
    set @cat, 1;
    callsub S_Update_Katze;
    set @catNeedsAlone, 1;
    goto L_Close;

L_HasMilk:
    mes "There is milk in it.";
    goto L_Close;

L_NeedsFood:
    mes "The milk is gone!";
    next;

    if (countitem("ChickenLeg") > 0 && countitem("Steak") > 0)
        menu
            "Put in a chicken leg.", L_GiveChicken,
            "Put in a steak.", L_GiveSteak,
            "Leave it alone.", L_Close;
    if (countitem("ChickenLeg") > 0 && countitem("Steak") == 0)
        menu
            "Put in a chicken leg.", L_GiveChicken,
            "Leave it alone.", L_Close;
    if (countitem("ChickenLeg") == 0 && countitem("Steak") > 0)
        menu
            "Put in a steak.", L_GiveSteak,
            "Leave it alone.", L_Close;
    goto L_Close;

L_GiveChicken:
    delitem "ChickenLeg", 1;
    set @cat, 2;
    callsub S_Update_Katze;
    set @catNeedsAlone, 1;
    goto L_Close;

L_GiveSteak:
    delitem "Steak", 1;
    set @cat, 2;
    callsub S_Update_Katze;
    set @catNeedsAlone, 1;
    goto L_Close;

L_HasFood:
    mes "There is some food in it.";
    goto L_Close;

L_NeedsFur:
    mes "And it's empty!";
    next;

    if (countitem("WhiteFur") > 0)
        menu
            "Put a white fur next to the pot.", L_GiveFur,
            "Leave it alone.", L_Close;
    goto L_Close;

L_GiveFur:
    mes "You put down the fur, but the cat doesn't seem to take any notice. Maybe there's something else you could do. You pick the fur up again.";
    goto L_Close;

L_NeedsWood:
    if (countitem("RawLog") > 0)
        menu
            "Put a wooden log next to the pot.", L_GiveWood,
            "Leave it alone.", L_Close;
    goto L_Close;

L_GiveWood:
    delitem "RawLog", 1;
    set @cat, 4;
    callsub S_Update_Katze;
    set @catNeedsAlone, 1;
    mes "You put the wooden log next to the pot. The cat eyes it suspiciously, but remains on her spot.";
    goto L_Close;

L_HasWood:
    mes "A wooden log is patiently lying next to it.";
    goto L_Close;

L_Close:
    set @cat, 0;
    close;

S_Update_Katze:
    set Katze, (Katze & ~(NIBBLE_0_MASK)) | (@cat << NIBBLE_0_SHIFT);
    return;
}