You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
2.1 KiB

  1. const availability_map = {
  2. 'Mercenaries': {
  3. 'Light Infantry': ['4d100', '5d20', '5d10', '3d4', '1d6', '1d2'],
  4. 'Heavy Infantry': ['2d100', '5d10', '3d8', '1d8', '1d3', '1d100<85'],
  5. 'Slinger': ['8d20', '4d10', '2d10', '1d6', '1d2', '1d100<70'],
  6. 'Bowman': ['8d20', '4d10', '2d10', '1d6', '1d2', '1d100<70'],
  7. 'Crossbowman': ['8d20', '4d10', '2d10', '1d6', '1d2', '1d100<70'],
  8. 'Longbowman': ['4d20', '2d10', '1d10', '1d3', '1', '1d100<33'],
  9. 'Light Cavalry': ['4d20', '2d10', '1d10', '1d3', '1', '1d100<33'],
  10. 'Mounted Crossbowman': ['3d20', '4d4', '2d4', '1d2', '1d100<70', '1d100<23'],
  11. 'Horse Archers': ['3d20', '4d4', '2d4', '1d3', '1d100<70', '1d100<23'],
  12. 'Medium Cavalry': ['3d20', '4d4', '2d4', '1d2', '1d100<70', '1d100<23'],
  13. 'Heavy Cavalry': ['4d10', '1d10', '1d6', '2d100<50', '1d100<50', '1d100<15'],
  14. 'Cataphract Cavalry': ['3d10', '1d8', '1d4', '2d100<33', '1d100<40', '1d100<10'],
  15. 'Beast Riders': ['3d10', '1d8', '1d4', '2d100<33', '1d100<40', '1d100<10'],
  16. },
  17. 'Specialists': {
  18. },
  19. 'Henchmen': {
  20. 'Normal Men': ['4d100', '5d20', '4d8', '3d4', '1d6', '1d2'],
  21. 'Level 1': ['5d10', '2d6', '1d4', '1d2', '1d100<65', '1d100<20'],
  22. 'Level 2': ['3d10', '2d4', '1d3', '1', '1d100<40', '1d100<15'],
  23. 'Level 3': ['1d10', '1d3', '1d100<85', '1d100<33', '1d100<15', '1d100<5'],
  24. 'Level 4': ['1d6', '1d2', '1d100<45', '1d100<15', '1d100<5', '0']
  25. },
  26. };
  27. on("chat:message", function(msg) {
  28. if(msg.type == "api" && msg.content.indexOf("!hirelingavailability") !== -1) {
  29. var attrs = msg.content.split(' ');
  30. attrs[2] = attrs[2].replace('-', ' ');
  31. if(attrs[1] in availability_map && attrs[2] in availability_map[attrs[1]]) {
  32. let roll_text = availability_map[attrs[1]][attrs[2]][attrs[3] - 1];
  33. let template = `&{template:acks} {{name=Hireling Availability}} {{subheader=${attrs[1]} - ${attrs[2]}}} {{desc=Market Class ${attrs[3]}}} {{Available=[[${roll_text}]]}}`;
  34. sendChat(msg.who, template);
  35. }
  36. }
  37. });