Well if you really want to use that many inputs; than you could try using your points system and use if's or defines to mark output zones. Zones could e.g. look like this (just a basic example with pseudo code from the top out of my head):
Code:
//Neutral
if (points < 100) {
  _action = random(points);
  if (_action < 10) stand... return;....
  if (_action < 20) wander... return;...
  ....
}
//Friendly
if (points < 200) {
  _action = 100 + random(points-100);
  if (_action < 110) wave... return;....
  if (_action < 120) talk... return;...
  ....
}
//Aggressive
if (points < 300) {
  _action = 200 + random(points-200);
  if (_action < 210) insult... return;....
  if (_action < 220) attack... return;...
  ....
}


etc etc. This should save save you lots of if's, and you can use defines to make it more readable ofcourse.
ps: you could remove or change the random()'s lines if you dont want the randomized results.

Last edited by Reconnoiter; 02/09/17 11:16.