Skip to content

Instantly share code, notes, and snippets.

@tkfu
Created February 2, 2018 03:55
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tkfu/68c5614f19e0aaae447f38b4cb4b795d to your computer and use it in GitHub Desktop.
Save tkfu/68c5614f19e0aaae447f38b4cb4b795d to your computer and use it in GitHub Desktop.
A quickie script to turn the monsters scraped with [this script](https://gist.github.com/tkfu/bc5dc2c6cee4d1e582a3d369c3077bb5) into cards you can use [here](https://crobi.github.io/rpg-cards/generator/generate.html)
# Probably only works on Ruby 2.5.0
require 'json'
def create_monster mon
cont = []
cont.append("subtitle | #{mon['meta']}")
cont.append("rule")
cont.append("property | Armor class | #{mon['Armor Class']}")
cont.append("property | Hit points | #{mon['Hit Points']}")
cont.append("property | Speed | #{mon['Speed']}")
cont.append("rule")
cont.append("dndstats | #{mon['STR']} | #{mon['DEX']} | #{mon['CON']} | #{mon['INT']} | #{mon['WIS']} | #{mon['CHA']}")
cont.append("rule")
tidbits = ["Saving Throws","Skills","Damage Vulnerabilities","Damage Immunities","Damage Resistances","Senses","Condition Immunities","Languages","Challenge"]
tidbits.each do |tidbit|
cont.append("property | #{tidbit} | #{mon[tidbit]}") if mon.key? tidbit
end
sections = ["Traits","Actions","Reactions","Legendary Actions"]
sections.each do |section|
if mon.key? section
cont.append("section | #{section}")
cont.append("text | #{mon[section]}")
end
end
card = {
"title" => mon['name'],
"icon" => "imp-laugh",
"contents" => cont,
"background_image" => mon['img_url']
}
card
end
monster_cards = []
monsters = JSON.parse(File.open('beyond_monsters.json').read)
monsters.each do |mon|
monster_cards.push(create_monster(mon))
end
File.open("beyond_monster_cards.json","w") {|f| f.write(monster_cards.to_json)}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment