diff --git a/pqcli/data/impressive_titles.json b/pqcli/data/impressive_titles.json index 9197770..225dbc3 100644 --- a/pqcli/data/impressive_titles.json +++ b/pqcli/data/impressive_titles.json @@ -9,5 +9,8 @@ "Princess", "Chief", "Boss", - "Archbishop" + "Archbishop", + "Chancellor", + "Baroness", + "Inquistor" ] diff --git a/pqcli/mechanic.py b/pqcli/mechanic.py index c09553b..df78e1e 100644 --- a/pqcli/mechanic.py +++ b/pqcli/mechanic.py @@ -25,6 +25,7 @@ from pqcli.lingo import ( definite, generate_name, indefinite, + plural, sick, special, young, @@ -768,7 +769,7 @@ class Simulation: enqueue( RegularTask( "Oh sweet relief! " - f"You've reached the protection of the good {nemesis}", + f"You've reached the kind protection of {nemesis}", 2000, ) ) @@ -796,7 +797,7 @@ class Simulation: ) enqueue( RegularTask( - "Who can possibly be trusted with this news!? ... " + "Who can possibly be trusted with this news!? -- " "Oh yes, of course", 3000, ) @@ -833,11 +834,12 @@ def boring_item(data: GameData) -> str: def impressive_guy(data: GameData) -> str: - return T.cast(str, random.choice(data.impressive_titles)) + ( - " of the " + T.cast(Race, random.choice(data.races)).name - if random.below(2) - else " of " + generate_name() - ) + if random.below(2): + title = T.cast(str, random.choice(data.impressive_titles)) + race = T.cast(Race, random.choice(data.races)) + return f"the {title} of the {plural(race.name)}" + title = T.cast(str, random.choice(data.impressive_titles)) + return f"{title} {generate_name()} of {generate_name()}" def unnamed_monster(data: GameData, level: int, iterations: int) -> Monster: diff --git a/tests/fixtures/parity_alpha.txt b/tests/fixtures/parity_alpha.txt index 4b1dc59..39f4a3b 100644 --- a/tests/fixtures/parity_alpha.txt +++ b/tests/fixtures/parity_alpha.txt @@ -1509,12 +1509,12 @@ queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Viceroy of the Battle-Finch -queued: There is rejoicing, and an unnerving encounter with Viceroy of the Battle-Finch in private +queued: Oh sweet relief! You've reached the kind protection of the Princess of the Battle-Finches +queued: There is rejoicing, and an unnerving encounter with the Princess of the Battle-Finches in private queued: You forget your cookie and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Viceroy of the Battle-Finch be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could the Princess of the Battle-Finches be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies @@ -1526,12 +1526,12 @@ queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Chief of the Double Hobbit -queued: There is rejoicing, and an unnerving encounter with Chief of the Double Hobbit in private -queued: You forget your inkwell and go back to get it +queued: Oh sweet relief! You've reached the kind protection of the Queen of the Enchanted Motorcycles +queued: There is rejoicing, and an unnerving encounter with the Queen of the Enchanted Motorcycles in private +queued: You forget your writ and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Chief of the Double Hobbit be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could the Queen of the Enchanted Motorcycles be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies @@ -1549,60 +1549,67 @@ queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Mayor of Itag -queued: There is rejoicing, and an unnerving encounter with Mayor of Itag in private -queued: You forget your letter and go back to get it +queued: Oh sweet relief! You've reached the kind protection of the Chancellor of the Dung Elves +queued: There is rejoicing, and an unnerving encounter with the Chancellor of the Dung Elves in private +queued: You forget your carrot and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Mayor of Itag be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Grouvan the Bone Devil -queued: Locked in grim combat with Grouvan the Bone Devil -queued: Grouvan the Bone Devil seems to have the upper hand -queued: Victory! Grouvan the Bone Devil is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits +queued: Could the Chancellor of the Dung Elves be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Queen of Xickig -queued: There is rejoicing, and an unnerving encounter with Queen of Xickig in private +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of Inquistor Zumyeck of Radshog +queued: There is rejoicing, and an unnerving encounter with Inquistor Zumyeck of Radshog in private queued: You forget your egg and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Queen of Xickig be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Inquistor Zumyeck of Radshog be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Jangraet the Troll -queued: Victory! Jangraet the Troll is slain! Exhausted, you lose consciousness +queued: A desperate struggle commences with Lutok the Minotaur +queued: Victory! Lutok the Minotaur is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Zuktrep the Spectre -queued: Locked in grim combat with Zuktrep the Spectre -queued: Victory! Zuktrep the Spectre is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Queen of the Crested Dwarf -queued: There is rejoicing, and an unnerving encounter with Queen of the Crested Dwarf in private -queued: You forget your towel and go back to get it +queued: Oh sweet relief! You've reached the kind protection of King Prekkrux of Vingroud +queued: There is rejoicing, and an unnerving encounter with King Prekkrux of Vingroud in private +queued: You forget your planter box and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Queen of the Crested Dwarf be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could King Prekkrux of Vingroud be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Bromzez the Tin Dragon -queued: Victory! Bromzez the Tin Dragon is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits +queued: Oh sweet relief! You've reached the kind protection of the Chief of the Dung Elves +queued: There is rejoicing, and an unnerving encounter with the Chief of the Dung Elves in private +queued: You forget your trowel and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Chief of the Dung Elves be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Trubreb the Vampire -queued: Trubreb the Vampire seems to have the upper hand -queued: Victory! Trubreb the Vampire is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits +queued: Oh sweet relief! You've reached the kind protection of the Inquistor of the Skraelings +queued: There is rejoicing, and an unnerving encounter with the Inquistor of the Skraelings in private +queued: You forget your trinket and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Inquistor of the Skraelings be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of Princess Prugzoux of Shookvux +queued: There is rejoicing, and an unnerving encounter with Princess Prugzoux of Shookvux in private +queued: You forget your credenza and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Princess Prugzoux of Shookvux be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies @@ -1615,10 +1622,22 @@ queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Driexfrex the Troll -queued: Victory! Driexfrex the Troll is slain! Exhausted, you lose consciousness +queued: A desperate struggle commences with Jackveck the Leucrotta +queued: Victory! Jackveck the Leucrotta is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Queen of the Panda Men +queued: There is rejoicing, and an unnerving encounter with the Queen of the Panda Men in private +queued: You forget your toothpick and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Queen of the Panda Men be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! queued: A desperate struggle commences with Brevug the Anhkheg queued: Brevug the Anhkheg seems to have the upper hand @@ -1636,162 +1655,144 @@ queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Chief of the Will o' the Wisp -queued: There is rejoicing, and an unnerving encounter with Chief of the Will o' the Wisp in private -queued: You forget your nosegay and go back to get it +queued: Oh sweet relief! You've reached the kind protection of the Princess of the Demicanadians +queued: There is rejoicing, and an unnerving encounter with the Princess of the Demicanadians in private +queued: You forget your planter box and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Chief of the Will o' the Wisp be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could the Princess of the Demicanadians be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Lord of Ripzez -queued: There is rejoicing, and an unnerving encounter with Lord of Ripzez in private -queued: You forget your teratoma and go back to get it +queued: Oh sweet relief! You've reached the kind protection of Boss Gromshoox of Liemvad +queued: There is rejoicing, and an unnerving encounter with Boss Gromshoox of Liemvad in private +queued: You forget your coin and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Lord of Ripzez be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Xebnoob the Copper Dragon -queued: Victory! Xebnoob the Copper Dragon is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits +queued: Could Boss Gromshoox of Liemvad be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Whixcraez the Moakum -queued: Locked in grim combat with Whixcraez the Moakum -queued: Whixcraez the Moakum seems to have the upper hand -queued: Victory! Whixcraez the Moakum is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Xixliet the Otyugh -queued: You seem to gain the advantage over Xixliet the Otyugh -queued: Victory! Xixliet the Otyugh is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -monster: Executing a Manes 6000 -monster: Executing an underage Blink Dog 9000 -monster: Executing a passing Eel Man Mage Illusioner 4000 -monster: Executing a greater Gargoyle 7500 -monster: Executing an underage Djinn 7200 -monster: Executing a Battle-Leucrotta 7000 -monster: Executing a greater Bone Devil 8571 -monster: Executing a Green Dragon 6000 -monster: Executing a sick Pentasaurus 6666 -monster: Executing an enormous Djinn 6000 -monster: Executing a demon Stone Giant 7636 -monster: Executing an Efreet 5000 -monster: Executing Mr. Brebloz the Skraeling 5076 -monster: Executing a titanic veteran Stone Giant 6428 -monster: Executing a titanic Beef Giant 6400 -monster: Executing a massive undead Treant 6000 -monster: Executing a cursed Quartz Giant 4235 -monster: Executing a comatose foetal Brontosaurus 7000 -monster: Executing a greater Purple Worm 5052 -monster: Executing an Oxygen Golem 5100 -monster: Executing 2 Humidity Giants 6857 -monster: Executing 2 veteran Cloud Giants 7090 -monster: Executing a titanic Battle-Roc 6260 -monster: Executing a titanic Battle-Stegosaurus 6000 -monster: Executing 2 teenage Storm Giants 6240 -monster: Executing a messianic Cardboard Golem 5538 -monster: Executing a giant undead Titan 6222 -monster: Executing 3 comatose Dragon Turtles 5785 -monster: Executing 3 massive Invisible Stalkers 6206 -monster: Executing 2 cursed Hair Elementals 7200 -monster: Executing 2 cursed Megalosauri 5419 -monster: Executing 2 Hair Elementals 6000 -monster: Executing 2 cursed Cheese Elementals 5818 -monster: Executing 4 Bone Devils 6352 -monster: Executing 3 preadolescent Baluchitheriums 5657 -monster: Executing 2 comatose Platinum Dragons 5666 -monster: Executing 2 cursed Beer Golems 5513 -monster: Executing 2 Elasmosauri 4736 -monster: Executing 3 Liches 5076 -monster: Executing 3 Humidity Giants 5400 -monster: Executing 4 undernourished Pentasauri 6439 -monster: Executing 3 massive Trappers 6000 -monster: Executing a messianic Geryon 6000 -monster: Executing 3 underage Rubber Golems 6136 -monster: Executing 6 undernourished Rice Giants 5600 -monster: Executing 2 Were-Rocs 5478 -monster: Executing 3 undernourished Rubber Golems 5744 -monster: Executing 4 Beef Giants 5500 -monster: Executing a massive undead Baalzebul 6000 -monster: Executing 4 greater Silver Dragons 5280 -monster: Executing 3 greater Chromatic Dragons 6000 -monster: Executing 3 dead preadolescent Yeenoghus 5884 -monster: Executing 4 underage Gorgosauri 5433 -monster: Executing 2 baby Brontosauri 5777 -monster: Executing 5 Ice Devils 6000 -monster: Executing 3 massive Leather Golems 5464 -monster: Executing 4 Cheese Elementals 5894 -monster: Executing 6 underage Ghosts 5586 -monster: Executing 2 giant Dispaters 6915 -monster: Executing a messianic Baalzebul 5300 -monster: Executing 7 teenage Efreets 5508 -monster: Executing 7 underage Efreets 6096 -monster: Executing 10 White Dragons 5714 -monster: Executing 6 underage Frost Giants 5062 -monster: Executing Mr. Fraetrub the Demicanadian 5353 -monster: Executing 4 sick Jubilexes 5454 -monster: Executing 5 undernourished Purple Worms 6268 -monster: Executing 6 Pentasauri 6352 -monster: Executing 2 giant Were-Yeenoghus 5565 -monster: Executing 3 preadolescent Diplodoci 5400 -monster: Executing 9 Sand Elementals 6084 -monster: Executing 6 Mastodons 6000 -monster: Executing 5 underage Gorgosauri 4931 -monster: Executing 5 Leather Golems 6081 -monster: Executing 5 veteran Cardboard Golems 6000 -monster: Executing 9 underage Stone Giants 5684 -monster: Executing 8 underage Nalfeshnees 6233 -monster: Executing 2 preadolescent Baalzebuls 6153 -monster: Executing 12 undernourished Monoclonii 6379 -monster: Executing 12 undernourished Brass Dragons 5400 -monster: Executing 2 messianic Dispaters 6074 -monster: Executing 6 undernourished Cheese Elementals 5707 -monster: Executing 2 imaginary Demogorgons 6216 -monster: Executing 11 Vampires 6285 -monster: Executing 6 greater Cardboard Golems 6352 -monster: Executing 18 Su-monsters 6279 -monster: Executing 11 Barbed Devils 6068 -monster: Executing a messianic Asmodeus 5113 -monster: Executing 6 underage Leather Golems 5662 -monster: Executing a passing Battle-Finch Birdrider 5933 -monster: Executing 10 underage Efreets 5934 -monster: Executing 10 Bacon Elementals 6521 -monster: Executing 10 undernourished Red Dragons 5806 -monster: Executing 7 Pit Fiends 5808 -monster: Executing 11 undernourished Silver Dragons 6252 -monster: Executing 9 Ice Devils 6187 -monster: Executing 4 teenage Yeenoghus 5690 -monster: Executing 12 Copper Dragons 5877 -monster: Executing 8 underage Dragon Turtles 5818 +monster: Executing an undernourished Octopus 6000 +monster: Executing a veteran Green Slime 9000 +monster: Executing an Octopus 4000 +monster: Executing a Boy Scout 4500 +monster: Executing a teenage Will-o'-the-Wisp 8400 +monster: Executing a veteran White Dragon 7000 +monster: Executing an underage Xorn 5142 +monster: Executing an underage Couatl 6000 +monster: Executing an Invisible Stalker 5333 +monster: Executing a massive Naga 6600 +monster: Executing a teenage Chromatic Dragon 7636 +monster: Executing a giant undead Brass Dragon 7500 +monster: Executing an enormous warrior Stone Giant 6923 +monster: Executing a comatose Stegosaurus 6000 +monster: Executing a Humidity Giant 4800 +monster: Executing a giant cursed Porcelain Giant 5625 +monster: Executing a titanic undead Shedu 6352 +monster: Executing a warrior Cloud Giant 5000 +monster: Executing 3 Black Dragons 6631 +monster: Executing a warrior Hair Elemental 5700 +monster: Executing 2 Bacon Elementals 5714 +monster: Executing an undead Platinum Dragon 6818 +monster: Executing an enormous undead Platinum Dragon 7304 +monster: Executing a giant undead Roc 6500 +monster: Executing a titanic undead Stegosaurus 6480 +monster: Executing 3 underage Lurkers 6230 +monster: Executing 2 baby Rocs 6222 +monster: Executing 3 Barbed Devils 5142 +monster: Executing 4 Copper Dragons 6620 +monster: Executing 2 massive Porn Elementals 5600 +monster: Executing 2 teenage Platinum Dragons 7354 +monster: Executing Saint Shixtrip the Will o' the Wisp 5437 +monster: Executing a cursed Geryon 5818 +monster: Executing 2 sick Stegosauri 5647 +monster: Executing 2 sick Platinum Dragons 6514 +monster: Executing an imaginary Asmodeus 6000 +monster: Executing 3 greater Neo-Otyughs 5837 +monster: Executing 2 Jubilexes 5368 +monster: Executing 5 Xorns 5384 +monster: Executing 3 underage Ghosts 4050 +monster: Executing 5 Jellyrocks 6585 +monster: Executing 5 Nagas 6428 +monster: Executing 3 underage Leather Golems 5860 +monster: Executing a titanic undead Geryon 5318 +monster: Executing 3 sick Chromatic Dragons 5600 +monster: Executing 4 Ice Devils 5739 +monster: Executing 6 underage Hill Giants 5361 +monster: Executing 5 Bronze Dragons 5625 +monster: Executing Ms. Drootnad the Gyrognome 5755 +monster: Executing 2 preadolescent Orci 5760 +monster: Executing 4 veteran Dragon Turtles 6588 +monster: Executing 5 Red Dragons 5769 +monster: Executing a passing Will o' the Wisp Ur-Paladin 5660 +monster: Executing 3 foetal Titans 5000 +monster: Executing a giant Asmodeus 6109 +monster: Executing a messianic Geryon 5250 +monster: Executing 3 warrior Hair Elementals 6000 +monster: Executing 6 Frost Giants 6206 +monster: Executing 5 Megalosauri 6101 +monster: Executing 5 greater Liches 6000 +monster: Executing 3 foetal Diplodoci 5606 +monster: Executing 5 underage Gorgosauri 5806 +monster: Executing 4 baby Platinum Dragons 6476 +monster: Executing 10 underage Anhkhegs 4687 +monster: Executing 6 underage Fire Giants 5538 +monster: Executing 3 preadolescent Diplodoci 5727 +monster: Executing a passing Trans-Kobold Voodoo Princess 5910 +monster: Executing 4 Jubilexes 6000 +monster: Executing 6 Cloud Giants 6260 +monster: Executing 4 dead Titans 5142 +monster: Executing a messianic Asmodeus 6338 +monster: Executing a messianic Demogorgon 5583 +monster: Executing 5 greater Mastodons 5342 +monster: Executing 3 underage Yeenoghus 5837 +monster: Executing 8 underage Nalfeshnees 6400 +monster: Executing Mrs. Grimzoz the Hob-Hobbit 5526 +monster: Executing 9 underage Silver Dragons 6311 +monster: Executing 2 imaginary Demogorgons 6461 +monster: Executing 11 underage Gold Dragons 5848 +monster: Executing 8 Silver Dragons 6000 +monster: Executing 9 underage Shedus 5333 +monster: Executing 6 greater Humidity Giants 5707 +monster: Executing a passing Low Elf Puma Burgular 6144 +monster: Executing 9 underage Silver Dragons 5785 +monster: Executing 3 imaginary Baalzebuls 6776 +monster: Executing 12 undernourished Vrocks 5860 +monster: Executing 7 sick Cardboard Golems 5793 +monster: Executing 7 underage Mastodons 5250 +monster: Executing 5 Hair Elementals 5393 +monster: Executing 3 underage Geryons 5800 +monster: Executing 8 undernourished Megalosauri 5802 +monster: Executing 7 greater Cloud Giants 5934 +monster: Executing 10 Efreets 6451 +monster: Executing 9 underage Porn Elementals 6319 +monster: Executing 2 crippled Demogorgons 6315 +monster: Executing 11 undernourished Mimics 5500 +monster: Executing 5 undernourished Stegosauri 5257 +monster: Executing 6 greater Storm Giants 5877 +monster: Executing 4 Diplodoci 5818 level: 4 act: 1 gold: 142 -stat: STR 17 -stat: CON 16 -stat: DEX 13 -stat: INT 15 +stat: STR 18 +stat: CON 15 +stat: DEX 14 +stat: INT 16 stat: WIS 21 -stat: CHA 12 -stat: HP Max 22 +stat: CHA 13 +stat: HP Max 23 stat: MP Max 26 -equipment: Weapon Battleadze +equipment: Weapon Tarnished Longiron equipment: Hauberk Canvas -equipment: Brassairts -1 Flannel +equipment: Brassairts Studded Macrame equipment: Gambeson +1 Burlap equipment: Helm Canvas -equipment: Vambraces Burlap +equipment: Vambraces -1 Flannel equipment: Greaves -1 Rusty Dented Bearskin equipment: Shield -1 Faded Scutum -equipment: Gauntlets -2 Motheaten Bearskin +equipment: Gauntlets Banded Macrame equipment: Sollerets +1 Macrame equipment: Cuisses Burlap inventory: otyugh organ 1 @@ -1804,29 +1805,27 @@ inventory: Astral Candelabra of Loyalty 1 inventory: leprechaun wallet 1 inventory: cockatrice wattle 1 inventory: Benevolent Arrow of Diamonique 1 -inventory: Gilded Spangle of Foreboding 1 -inventory: Reverential Corset of Torpor 1 -inventory: Gleaming Vulpeculum of Awe 1 -inventory: Mythic Gimcrack of Guile 1 -inventory: One True Scabbard of Rapidity 1 +inventory: Lucky Hymnal of Rapidity 1 +inventory: Magnificent Sceptre of Invisibility 1 +inventory: Mythic Phial of Hurting 1 +inventory: Arcane Laurel of Hydragyrum 1 inventory: Benevolent Laurel of Danger 1 -inventory: Grandiose Scabbard of the Bone 1 -inventory: Crafted Candelabra of Fear 1 -spell: Hastiness 1 -spell: Aqueous Humor 2 +inventory: Puissant Talisman of Fortune 1 +spell: Hastiness 2 +spell: Aqueous Humor 1 spell: Slime Finger 3 spell: Magnetic Orb 2 -spell: Sadness 5 -spell: Cone of Paste 1 -spell: Revolting Cloud 1 -spell: Seasick 2 -spell: Rabbit Punch 2 -spell: Cone of Annoyance 3 +spell: Sadness 4 +spell: Cone of Paste 2 +spell: Revolting Cloud 2 +spell: Seasick 3 +spell: Rabbit Punch 1 +spell: Cone of Annoyance 1 spell: Lockjaw 1 -spell: Good Move 2 +spell: Good Move 1 spell: Inoculate 1 +spell: Clever Fellow 1 spell: Spectral Miasma 1 -spell: Invisible Hands 1 quest: Fetch me a teratoma quest: Exterminate the Homunculi quest: Exterminate the Maneses @@ -1878,24 +1877,24 @@ quest: Fetch me a pole quest: Exterminate the Mini Giants quest: Placate the Lizard Men quest: Placate the Bone Devils -quest: Fetch me a tuppence -quest: Fetch me a writ -quest: Placate the Satyrs -quest: Fetch me an inkwell -quest: Seek the Fearsome Candelabra +quest: Placate the Pixies +quest: Deliver this lunchpail +quest: Exterminate the Nymphs +quest: Deliver this trinket +quest: Exterminate the Plaid Dragons +quest: Fetch me a letter +quest: Placate the Wolves +quest: Seek the Deadly Vulpeculum quest: Deliver this newspaper -quest: Placate the Shedus -quest: Seek the Gilded Tiara -quest: Placate the Silkies -quest: Exterminate the Xorns -quest: Seek the Gleaming Phial +quest: Deliver this newspaper +quest: Seek the Golden Lens +quest: Seek the One True Gemstone +quest: Exterminate the Rot Grubs +quest: Exterminate the Rust Monsters quest: Fetch me a vest quest: Deliver this sock quest: Deliver this lunchpail quest: Placate the Bats quest: Exterminate the Mummies -quest: Fetch me a towel -quest: Fetch me a bandage -quest: Placate the Plaid Dragons -quest: Exterminate the Poroids -quest: Deliver this hat +quest: Deliver this ladder +quest: Placate the Hobgoblins diff --git a/tests/fixtures/parity_beta.txt b/tests/fixtures/parity_beta.txt index 220f4c5..cc6ee8e 100644 --- a/tests/fixtures/parity_beta.txt +++ b/tests/fixtures/parity_beta.txt @@ -1528,85 +1528,55 @@ queued: You seem to gain the advantage over Droxshaeg the Plaid Dragon queued: Victory! Droxshaeg the Plaid Dragon is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Chief of Moobtrok -queued: There is rejoicing, and an unnerving encounter with Chief of Moobtrok in private +queued: Oh sweet relief! You've reached the kind protection of Viceroy Crunmied of Mockpran +queued: There is rejoicing, and an unnerving encounter with Viceroy Crunmied of Mockpran in private queued: You forget your hat and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Chief of Moobtrok be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Viceroy Crunmied of Mockpran be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Crigreck the Neo-Otyugh -queued: You seem to gain the advantage over Crigreck the Neo-Otyugh -queued: Victory! Crigreck the Neo-Otyugh is slain! Exhausted, you lose consciousness +queued: A desperate struggle commences with Uzdreg the Plaid Dragon +queued: Victory! Uzdreg the Plaid Dragon is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Mayor of Mouzcrin -queued: There is rejoicing, and an unnerving encounter with Mayor of Mouzcrin in private -queued: You forget your anvil and go back to get it +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of Archbishop Crackak of Frouxtrik +queued: There is rejoicing, and an unnerving encounter with Archbishop Crackak of Frouxtrik in private +queued: You forget your bandage and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Mayor of Mouzcrin be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Archbishop Crackak of Frouxtrik be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Grugin the Leucrotta -queued: Locked in grim combat with Grugin the Leucrotta -queued: You seem to gain the advantage over Grugin the Leucrotta -queued: Victory! Grugin the Leucrotta is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Mayor of Shixraet -queued: There is rejoicing, and an unnerving encounter with Mayor of Shixraet in private -queued: You forget your lunchpail and go back to get it +queued: Oh sweet relief! You've reached the kind protection of Chief Umvug of Riviek +queued: There is rejoicing, and an unnerving encounter with Chief Umvug of Riviek in private +queued: You forget your chicken and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Mayor of Shixraet be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Chief Umvug of Riviek be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Truncrig the Leucrotta -queued: Victory! Truncrig the Leucrotta is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Jooxmek the Vrock -queued: Locked in grim combat with Jooxmek the Vrock -queued: Jooxmek the Vrock seems to have the upper hand -queued: Victory! Jooxmek the Vrock is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Zuvcret the Djinn -queued: Zuvcret the Djinn seems to have the upper hand -queued: Victory! Zuvcret the Djinn is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Shoobfrab the Green Dragon -queued: You seem to gain the advantage over Shoobfrab the Green Dragon -queued: Victory! Shoobfrab the Green Dragon is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Lady of Levmooz -queued: There is rejoicing, and an unnerving encounter with Lady of Levmooz in private -queued: You forget your ladder and go back to get it +queued: Oh sweet relief! You've reached the kind protection of Baroness Provmiep of Zidshix +queued: There is rejoicing, and an unnerving encounter with Baroness Provmiep of Zidshix in private +queued: You forget your hoe and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Lady of Levmooz be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Baroness Provmiep of Zidshix be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Lord of the Skraelings +queued: There is rejoicing, and an unnerving encounter with the Lord of the Skraelings in private +queued: You forget your bucket and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Lord of the Skraelings be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies @@ -1618,6 +1588,39 @@ queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of Prince Traevfred of Draepkrig +queued: There is rejoicing, and an unnerving encounter with Prince Traevfred of Draepkrig in private +queued: You forget your dirtclod and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Prince Traevfred of Draepkrig be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Your quarry is in sight, but a mighty enemy bars your path! +queued: A desperate struggle commences with Xietyuv the Iguanadon +queued: Victory! Xietyuv the Iguanadon is slain! Exhausted, you lose consciousness +queued: You awake in a friendly place, but the road awaits +queued: Loading Act II +queued: Your quarry is in sight, but a mighty enemy bars your path! +queued: A desperate struggle commences with Shaemkroun the Balor +queued: Locked in grim combat with Shaemkroun the Balor +queued: Victory! Shaemkroun the Balor is slain! Exhausted, you lose consciousness +queued: You awake in a friendly place, but the road awaits +queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders @@ -1670,130 +1673,124 @@ queued: A desperate struggle commences with Trebout the Gelatinous Cube queued: Victory! Trebout the Gelatinous Cube is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Nickshok the Xorn -queued: Nickshok the Xorn seems to have the upper hand -queued: Victory! Nickshok the Xorn is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -monster: Executing an underage Hogbird 12000 -monster: Executing a Whippet 6000 -monster: Executing a Harpy 6000 -monster: Executing an underage White Dragon 7500 -monster: Executing a greater Silkie 4800 -monster: Executing a Leucrotta 6000 -monster: Executing an underage Lich 8571 -monster: Executing a Were-Manticore 6750 -monster: Executing a demon Otyugh 8000 -monster: Executing a passing Demicanadian Shiv-Knight 4800 -monster: Executing a greater Vrock 4909 -monster: Executing a greater demon Barbed Devil 7000 -monster: Executing a massive Humidity Giant 6461 -monster: Executing a Battle-Ankylosaurus 4285 +monster: Executing a Dwarf 6000 +monster: Executing a veteran Lizard Man 9000 +monster: Executing a greater Swamp Elf 4000 +monster: Executing an enormous Gnome 6000 +monster: Executing a Succubus 7200 +monster: Executing a Rakshasa 7000 +monster: Executing an underage Roper 8571 +monster: Executing a Vampire 6000 +monster: Executing a comatose Gorgosaurus 6000 +monster: Executing an undead Otyugh 6600 +monster: Executing a Vampire 4363 +monster: Executing a veteran Hill Giant 4500 +monster: Executing a veteran Fire Giant 5538 +monster: Executing a titanic Battle-Naga 6428 monster: Executing a Baluchitherium 5600 -monster: Executing a sick Hair Elemental 5250 -monster: Executing a greater Elasmosaurus 5647 -monster: Executing 5 underage Blink Dogs 5000 -monster: Executing a greater Purple Worm 5052 -monster: Executing a crippled baby Dispater 6900 -monster: Executing a comatose foetal Dispater 6000 -monster: Executing a sick foetal Dispater 6272 -monster: Executing a teenage Brontosaurus 7304 -monster: Executing 2 teenage Beer Golems 6500 -monster: Executing a demon Gorgosaurus 4320 -monster: Executing Mrs. Shodnit the Skraeling 6230 -monster: Executing 4 Rakshasas 6222 -monster: Executing 2 underage Chromatic Dragons 6428 -monster: Executing 2 preadolescent Chromatic Dragons 5379 -monster: Executing a messianic Titan 6200 -monster: Executing an enormous Orcus 5806 -monster: Executing 2 preadolescent Oxygen Golems 5250 -monster: Executing 3 massive Bone Devils 6000 -monster: Executing 3 underage Mastodons 5823 -monster: Executing 3 Porn Elementals 6171 -monster: Executing 2 cursed Chromatic Dragons 6000 -monster: Executing 6 Medusas 5837 -monster: Executing 2 giant Tyrannosaurus Rexes 6947 -monster: Executing a comatose foetal Baalzebul 5230 -monster: Executing 4 teenage Ropers 5400 -monster: Executing 3 veteran Porn Elementals 5707 -monster: Executing a messianic Yeenoghu 5428 -monster: Executing 3 comatose Stegosauri 5860 -monster: Executing 3 Cardboard Golems 5727 -monster: Executing 5 undernourished Blue Dragons 5333 -monster: Executing 4 undernourished Humidity Giants 5739 -monster: Executing 5 undernourished Ankylosauri 5106 -monster: Executing 4 Battle-Remorhazs 6000 -monster: Executing 2 Yeenoghus 6122 -monster: Executing a passing Talking Pony Robot Monk 6120 -monster: Executing 5 underage Fire Giants 5882 -monster: Executing a messianic Geryon 5769 -monster: Executing 5 Hezrous 5094 -monster: Executing 6 Mind Flayers 5333 -monster: Executing 8 undernourished Umber Hulks 6109 -monster: Executing 4 teenage Storm Giants 5571 -monster: Executing a messianic Baalzebul 6736 -monster: Executing 3 undead Hair Elementals 6206 -monster: Executing 4 teenage Chromatic Dragons 5694 -monster: Executing 3 dead preadolescent Orci 5700 -monster: Executing 2 giant Diplodoci 5508 -monster: Executing 4 veteran Beer Golems 6193 -monster: Executing 3 greater Titans 6000 -monster: Executing 4 underage Triceratopses 5625 -monster: Executing 3 baby Orci 6369 -monster: Executing 6 greater Porn Elementals 7090 -monster: Executing 5 Cheese Elementals 6268 -monster: Executing 7 underage Mimics 4941 -monster: Executing 4 Oxygen Golems 5913 -monster: Executing 7 Quartz Giants 6000 -monster: Executing 2 titanic Were-Orci 5915 -monster: Executing 9 Gorgons 6000 -monster: Executing 4 Stegosauri 5917 -monster: Executing 6 veteran Porn Elementals 6324 -monster: Executing 7 underage Fire Giants 5600 -monster: Executing 6 Porn Elementals 5684 -monster: Executing 7 Bronze Dragons 4909 -monster: Executing 3 baby Brontosauri 6000 -monster: Executing 7 Liches 5848 -monster: Executing 10 Umber Hulks 6000 -monster: Executing 5 undernourished Oxygen Golems 5925 -monster: Executing 7 Humidity Giants 6146 -monster: Executing 8 undernourished Efreets 5204 -monster: Executing 6 underage Rubber Golems 6428 -monster: Executing 5 Oxygen Golems 6000 -monster: Executing 7 undernourished Trappers 5372 -monster: Executing 9 undernourished Quartz Giants 5586 -monster: Executing 6 undernourished Beer Golems 5727 -monster: Executing 3 enormous Diplodoci 5460 -monster: Executing 9 Lurkers 6000 -monster: Executing 2 giant Baalzebuls 6197 -monster: Executing 11 Green Dragons 5739 -monster: Executing 3 comatose Dispaters 5032 -monster: Executing 3 demon Dispaters 6702 -monster: Executing 10 Red Dragons 6315 -monster: Executing 19 Ogre Mages 5937 -monster: Executing 10 Fire Giants 6804 -monster: Executing 6 greater Rubber Golems 6244 -monster: Executing 5 massive Hair Elementals 5454 +monster: Executing Sgt. Xickfrix the Dung Elf 4875 +monster: Executing a greater Leather Golem 5647 +monster: Executing an enormous undead Trapper 6333 +monster: Executing a titanic Beer Golem 6315 +monster: Executing an enormous demon Purple Worm 6900 +monster: Executing 3 teenage Rice Giants 5142 +monster: Executing a Battle-Titan 5727 +monster: Executing 2 underage Leather Golems 7304 +monster: Executing 3 teenage Black Puddings 6000 +monster: Executing a titanic Were-Sphinx 4320 +monster: Executing 2 enormous Shambling Mounds 6000 +monster: Executing 3 preadolescent Dragon Turtles 6666 +monster: Executing an enormous demon Platinum Dragon 6214 +monster: Executing 2 enormous Quartz Giants 5379 +monster: Executing 3 undernourished Ice Devils 6000 +monster: Executing an imaginary Asmodeus 6387 +monster: Executing 3 Ghosts 5625 +monster: Executing a massive Orcus 5272 +monster: Executing 2 massive Beer Golems 6000 +monster: Executing an imaginary Baalzebul 5485 +monster: Executing a messianic Dispater 6666 +monster: Executing 3 sick Baluchitheriums 5837 +monster: Executing 3 foetal Oxygen Golems 5684 +monster: Executing 3 undernourished Beer Golems 6461 +monster: Executing 3 veteran Red Dragons 4950 +monster: Executing 3 undernourished Baluchitheriums 5707 +monster: Executing 5 teenage Mimics 5000 +monster: Executing 4 sick Nalfeshnees 5023 +monster: Executing 4 underage Humidity Giants 6000 +monster: Executing a dead baby Asmodeus 5733 +monster: Executing 14 undernourished Carrion Crawlers 3652 +monster: Executing 6 underage Copper Dragons 5361 +monster: Executing 3 Stegosauri 6750 +monster: Executing 2 sick Yeenoghus 5632 +monster: Executing 4 underage Cheese Elementals 6240 +monster: Executing an underage Asmodeus 6000 +monster: Executing 3 veteran Hair Elementals 5884 +monster: Executing a demon Baalzebul 5433 +monster: Executing 4 baby Cardboard Golems 4444 +monster: Executing 2 undead Yeenoghus 6327 +monster: Executing 8 Wyverns 6000 +monster: Executing 3 dead baby Dispaters 6631 +monster: Executing 5 Beef Giants 5689 +monster: Executing 4 Leather Golems 6101 +monster: Executing 3 greater Rocs 5700 +monster: Executing an enormous Demogorgon 5508 +monster: Executing 5 teenage Leather Golems 6290 +monster: Executing 3 Battle-Rocs 5428 +monster: Executing 7 Will-o'-the-Wisps 5906 +monster: Executing 2 massive undead Dispaters 6646 +monster: Executing 5 Beer Golems 6818 +monster: Executing 8 underage Ghosts 6447 +monster: Executing 5 veteran Silver Dragons 4852 +monster: Executing 4 Rubber Golems 5565 +monster: Executing 4 preadolescent Platinum Dragons 6171 +monster: Executing 5 undernourished Leather Golems 5915 +monster: Executing 4 veteran Rubber Golems 5666 +monster: Executing 8 underage Beholders 5917 +monster: Executing 4 underage Titans 6162 +monster: Executing 6 Ropers 5280 +monster: Executing 4 Stegosauri 5684 +monster: Executing 5 Baluchitheriums 5454 +monster: Executing 3 giant Platinum Dragons 5769 +monster: Executing 4 sick Platinum Dragons 5772 +monster: Executing 3 Orci 6075 +monster: Executing 5 greater Leather Golems 5925 +monster: Executing 6 underage Triceratopses 6585 +monster: Executing 2 imaginary Asmodei 5783 +monster: Executing 9 underage Treants 5785 +monster: Executing 6 underage Chromatic Dragons 6352 +monster: Executing 5 underage Jubilexes 5581 +monster: Executing 6 undernourished Cardboard Golems 5379 +monster: Executing a passing Eel Man Battle-Felon 5863 +monster: Executing 7 Beef Giants 5191 +monster: Executing 3 enormous Orci 6000 +monster: Executing 10 underage Frost Giants 5934 +monster: Executing 15 Manticores 5869 +monster: Executing 2 imaginary Demogorgons 5419 +monster: Executing 6 undernourished Oxygen Golems 6127 +monster: Executing 5 greater Titans 6631 +monster: Executing 2 undead Baalzebuls 5875 +monster: Executing 6 underage Titans 7051 +monster: Executing 11 undernourished Bronze Dragons 5387 +monster: Executing 2 giant Baalzebuls 5696 level: 4 act: 1 gold: 72 stat: STR 13 -stat: CON 18 -stat: DEX 14 -stat: INT 18 -stat: WIS 18 -stat: CHA 14 +stat: CON 15 +stat: DEX 13 +stat: INT 19 +stat: WIS 21 +stat: CHA 11 stat: HP Max 26 stat: MP Max 27 -equipment: Weapon -1 Baselard +equipment: Weapon Mace equipment: Hauberk +1 Burlap equipment: Vambraces +1 Burlap equipment: Sollerets +1 Burlap equipment: Helm -2 Flannel -equipment: Gambeson -2 Torn Bearskin +equipment: Gambeson Canvas equipment: Shield -1 Plexiglass -equipment: Gauntlets Canvas +equipment: Gauntlets Threadbare Chamois equipment: Cuisses -1 Burlap equipment: Brassairts Motheaten Chamois equipment: Greaves Canvas @@ -1809,24 +1806,27 @@ inventory: stun worm trode 1 inventory: rice giant grain 1 inventory: peryton antler 1 inventory: bugbear skin 1 -inventory: Dual Candelabra of Happiness 1 -inventory: Ormolu Ornament of Fealty 1 +inventory: Crystalline Ankh of Torpor 1 +inventory: Enchanted Brazier of Practicality 1 +inventory: Spectral Amethyst of Joy 1 +inventory: Iron Lamp of Craft 1 +inventory: Gilded Arrow of Danger 1 inventory: Magnificent Candelabra of Electrum 1 inventory: Blessed Phial of Envy 1 inventory: Gleaming Gimcrack of Frenzy 1 inventory: Austere Diadem of Hunger 1 spell: Aqueous Humor 1 -spell: Inoculate 2 +spell: Inoculate 1 spell: Magnetic Orb 1 -spell: Good Move 4 -spell: Hydrophobia 1 -spell: Slime Finger 1 +spell: Good Move 3 +spell: Hydrophobia 2 +spell: Slime Finger 2 spell: Spectral Miasma 1 -spell: Rabbit Punch 2 -spell: Sadness 1 -spell: Cone of Paste 1 +spell: Rabbit Punch 1 +spell: Invisible Hands 1 +spell: History Lesson 1 +spell: Hastiness 2 spell: Seasick 1 -spell: Hastiness 1 quest: Seek the Spectral Fleece quest: Deliver this writ quest: Fetch me an egg @@ -1873,28 +1873,28 @@ quest: Deliver this canoe quest: Seek the Fearsome Albatross quest: Exterminate the Shriekers quest: Exterminate the Nymphs -quest: Fetch me a hat -quest: Placate the Leucrottas -quest: Deliver this pole -quest: Seek the Spectral Scabbard -quest: Placate the Frogs -quest: Placate the Ochre Jellies +quest: Placate the Eagle Scouts +quest: Deliver this nosegay +quest: Fetch me an anvil +quest: Seek the Legendary Ornament +quest: Placate the Ogre Mages +quest: Placate the Efreets +quest: Seek the Magnificent Brocade +quest: Seek the Lucky Sphere quest: Deliver this inkwell -quest: Placate the Owlbears -quest: Fetch me a trinket -quest: Exterminate the Perytons -quest: Placate the Gnomes -quest: Placate the Balors -quest: Seek the Iron Corset -quest: Seek the Ormolu Garnet -quest: Deliver this coin +quest: Placate the Imps +quest: Placate the Bugbears +quest: Seek the Reverential Bijou +quest: Fetch me a rock +quest: Exterminate the Ghouls +quest: Deliver this axle +quest: Placate the Gelatinous Cubes quest: Deliver this I.O.U. quest: Fetch me a pint quest: Exterminate the Copper Dragons -quest: Fetch me a hoe +quest: Fetch me a plank quest: Seek the Unearthly Cobble quest: Deliver this I.O.U. quest: Seek the Iron Ankh quest: Exterminate the Gelatinous Cubes quest: Placate the Umber Hulks -quest: Deliver this inkwell diff --git a/tests/fixtures/parity_gamma.txt b/tests/fixtures/parity_gamma.txt index 167a4e1..99b9de6 100644 --- a/tests/fixtures/parity_gamma.txt +++ b/tests/fixtures/parity_gamma.txt @@ -1513,106 +1513,111 @@ queued: A desperate struggle commences with Fretfrem the Ettin queued: Victory! Fretfrem the Ettin is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Queen of the Dung Elf -queued: There is rejoicing, and an unnerving encounter with Queen of the Dung Elf in private -queued: You forget your trowel and go back to get it -queued: What's this!? You overhear something shocking! -queued: Could Queen of the Dung Elf be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Archbishop of Zitaex -queued: There is rejoicing, and an unnerving encounter with Archbishop of Zitaex in private -queued: You forget your cookie and go back to get it -queued: What's this!? You overhear something shocking! -queued: Could Archbishop of Zitaex be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Mipshuk the Owlbear -queued: Locked in grim combat with Mipshuk the Owlbear -queued: Victory! Mipshuk the Owlbear is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good King of the Demicanadian -queued: There is rejoicing, and an unnerving encounter with King of the Demicanadian in private -queued: You forget your trinket and go back to get it -queued: What's this!? You overhear something shocking! -queued: Could King of the Demicanadian be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Pravkrug the Grid Bug -queued: Victory! Pravkrug the Grid Bug is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Itrad the Marilith -queued: Locked in grim combat with Itrad the Marilith -queued: Victory! Itrad the Marilith is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits -queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Boss of the Trans-Kobold -queued: There is rejoicing, and an unnerving encounter with Boss of the Trans-Kobold in private -queued: You forget your egg and go back to get it -queued: What's this!? You overhear something shocking! -queued: Could Boss of the Trans-Kobold be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! -queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Viceroy of the Half Orc -queued: There is rejoicing, and an unnerving encounter with Viceroy of the Half Orc in private +queued: Oh sweet relief! You've reached the kind protection of Prince Krovep of Ramraex +queued: There is rejoicing, and an unnerving encounter with Prince Krovep of Ramraex in private queued: You forget your lunchpail and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Viceroy of the Half Orc be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could Prince Krovep of Ramraex be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Lord of Grooxriek -queued: There is rejoicing, and an unnerving encounter with Lord of Grooxriek in private -queued: You forget your credenza and go back to get it +queued: Oh sweet relief! You've reached the kind protection of the Chancellor of the Demicanadians +queued: There is rejoicing, and an unnerving encounter with the Chancellor of the Demicanadians in private +queued: You forget your writ and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Lord of Grooxriek be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course +queued: Could the Chancellor of the Demicanadians be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! +queued: Oh sweet relief! You've reached the kind protection of the Mayor of the Trans-Kobolds +queued: There is rejoicing, and an unnerving encounter with the Mayor of the Trans-Kobolds in private +queued: You forget your nail and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Mayor of the Trans-Kobolds be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! +queued: Oh sweet relief! You've reached the kind protection of Boss Yooxoov of Xatxaeg +queued: There is rejoicing, and an unnerving encounter with Boss Yooxoov of Xatxaeg in private +queued: You forget your I.O.U. and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Boss Yooxoov of Xatxaeg be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Draedgroum the Blue Dragon -queued: You seem to gain the advantage over Draedgroum the Blue Dragon -queued: Victory! Draedgroum the Blue Dragon is slain! Exhausted, you lose consciousness +queued: A desperate struggle commences with Zammiez the Gorgon +queued: Zammiez the Gorgon seems to have the upper hand +queued: Victory! Zammiez the Gorgon is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! +queued: Oh sweet relief! You've reached the kind protection of Boss Krockriem of Kruxib +queued: There is rejoicing, and an unnerving encounter with Boss Krockriem of Kruxib in private +queued: You forget your bunny and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Boss Krockriem of Kruxib be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Your quarry is in sight, but a mighty enemy bars your path! +queued: A desperate struggle commences with Vibshad the Spectre +queued: Victory! Vibshad the Spectre is slain! Exhausted, you lose consciousness +queued: You awake in a friendly place, but the road awaits +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Baroness of the Gyrognomes +queued: There is rejoicing, and an unnerving encounter with the Baroness of the Gyrognomes in private +queued: You forget your hoe and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Baroness of the Gyrognomes be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Archbishop of the Trans-Kobolds +queued: There is rejoicing, and an unnerving encounter with the Archbishop of the Trans-Kobolds in private +queued: You forget your egg and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Archbishop of the Trans-Kobolds be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Princess of the Half Orcs +queued: There is rejoicing, and an unnerving encounter with the Princess of the Half Orcs in private +queued: You forget your lunchpail and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Princess of the Half Orcs be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of Lord Grooxriek of Yagprad +queued: There is rejoicing, and an unnerving encounter with Lord Grooxriek of Yagprad in private +queued: You forget your dirtclod and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Lord Grooxriek of Yagprad be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Exhausted, you arrive at a friendly oasis in a hostile land +queued: You greet old friends and meet new allies +queued: You are privy to a council of powerful do-gooders +queued: There is much to be done. You are chosen! +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Lady of the Gyrognomes +queued: There is rejoicing, and an unnerving encounter with the Lady of the Gyrognomes in private +queued: You forget your bucket and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Lady of the Gyrognomes be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the Baroness of the Eel Men +queued: There is rejoicing, and an unnerving encounter with the Baroness of the Eel Men in private +queued: You forget your trinket and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the Baroness of the Eel Men be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +queued: Your quarry is in sight, but a mighty enemy bars your path! +queued: A desperate struggle commences with Jinix the Mummy +queued: Jinix the Mummy seems to have the upper hand +queued: You seem to gain the advantage over Jinix the Mummy +queued: Victory! Jinix the Mummy is slain! Exhausted, you lose consciousness +queued: You awake in a friendly place, but the road awaits +queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! queued: A desperate struggle commences with Xizwhox the Xorn queued: Locked in grim combat with Xizwhox the Xorn @@ -1632,27 +1637,24 @@ queued: You seem to gain the advantage over Zuzloum the Djinn queued: Victory! Zuzloum the Djinn is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -queued: Oh sweet relief! You've reached the protection of the good Lady of the Land Squid -queued: There is rejoicing, and an unnerving encounter with Lady of the Land Squid in private -queued: You forget your egg and go back to get it +queued: Oh sweet relief! You've reached the kind protection of Prince Yiegob of Kravuk +queued: There is rejoicing, and an unnerving encounter with Prince Yiegob of Kravuk in private +queued: You forget your nosegay and go back to get it queued: What's this!? You overhear something shocking! -queued: Could Lady of the Land Squid be a dirty double-dealer? -queued: Who can possibly be trusted with this news!? ... Oh yes, of course -queued: Loading Act II -queued: Your quarry is in sight, but a mighty enemy bars your path! -queued: A desperate struggle commences with Xopbrup the Iguanadon -queued: Victory! Xopbrup the Iguanadon is slain! Exhausted, you lose consciousness -queued: You awake in a friendly place, but the road awaits +queued: Could Prince Yiegob of Kravuk be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Exhausted, you arrive at a friendly oasis in a hostile land queued: You greet old friends and meet new allies queued: You are privy to a council of powerful do-gooders queued: There is much to be done. You are chosen! queued: Loading Act II -queued: Exhausted, you arrive at a friendly oasis in a hostile land -queued: You greet old friends and meet new allies -queued: You are privy to a council of powerful do-gooders -queued: There is much to be done. You are chosen! +queued: Oh sweet relief! You've reached the kind protection of Baroness Noboov of Zabgrag +queued: There is rejoicing, and an unnerving encounter with Baroness Noboov of Zabgrag in private +queued: You forget your sock and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could Baroness Noboov of Zabgrag be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course queued: Loading Act II queued: Your quarry is in sight, but a mighty enemy bars your path! queued: A desperate struggle commences with Loozkried the Rice Giant @@ -1673,135 +1675,146 @@ queued: Locked in grim combat with Uckfrik the Rust Monster queued: Victory! Uckfrik the Rust Monster is slain! Exhausted, you lose consciousness queued: You awake in a friendly place, but the road awaits queued: Loading Act II -monster: Executing an Ostrich 6000 -monster: Executing a Shadow 9000 -monster: Executing a cursed Whippet 8000 -monster: Executing a massive Hogbird 7500 -monster: Executing a teenage Rakshasa 6000 -monster: Executing an undernourished Vampire 7000 -monster: Executing a Vrock 6857 -monster: Executing a passing Crested Dwarf Bastard Lunatic 6750 -monster: Executing an undernourished Gold Dragon 4666 -monster: Executing a Remorhaz 6600 -monster: Executing a Battle-Succubus 3818 -monster: Executing a cursed Quartz Giant 6000 -monster: Executing a Were-Treant 6000 -monster: Executing a titanic Iguanadon 4714 -monster: Executing an undead Beholder 5600 -monster: Executing a massive demon Balor 5625 -monster: Executing a giant demon Hezrou 6352 -monster: Executing an undernourished Stegosaurus 5666 -monster: Executing a giant undead Stone Giant 5368 -monster: Executing a messianic Marilith 5100 -monster: Executing 2 enormous Nagas 6857 -monster: Executing a messianic Red Dragon 5454 -monster: Executing a giant warrior Cheese Elemental 5478 -monster: Executing a massive Titan 5500 -monster: Executing 3 Red Dragons 7200 -monster: Executing a messianic Beer Golem 5769 -monster: Executing 3 underage Ettins 6000 -monster: Executing 2 massive Pit Fiends 6428 -monster: Executing 3 Nalfeshnees 6827 -monster: Executing 3 undernourished Beef Giants 6000 -monster: Executing 4 underage Copper Dragons 5419 -monster: Executing a messianic Pit Fiend 4312 -monster: Executing 5 underage Umber Hulks 6363 -monster: Executing 3 sick Triceratopses 7411 -monster: Executing 3 Shambling Mounds 5142 -monster: Executing 2 Were-Trappers 5000 -monster: Executing 2 massive Chromatic Dragons 5837 -monster: Executing 2 massive Oxygen Golems 6000 -monster: Executing 4 sick Mastodons 6153 -monster: Executing 2 greater Elasmosauri 4800 -monster: Executing 4 sick Neo-Otyughs 5268 -monster: Executing 5 underage Lurkers 6428 -monster: Executing 3 veteran Purple Worms 6697 -monster: Executing 3 Battle-Gorgosauri 5727 -monster: Executing 2 crippled preadolescent Orci 5600 -monster: Executing 3 Leather Golems 5869 -monster: Executing a messianic Orcus 5234 -monster: Executing 2 cursed Diplodoci 6500 -monster: Executing 3 Battle-Baluchitheriums 5510 -monster: Executing 3 Battle-Gorgosauri 5040 -monster: Executing 10 Leucrottas 7058 -monster: Executing 7 underage Invisible Stalkers 5653 -monster: Executing 7 Xorns 5547 -monster: Executing an undernourished Demogorgon 5777 -monster: Executing 4 Cheese Elementals 6109 -monster: Executing 4 Cheese Elementals 6000 -monster: Executing 4 underage Cardboard Golems 5473 -monster: Executing 5 Remorhazs 5689 -monster: Executing 2 undead Yeenoghus 5898 -monster: Executing 5 Battle-Remorhazs 6000 -monster: Executing 2 imaginary Baalzebuls 5704 -monster: Executing 6 greater Frost Giants 6387 -monster: Executing 3 greater Rocs 5428 -monster: Executing 2 giant Dispaters 6375 -monster: Executing 3 Diplodoci 6646 -monster: Executing 5 preadolescent Triceratopses 5909 -monster: Executing 8 underage Bacon Elementals 6447 -monster: Executing 5 underage Hair Elementals 6617 -monster: Executing Admiral Revnien the Low Elf 5739 -monster: Executing 4 undernourished Hair Elementals 5142 -monster: Executing 6 undernourished Pit Fiends 6084 -monster: Executing 3 greater Titans 5250 -monster: Executing 4 veteran Rubber Golems 5589 -monster: Executing 2 massive undead Brontosauri 5837 -monster: Executing 2 dead Baalzebuls 6080 -monster: Executing 8 underage Blue Dragons 5052 -monster: Executing 2 imaginary Asmodei 5922 -monster: Executing 2 teenage Baalzebuls 6307 -monster: Executing 6 sick Hair Elementals 6379 -monster: Executing 3 undernourished Orci 5850 -monster: Executing 5 undernourished Hair Elementals 5555 -monster: Executing 10 undernourished Bone Devils 5853 -monster: Executing 9 undernourished Couatls 5204 -monster: Executing 9 underage Black Puddings 5785 -monster: Executing 8 undernourished Red Dragons 5082 -monster: Executing 2 imaginary Demogorgons 5720 -monster: Executing 4 comatose Diplodoci 5517 -monster: Executing 12 undernourished Rice Giants 5727 -monster: Executing 3 Yeenoghus 5056 -monster: Executing 9 Silver Dragons 6000 -monster: Executing 9 Couatls 5340 -monster: Executing 4 baby Yeenoghus 5478 -monster: Executing 3 sick Geryons 5419 -monster: Executing 9 undernourished Beholders 5170 -monster: Executing 11 Rice Giants 5557 -monster: Executing 12 undernourished Hezrous 6000 -monster: Executing 7 underage Baluchitheriums 5628 -monster: Executing 7 sick Triceratopses 6000 -monster: Executing 7 Baluchitheriums 5939 +queued: Your quarry is in sight, but a mighty enemy bars your path! +queued: A desperate struggle commences with Trieztrieg the Succubus +queued: You seem to gain the advantage over Trieztrieg the Succubus +queued: Victory! Trieztrieg the Succubus is slain! Exhausted, you lose consciousness +queued: You awake in a friendly place, but the road awaits +queued: Loading Act II +queued: Oh sweet relief! You've reached the kind protection of the King of the Dung Elves +queued: There is rejoicing, and an unnerving encounter with the King of the Dung Elves in private +queued: You forget your needle and go back to get it +queued: What's this!? You overhear something shocking! +queued: Could the King of the Dung Elves be a dirty double-dealer? +queued: Who can possibly be trusted with this news!? -- Oh yes, of course +queued: Loading Act II +monster: Executing a greater Centipede 6000 +monster: Executing a Battle-Gnome 6000 +monster: Executing an underage Ogre Mage 8000 +monster: Executing a massive Crayfish 3000 +monster: Executing a teenage Marilith 6000 +monster: Executing a crippled Quartz Giant 7000 +monster: Executing an undernourished Plaid Dragon 5142 +monster: Executing an underage Red Dragon 6750 +monster: Executing a passing Land Squid Tickle-Mimic 3333 +monster: Executing a teenage Ice Devil 5400 +monster: Executing an underage Triceratops 8181 +monster: Executing a cursed Treant 6000 +monster: Executing a foetal Roc 6000 +monster: Executing a cursed Ghost 5142 +monster: Executing an undead Balor 4800 +monster: Executing a crippled Roc 5625 +monster: Executing a titanic veteran Ice Devil 6000 +monster: Executing a cursed Trapper 4666 +monster: Executing a cursed Purple Worm 5368 +monster: Executing 2 underage Trappers 6600 +monster: Executing a titanic warrior Red Dragon 5142 +monster: Executing a titanic warrior Cheese Elemental 6000 +monster: Executing a massive Roc 5217 +monster: Executing 2 comatose Tyrannosaurus Rexes 7000 +monster: Executing a titanic warrior Chromatic Dragon 5760 +monster: Executing a titanic undead Leather Golem 5538 +monster: Executing 3 comatose Pit Fiends 6000 +monster: Executing 2 Purple Worms 6428 +monster: Executing 2 Were-Pentasauri 6206 +monster: Executing 3 undernourished Remorhazs 6000 +monster: Executing 3 undernourished Will-o'-the-Wisps 4645 +monster: Executing a titanic cursed Yeenoghu 6000 +monster: Executing Captain Yiexrag the Will o' the Wisp 8000 +monster: Executing 2 greater Jubilexes 6352 +monster: Executing 2 crippled Jubilexes 4800 +monster: Executing 5 undernourished Balors 5833 +monster: Executing 3 sick Storm Giants 6324 +monster: Executing 2 foetal Yeenoghus 6315 +monster: Executing 4 undernourished Bacon Elementals 5538 +monster: Executing 3 teenage Cheese Elementals 5400 +monster: Executing 3 undernourished Cheese Elementals 5707 +monster: Executing 4 underage Ice Devils 5714 +monster: Executing a Battle-Asmodeus 7395 +monster: Executing 2 undead Purple Worms 5181 +monster: Executing an imaginary Asmodeus 5600 +monster: Executing a messianic Geryon 5739 +monster: Executing 4 teenage Pit Fiends 5617 +monster: Executing 4 greater Beef Giants 6000 +monster: Executing 3 sick Leather Golems 4775 +monster: Executing 4 undernourished Nalfeshnees 4800 +monster: Executing 4 preadolescent Oxygen Golems 6588 +monster: Executing 3 Stegosauri 6230 +monster: Executing 3 Rocs 6113 +monster: Executing 2 enormous demon Titans 6222 +monster: Executing 6 Shedus 5890 +monster: Executing 4 undernourished Baluchitheriums 5571 +monster: Executing 6 Shambling Mounds 6315 +monster: Executing 6 undernourished Red Dragons 5586 +monster: Executing 4 undernourished Baluchitheriums 5288 +monster: Executing 5 greater Megalosauri 6500 +monster: Executing 9 underage Wyverns 5311 +monster: Executing 9 undernourished Invisible Stalkers 6096 +monster: Executing 6 underage Porn Elementals 6285 +monster: Executing 6 underage Mastodons 6187 +monster: Executing 5 teenage Chromatic Dragons 6461 +monster: Executing 7 undernourished Will-o'-the-Wisps 5090 +monster: Executing 9 Vrocks 6447 +monster: Executing 5 sick Triceratopses 6176 +monster: Executing 4 undernourished Jubilexes 5565 +monster: Executing 2 titanic Were-Yeenoghus 5657 +monster: Executing Mr. Trupjog the Battle-Finch 6507 +monster: Executing Admiral Krudvieg the Low Elf 5083 +monster: Executing 6 crippled Storm Giants 5917 +monster: Executing 3 sick Yeenoghus 5594 +monster: Executing 10 undernourished Invisible Stalkers 5600 +monster: Executing 5 Dragon Turtles 5131 +monster: Executing a messianic Demogorgon 5922 +monster: Executing 8 Fire Giants 6769 +monster: Executing 7 underage Porn Elementals 5848 +monster: Executing a messianic Demogorgon 5475 +monster: Executing 3 crippled Geryons 6000 +monster: Executing 6 Baluchitheriums 6146 +monster: Executing a messianic Demogorgon 5855 +monster: Executing 2 imaginary Asmodei 6000 +monster: Executing 12 Mariliths 5929 +monster: Executing 3 comatose Dispaters 5441 +monster: Executing 2 underage Baalzebuls 5793 +monster: Executing 6 Leather Golems 6136 +monster: Executing 5 veteran Cheese Elementals 5056 +monster: Executing 9 undernourished Megalosauri 6600 +monster: Executing 7 undernourished Trappers 5076 +monster: Executing 11 undernourished Copper Dragons 5021 +monster: Executing 4 massive Tyrannosaurus Rexes 5161 +monster: Executing 10 undernourished Jellyrocks 5106 +monster: Executing 6 Storm Giants 5684 +monster: Executing 11 underage Will-o'-the-Wisps 5500 +monster: Executing 8 Megalosauri 5938 +monster: Executing 9 undernourished Megalosauri 6061 +monster: Executing 9 undernourished Fire Giants 5454 level: 4 act: 1 gold: 1 -stat: STR 15 -stat: CON 16 +stat: STR 18 +stat: CON 14 stat: DEX 13 -stat: INT 16 -stat: WIS 17 +stat: INT 17 +stat: WIS 15 stat: CHA 11 -stat: HP Max 27 +stat: HP Max 26 stat: MP Max 28 -equipment: Weapon -1 Longiron +equipment: Weapon -2 Crankbow equipment: Hauberk Canvas -equipment: Vambraces -1 Flannel +equipment: Vambraces +1 Burlap equipment: Helm +1 Burlap -equipment: Greaves Banded Macrame -equipment: Cuisses Motheaten Flannel -equipment: Gauntlets -1 Holey Chamois -equipment: Gambeson Canvas -equipment: Brassairts +1 Burlap -equipment: Sollerets -1 Patched Chamois -equipment: Shield +3 Pie Plate +equipment: Greaves Canvas +equipment: Cuisses Canvas +equipment: Gauntlets Canvas +equipment: Gambeson Rusty Chamois +equipment: Brassairts +1 Macrame +equipment: Sollerets -8 Faded Motheaten Splint Mail +equipment: Shield Fender inventory: Spectral Sceptre of Silence 1 inventory: unicorn blood 1 inventory: Dual Ornament of Dignard 1 -inventory: Magnificent Ornament of Torpor 1 -inventory: Mythic Spangle of Grob 1 +inventory: Benevolent Fleece of Torpor 1 +inventory: Garlanded Fleece of Electrum 1 inventory: Fearsome Lens of Intrusion 1 -inventory: Lucky Scabbard of Perspicacity 1 -inventory: Magnificent Ornament of Suffering 1 inventory: Crystalline Brooch of Perspicacity 1 inventory: Lucky Cobble of Despair 1 inventory: Filigreed Spangle of Intrusion 1 @@ -1809,12 +1822,13 @@ spell: Hastiness 2 spell: Slime Finger 4 spell: Seasick 3 spell: Rabbit Punch 3 -spell: Cone of Annoyance 4 -spell: Revolting Cloud 1 +spell: Cone of Annoyance 3 +spell: Revolting Cloud 2 spell: Magnetic Orb 1 spell: Clever Fellow 1 spell: Shoelaces 1 -spell: Good Move 1 +spell: Invisible Hands 2 +spell: Good Move 2 quest: Exterminate the Minotaurs quest: Seek the Gilded Albatross quest: Placate the Catoblepases @@ -1863,30 +1877,30 @@ quest: Exterminate the Ghasts quest: Exterminate the Blink Dogs quest: Fetch me a nail quest: Exterminate the Ghasts -quest: Deliver this hoe -quest: Exterminate the Mini Giants +quest: Placate the Hogbirds +quest: Fetch me a trowel quest: Seek the Dual Bandolier -quest: Seek the Austere Phial -quest: Exterminate the Poroids -quest: Deliver this sock -quest: Fetch me an axle -quest: Exterminate the Perytons +quest: Deliver this bandage +quest: Deliver this writ +quest: Deliver this rock +quest: Exterminate the Mermen +quest: Placate the Morkoths quest: Seek the Enchanted Brazier quest: Seek the Reverential Fleece quest: Fetch me an egg -quest: Fetch me a plank -quest: Placate the Beige Dragons -quest: Fetch me a coin -quest: Placate the Eagle Scouts -quest: Fetch me a trinket +quest: Fetch me a bunny +quest: Seek the Gleaming Candelabra +quest: Seek the Crystalline Festoon +quest: Fetch me an axle quest: Exterminate the Cavemen quest: Exterminate the Eagle Scouts quest: Exterminate the Eagle Scouts quest: Seek the Magnificent Talisman -quest: Fetch me a planter box -quest: Exterminate the Shadows -quest: Exterminate the Girl Scouts +quest: Exterminate the Iron Peasants +quest: Placate the Octopi quest: Deliver this anvil quest: Seek the Precious Garnet quest: Fetch me a bucket quest: Seek the Arcane Festoon +quest: Seek the Crafted Scabbard +quest: Seek the Crafted Brazier diff --git a/tests/test_mechanic.py b/tests/test_mechanic.py index 17a8912..be3d02d 100644 --- a/tests/test_mechanic.py +++ b/tests/test_mechanic.py @@ -1,11 +1,19 @@ import datetime +import re import pytest from pqcli import random from pqcli.config import PRIME_STATS, StatType from pqcli.game_data import load_game_data -from pqcli.mechanic import Player, Simulation, Stats, level_up_time +from pqcli.lingo import plural +from pqcli.mechanic import ( + Player, + Simulation, + Stats, + impressive_guy, + level_up_time, +) def test_level_up_time_matches_upstream() -> None: @@ -104,3 +112,37 @@ def test_win_item_past_cap_can_still_add_new_item( fake_below(monkeypatch, 301, 0, 0, 0) simulation.player.win_item(simulation.data) assert len(simulation.player.inventory) == 301 + + +def test_impressive_guy_formats() -> None: + # pq-web cea0d8c + data = load_game_data() + titles = "|".join(re.escape(title) for title in data.impressive_titles) + races = "|".join(re.escape(plural(race.name)) for race in data.races) + pattern = re.compile( + rf"the ({titles}) of the ({races})|({titles}) [A-Z][a-z]+ of [A-Z][a-z]+" + ) + random.seed("guys") + guys = [impressive_guy(data) for _ in range(200)] + for guy in guys: + assert pattern.fullmatch(guy), guy + assert any(guy.startswith("the ") for guy in guys) + assert not all(guy.startswith("the ") for guy in guys) + + +def test_impressive_titles_match_upstream() -> None: + assert load_game_data().impressive_titles[-3:] == ( + "Chancellor", + "Baroness", + "Inquistor", # sic, as upstream + ) + + +def test_cinematic_text_matches_upstream() -> None: + random.seed("cinematics") + simulation = make_simulation() + for _ in range(60): + simulation.interplot_cinematic() + texts = [task.description for task in simulation.player.queue] + assert any("You've reached the kind protection of " in t for t in texts) + assert any(t.endswith("news!? -- Oh yes, of course") for t in texts)