Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var PersonalInformation, LocalInformation, ItemInformation, Faction, MinorBane, MinorBoon, MinorQuest, MinorEnemy, MajorBane, MajorBoon, MajorQuest, MajorEnemy, OnTheRun, Vendetta, BuyingOrSelling, GoodDeeds, EvilDeeds, Haunted, Cursed, Treasure, Emergency, Warning, SocialEvents, PoliticalEvents, ReligiousEvents, FaithTouched, WeaveTouched, MysteryCult;
  2.  
  3. setup.createRumour = function(base) {
  4.     var rumour = Object.assign({
  5.       start: PersonalInformation()
  6.       // start: [PersonalInformation(), LocalInformation(), ItemInformation()].random();
  7.     }, base);
  8.  
  9.  
  10. // A - Personal Information
  11. function PersonalInformation() {
  12.       rumour.PersonalInformation = ["gives a secret about " + minorBoon(),
  13.       "a family emergency; " + Emergency(),
  14.       "passes along a rumor (check Ladder) about the PC as told by a friend or Enemy (Q)(R)",
  15.       "gives information that confirms a suspicion held by the PC or the Party",
  16.       "It will concern you that " + Warning(),
  17.       "gives Exact Knowledge about information the PC or Party has been investigating",
  18.       "passes along knowledge of a Major Warning (W) to the PC"].random();
  19.     return PersonalInformation;
  20. }
  21.  
  22. // B – Local Information – d20
  23. function LocalInformation() {
  24.       rumour.LocalInformation = ["tells of " + MajorBoon() + " concerning the area",
  25.       "tells of emergency " + Emergency(),
  26.       "passes along knowledge of a " + SocialEvents(),
  27.       "gives information about an " + [MinorEnemy(), MajorEnemy()].random() + " threat",
  28.       "passes along information of a " + PoliticalEvents(),
  29.       "gives information about a " + ReligiousEvents(),
  30.       "tells of " + MajorBane()].random();
  31.     return LocalInformation;
  32. }
  33.  
  34. // C – Item information – d20
  35. function ItemInformation() {
  36.     rumour.ItemInformation = [
  37.       ["artifact"],
  38.       ["jewelry", "chest", "map", "bucket", "lantern", "jar"].random(),
  39.       ["piece of armor", "piece of armor", "piece of armor", "piece of armor", "piece of armor", "piece of armor", "piece of armor", "piece of armor", "piece of armor", "set of armor"].random(),
  40.       ["common", "common", "common", "common", "common", "common", "rare", "rare", "rare", "valuable"].random() + ["longsword", "longbow", "short sword", "dagger", "greataxe", "crossbow"].random(),
  41.       ["rod", "staff", "wand", "sceptre", "crown", "gemstone"].random(),
  42.       ["statue", "painting", "instrument", "sheet music", "article of clothing"].random(),
  43.       ["replacement body part", "replacement body part", "replacement body part", "organ"].random()
  44.     ].random();
  45.     return ItemInformation;
  46. }
  47.  
  48. // D – Faction
  49. function Faction() {
  50.       rumour.Faction = ["mystery cult that " + MysteryCult(),
  51.       "slavers or brutal overlords",
  52.       "religious warriors or clerics",
  53.       "law and justice officers or warriors",
  54.       "corrupt mercenaries or rogues",
  55.       "merchants collective or guild",
  56.       "cabal of mages"].random();
  57.     return Faction;
  58. }
  59.  
  60. // E – Minor Bane
  61. function MinorBane() {
  62.       rumour.MinorBane = ["disease or pestilence",
  63.       "buildings destroyed",
  64.       "enemy (q) (r) of the pc or party is actively opposing them",
  65.       "loss of items of value",
  66.       "a curse of " + Curse() + " has been activated",
  67.       "people have been injured",
  68.       Haunted()].random();
  69.     return MinorBane;
  70. }
  71.  
  72. // F – Major Bane
  73. function MajorBane() {
  74.       rumour.MajorBane = ["bad luck (random penalties[disadvantage] to random die rolls) for 1 month or 10 combats",
  75.       "outbreak of large plague or pestilence",
  76.       "a large loss of monetary wealth",
  77.       "many items of value have been lost or destroyed",
  78.       "many buildings have been damaged or the land has been damaged",
  79.       "many people have been killed",
  80.       "pc or party has attracted the attention of an enemy (q) (r)"].random();
  81.     return MajorBane;
  82.  
  83. }
  84. // G – Minor Boon
  85. function MinorBoon() {
  86.       rumour.MinorBoon = ["enemy (q) (r) has been temporarily thwarted",
  87.       "minor magic item obtained",
  88.       "small amount of money or resources obtained",
  89.       "magicked gemstone obtained (use 0-level or cantrip effect, 1/day, as level 1 caster)",
  90.       "a minor property is awarded or an improvement to a minor property is granted",
  91.       "personal relationship established with potential ally or social status increases with ally",
  92.       "for one day, all activities are easier. +1 to checks"].random();
  93.     return MinorBoon;
  94. }
  95.  
  96. // H – Major Boon
  97. function MajorBoon() {
  98.       rumour.MajorBoon = ["divine intervention grants a " + Treasure(),
  99.       "true knowledge of a treasure " + Treasure() + " location is obtained",
  100.       "large amount of monetary wealth is granted",
  101.       "an existing skill or knowledge is improved (+1) or a new skill is obtained",
  102.       "a personal relationship is improved to 100%",
  103.       "a major property is awarded or an improvement to a major property is granted",
  104.       "PC or party is pointed towards an artifact " + ItemInformation() + " ('specific' on the rumor ladder)"].random();
  105.     return MajorBoon;
  106. }
  107.  
  108. // I – Vendetta
  109. function Vendetta() {
  110.       rumour.Vendetta = ["wrongfully jailed or persecuted",
  111.       "racial crusade",
  112.       "revenge for theft or deception",
  113.       "revenge for personal death(s)",
  114.       "religious crusade (local or part of a faithquest)",
  115.       "political persecution",
  116.       "social status destroyed or socially exiled"].random();
  117.     return Vendetta;
  118. }
  119.  
  120. // J – On The Run
  121. function OnTheRun() {
  122.       rumour.OnTheRun = ["committed political crime",
  123.       "escaped from detention for crime",
  124.       "committed minor crime of theft, fraud or assualt",
  125.       "committed major crime of theft, murder or rape (or this can be substituted with anarchy)",
  126.       "committed religious crime",
  127.       "got tangled up with a mystery cult " + MysteryCult(),
  128.       "unjustly accused"].random();
  129.     return OnTheRun;
  130. }
  131.  
  132. // K – Buying Or Selling
  133. function BuyingOrSelling() {
  134.       rumour.BuyingOrSelling = ["cloth: raw or finished",
  135.       "wood: raw, finished, furniture, containers, paper",
  136.       "food: random types (air, sea, land) from random culture",
  137.       "beverages: brewed (ales), distilled (spirits), raw (juice) or water",
  138.       "spice: salt, random spice, random herb, il(legal) drugs, or medicine",
  139.       "minerals: raw or refined or gems",
  140.       "luxury: art, rare commodity or masterwork items/weapons/armor"].random();
  141.     return BuyingOrSelling;
  142. }
  143.  
  144. // M – Minor Quest
  145. function MinorQuest() {
  146.       rumour.MinorQuest = ["commune with avatar",
  147.       "map a location",
  148.       "deliver a message",
  149.       "recover a minor treasure" + Treasure(),
  150.       "deliver a package",
  151.       "destroy a minor monster/cleanse a tainted area",
  152.       "rediscover a local forgotten place"].random();
  153.     return MinorQuest;
  154. }
  155. // N – Major Quest
  156. function MajorQuest() {
  157.       rumour.MajorQuest = ["awaken a sleeping npc called " + setup.createNPC(),
  158.       ["recover", "destroy"].random() + " an artifact " + ItemInformation(),
  159.       ["aid", "slay"] + setup.createNPC(),
  160.       "slay a monster",
  161.       ["liberate", "enslave"] + setup.createNPC(),
  162.       "discover a lost foreign land",
  163.       "save or destroy the world"].random();
  164.     return MajorQuest;
  165. }
  166. // O – Good Deeds
  167. function GoodDeeds() {
  168.       rumour.GoodDeeds = ["freeing an innocent from imprisonment",
  169.       "correct a long-standing error",
  170.       "helping unfortunates with financial aid",
  171.       "spreading a charitable political message or religious doctrine",
  172.       "helping local children or relatives to overcome oppression",
  173.       "heal the sick and comfort the dying",
  174.       "using an artifact " + ItemInformation() + " to spread goodwill"].random();
  175.     return GoodDeeds;
  176. }
  177. // P – Evil Deeds
  178. function EvilDeeds() {
  179.       rumour.EvilDeeds = ["humiliate and torture a rival",
  180.       "collect an extortion's payoff and punish the offender",
  181.       "steal from friends or family",
  182.       "badly beat or kill a rival",
  183.       "destroy a business, financially or physically",
  184.       "agitate a harmful " + ["political message", "religious doctrine"].random(),
  185.       "spread lies and rumors against an individual or group of a shocking nature"].random();
  186.     return EvilDeeds;
  187. }
  188. // Q – Minor Enemy
  189. function MinorEnemy() {
  190.       rumour.MinorEnemy = ["snubbed ex-friend",
  191.       "school bully",
  192.       "business rival",
  193.       "local thug",
  194.       "romantic rival",
  195.       "spiteful boss or teacher",
  196.       "family member"].random();
  197.     return MinorEnemy;
  198. }
  199. // R – Major Enemy
  200. function MajorEnemy() {
  201.       rumour.MajorEnemy = ["a politician or political group",
  202.       "a powerful rogue/thug/assassin",
  203.       "a noble's family",
  204.       "a religious " + ["cult", "sect", "group", "temple"].random(),
  205.       "a powerful " + ["mage", "cabal"],
  206.       "a mercenary group",
  207.       "a mysterious stranger named " + setup.createNPC()].random();
  208.     return MajorEnemy;
  209. }
  210.  
  211. // S – Haunted
  212. function Haunted() {
  213.       rumour.Haunted = ["spirits locked in battle",
  214.       "a tortured revenant who must relive its brutal murder",
  215.       "a benign phantom who provides small comforts and messages",
  216.       "a crazed banshee",
  217.       "a spiteful haunt, who appears as dead loved ones and friends",
  218.       "a playful poltergeist, a childish trickster",
  219.       "an evil ghost, driven to consume lifeforce in a bid to regain life"].random();
  220.     return Haunted;
  221. }
  222.  
  223.  
  224. // T – Cursed
  225. function Cursed() {
  226.       rumour.Cursed = ["time moves at a different speed",
  227.       "sleep and rest is impossible",
  228.       "extreme heat or cold",
  229.       "an overwhelming aura of helplessness and suffering",
  230.       "plagues of vermin",
  231.       "foul weather",
  232.       "corruption of reality"].random();
  233.     return Cursed;
  234. }
  235.  
  236.  
  237. // U – Treasure
  238. function Treasure() {
  239.       rumour.Treasure = ["potions",
  240.       "gems",
  241.       "weapons or armor",
  242.       "coins",
  243.       "wands, rods, and staves",
  244.       "clothing",
  245.       "artifact (c)"].random();
  246.     return Treasure;
  247. }
  248.  
  249. // V – Emergency
  250. function Emergency() {
  251.       rumour.Emergency = ["political power is dead or arrested/exiled",
  252.       "business in trouble",
  253.       "family friend ill or mad or dead",
  254.       "hometown has been " + ["attacked", "enslaved", "destroyed"].random(),
  255.       "there's a disease epidemic",
  256.       "my " + ["close relative", "spouse"].random() + " has done something terrible",
  257.       "all resources or income has been stolen or destroyed"].random();
  258.     return Emergency;
  259. }
  260.  
  261. // W – Warning
  262. function Warning() {
  263.       rumour.Warning = ["a powerful enemy is coming for you",
  264.       "an enemy is plotting against you",
  265.       "the government is investigating you",
  266.       "a friend or lover or spouse is lying to you",
  267.       "a co-worker or business partner is stealing from you",
  268.       "a rival is spreading terrible lies and rumors",
  269.       "an avatar is coming"].random();
  270.     return Warning;
  271. }
  272.  
  273. // X – Social Events
  274. function SocialEvents() {
  275.       rumour.SocialEvents = ["an invitation to an upcoming event (party, play, etc..) given by a mysterious stranger.",
  276.       "a local revival of (insert deity) followers is nearby, and drawing crowds",
  277.       "a challenge has been issued by " + State.variables.townLeader + ", calling for feats of " + ["strength", "wit", "creativity", "genius", "dexterity", "constitution"].random(),
  278.       "the (guild-house) is permitting new members to join, decided by a contest",
  279.       "a circus has come to town. rumors are they are taking on workers/performers",
  280.       "a fancy dress party for " + State.variables.townLeader + "has drawn all the wealthy in the area",
  281.       "the marriage/birth/death/divorce/something else of (local ruler) or (ruler's family/spouse)"].random();
  282.     return SocialEvents;
  283. }
  284.  
  285. // Y – Political Events
  286. function PoliticalEvents() {
  287.       rumour.PoliticalEvents = ["opposition gains control through a coup",
  288.       "a downshift in the support of financial backers has driven prices way up",
  289.       "a noble is accused of a terrible crime",
  290.       "a marriage between noble houses has been announced, rumors of treachery persist",
  291.       "a shift in the government's stance on taxes has been taken badly by the populace",
  292.       "corruption rumors abound, and evidence of murder and treachery is begin sought",
  293.       "powerful figure has been killed or exiled or worse"].random();
  294.     return PoliticalEvents;
  295. }
  296.  
  297. // Z – Religious Events
  298. function ReligiousEvents() {
  299.       rumour.ReligiousEvents = ["avatar issues sanctions",
  300.       "open warfare against temple enemies is now public knowledge",
  301.       "new edict/sanction is announced, causing a radical shift in the local population's mood",
  302.       "an expedition to the heathen lands has been announced",
  303.       "temple leaders have declared a peace agreement and a summit of faith is announced.",
  304.       "an artifact or holy relic has been found/destroyed and a call to the faithful has gone out",
  305.       "avatar appears and denounces/blesses the faithful and punishes/rewards with a bane/boon"].random();
  306.     return ReligiousEvents;
  307. }
  308.  
  309. // AA – Faith Touched
  310. function FaithTouched() {
  311.       rumour.FaithTouched = ["dreams of the lives of those who gave their lives in sacrifice for the faith",
  312.       "all skills relating to the practice of the faith are more easily accomplished. +1",
  313.       "hallucinations of the landscape of the deity's plane haunt the waking mind",
  314.       "those not of the faith will be psionically attacked by the environment, driving them out",
  315.       "animal servants of the deity roam the grounds here, protecting from heathen intruders",
  316.       "all divine spells are cast here as if the caster was 1 level higher.",
  317.       "manifestation of an avatar. its mood depends on the pcs interaction"].random();
  318.     return FaithTouched;
  319. }
  320.  
  321. // BB – Weave Touched
  322. function WeaveTouched() {
  323.       rumour.WeaveTouched = ["a living mask of a jester can be found here, hidden, but waiting. the parasite sleeps.",
  324.       "all skills relating to the practice of the arcane mysteries are more easily accomplished. +1",
  325.       "time and space are on vacation here. Non-causality is a possibility. Dimensionally weird. Non-euclidian geometry abounds.",
  326.       "all arcane objects are recharged here, but can only be used once per item per location",
  327.       "astral and ethereal creatures are feeding from this bountiful font. they are hostile",
  328.       "all arcane spells are cast here as if the caster were 1 level higher",
  329.       "wild magic regularly spawns here, bathing the area with random level spells and duration"].random();
  330.     return WeaveTouched;
  331. }
  332.  
  333. // CC – Mystery Cult
  334. function MysteryCult() {
  335.       rumour.MysteryCult = ["trying to return/exile/free/enslave/destroy/rebirth a minor/major deity",
  336.       "collecting objects to trade to a deity for power",
  337.       "thralls under a larger power, acquiring resources, knowledge, manpower for a larger plan",
  338.       "disaffected people angry at inequality. they have resorted to violence and rhetoric",
  339.       "animal worshipers, devoted to returning humanity to a more primal lifestyle",
  340.       "outsiders stealing/killing/trading/enslaving/helping the local populace",
  341.       "wealthy cannibals and defilers, seeking only pleasure for themselves"].random();
  342.     return MysteryCult;
  343. }
  344.  
  345.  
  346. return rumour;
  347. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement