# For inspiration see: https://diablo-archive.fandom.com/wiki/Unique_Monsters_(Diablo_II) # Word Databases modifiers = [ "Abysmal", "Abyssal", "Acausal", "Aeonic", "Aeonizing", "Alien", "August", "Backwards", "Black", "Blood", "Caustic", "Chaos", "Clandestine", "Cosmic", "Dark", "Earth", "Evil", "Final", "Fungal", "Galactic", "Grand", "Grey", "Hell", "Horrid", "Hideous", "Lament", "Machinic", "Magian", "Nazarene", "Night", "Old", "Predatory", "Presencing", "Promethean", "Red", "Sacrificial", "Satanic", "Sepulcheral", "Sinister", "Somber", "Trauma", "Undead", "Vampiric", "White", "External", "Internal", "Occult", "Shameful", "Golden", "Iron", "Subterranean", "Insane", "Mad", "Eternal", "Terror", "Aeonomic", "Willow", "Immanent", "Transcendent", "Sacred", "Soul", "Cruel", "Structural", "Nightmare", "Flesh", "Torment", "Political", "Incest", "Murderous", "Poisonous", "Great", "Eldritch", "Wrathful", "Vengeful", "Schizophrenic", "Endless", "Ruinous", "Bronze", "Lunar", "Solar", "Torturous", "Crystalline", "Crystal", "Divine", "Materialist", "Ritual", "Gog-Magog", "Zion-Babylon", "of Ahaz", "Magical", "Infinite", "Bloody", "Instruments of", "Myrrh", "Crimson", "Wicked", "Funerary", "of Song", "Keeper of", "Broken", "Orthodox", "of Will", "Sensual", "Armor of", "of Loyalty", "Graveyard of", "Orgy of", "Gospel of", "Yellow", "of Banishing", "Dagger of", "of Sloth", "Death", "Shades of", "Sapphire", "Ruby", "Emerald", "Topaz", "Diamond", "Skull", "Amethyst", "of Initiation", "Sigils of", "of the Other World", "of the Other Side", "of Evil", "Golden Age of", "of Silence", "Majestic", "Profane", "of Defilement", "Amulets of", "Death's Head of", "Candle of", "Astral", "Boundless", "Shield of", "of Atrocity", "Unsacred", "Malefic", "Carnal", "Havoc", "Cord of", "Robe of", "Brass", "Ceremonial", "of the Snake", "Blackthorn", "Conjurer of", "Diabolical", "Unholy", "Valley of", "Pillar of", "Sabbath of", "Verse of", "Vomit", "Unclean", "of the Unclean", "Infernal", "Sword of", "Whore of", "Wand of", "Ewer of", "of Sin", "Seed of", "Archangel of", "Archon of", "Archdemon of", "Hymn of", "of Desire", "Order of", "War", "Trumpets of", "Drums of", "Theaters of", "Thousand-Eyed", "Thousand-Armed", "Goat of", "Erotic", "Artifacts of", "Chalice of", "Serpent of", "Cold", "Stronghold of", "Imperfect", "Pomegranate of", "Symbolic", "Eye of", "Brain of", "Heart of", "Mage of", "of Appearance", "Visions of", "Unspeakable", "Womb of", "of Faith", "Prophet of", "of Mortification", "of Agony", "of Memory", "of Mutilation", "Rites of", "of Plague", "of Youth", "Temple of", "Psalms of", "Book of", "Amulet of", "Demonic", "Wormwood", "Lust", "of the Depths", "Litany of", "Libidinal", "Sublime", "Unworthy", "of Gehenna", "Pit of", "Irrational", "Talisman of", "Colossus of", "of Despair", "of Gaubni", "of Atazoth", "of Diabolus", "of Shugara", "of Naos", "of Budsturga", "of Binan Ath", "of Velpecula", "of Lidagon", "of Azanigin", "of Beelzebub", "of Leviathan", "of Astaroth", "of Belial", "of Murmur", "of Belphegor", "of Baal", "of Azazel", "of Dantalion", "of Gore", "of Frogs", "of Judas", "of Shame", "of Mercy", "Cenobite", "of Cleansing", "Silver", "of Apocalypse", "of Revealing", "Bathory", "Onyx", "Swamp", "of Subversion", "of Misreading", "of Nythra", "of Noctulius", "of Abatu", "of Karu Samsu", "of Aosoth", "of Mactoron", "of Kthunae", "of Sauroctonos", "Balobian", "of Culling", "of Ga Wath Am", "of Kindred Honor", "of Rounwytha", "of Falcifer", "of Hebdomadry", "The Seven-Fold", "of Wyrd", "Equinox of", "of Insomnia", "of Baphomet", "of Falcifer", "Shrine of", "Adversarial", "of Nemicu", "of Davcina" ] concepts = [ "Abomination", "Abominations", "Abyss", "Adept", "Adversary", "Aeon", "Altars", "Apostasy", "Apostate", "Apparatus", "Becoming", "Being", "Book", "Canticle", "Cenobite", "Chant", "Circle", "Commissar", "Commune", "Communion", "Configuration", "Conspiracy", "Contradiction", "Culling", "Dark", "Darkness", "Darkplug", "Denizen", "Dialectic", "Discipline", "Divination", "Durance", "Essence", "Fungus", "Glory", "Grove", "Guard", "Harvest", "Hinterlands", "Honor", "Imperium", "Joy", "Labyrinth", "Law", "Liturgy", "Lodge", "Love", "Madness", "Magic", "Master", "Mistress", "Materialism", "Mechanisms", "Mother", "Necronomicon", "Neonate", "Nexion", "Noctulian", "Opfer", "Ordeal", "Paradise", "Penance", "Predation", "Protocol", "Sacrifice", "Time", "Undeath", "Pool", "Vortices", "Initiate", "Spirit", "Bones", "Ossuary", "Amulets", "Body", "Purity", "Mirrors", "Palace", "Sand", "Infiltration", "Jackals", "Vultures", "Perfume", "Illusion", "Below", "Above", "Library", "Cymbals", "Scriptures", "Spirals", "Dialectics", "Impurity", "Invocation", "Evocation", "Chamber", "Empress", "Structure", "Pulpits", "Incense", "Nightmares", "Knowledge", "History", "Machinery", "Wine", "Science", "Blades", "Transgression", "Nobility", "Eclipse", "Intelligence", "Entrails", "Doors", "Ichor", "Space", "Ruin", "Embers", "Flames", "Secrets", "Fractals", "Torture", "Obsession", "Pestilence", "Parasites", "Tears", "Cathedral", "Unconscious", "Ritual", "Macrocosm", "Microcosm", "Acolyte", "Square", "Triangle", "Crown", "Servitors", "Gateway", "Vessels", "Seal", "Consecration", "Aspersorium", "Hell", "Oils", "Theory", "Filth", "Rivers", "Rainfall", "Vessel", "Modulation", "Manipulation", "Scarification", "Comprehension", "Portal", "Portals", "Funeral", "Spirits", "Prayer", "Maggots", "Horns", "Organs", "Beast", "Seduction", "Gnosis", "Banishing", "Satyr", "Dagger", "Knife", "Death", "Necrophilia", "Ritual", "Goetia", "Sigils", "Dragon", "Dragons", "Demon", "Demons", "Dominion", "Augury", "Defilement", "Candle", "Defilement", "Resurrection", "Springs", "Asceticism", "Majesty", "Fruit", "Imprisonment", "Crucifix", "Transformation", "Metamorphosis", "Envy", "Ensoulment", "Necromancy", "Monastery", "Oceans", "Hypocrisy","Cloth", "Libertine", "Silence", "Pact", "Violence", "Star", "Exaltation", "Meditation", "Alchemy", "Absence", "Sores", "Annihilator", "Binding", "Caves", "Desecration", "Pentagram", "Thurible", "Power", "Conjuration", "Chalice", "Grimoires", "Lore", "Corruption", "Devotion", "Illumiation", "Pillar", "Sabbath", "Mass", "Revelations", "Fraud", "Verses", "Opponent", "Sword", "Aspergillum", "Heart", "Sulfur", "Creeks", "Mysteries", "Compassion", "Impiety", "Cherubim", "Seraphim", "Pleasure", "Prophecies", "Imbalance", "Wand", "Ewer", "Virtues", "Blessing", "Seed", "Equinox", "Severity", "Possession", "Channeling", "Incest", "Rosary", "Succubi", "Dreams", "Heresy", "Theaters", "Hordes", "Maze", "Altar", "Artifacts", "Trinity", "Goblet", "Serpent", "Psychosis", "Ceremony", "Ceremonies", "Suicide", "Exorcism", "Charlatan", "Imperfection", "Pomegranate", "Devils", "Sphere", "Parchment", "Rank", "Eye", "Brain", "Visions", "Excess", "Womb", "Faith", "Prophet", "Baptism", "Agony", "Memory", "Rites", "Plague", "Fountain", "Temple", "Apathy", "Psalms", "Worship", "Breath", "Amulet", "Voice", "Enchantment", "Powder", "Corruptor", "Litany", "Overflows", "Sublime", "Pit", "Trident", "Lies", "Potions", "Undergrowth", "Talisman", "Jealousy", "Scandal", "Gore", "Judas", "Mercy", "Tarot", "Ecstasy", "Cleansing", "Quartz", "Honey", "Vellum", "Matrix", "Apocalypse", "Revealing", "Abduction", "Nightshade", "Surge", "Maoism", "Swamp", "Gehenna", "Flutes", "Alchemy", "Balobian", "Abstractions", "Rounwytha", "Arts", "Gods", "Hebdomadry", "Empathy", "Sorcery", "Wyrd", "Insomnia", "Alembic" ] # Function to check if a modifier is of the form "of [Blank]" def modifier_is_of_form(modifier) modifier.match?(/^OF /) # Check if the modifier starts with "OF " end # Function to generate a random combination def generate_random_concept(modifiers, concepts) modifier = "" concept = "" # Ensure modifier and concept are not the same loop do modifier = modifiers.sample.upcase concept = concepts.sample.upcase break if modifier != concept end # Check if the modifier is "of [Blank]" form and switch order if true if modifier_is_of_form(modifier) "#{concept} #{modifier}" else "#{modifier} #{concept}" end end # Main Program Loop puts "Welcome to the Random Concept Generator, one of my finest brainstorming tools!" puts "Press ENTER to generate a concept, or type 'exit' to quit." loop do print "> " input = gets.chomp.downcase break if input == "exit" puts generate_random_concept(modifiers, concepts) end puts "Thank you for using the Random Concept Generator!"