1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| sub new {
my ($classe, $ref_arguments) = @_ ;
$classe = ref($classe)||$classe ;
my $this = {};
#On a besoin de sa position, son but, ses niveaux de besoin (accessoirement, de son nom)
$this -> {LISTE_LOGS} = $ref_arguments -> {liste_logs} ;
$this -> {_NOM} = $ref_arguments -> {nom} ;
$this -> {_NUMERO} = $ref_arguments -> {numero} ;
$this -> {POSITION} = $ref_arguments -> {position} ;
$this -> {OBJECTIF} = $ref_arguments -> {objectif} ;
$this -> {NEXT_MOVE} = 0 ;
$this -> {FAIM} = $ref_arguments -> {faim} ;
$this -> {FATIGUE} = $ref_arguments -> {fatigue} ;
$this -> {SOLITUDE} = $ref_arguments -> {solitude} ;
$this -> {ENNUI} = $ref_arguments -> {ennui} ;
$this -> {LAST_ACTION} = (0,0,0,0);
# On ajoutera plus tard le niveau hierarchique ...?!
bless($this, $classe);
# print "SOURIS : Souris créée : ". $this ."<br>";
$nb_souris++ ;
return $this ;
}
#### Pour le traitement des mouvements, on verra plus tard
sub entrer_salle{
my ($this, $salle, $date) = @_ ;
$this -> {POSITION} = $salle ;
}
sub sortir_salle{
my ($this, $salle, $date) = @_ ;
$this -> {POSITION} = "tuyau" ;
}
# Assouvissement des besoins
sub manger{
my ($duree) = @_ || 1;
$this -> {FAIM} += $eating_rates{faim} *$duree ;
$this -> {FATIGUE} += $eating_rates{fatigue}*$duree ;
$this -> {SOLITUDE} += $eating_rates{solitude}*$duree ;
$this -> {ENNUI} += $eating_rates{ennui} *$duree ;
$this -> {LAST_ACTION} += (0,1,1,1);
$this -> {LAST_ACTION} -> [0] = 0 ;
}
sub dormir{
my ($duree) = @_ || 1;
$this -> {FAIM} += $sleeping_rates{faim}*$duree ;
$this -> {FATIGUE} += $sleeping_rates{fatigue}*$duree ;
$this -> {SOLITUDE} += $sleeping_rates{solitude}*$duree ;
$this -> {ENNUI} += $sleeping_rates{ennui}*$duree ;
$this -> {LAST_ACTION} += (1,0,1,1);
$this -> {LAST_ACTION} -> [1] = 0 ;
}
sub papoter{ #On ne peut papoter que si on est au moins 2 dans le hall !
my ($duree) = @_ || 1;
$this -> {FAIM} += $chatting_rates{faim}*$duree ;
$this -> {FATIGUE} += $chatting_rates{fatigue}*$duree ;
$this -> {SOLITUDE} += $chatting_rates{solitude}*$duree ;
$this -> {ENNUI} += $chatting_rates{ennui}*$duree ;
$this -> {LAST_ACTION} += (1,1,0,1);
$this -> {LAST_ACTION} -> [2] = 0 ;
}
sub courir{
my ($duree) = @_ || 1;
$this -> {FAIM} += $running_rates{faim} *$duree ;
$this -> {FATIGUE} += $running_rates{fatigue}*$duree ;
$this -> {SOLITUDE} += $running_rates{solitude}*$duree ;
$this -> {ENNUI} += $running_rates{ennui}*$duree ;
$this -> {LAST_ACTION} += (1,1,1,0);
$this -> {LAST_ACTION} -> [3] = 0 ;
}
sub hesiter{ #Parce qu'une souris ne se décide pas si efficacement qu'on croit !
my ($duree) = @_ || 1;
$this -> {FAIM} += $waiting_rates{faim} *$duree ;
$this -> {FATIGUE} += $waiting_rates{fatigue}*$duree ;
$this -> {SOLITUDE} += $waiting_rates{solitude}*$duree ;
$this -> {ENNUI} += $waiting_rates{ennui}*$duree ;
$this -> {LAST_ACTION} = (1,1,1,1);
} |
Partager