Tout ça c'est possible, mais comme tu l'anticipes, ça va demander un peu de prog, des trucs parfois spécifiques à chaque point :
1) Ça c'est facile, suffit d'éditer l'événement "clic" sur l'objet d'inventaire sifflet
2) Marcher aléatoirement c'est pas une fonction de base d'AGS (genre y'a pas de fonction
WalkRandomly()) mais tu peux faire un truc du genre générer des coordonnées aléatoirement, faire marcher ton perso au plus proche possible, détecter lorsqu'il peut plus se déplacer, générer de nouvelles coordonnées aléatoires, faire marchre ton perso au plus proche possible, etc.
3) Ça c'est pareil, tu peux choisir une animation aléatoirement parmi une liste prédéfinie. S'il y a des animations spécifiques par pièce, ce sera un peu plus compliqué par contre, mais y'a moyen de moyenner
4) Là ça va aussi dépendre de où dans la pièce (quelles coordonnées) ton perso arrive. Notamment, tu veux t'assurer qu'il arrive sur une zone de déplacement. Après, en ce qui concerne la fluidité de transition des animations, c'est à toi de bien faire ton taf
5) Pas sûr de voir ce que tu veux dire par là, mais de toute façon tout personnage à part le personnage joueur est un PNJ pour AGS (tu peux cliquer dessus, parler avec, la caméra le suit pas, etc.)
6) y'a pas de 6
7) Suffit d'un simple événement "parler" sur ce perso où tu le fais marcher vers les coordonnées de sortie de la pièce, puis tu utilises
ChangeRoom dessus
8} Comme pour tout ce qui est aléatoire, le secret c'est
Random9) Il existe une commande
SetAsPlayer. Les inventaires sont propres à chaque perso, donc si tu en donnes aucun à ton singe, ça devrait le faire