lawsCTRL.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /* c'est la table qui contient toutes les lois choisi par le joueur */
  2. var tableLaws = [];
  3. var tableEventsLaws = [];
  4. /* Lister les lois votee */
  5. function genListeTableLaws() {
  6. let res = "";
  7. for (var i = 0; i < tableLaws.length; i++) {
  8. res = res + genTableLaw(tableLaws[i][0].id, tableLaws[i][1]);
  9. }
  10. return res;
  11. }
  12. function genTableLaw(lawID, lawLevel) {
  13. return '<div><p>' + laws[lawID].nom + '</p><p>' + laws[lawID].descriptions[lawLevel] + "</p></div>";
  14. }
  15. function genTableEventsLaw(eventID, id) {
  16. return '<div><p>' + events[eventID].lois[id].nom + '</p><p>' + events[eventID].lois[id].descriptions[0] + "</p></div>";
  17. }
  18. /* id d'une loi non evenementiel au hazard */
  19. function randLaw(selectedLaws){
  20. let found = false;
  21. let id;
  22. while (!found) {
  23. if ((tableLaws.length + selectedLaws.length) >= laws.length) {
  24. id = -1;
  25. break;
  26. }
  27. id = randInt(0, laws.length - 1);
  28. found = true;
  29. for (var i = 0; i < selectedLaws.length; i++) {
  30. if (selectedLaws[i].id == id) {
  31. found = false;
  32. }
  33. }
  34. for (var i = 0; i < tableLaws.length; i++) {
  35. if (tableLaws[i][0].id == id) {
  36. found = false;
  37. }
  38. }
  39. }
  40. return id;
  41. }
  42. const numberAddLaws = 3;
  43. function genListeAddLaws() {
  44. console.log("genListeAddLaws");
  45. let selectedLaws = [];
  46. let res = "";
  47. for (var i = 0; i < numberAddLaws; i++) {
  48. let newLaw = randLaw(selectedLaws);
  49. selectedLaws.push(laws[newLaw]);
  50. if (newLaw > -1) {
  51. res = res + genAddLaw(newLaw);
  52. }
  53. }
  54. return res;
  55. }
  56. function genAddLaw(id){
  57. return "<div onClick=\"addLaw(" + id + ")\"><p>" + laws[id].nom + '</p><p>' + laws[id].descriptions[0] + "</p></div>";
  58. }
  59. function addLaw(id){
  60. tableLaws.unshift([laws[id], 0]);
  61. updateIndicatorsAddLaws(laws[id]);
  62. turnForward();
  63. }
  64. /* Ajouter une loi evenementiel */
  65. function genAddEventLaw(eventID, id){
  66. return "<div onClick=\"addEventLaw(" + eventID + "," + id + ")\"><p>" + events[eventID].lois[id].nom + '</p><p>' + events[eventID].lois[id].descriptions[0] + "</p></div>";
  67. }
  68. function addEventLaw(eventID, id){
  69. tableEventsLaws.unshift([eventID, id]);
  70. updateIndicatorsAddLaws(events[eventID].lois[id]);
  71. turnForward();
  72. }
  73. /* Supprimer une loi */
  74. function genListeRemoveLaws() {
  75. let res = "";
  76. for (var i = 0; i < tableLaws.length; i++) {
  77. res = res + genRemoveLaw(tableLaws[i][0].id, tableLaws[i][1], i);
  78. }
  79. return res;
  80. }
  81. function genRemoveLaw(lawID, lawLevel, num) {
  82. return '<div onClick=\"removeLaw('+ num + "," + lawID + ')\"><p>' + laws[lawID].nom + '</p><p>' + laws[lawID].descriptions[lawLevel] + "</p></div>";
  83. }
  84. function removeLaw(pos, lawID){
  85. tableLaws.splice(pos, 1);
  86. updateIndicatorsRemoveLaws(laws[lawID]);
  87. turnForward()
  88. }
  89. /* Ameliorer une loi */
  90. function genListeUpgradeLaws() {
  91. let res = "";
  92. let num = 0;
  93. for (var i = 0; i < tableLaws.length; i++) {
  94. if (tableLaws[i][1] < 2) {
  95. res = res + genUpgradeLaw(tableLaws[i][0].id, tableLaws[i][1], num);
  96. num++;
  97. }
  98. }
  99. return res;
  100. }
  101. function genUpgradeLaw(lawID, lawLevel, num) {
  102. return "<div onClick=\"upgradeLaw(" + num + "," + lawID + ")\"><p>" + laws[lawID].nom + '</p><p>' + laws[lawID].descriptions[lawLevel] + "</p></div>";
  103. }
  104. function upgradeLaw(pos, lawID){
  105. tableLaws[pos][1] = tableLaws[pos][1] + 1;
  106. updateIndicatorsUpgradeLaws(laws[lawID]);
  107. turnForward()
  108. }