[LT] [COMPLETE 2.0] Embrace of the Fog (Community/Roguelite)

Short impressions: I wasn’t sure what to think initially, but have been continually blown away by the creativity in the unit design. Especially the unique combinations of skills of weapons make each unlocked unit a new puzzle, and each unit combination another such puzzle. This combined with the small maps gives it sort of a feel similar to into breach, but what if it was a fire emblem game. Not per se the movement puzzles of that game, but the small scale tactic maps with slow unit progression, and finding creative ways to combine unit skills.

2 Likes

Hi great rougelite!
After playing for some time really love it. While playing I got some ideas how to potentially improve some things so decided to share some suggestions (idk if they will help or get ignored but never hurts to share them right?). I also got small request… :sweat_smile:

The request: would it be possible to add option of ignoring (doing nothing) on the event where you can get the everlasting/lasting song, flute etc? If you have no money you can only get a strategem. I am doing a run where most my characters are 1 HP (Clay, SG, Double - SG, Ugne - SG etc) and got that event while low on money and I already know next boss/trial I am dead as I won’t finish it before it kills all my units😅 Too late for me but knowing that in the future won’t need to worry about it would be cool.

The suggestions (idk if you will want to use any):

  • Strategem reroll at camp sides. Sometimes you get no good options during the selection and pick whatever. That’s why at rest camp there could be NPC that makes you lose 1 strategem of your choosing and you get to pick 1 new. Limited uses per run like promotion or revive
  • Skill selling. As a way to make some money when you enter shop node. You pick a skill from a character you own and delete 1 of their skill for some $. Either always available or added after killing boss that grants skill shop strategem.
  • A new contract type: next X missions you have 1 less deployment slot.
  • A way to see what master seals characters already have while choosing who to recall at rest node.
  • Skill inheritence fillter of “not assigned”. After some time you have enough skills that most of your units can have 1. Right now you have to scroll and look which ones aren’t assigned. How about adding an option to filter to show those? (idk how hard that is from programming perspective)
  • Visual indication of skill assignment. Simmilar to last one, showing assigned skill (at least an icon) next to characters, right now you need to press each character if you are searching who doesn’t have any skill. Would allow to quickly see who still needs a skill and with some experience at recognizing what skills have what icons one could quickly see who has what.

I think that’s all I thought off. Hope that at least 1 of those suggestions will help improve the game in some update but time will tell. Keep up the great work, the game is great!!!

2 Likes

Absolutely love this game.
I’ve been playing for weeks now, and it’s been something I look forward to playing every day.

I have some questions though and it’s a bit of a skill issue on my part lmao

I just finished Act 2A, and was wondering where I should find the glasses of the old lady?

I also wanna ask about the true key, specifically the first and third parts of the key, since I’m having a hard time trying to find whatever item I need to fish, and where I could find the last part.

Besides those questions, I just really wanted to thank the developers for creating such a fun game.

P.S. Vulpey is wife!

2 Likes

I’m having trouble running the game. I’ve played previous versions just fine, but when I updated to the new EXE build and tried to load a save, I get hit with an immediate crash, with an error pointing to a “level cap modifier”. Any help or clarification on what’s going on would be appreciated.

I’m not sure if this is what happened, but usually if you update this game when you’re in the middle of a run, it doesn’t let you and crashes, so you have to click new game to go back to the mansion

Oh yeah, that was it. I forgot that’s how it worked.

Hey, glad you’ve been enjoying the game!

For the Glasses, you will need to collect 3 pieces that appear as normal item drops (like the ferry ticket) and then assemble them at the shop. All before starting Act 3, so it can be a bit of a toughie.

Key Part 1 is By the river in Act 1 room selection, it’s very simple. Check around the top-right corner.

Key Part 3 Check by the graves in Act 3 room selection, and continue to check it on each floor until you get it.

Might as well review at least one more thing while I’m back :sweat_smile:

This is a pretty good game! The best LT game I’ve seen, tbh. It might have the best gameplay loop of the FE roguelikes, too; the nodes seem balanced really well and regular battles are just the right length. Best of all, boss battles reveal a surprisingly deep story (even if amnesia’s been done to death at this point :stuck_out_tongue: ). Some of the music tracks are bangers, most of the graphics look good together, and there’s a whole lot of cool gameplay concepts here. I mean a whole lot of them. A truckload. A big fat heaping helping of Concepts.

…so many, in fact, that for me it’s actually a problem. I was in awe of all the crazy new stuff at first, but within half an hour I was tired of trying to learn it. There are dozens (maybe hundreds!) of character gimmicks, what feels like a thousand new weapons and items…and the status ailments. My god, the status ailments. I quickly became terrified of taking a hit for fear of Toxin or Burning or some other godawful thing. The last straw was when I attacked somebody - who didn’t even counterattack, mind you! - and suddenly the rest of my party was Bleeding. At that point I closed the program, turned off the computer, curled into the fetal position and sucked my thumb for a minute.

I would love it if this game had a Normal Edition. One with all the rougelike elements, all the cutscenes and even the characters - but weapons and items I’m familiar with and mechanics I can understand at a glance. Unfortunately, that seems counter to the spirit of the game; I doubt all the users that sent in submissions would enjoy seeing their work neutered. (Plus it’d prolly take forever, lol.) So I’ll just have to admire this game from afar and dream my silly little dreams :cry:

Hello there. I was wondering if I could have some help with an error i got.

For extra context, I was in ACT 4 fell dragon fight and i suspended the chapter and exited the game. This error happened when i came back a few hours later and pressed continue. Ran out of input

Error log

364 INFO: lt_log: *** Embrace of the Fog Game Version 1.90 ***
372 INFO: resources: Loading icons16 from EotF.ltproj\resources…
390 INFO: resources: Loading icons32 from EotF.ltproj\resources…
404 INFO: resources: Loading icons80 from EotF.ltproj\resources…
406 INFO: resources: Loading portraits from EotF.ltproj\resources…
427 INFO: resources: Loading animations from EotF.ltproj\resources…
443 INFO: resources: Loading panoramas from EotF.ltproj\resources…
457 INFO: resources: Loading map_icons from EotF.ltproj\resources…
459 INFO: resources: Loading map_sprites from EotF.ltproj\resources…
475 INFO: resources: Loading combat_palettes from EotF.ltproj\resources…
1848 INFO: resources: Loading combat_anims from EotF.ltproj\resources…
1919 INFO: resources: Loading combat_effects from EotF.ltproj\resources…
1959 INFO: resources: Loading music from EotF.ltproj\resources…
1974 INFO: resources: Loading sfx from EotF.ltproj\resources…
1977 INFO: resources: Loading tilesets from EotF.ltproj\resources…
2021 INFO: resources: Loading tilemaps from EotF.ltproj\resources…
5395 INFO: database: Deserializing data from EotF.ltproj\game_data…
40417 INFO: database: Database: Restoring constants…
40418 INFO: database: Database: Restoring stats…
40418 INFO: database: Database: Restoring equations…
40418 INFO: database: Database: Restoring mcost…
40419 INFO: database: Database: Restoring terrain…
40419 INFO: database: Database: Restoring weapon_ranks…
40419 INFO: database: Database: Restoring weapons…
40419 INFO: database: Database: Restoring teams…
40420 INFO: database: Database: Restoring factions…
40420 INFO: database: Database: Restoring items…
40544 INFO: database: Database: Restoring skills…
40657 INFO: database: Database: Restoring tags…
40657 INFO: database: Database: Restoring game_var_slots…
40658 INFO: database: Database: Restoring classes…
40663 INFO: database: Database: Restoring support_constants…
40663 INFO: database: Database: Restoring support_ranks…
40663 INFO: database: Database: Restoring affinities…
40664 INFO: database: Database: Restoring units…
40673 INFO: database: Database: Restoring support_pairs…
40674 INFO: database: Database: Restoring ai…
40675 INFO: database: Database: Restoring parties…
40676 INFO: database: Database: Restoring difficulty_modes…
40676 INFO: database: Database: Restoring translations…
40677 INFO: database: Database: Restoring lore…
40677 INFO: database: Database: Restoring levels…
40817 INFO: database: Database: Restoring events…
40832 INFO: database: Database: Restoring overworlds…
40833 INFO: database: Database: Restoring raw_data…
40836 INFO: database: Database: Restoring game_flags…
40863 INFO: persistent_data: Loading persistent data from saves/EotF-achievements.p
40863 INFO: persistent_data: No persistent data file found at saves/EotF-achievements.p
40864 INFO: persistent_data: Loading persistent data from saves/EotF-achievements.p
40864 INFO: persistent_data: No persistent data file found at saves/EotF-achievements.p
40864 INFO: persistent_data: Loading persistent data from saves/EotF-persistent_records.p
40867 INFO: database: Total Time Taken for Database: 35471.56299996376 ms
40868 INFO: database: Done deserializing!
41935 INFO: engine: Engine Init Completed
42290 DEBUG: sound: 0 Set Volume: 0.6
42291 DEBUG: sound: 2 Set Volume: 0.6
42291 DEBUG: sound: 4 Set Volume: 0.6
42291 DEBUG: sound: 6 Set Volume: 0.6
42297 DEBUG: sound: Clear
42297 DEBUG: sound: 6 Stop: stopped
42297 DEBUG: sound: 7 Stop: stopped
42298 INFO: sound: Changing State to GlobalMusicState.STOPPED
42298 DEBUG: sound: 0 Clear
42298 DEBUG: sound: 1 Clear
42298 DEBUG: sound: 2 Clear
42298 DEBUG: sound: 3 Clear
42298 DEBUG: sound: 4 Clear
42298 DEBUG: sound: 5 Clear
42298 DEBUG: sound: 6 Clear
42298 DEBUG: sound: 7 Clear
42299 INFO: sound: Fade in Lost_in_Fog
42299 DEBUG: sound: Loading Lost_in_Fog into MusicDict
42637 DEBUG: sound: Currently playing on channel 6? False
42637 INFO: sound: Changing State to GlobalMusicState.FADE_IN
42638 INFO: sound: New song <app.engine.sound.SongObject object at 0x0000018085F0A490>
42638 DEBUG: sound: Any music is playing? False
42638 INFO: sound: Set Next Song: <app.engine.sound.SongObject object at 0x0000018085F0A490>
42638 DEBUG: sound: 0 Clear
42638 DEBUG: sound: 1 Clear
42638 DEBUG: sound: Fade in time set to 50
42639 DEBUG: sound: 0 Fade In: stopped
42639 DEBUG: sound: 0 _Play: stopped -1
42639 DEBUG: sound: 1 Fade In: stopped
42639 DEBUG: sound: 1 _Play: stopped -1
42639 DEBUG: sound: 1 _Play: stopped -1
42639 DEBUG: state_machine: Temp State: [‘event’]
42640 DEBUG: state_machine: State: [‘title_start’, ‘event’]
42640 DEBUG: event_state: Begin Event State
42640 DEBUG: event: Event State: processing
42640 DEBUG: event_processor: Processing Event Line: #Control tutorials and game flow
42640 DEBUG: event_processor: Processing Event Line: create_record;Progress;0
42645 DEBUG: event: Run Event Command: create_record;Progress;0
42655 INFO: event: create_record: {‘Nid’: ‘Progress’, ‘Expression’: ‘0’}, set()
42655 DEBUG: event: {‘nid’: ‘Progress’, ‘expression’: ‘0’}, set()
42656 INFO:persistent_records: Record with nid of %s already exists
42656 DEBUG: event_processor: Processing Event Line: #Upgrade juice
42656 DEBUG: event_processor: Processing Event Line: create_record;Essence;0
42658 DEBUG: event: Run Event Command: create_record;Essence;0
42658 INFO: event: create_record: {‘Nid’: ‘Essence’, ‘Expression’: ‘0’}, set()
42658 DEBUG: event: {‘nid’: ‘Essence’, ‘expression’: ‘0’}, set()
42658 INFO:persistent_records: Record with nid of %s already exists
42659 DEBUG: event_processor: Processing Event Line: create_record;currency_blocker;‘Unlocked’
42660 DEBUG: event: Run Event Command: create_record;currency_blocker;‘Unlocked’
42660 INFO: event: create_record: {‘Nid’: ‘currency_blocker’, ‘Expression’: “‘Unlocked’”}, set()
42661 DEBUG: event: {‘nid’: ‘currency_blocker’, ‘expression’: “‘Unlocked’”}, set()
42661 INFO:persistent_records: Record with nid of %s already exists
42661 DEBUG: event_processor: Processing Event Line: create_record;Flame;0
42663 DEBUG: event: Run Event Command: create_record;Flame;0
42663 INFO: event: create_record: {‘Nid’: ‘Flame’, ‘Expression’: ‘0’}, set()
42663 DEBUG: event: {‘nid’: ‘Flame’, ‘expression’: ‘0’}, set()
42664 INFO:persistent_records: Record with nid of %s already exists
42664 DEBUG: event_processor: Processing Event Line: create_record;Master_Seals;0
42665 DEBUG: event: Run Event Command: create_record;Master_Seals;0
42666 INFO: event: create_record: {‘Nid’: ‘Master_Seals’, ‘Expression’: ‘0’}, set()
42666 DEBUG: event: {‘nid’: ‘Master_Seals’, ‘expression’: ‘0’}, set()
42666 INFO:persistent_records: Record with nid of %s already exists
42666 DEBUG: event_processor: Processing Event Line: create_record;Fragments;0
42668 DEBUG: event: Run Event Command: create_record;Fragments;0
42668 INFO: event: create_record: {‘Nid’: ‘Fragments’, ‘Expression’: ‘0’}, set()
42668 DEBUG: event: {‘nid’: ‘Fragments’, ‘expression’: ‘0’}, set()
42668 INFO:persistent_records: Record with nid of %s already exists
42669 DEBUG: event_processor: Processing Event Line: create_record;Spark_Shards;0
42670 DEBUG: event: Run Event Command: create_record;Spark_Shards;0
42670 INFO: event: create_record: {‘Nid’: ‘Spark_Shards’, ‘Expression’: ‘0’}, set()
42670 DEBUG: event: {‘nid’: ‘Spark_Shards’, ‘expression’: ‘0’}, set()
42671 INFO:persistent_records: Record with nid of %s already exists
42671 DEBUG: event_processor: Processing Event Line: create_record;Spark_Stones;0
42672 DEBUG: event: Run Event Command: create_record;Spark_Stones;0
42672 INFO: event: create_record: {‘Nid’: ‘Spark_Stones’, ‘Expression’: ‘0’}, set()
42673 DEBUG: event: {‘nid’: ‘Spark_Stones’, ‘expression’: ‘0’}, set()
42673 INFO:persistent_records: Record with nid of %s already exists
42673 DEBUG: event_processor: Processing Event Line: #Units player owns
42673 DEBUG: event_processor: Processing Event Line: create_record;Available_Units;[‘Player’]
42674 DEBUG: event: Run Event Command: create_record;Available_Units;[‘Player’]
42675 INFO: event: create_record: {‘Nid’: ‘Available_Units’, ‘Expression’: “[‘Player’]”}, set()
42675 DEBUG: event: {‘nid’: ‘Available_Units’, ‘expression’: “[‘Player’]”}, set()
42675 INFO:persistent_records: Record with nid of %s already exists
42675 DEBUG: event_processor: Processing Event Line: create_record;Seen_Units;
42676 DEBUG: event: Run Event Command: create_record;Seen_Units;
42676 INFO: event: create_record: {‘Nid’: ‘Seen_Units’, ‘Expression’: ‘’}, set()
42678 DEBUG: event: {‘nid’: ‘Seen_Units’, ‘expression’: ‘’}, set()
42678 INFO:persistent_records: Record with nid of %s already exists
42678 DEBUG: event_processor: Processing Event Line: #Run Upgrades
42678 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42678 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42681 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42681 INFO: event: create_record: {‘Nid’: ‘Gold_Up_level’, ‘Expression’: ‘0’}, set()
42682 DEBUG: event: {‘nid’: ‘Gold_Up_level’, ‘expression’: ‘0’}, set()
42682 INFO:persistent_records: Record with nid of %s already exists
42682 DEBUG: event_processor: Processing Event Line: endf
42682 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42682 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42684 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42684 INFO: event: create_record: {‘Nid’: ‘EXP_Up_level’, ‘Expression’: ‘0’}, set()
42684 DEBUG: event: {‘nid’: ‘EXP_Up_level’, ‘expression’: ‘0’}, set()
42684 INFO:persistent_records: Record with nid of %s already exists
42685 DEBUG: event_processor: Processing Event Line: endf
42685 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42685 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42686 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42686 INFO: event: create_record: {‘Nid’: ‘Rest_Units_Up_level’, ‘Expression’: ‘0’}, set()
42687 DEBUG: event: {‘nid’: ‘Rest_Units_Up_level’, ‘expression’: ‘0’}, set()
42687 INFO:persistent_records: Record with nid of %s already exists
42687 DEBUG: event_processor: Processing Event Line: endf
42687 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42687 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42688 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42689 INFO: event: create_record: {‘Nid’: ‘B_Gold_Up_level’, ‘Expression’: ‘0’}, set()
42689 DEBUG: event: {‘nid’: ‘B_Gold_Up_level’, ‘expression’: ‘0’}, set()
42689 INFO:persistent_records: Record with nid of %s already exists
42689 DEBUG: event_processor: Processing Event Line: endf
42689 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42689 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42691 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42691 INFO: event: create_record: {‘Nid’: ‘Camp_EXP_level’, ‘Expression’: ‘0’}, set()
42691 DEBUG: event: {‘nid’: ‘Camp_EXP_level’, ‘expression’: ‘0’}, set()
42691 INFO:persistent_records: Record with nid of %s already exists
42692 DEBUG: event_processor: Processing Event Line: endf
42692 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42692 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42693 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42693 INFO: event: create_record: {‘Nid’: ‘Event_EXP_level’, ‘Expression’: ‘0’}, set()
42694 DEBUG: event: {‘nid’: ‘Event_EXP_level’, ‘expression’: ‘0’}, set()
42694 INFO:persistent_records: Record with nid of %s already exists
42694 DEBUG: event_processor: Processing Event Line: endf
42694 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42694 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42696 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42696 INFO: event: create_record: {‘Nid’: ‘Items_Up_level’, ‘Expression’: ‘0’}, set()
42696 DEBUG: event: {‘nid’: ‘Items_Up_level’, ‘expression’: ‘0’}, set()
42696 INFO:persistent_records: Record with nid of %s already exists
42696 DEBUG: event_processor: Processing Event Line: endf
42698 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42698 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42700 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42700 INFO: event: create_record: {‘Nid’: ‘Stratagems_Up_level’, ‘Expression’: ‘0’}, set()
42700 DEBUG: event: {‘nid’: ‘Stratagems_Up_level’, ‘expression’: ‘0’}, set()
42700 INFO:persistent_records: Record with nid of %s already exists
42700 DEBUG: event_processor: Processing Event Line: endf
42700 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42701 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42702 DEBUG: event: Run Event Command: create_record;{e:‘{run_upgrades}’ + ‘_level’};0
42702 INFO: event: create_record: {‘Nid’: ‘Max_Tether_level’, ‘Expression’: ‘0’}, set()
42703 DEBUG: event: {‘nid’: ‘Max_Tether_level’, ‘expression’: ‘0’}, set()
42703 INFO:persistent_records: Record with nid of %s already exists
42703 DEBUG: event_processor: Processing Event Line: endf
42703 DEBUG: event_processor: Processing Event Line: for;run_upgrades;[r.nid for r in game.get_data(‘Run_Upgrades’)]
42703 DEBUG: event_processor: Processing Event Line: #Support upgrade levels
42703 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42704 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42705 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42706 INFO: event: create_record: {‘Nid’: ‘Search_unlocked’, ‘Expression’: ‘1’}, set()
42706 DEBUG: event: {‘nid’: ‘Search_unlocked’, ‘expression’: ‘1’}, set()
42706 INFO:persistent_records: Record with nid of %s already exists
42706 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42706 DEBUG: event_processor: Processing Event Line: endf
42707 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42707 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42708 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42708 INFO: event: create_record: {‘Nid’: ‘Escape_unlocked’, ‘Expression’: ‘1’}, set()
42708 DEBUG: event: {‘nid’: ‘Escape_unlocked’, ‘expression’: ‘1’}, set()
42709 INFO:persistent_records: Record with nid of %s already exists
42709 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42709 DEBUG: event_processor: Processing Event Line: endf
42709 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42709 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42711 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42711 INFO: event: create_record: {‘Nid’: ‘Scavenge_unlocked’, ‘Expression’: ‘1’}, set()
42711 DEBUG: event: {‘nid’: ‘Scavenge_unlocked’, ‘expression’: ‘1’}, set()
42711 INFO:persistent_records: Record with nid of %s already exists
42711 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42711 DEBUG: event_processor: Processing Event Line: endf
42712 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42712 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42714 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42714 INFO: event: create_record: {‘Nid’: ‘Supply_unlocked’, ‘Expression’: ‘1’}, set()
42714 DEBUG: event: {‘nid’: ‘Supply_unlocked’, ‘expression’: ‘1’}, set()
42714 INFO:persistent_records: Record with nid of %s already exists
42715 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42715 DEBUG: event_processor: Processing Event Line: endf
42715 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42715 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42716 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42716 INFO: event: create_record: {‘Nid’: ‘Points_1_unlocked’, ‘Expression’: ‘1’}, set()
42716 DEBUG: event: {‘nid’: ‘Points_1_unlocked’, ‘expression’: ‘1’}, set()
42716 INFO:persistent_records: Record with nid of %s already exists
42718 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42718 DEBUG: event_processor: Processing Event Line: endf
42718 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42718 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42720 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42720 INFO: event: create_record: {‘Nid’: ‘Execute_unlocked’, ‘Expression’: ‘1’}, set()
42720 DEBUG: event: {‘nid’: ‘Execute_unlocked’, ‘expression’: ‘1’}, set()
42720 INFO:persistent_records: Record with nid of %s already exists
42720 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42720 DEBUG: event_processor: Processing Event Line: endf
42720 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42720 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42722 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42722 INFO: event: create_record: {‘Nid’: ‘Fight_unlocked’, ‘Expression’: ‘1’}, set()
42722 DEBUG: event: {‘nid’: ‘Fight_unlocked’, ‘expression’: ‘1’}, set()
42722 INFO:persistent_records: Record with nid of %s already exists
42723 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42723 DEBUG: event_processor: Processing Event Line: endf
42723 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42723 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42724 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42725 INFO: event: create_record: {‘Nid’: ‘Revive_unlocked’, ‘Expression’: ‘1’}, set()
42725 DEBUG: event: {‘nid’: ‘Revive_unlocked’, ‘expression’: ‘1’}, set()
42725 INFO:persistent_records: Record with nid of %s already exists
42725 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42725 DEBUG: event_processor: Processing Event Line: endf
42725 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42725 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42727 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42727 INFO: event: create_record: {‘Nid’: ‘Points_2_unlocked’, ‘Expression’: ‘1’}, set()
42727 DEBUG: event: {‘nid’: ‘Points_2_unlocked’, ‘expression’: ‘1’}, set()
42727 INFO:persistent_records: Record with nid of %s already exists
42727 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42727 DEBUG: event_processor: Processing Event Line: endf
42728 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42728 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42729 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42730 INFO: event: create_record: {‘Nid’: ‘Scavenge+_unlocked’, ‘Expression’: ‘1’}, set()
42730 DEBUG: event: {‘nid’: ‘Scavenge+_unlocked’, ‘expression’: ‘1’}, set()
42730 INFO:persistent_records: Record with nid of %s already exists
42730 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42730 DEBUG: event_processor: Processing Event Line: endf
42731 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42731 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42732 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42733 INFO: event: create_record: {‘Nid’: ‘Search+_unlocked’, ‘Expression’: ‘1’}, set()
42733 DEBUG: event: {‘nid’: ‘Search+_unlocked’, ‘expression’: ‘1’}, set()
42733 INFO:persistent_records: Record with nid of %s already exists
42733 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42733 DEBUG: event_processor: Processing Event Line: endf
42733 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42733 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42735 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42735 INFO: event: create_record: {‘Nid’: ‘Coated_Arms_unlocked’, ‘Expression’: ‘1’}, set()
42735 DEBUG: event: {‘nid’: ‘Coated_Arms_unlocked’, ‘expression’: ‘1’}, set()
42736 INFO:persistent_records: Record with nid of %s already exists
42736 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42736 DEBUG: event_processor: Processing Event Line: endf
42736 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42736 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42738 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42738 INFO: event: create_record: {‘Nid’: ‘Supply+_unlocked’, ‘Expression’: ‘1’}, set()
42738 DEBUG: event: {‘nid’: ‘Supply+_unlocked’, ‘expression’: ‘1’}, set()
42738 INFO:persistent_records: Record with nid of %s already exists
42739 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42739 DEBUG: event_processor: Processing Event Line: endf
42739 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42739 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42741 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42741 INFO: event: create_record: {‘Nid’: ‘Points_3_unlocked’, ‘Expression’: ‘1’}, set()
42741 DEBUG: event: {‘nid’: ‘Points_3_unlocked’, ‘expression’: ‘1’}, set()
42741 INFO:persistent_records: Record with nid of %s already exists
42741 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42741 DEBUG: event_processor: Processing Event Line: endf
42741 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42741 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42743 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42743 INFO: event: create_record: {‘Nid’: ‘Multishot_unlocked’, ‘Expression’: ‘1’}, set()
42743 DEBUG: event: {‘nid’: ‘Multishot_unlocked’, ‘expression’: ‘1’}, set()
42743 INFO:persistent_records: Record with nid of %s already exists
42744 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42744 DEBUG: event_processor: Processing Event Line: endf
42744 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42744 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{support}’ + ‘_unlocked’};1
42745 DEBUG: event: Run Event Command: create_record;{e:‘{support}’ + ‘_unlocked’};1
42746 INFO: event: create_record: {‘Nid’: ‘Escape+_unlocked’, ‘Expression’: ‘1’}, set()
42746 DEBUG: event: {‘nid’: ‘Escape+_unlocked’, ‘expression’: ‘1’}, set()
42746 INFO:persistent_records: Record with nid of %s already exists
42746 DEBUG: event_processor: Processing Event Line: #2 for actual unlock
42746 DEBUG: event_processor: Processing Event Line: endf
42746 DEBUG: event_processor: Processing Event Line: for;support;[r.nid for r in game.get_data(‘Support_Features’)]
42747 DEBUG: event_processor: Processing Event Line: #Support stuff, some features unlocked by default
42747 DEBUG: event_processor: Processing Event Line: update_record;Search_unlocked;2
42748 DEBUG: event: Run Event Command: update_record;Search_unlocked;2
42749 INFO: event: update_record: {‘Nid’: ‘Search_unlocked’, ‘Expression’: ‘2’}, set()
42749 DEBUG: event: {‘nid’: ‘Search_unlocked’, ‘expression’: ‘2’}, set()
42750 INFO: persistent_data: Saving persistent data to saves/EotF-persistent_records.p
42751 DEBUG: event_processor: Processing Event Line: update_record;Escape_unlocked;2
42753 DEBUG: event: Run Event Command: update_record;Escape_unlocked;2
42753 INFO: event: update_record: {‘Nid’: ‘Escape_unlocked’, ‘Expression’: ‘2’}, set()
42754 DEBUG: event: {‘nid’: ‘Escape_unlocked’, ‘expression’: ‘2’}, set()
42755 INFO: persistent_data: Saving persistent data to saves/EotF-persistent_records.p
42768 DEBUG: event_processor: Processing Event Line: create_record;support_progress;0
42769 DEBUG: event: Run Event Command: create_record;support_progress;0
42770 INFO: event: create_record: {‘Nid’: ‘support_progress’, ‘Expression’: ‘0’}, set()
42770 DEBUG: event: {‘nid’: ‘support_progress’, ‘expression’: ‘0’}, set()
42770 INFO:persistent_records: Record with nid of %s already exists
42770 DEBUG: event_processor: Processing Event Line: create_record;support_held_items;
42772 DEBUG: event: Run Event Command: create_record;support_held_items;
42772 INFO: event: create_record: {‘Nid’: ‘support_held_items’, ‘Expression’: ‘’}, set()
42772 DEBUG: event: {‘nid’: ‘support_held_items’, ‘expression’: ‘’}, set()
42773 INFO:persistent_records: Record with nid of %s already exists
42773 DEBUG: event_processor: Processing Event Line: #Bonus unit tracker
42773 DEBUG: event_processor: Processing Event Line: create_record;last_sortie;
42775 DEBUG: event: Run Event Command: create_record;last_sortie;
42775 INFO: event: create_record: {‘Nid’: ‘last_sortie’, ‘Expression’: ‘’}, set()
42775 DEBUG: event: {‘nid’: ‘last_sortie’, ‘expression’: ‘’}, set()
42775 INFO:persistent_records: Record with nid of %s already exists
42775 DEBUG: event_processor: Processing Event Line: #Skill Inheritance
42775 DEBUG: event_processor: Processing Event Line: create_record;skill_inheritance;{‘Nothing’:‘None’, ‘Patchwork’:‘Player’}
42777 DEBUG: event: Run Event Command: create_record;skill_inheritance;{‘Nothing’:‘None’, ‘Patchwork’:‘Player’}
42777 INFO: event: create_record: {‘Nid’: ‘skill_inheritance’, ‘Expression’: “{‘Nothing’:‘None’, ‘Patchwork’:‘Player’}”}, set()
42778 DEBUG: event: {‘nid’: ‘skill_inheritance’, ‘expression’: “{‘Nothing’:‘None’, ‘Patchwork’:‘Player’}”}, set()
42778 INFO:persistent_records: Record with nid of %s already exists
42778 DEBUG: event_processor: Processing Event Line: create_record;Player_skill_slots;1
42780 DEBUG: event: Run Event Command: create_record;Player_skill_slots;1
42780 INFO: event: create_record: {‘Nid’: ‘Player_skill_slots’, ‘Expression’: ‘1’}, set()
42780 DEBUG: event: {‘nid’: ‘Player_skill_slots’, ‘expression’: ‘1’}, set()
42780 INFO:persistent_records: Record with nid of %s already exists
42780 DEBUG: event_processor: Processing Event Line: create_record;purchased_skills;
42782 DEBUG: event: Run Event Command: create_record;purchased_skills;
42782 INFO: event: create_record: {‘Nid’: ‘purchased_skills’, ‘Expression’: ‘’}, set()
42782 DEBUG: event: {‘nid’: ‘purchased_skills’, ‘expression’: ‘’}, set()
42783 INFO:persistent_records: Record with nid of %s already exists
42783 DEBUG: event_processor: Processing Event Line: #Debug stuff
42783 DEBUG: event_processor: Processing Event Line: if;not game.game_vars.get(‘Game_Level’)
42783 INFO: event_processor: Result: True
42783 DEBUG: event_processor: Processing Event Line: game_var;Game_Level;1
42784 DEBUG: event: Run Event Command: game_var;Game_Level;1
42785 INFO: event: game_var: {‘Nid’: ‘Game_Level’, ‘Expression’: ‘1’}, set()
42785 DEBUG: event: {‘nid’: ‘Game_Level’, ‘expression’: ‘1’}, set()
42785 DEBUG: turnwheel: Add Action 0: SetGameVar
42785 DEBUG: event_processor: Processing Event Line: end
42785 DEBUG: event_processor: Processing Event Line: if;not game.game_vars.get(‘last_combat’)
42785 INFO: event_processor: Result: True
42785 DEBUG: event_processor: Processing Event Line: game_var;last_combat;99
42787 DEBUG: event: Run Event Command: game_var;last_combat;99
42787 INFO: event: game_var: {‘Nid’: ‘last_combat’, ‘Expression’: ‘99’}, set()
42787 DEBUG: event: {‘nid’: ‘last_combat’, ‘expression’: ‘99’}, set()
42787 DEBUG: turnwheel: Add Action 1: SetGameVar
42787 DEBUG: event_processor: Processing Event Line: end
42787 DEBUG: event_processor: Processing Event Line: if;not game.game_vars.get(‘recruit_cost’)
42788 INFO: event_processor: Result: True
42788 DEBUG: event_processor: Processing Event Line: game_var;recruit_cost;100
42789 DEBUG: event: Run Event Command: game_var;recruit_cost;100
42789 INFO: event: game_var: {‘Nid’: ‘recruit_cost’, ‘Expression’: ‘100’}, set()
42789 DEBUG: event: {‘nid’: ‘recruit_cost’, ‘expression’: ‘100’}, set()
42790 DEBUG: turnwheel: Add Action 2: SetGameVar
42790 DEBUG: event_processor: Processing Event Line: end
42790 DEBUG: event_processor: Processing Event Line: #For conversations and skill buying
42790 DEBUG: event_processor: Processing Event Line: create_record;tether_charges;5
42791 DEBUG: event: Run Event Command: create_record;tether_charges;5
42791 INFO: event: create_record: {‘Nid’: ‘tether_charges’, ‘Expression’: ‘5’}, set()
42791 DEBUG: event: {‘nid’: ‘tether_charges’, ‘expression’: ‘5’}, set()
42792 INFO:persistent_records: Record with nid of %s already exists
42792 DEBUG: event_processor: Processing Event Line: replace_record;max_tether_charges;(5 * (RECORDS.get(‘Max_Tether_level’) + 1)) + (5 * RECORDS.get(‘Bonus_Tether_level’, 0))
42793 DEBUG: event: Run Event Command: replace_record;max_tether_charges;(5 * (RECORDS.get(‘Max_Tether_level’) + 1)) + (5 * RECORDS.get(‘Bonus_Tether_level’, 0))
42793 INFO: event: replace_record: {‘Nid’: ‘max_tether_charges’, ‘Expression’: “(5 * (RECORDS.get(‘Max_Tether_level’) + 1)) + (5 * RECORDS.get(‘Bonus_Tether_level’, 0))”}, set()
42794 DEBUG: event: {‘nid’: ‘max_tether_charges’, ‘expression’: “(5 * (RECORDS.get(‘Max_Tether_level’) + 1)) + (5 * RECORDS.get(‘Bonus_Tether_level’, 0))”}, set()
42794 INFO: persistent_data: Saving persistent data to saves/EotF-persistent_records.p
42795 DEBUG: event_processor: Processing Event Line: create_record;talk_tracker;1
42798 DEBUG: event: Run Event Command: create_record;talk_tracker;1
42798 INFO: event: create_record: {‘Nid’: ‘talk_tracker’, ‘Expression’: ‘1’}, set()
42799 DEBUG: event: {‘nid’: ‘talk_tracker’, ‘expression’: ‘1’}, set()
42799 INFO:persistent_records: Record with nid of %s already exists
42799 DEBUG: event_processor: Processing Event Line: #Difficulty related stuff
42799 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42799 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42801 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42801 INFO: event: create_record: {‘Nid’: ‘Enemy_Level_level’, ‘Expression’: ‘0’}, set()
42802 DEBUG: event: {‘nid’: ‘Enemy_Level_level’, ‘expression’: ‘0’}, set()
42802 INFO:persistent_records: Record with nid of %s already exists
42802 DEBUG: event_processor: Processing Event Line: endf
42802 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42802 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42804 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42804 INFO: event: create_record: {‘Nid’: ‘E_Strats_level’, ‘Expression’: ‘0’}, set()
42804 DEBUG: event: {‘nid’: ‘E_Strats_level’, ‘expression’: ‘0’}, set()
42805 INFO:persistent_records: Record with nid of %s already exists
42805 DEBUG: event_processor: Processing Event Line: endf
42805 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42805 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42806 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42807 INFO: event: create_record: {‘Nid’: ‘Pain_Fog_level’, ‘Expression’: ‘0’}, set()
42807 DEBUG: event: {‘nid’: ‘Pain_Fog_level’, ‘expression’: ‘0’}, set()
42807 INFO:persistent_records: Record with nid of %s already exists
42807 DEBUG: event_processor: Processing Event Line: endf
42807 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42807 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42809 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42809 INFO: event: create_record: {‘Nid’: ‘FoW_level’, ‘Expression’: ‘0’}, set()
42809 DEBUG: event: {‘nid’: ‘FoW_level’, ‘expression’: ‘0’}, set()
42809 INFO:persistent_records: Record with nid of %s already exists
42809 DEBUG: event_processor: Processing Event Line: endf
42810 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42810 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42811 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42811 INFO: event: create_record: {‘Nid’: ‘TOD_level’, ‘Expression’: ‘0’}, set()
42812 DEBUG: event: {‘nid’: ‘TOD_level’, ‘expression’: ‘0’}, set()
42812 INFO:persistent_records: Record with nid of %s already exists
42812 DEBUG: event_processor: Processing Event Line: endf
42812 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42812 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42814 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42814 INFO: event: create_record: {‘Nid’: ‘Ruination_level’, ‘Expression’: ‘0’}, set()
42815 DEBUG: event: {‘nid’: ‘Ruination_level’, ‘expression’: ‘0’}, set()
42815 INFO:persistent_records: Record with nid of %s already exists
42815 DEBUG: event_processor: Processing Event Line: endf
42815 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42815 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42816 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42816 INFO: event: create_record: {‘Nid’: ‘Dispersal_level’, ‘Expression’: ‘0’}, set()
42816 DEBUG: event: {‘nid’: ‘Dispersal_level’, ‘expression’: ‘0’}, set()
42818 INFO:persistent_records: Record with nid of %s already exists
42818 DEBUG: event_processor: Processing Event Line: endf
42818 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42818 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42820 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42820 INFO: event: create_record: {‘Nid’: ‘The_Load_level’, ‘Expression’: ‘0’}, set()
42820 DEBUG: event: {‘nid’: ‘The_Load_level’, ‘expression’: ‘0’}, set()
42820 INFO:persistent_records: Record with nid of %s already exists
42820 DEBUG: event_processor: Processing Event Line: endf
42820 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42821 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42822 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42822 INFO: event: create_record: {‘Nid’: ‘LTC_level’, ‘Expression’: ‘0’}, set()
42822 DEBUG: event: {‘nid’: ‘LTC_level’, ‘expression’: ‘0’}, set()
42823 INFO:persistent_records: Record with nid of %s already exists
42823 DEBUG: event_processor: Processing Event Line: endf
42823 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42823 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42824 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42825 INFO: event: create_record: {‘Nid’: ‘Destiny_level’, ‘Expression’: ‘0’}, set()
42825 DEBUG: event: {‘nid’: ‘Destiny_level’, ‘expression’: ‘0’}, set()
42825 INFO:persistent_records: Record with nid of %s already exists
42825 DEBUG: event_processor: Processing Event Line: endf
42825 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42825 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42827 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42827 INFO: event: create_record: {‘Nid’: ‘Faint_Recall_level’, ‘Expression’: ‘0’}, set()
42827 DEBUG: event: {‘nid’: ‘Faint_Recall_level’, ‘expression’: ‘0’}, set()
42827 INFO:persistent_records: Record with nid of %s already exists
42827 DEBUG: event_processor: Processing Event Line: endf
42827 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42828 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42829 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42830 INFO: event: create_record: {‘Nid’: ‘Shuffler_level’, ‘Expression’: ‘0’}, set()
42830 DEBUG: event: {‘nid’: ‘Shuffler_level’, ‘expression’: ‘0’}, set()
42830 INFO:persistent_records: Record with nid of %s already exists
42830 DEBUG: event_processor: Processing Event Line: endf
42831 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42831 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42832 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42833 INFO: event: create_record: {‘Nid’: ‘Recruiter_level’, ‘Expression’: ‘0’}, set()
42833 DEBUG: event: {‘nid’: ‘Recruiter_level’, ‘expression’: ‘0’}, set()
42833 INFO:persistent_records: Record with nid of %s already exists
42833 DEBUG: event_processor: Processing Event Line: endf
42833 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42833 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42835 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42835 INFO: event: create_record: {‘Nid’: ‘Preserver_level’, ‘Expression’: ‘0’}, set()
42835 DEBUG: event: {‘nid’: ‘Preserver_level’, ‘expression’: ‘0’}, set()
42835 INFO:persistent_records: Record with nid of %s already exists
42835 DEBUG: event_processor: Processing Event Line: endf
42835 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42836 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42837 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42837 INFO: event: create_record: {‘Nid’: ‘Hate_level’, ‘Expression’: ‘0’}, set()
42838 DEBUG: event: {‘nid’: ‘Hate_level’, ‘expression’: ‘0’}, set()
42838 INFO:persistent_records: Record with nid of %s already exists
42838 DEBUG: event_processor: Processing Event Line: endf
42838 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42838 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42839 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42840 INFO: event: create_record: {‘Nid’: ‘Scorn_level’, ‘Expression’: ‘0’}, set()
42840 DEBUG: event: {‘nid’: ‘Scorn_level’, ‘expression’: ‘0’}, set()
42840 INFO:persistent_records: Record with nid of %s already exists
42840 DEBUG: event_processor: Processing Event Line: endf
42840 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42840 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42842 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42842 INFO: event: create_record: {‘Nid’: ‘Duck_level’, ‘Expression’: ‘0’}, set()
42843 DEBUG: event: {‘nid’: ‘Duck_level’, ‘expression’: ‘0’}, set()
42843 INFO:persistent_records: Record with nid of %s already exists
42843 DEBUG: event_processor: Processing Event Line: endf
42843 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42843 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42845 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42845 INFO: event: create_record: {‘Nid’: ‘ToW_level’, ‘Expression’: ‘0’}, set()
42845 DEBUG: event: {‘nid’: ‘ToW_level’, ‘expression’: ‘0’}, set()
42845 INFO:persistent_records: Record with nid of %s already exists
42845 DEBUG: event_processor: Processing Event Line: endf
42846 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42846 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42848 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42848 INFO: event: create_record: {‘Nid’: ‘Rising_Stars_level’, ‘Expression’: ‘0’}, set()
42848 DEBUG: event: {‘nid’: ‘Rising_Stars_level’, ‘expression’: ‘0’}, set()
42848 INFO:persistent_records: Record with nid of %s already exists
42848 DEBUG: event_processor: Processing Event Line: endf
42848 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42849 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42850 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42850 INFO: event: create_record: {‘Nid’: ‘Fair_Fight_level’, ‘Expression’: ‘0’}, set()
42850 DEBUG: event: {‘nid’: ‘Fair_Fight_level’, ‘expression’: ‘0’}, set()
42851 INFO:persistent_records: Record with nid of %s already exists
42851 DEBUG: event_processor: Processing Event Line: endf
42851 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42851 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42853 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42853 INFO: event: create_record: {‘Nid’: ‘Fatigue_level’, ‘Expression’: ‘0’}, set()
42853 DEBUG: event: {‘nid’: ‘Fatigue_level’, ‘expression’: ‘0’}, set()
42854 INFO:persistent_records: Record with nid of %s already exists
42854 DEBUG: event_processor: Processing Event Line: endf
42854 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42854 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42855 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42856 INFO: event: create_record: {‘Nid’: ‘Act_1_Power_level’, ‘Expression’: ‘0’}, set()
42856 DEBUG: event: {‘nid’: ‘Act_1_Power_level’, ‘expression’: ‘0’}, set()
42856 INFO:persistent_records: Record with nid of %s already exists
42856 DEBUG: event_processor: Processing Event Line: endf
42856 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42856 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42858 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42858 INFO: event: create_record: {‘Nid’: ‘Act_2_Power_level’, ‘Expression’: ‘0’}, set()
42859 DEBUG: event: {‘nid’: ‘Act_2_Power_level’, ‘expression’: ‘0’}, set()
42859 INFO:persistent_records: Record with nid of %s already exists
42859 DEBUG: event_processor: Processing Event Line: endf
42859 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42859 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42861 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42861 INFO: event: create_record: {‘Nid’: ‘Act_3_Power_level’, ‘Expression’: ‘0’}, set()
42861 DEBUG: event: {‘nid’: ‘Act_3_Power_level’, ‘expression’: ‘0’}, set()
42862 INFO:persistent_records: Record with nid of %s already exists
42862 DEBUG: event_processor: Processing Event Line: endf
42862 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42862 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{diff_options}’ + ‘_level’};0
42864 DEBUG: event: Run Event Command: create_record;{e:‘{diff_options}’ + ‘_level’};0
42864 INFO: event: create_record: {‘Nid’: ‘Act_4_Power_level’, ‘Expression’: ‘0’}, set()
42864 DEBUG: event: {‘nid’: ‘Act_4_Power_level’, ‘expression’: ‘0’}, set()
42864 INFO:persistent_records: Record with nid of %s already exists
42864 DEBUG: event_processor: Processing Event Line: endf
42865 DEBUG: event_processor: Processing Event Line: for;diff_options;[r.nid for r in game.get_data(‘Difficulty_Modifiers’)]
42865 DEBUG: event_processor: Processing Event Line: create_record;highest_density;0
42866 DEBUG: event: Run Event Command: create_record;highest_density;0
42866 INFO: event: create_record: {‘Nid’: ‘highest_density’, ‘Expression’: ‘0’}, set()
42867 DEBUG: event: {‘nid’: ‘highest_density’, ‘expression’: ‘0’}, set()
42867 INFO:persistent_records: Record with nid of %s already exists
42867 DEBUG: event_processor: Processing Event Line: create_record;current_density;0
42868 DEBUG: event: Run Event Command: create_record;current_density;0
42868 INFO: event: create_record: {‘Nid’: ‘current_density’, ‘Expression’: ‘0’}, set()
42868 DEBUG: event: {‘nid’: ‘current_density’, ‘expression’: ‘0’}, set()
42868 INFO:persistent_records: Record with nid of %s already exists
42869 DEBUG: event_processor: Processing Event Line: music related stuff
42869 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42869 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42870 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42870 INFO: event: create_record: {‘Nid’: ‘music_set_1_setting’, ‘Expression’: ‘1’}, set()
42871 DEBUG: event: {‘nid’: ‘music_set_1_setting’, ‘expression’: ‘1’}, set()
42871 INFO:persistent_records: Record with nid of %s already exists
42871 DEBUG: event_processor: Processing Event Line: endf
42871 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42871 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42873 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42873 INFO: event: create_record: {‘Nid’: ‘music_set_2_setting’, ‘Expression’: ‘1’}, set()
42873 DEBUG: event: {‘nid’: ‘music_set_2_setting’, ‘expression’: ‘1’}, set()
42873 INFO:persistent_records: Record with nid of %s already exists
42873 DEBUG: event_processor: Processing Event Line: endf
42873 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42873 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42875 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42875 INFO: event: create_record: {‘Nid’: ‘music_set_3_setting’, ‘Expression’: ‘1’}, set()
42875 DEBUG: event: {‘nid’: ‘music_set_3_setting’, ‘expression’: ‘1’}, set()
42875 INFO:persistent_records: Record with nid of %s already exists
42876 DEBUG: event_processor: Processing Event Line: endf
42876 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42876 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42878 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42878 INFO: event: create_record: {‘Nid’: ‘music_set_4_setting’, ‘Expression’: ‘1’}, set()
42878 DEBUG: event: {‘nid’: ‘music_set_4_setting’, ‘expression’: ‘1’}, set()
42878 INFO:persistent_records: Record with nid of %s already exists
42878 DEBUG: event_processor: Processing Event Line: endf
42879 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42879 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42881 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42881 INFO: event: create_record: {‘Nid’: ‘music_set_5_setting’, ‘Expression’: ‘1’}, set()
42881 DEBUG: event: {‘nid’: ‘music_set_5_setting’, ‘expression’: ‘1’}, set()
42882 INFO:persistent_records: Record with nid of %s already exists
42882 DEBUG: event_processor: Processing Event Line: endf
42882 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42882 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42884 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42884 INFO: event: create_record: {‘Nid’: ‘hub_set_setting’, ‘Expression’: ‘1’}, set()
42884 DEBUG: event: {‘nid’: ‘hub_set_setting’, ‘expression’: ‘1’}, set()
42884 INFO:persistent_records: Record with nid of %s already exists
42884 DEBUG: event_processor: Processing Event Line: endf
42884 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42884 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42886 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42886 INFO: event: create_record: {‘Nid’: ‘act_set_1_setting’, ‘Expression’: ‘1’}, set()
42886 DEBUG: event: {‘nid’: ‘act_set_1_setting’, ‘expression’: ‘1’}, set()
42886 INFO:persistent_records: Record with nid of %s already exists
42886 DEBUG: event_processor: Processing Event Line: endf
42887 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42887 DEBUG: event_processor: Processing Event Line: create_record;{e:‘{music_records}’ + ‘_setting’};1
42889 DEBUG: event: Run Event Command: create_record;{e:‘{music_records}’ + ‘_setting’};1
42889 INFO: event: create_record: {‘Nid’: ‘act_set_2_setting’, ‘Expression’: ‘1’}, set()
42889 DEBUG: event: {‘nid’: ‘act_set_2_setting’, ‘expression’: ‘1’}, set()
42889 INFO:persistent_records: Record with nid of %s already exists
42890 DEBUG: event_processor: Processing Event Line: endf
42890 DEBUG: event_processor: Processing Event Line: for;music_records;[r.nid for r in game.get_data(‘Music_Data’)]
42890 DEBUG: event_processor: Processing Event Line: #Game Mode settings
42890 DEBUG: event_processor: Processing Event Line: #Speed 1 = Full game, 50 floors. Game Speed 2 = Shorter game, 35 floors.
42890 DEBUG: event_processor: Processing Event Line: create_record;Game_Speed;1
42891 DEBUG: event: Run Event Command: create_record;Game_Speed;1
42891 INFO: event: create_record: {‘Nid’: ‘Game_Speed’, ‘Expression’: ‘1’}, set()
42891 DEBUG: event: {‘nid’: ‘Game_Speed’, ‘expression’: ‘1’}, set()
42891 INFO:persistent_records: Record with nid of %s already exists
42891 DEBUG: event_processor: Processing Event Line: #True Ending stuff
42891 DEBUG: event_processor: Processing Event Line: create_record;hub_switches;0
42892 DEBUG: event: Run Event Command: create_record;hub_switches;0
42892 INFO: event: create_record: {‘Nid’: ‘hub_switches’, ‘Expression’: ‘0’}, set()
42892 DEBUG: event: {‘nid’: ‘hub_switches’, ‘expression’: ‘0’}, set()
42894 INFO:persistent_records: Record with nid of %s already exists
42894 DEBUG: event_processor: Processing Event Line: #Other records
42894 DEBUG: event_processor: Processing Event Line: create_record;total_runs;0
42895 DEBUG: event: Run Event Command: create_record;total_runs;0
42895 INFO: event: create_record: {‘Nid’: ‘total_runs’, ‘Expression’: ‘0’}, set()
42895 DEBUG: event: {‘nid’: ‘total_runs’, ‘expression’: ‘0’}, set()
42895 INFO:persistent_records: Record with nid of %s already exists
42895 DEBUG: event_processor: Processing Event Line: game_var;irons;[‘Iron_Sword’,‘Iron_Lance’,‘Iron_Axe’,‘Iron_Bow’,‘Iron_Knife’,‘Fire’,‘Lightning’,‘Flux’,‘Fire_Stone’,‘Iron_Staff’]
42898 DEBUG: event: Run Event Command: game_var;irons;[‘Iron_Sword’,‘Iron_Lance’,‘Iron_Axe’,‘Iron_Bow’,‘Iron_Knife’,‘Fire’,‘Lightning’,‘Flux’,‘Fire_Stone’,‘Iron_Staff’]
42898 INFO: event: game_var: {‘Nid’: ‘irons’, ‘Expression’: “[‘Iron_Sword’,‘Iron_Lance’,‘Iron_Axe’,‘Iron_Bow’,‘Iron_Knife’,‘Fire’,‘Lightning’,‘Flux’,‘Fire_Stone’,‘Iron_Staff’]”}, set()
42898 DEBUG: event: {‘nid’: ‘irons’, ‘expression’: “[‘Iron_Sword’,‘Iron_Lance’,‘Iron_Axe’,‘Iron_Bow’,‘Iron_Knife’,‘Fire’,‘Lightning’,‘Flux’,‘Fire_Stone’,‘Iron_Staff’]”}, set()
42898 DEBUG: turnwheel: Add Action 3: SetGameVar
42898 DEBUG: event_processor: Processing Event Line: create_record;solfrid_event_chance;30
42900 DEBUG: event: Run Event Command: create_record;solfrid_event_chance;30
42900 INFO: event: create_record: {‘Nid’: ‘solfrid_event_chance’, ‘Expression’: ‘30’}, set()
42900 DEBUG: event: {‘nid’: ‘solfrid_event_chance’, ‘expression’: ‘30’}, set()
42900 INFO:persistent_records: Record with nid of %s already exists
42900 DEBUG: event_processor: Processing Event Line: #Contracts
42900 DEBUG: event_processor: Processing Event Line: create_record;contracts_cleared;0
42903 DEBUG: event: Run Event Command: create_record;contracts_cleared;0
42903 INFO: event: create_record: {‘Nid’: ‘contracts_cleared’, ‘Expression’: ‘0’}, set()
42903 DEBUG: event: {‘nid’: ‘contracts_cleared’, ‘expression’: ‘0’}, set()
42903 INFO:persistent_records: Record with nid of %s already exists
42903 DEBUG: event_processor: Processing Event Line: create_record;contract_skills_obtained;
42905 DEBUG: event: Run Event Command: create_record;contract_skills_obtained;
42905 INFO: event: create_record: {‘Nid’: ‘contract_skills_obtained’, ‘Expression’: ‘’}, set()
42905 DEBUG: event: {‘nid’: ‘contract_skills_obtained’, ‘expression’: ‘’}, set()
42905 INFO:persistent_records: Record with nid of %s already exists
42905 DEBUG: event_processor: Processing Event Line:
42905 DEBUG: event: Event State: almost_complete
42905 DEBUG: event: Event State: complete
42906 DEBUG: event_state: Ending Event
42906 DEBUG: state_machine: Temp State: [‘pop’]
42906 DEBUG: state_machine: State: [‘title_start’]
45733 DEBUG: sound: Channel changed its state
45733 INFO: sound: Changing State to GlobalMusicState.PLAYING
47676 DEBUG: state_machine: Temp State: [‘transition_to’]
47676 DEBUG: state_machine: State: [‘title_start’, ‘transition_to’]
48213 DEBUG: state_machine: Temp State: [‘pop’, ‘title_main’]
48213 DEBUG: state_machine: State: [‘title_start’, ‘title_main’]
48214 DEBUG: state_machine: Temp State: [‘transition_in’]
48216 DEBUG: state_machine: State: [‘title_start’, ‘title_main’, ‘transition_in’]
48362 DEBUG: state_machine: Temp State: [‘pop’]
48362 DEBUG: state_machine: State: [‘title_start’, ‘title_main’]
54798 INFO: title_screen: Loading suspend…
54799 INFO: save: Loading from saves/EotF-suspend.p
55058 ERROR: driver: Game crashed with exception.
Traceback (most recent call last):
File “app\engine\driver.py”, line 137, in run
surf, repeat = game.state.update(event, surf)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\state_machine.py”, line 252, in update
update_output = state.update()
^^^^^^^^^^^^^^
File “app\engine\title_screen.py”, line 247, in update
self.continue_suspend()
File “app\engine\title_screen.py”, line 254, in continue_suspend
save.load_game(game, suspend)
File “app\engine\save.py”, line 154, in load_game
s_dict = pickle.load(fp)
^^^^^^^^^^^^^^^
EOFError: Ran out of input

Thank you so much for the help!
Since then, I’ve gotten the keys and manage to work my way up to Density 3.
Thanks again for creating this amazing game!

Hey great game! Got to the end of the final act yesterday, now trying to do the extra acts.

So in terms of (what I think) will unlock 1A - I just got the ferry ticket as a random item drop in room 6, but the ferry guy is only in room 1? How do I give him the ferry ticket?

Thanks!

Man, I am at a loss for words on how addicting this is. I’m not too big on rogue like stuff but I find myself coming back to this day in and day out. It’s so well made and my first Lex Talionis project I’ve had the pleasure of trying. I didn’t realize Lex was so advanced and adds sooo much to the games.

My quick question is is the EXE file updated to the point the GitLab is? I don’t want to be missing out on anything fun to use for my runs. Thanks so much for this incredible feat!

3 Likes

i love this game so much
though i encountered softlock please help
using the destiny plume on yusha right before entering the boss room kills him upon entering and softlocks the game help

got unlucky with some of my starting characters, I keep getting bodied in the first combat encounters, painful but ill figure it out

the current EXE is pretty up to date, the git version is basically at tweaks and bug fixing phase, but in terms of content and skills and items and such they are pretty on par. and the story and content is complete now

Been having a lot of fun with this game! It’s quite enjoyable, even if sometimes I get screwed over hard in a way roguelikes can sometimes do. That being said, I did find a bug:

Carna’s Weighty Block+ is bugged and does not work. She’s not gaining the DEF and RES she should gain from the skill (which should be +6/+6 when using the baseline Crowned Blade, which has 12 Wt). This massively tanks Carna’s viability, removing her ability to take hits at all.

Also, @andrazorwire , I’m pretty sure you’re supposed to use the Support command, Supply, to store the Ferry Ticket and then retrieve it in a future run.

1 Like

Hey everyone, exciting news today! I have updated the EXE build to version 2.0 - meaning that the game’s bonus content is all completed! With this update, I am officially ending development of Embrace of the Fog, with any future updates being dedicated primarily to bug fixes or balance tweaks.

This has been an incredible journey, and I think the community really came together to make a game that’s truly historic: we have 355 completely unique characters all in one game!

The list of changes would be far too long to list, so here’s highlights for those who haven’t played since version 1.0:

  • Alternate Acts that feature new boss fights
  • Even more difficulty modifiers
  • Additional secret, extra challenging fights
  • Contracts that add difficulty to your current run in exchange for extra rewards
  • A ton of QoL updates
  • New characters, items, and maps
  • So much more I can’t even think of

Again, thank you so much to everyone who contributed to the game’s development. I don’t know what’s next for my fangame journey, but I hope that whatever it ends up being, it’s as fun a ride as this one was!

Oh, also, EotF returns for the final time at FEE3! I opted for a developer interview this time, so this serves as a retrospective on the game’s development.

11 Likes

As someone who discovered the game about six months ago, I’ve been lucky enough to play it and to see Tweed’s almost daily updates (LT version) as the game evolved.

Developing so many maps, characters, weapons, skills, etc. must have been an absolutely monumental task, and you pulled it off. Your perseverance and patience (and that of the other developers) is fantastic. You have my full respect, and my gratitude as well.

As for the game itself, it’s probably the FE game I’ve played the most, out of all FE titles. You managed to integrate the roguelike concept perfectly, giving players the ability to vary their runs through different difficulties, challenges, units, skills… For me, EotF is one of the most ambitious FE game in terms of content.

Amazing work, truly. I only have good things to say about this game haha. It really feels like my ideal game.

I strongly encourage anyone who loves FE and roguelike to give Embrace a try.

4 Likes

I don’t know if there’s better place for bug reports, but I found one weapon that isn’t working properly.

The weapon is a knife called Killer’s High. For some reason, no matter how many enemies are killed with it, no matter the phase, the character only gets a single stack of Killer’s Elation. I thought it could be character specific, but I also tried using it with Akane, and she also only got a single stack despite many kills.

I experienced alot of game crashes on a specific “secret” chapter during a playthrough. Where should I post the contents of the log file?

Error Log

ZeroDivisionError: float division by zero
2799714 ERROR: driver: Game crashed with exception.
Traceback (most recent call last):
File “app\engine\driver.py”, line 137, in run
surf, repeat = game.state.update(event, surf)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\state_machine.py”, line 265, in update
surf = self.state[idx].draw(surf)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\prep.py”, line 379, in draw
surf = super().draw(surf)
^^^^^^^^^^^^^^^^^^
File “app\engine\state.py”, line 63, in draw
map_surf = game.map_view.draw(camera_cull, culled_rect)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\map_view.py”, line 174, in draw
surf = game.ui_view.draw(surf)
^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\ui_view.py”, line 94, in draw
self.unit_info_disp = self.create_unit_info(hover)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “app\engine\ui_view.py”, line 251, in create_unit_info
hp_ratio = utils.clamp(current_hp / float(max_hp), 0, 1)
~^~~~~
ZeroDivisionError: float division by zero
DEBUG:root:0 _Play: playing -1
DEBUG:root:1 _Play: playing -1
DEBUG:root:0 _Play: playing -1
DEBUG:root:1 _Play: playing -1