munch
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.
 
 
 

61 lines
1.8 KiB

  1. "use strict";
  2. function attack(attacker, defender, baseDamage) {
  3. let damage = Math.round((Math.random() * 0.5 - 0.25 + 1) * baseDamage);
  4. defender.health -= damage;
  5. return damage;
  6. }
  7. function punchAttack(attacker) {
  8. return {
  9. name: "Punch",
  10. desc: "Punch a nerd",
  11. attack: function(defender) {
  12. return "You punch the " + defender.description() + " for " + attack(attacker, defender, attacker.str) + " damage";
  13. },
  14. attackPlayer: function(defender) {
  15. return "The " + attacker.description() + " punches you for " + attack(attacker, defender, attacker.str) + " damage";
  16. }
  17. };
  18. }
  19. function flankAttack(attacker) {
  20. return {
  21. name: "Flank",
  22. desc: "Be sneaky",
  23. attack: function(defender) {
  24. return "You run around the " + defender.description() + " and attack for " + attack(attacker, defender, attacker.dex) + " damage";
  25. },
  26. attackPlayer: function(defender) {
  27. return "The " + attacker.description() + " runs past you, then turns and hits you for " + attack(attacker, defender, attacker.str) + " damage";
  28. }
  29. };
  30. }
  31. function devourPlayer(attacker) {
  32. return {
  33. name: "Devours YOU!",
  34. desc: "You won't see this",
  35. conditions: [
  36. function(prefs) { return prefs.player.prey; }
  37. ],
  38. attackPlayer: function(defender) {
  39. changeMode("eaten");
  40. return "The voracious " + attacker.description() + " pins you down and devours you in seconds.";
  41. }
  42. }
  43. }
  44. function poke(attacker) {
  45. return {
  46. name: "Poke",
  47. desc: "Poke a nerd",
  48. attack: function(defender) {
  49. return "You poke the " + defender.description() + " for " + attack(attacker, defender, 1e12) + " damage";
  50. },
  51. attackPlayer: function(defender) {
  52. return "The " + attacker.description() + " pokes you on the snout for " + attack(attacker, defender, 1e12) + " damage";
  53. }
  54. };
  55. }