Anthony Ronda
United States
flag msg tools
Avatar
Hi, I found some interesting stuff while diving into the code for the MoM app.

1. Item Weights
The following traits for Items are in the game (in addition to Common, Unique, and Spell items).

* Weapon
* HeavyWeapon
* BladedWeapon
* Firearm
* Recovery
* Book
* Tool
* LightSource
* Trinket
* Powerful
* Weak
* Utility
* AttackSpell
* Small
* Large

Anytime the app wants to generate an item randomly but within a specific subset, it can filter for any of these traits to grab an appropriate item to match the context of the story.

2. Monster Traits
Monsters also have traits that the app uses to generate slightly less-random encounters.

* Humanoid
* Beast
* Incorporeal
* Small
* Large
* Massive
* Human
* Caster
* Leader
* Undead
* Smart
* Fast
* Flying
* Aquatic
* Subterranean
* Arctic
* Interdimensional
* Tentacles
* Wings
* Tail
* Claws
* Mouths
* Unique
* Medium
* Huge

3. Investigator Weights

There appears to be an unused (I think) algorithm that weighs investigators differently when randomly determining the target of a mythos event. I say unused because it appears that it does all the logic but then never updates the weight values.

Short code explanation:
The game gives each investigator a weight value at game initialization. Then when an event or something else asks for a random investigator, a random number is generated and checked against the weight values. Each investigator has equal weight to start, so it's purely random. An investigator is chosen and then it starts the weight redistribution logic.

The "winning" investigator's weight is effectively divided by 6.25. The "losing" investigators' weights' are each equally increased to an amount that brings the sum of all weights back up to 1 (for example, 2-player game after 1 random event, winner:.08 loser:.92, 3-player game after 1 random event, winner:.05 losers:.47).

Despite being a relatively sound way to balance (or ping-pong) random events across all investigators, it doesn't appear to ever save the new weights. It appears as though the weights stay at their initial values throughout the whole game. The messiness of the code in this section makes me think this is unfinished. Whether it's a work in progress or a scrapped concept is up in the aether.
8 
 Thumb up
0.25
 tip
 Hide
  • [+] Dice rolls
Bruce
msg tools
badge
Avatar
Interesting, xcom has similar unused code to balance UFO locations.
2 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Mirv
msg tools
Very interesting. Makes me wonder if there are traits for map tiles too (e.g. outdoor, indoor, hall, books, desks).

 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Anthony Ronda
United States
flag msg tools
Avatar
agentmirv wrote:
Very interesting. Makes me wonder if there are traits for map tiles too (e.g. outdoor, indoor, hall, books, desks).


So far the evidence points to no. Each mythos event just holds a list of rooms (and items, and monsters, and previous event flags) that it requires, if any.

Each scenario has a list of event ids to be added to the "event deck" at game start. The event deck is resorted into three lists before each "draw." As far as I can tell, it draws everything with "threatCost" > 2 first, so long as it passes requirements. Then it draws all "passive" events (threatCost<=2) that pass requirements (or that have no requirements). Then it draws "passive" events that don't pass requirements (maybe there's a check somewhere else that prevents these from being shown, but they're discarded from the event deck either way). If a threatening event's requirements are finally met mid-game, it will jump to the top of the event deck. Threatening events won't get discarded until they're actually valid and drawn. Presumably only very important events have a threatCost of 3 or greater.
2 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Mirv
msg tools
How does the app select the player attack, given the attack type and the monster? I'm imagining that perhaps there is a list for each attack type. In the list, there are particular attacks. Each attack has a list of requirements / monster traits from your list above. The app then randomly selects an attack based on type, and if the attack's requirements aren't met by the target monster's traits then it randomly picks another.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Front Page | Welcome | Contact | Privacy Policy | Terms of Service | Advertise | Support BGG | Feeds RSS
Geekdo, BoardGameGeek, the Geekdo logo, and the BoardGameGeek logo are trademarks of BoardGameGeek, LLC.