Ironman and Ironman Game Systems v0.2.2 (10/13/2019)

A curated forum for approved mods. Users are unable to create new topics in this forum but can reply to existing topics. Please message a moderator to have your mod moved into this forum area.
DFIronman
Posts: 53
Joined: Sat Aug 24, 2019 12:48 am

Ironman and Ironman Game Systems v0.2.2 (10/13/2019)

Post by DFIronman » Sun Aug 25, 2019 3:22 am

Ironman & Ironman Game Systems v0.2.2

Download at the Nexus (mirror)

NOTE: Both mods can be used independently of each other; however, for the most "Ironman" experience possible, please consider using both together.

[Ironman]

This modification allows you to optionally play Daggerfall in "Ironman" mode. At the beginning of each NEW game, you will be asked if you want to enable Ironman mode. Enabling Ironman mode will prevent you from being able to reload the game during gameplay. Additionally, ALL SAVES UNDER THAT CHARACTER'S NAME WILL BE DELETED WHEN YOU DIE - EVEN ONES THAT WERE CREATED BEFORE IRONMAN WAS INSTALLED. The mod should have no noticeable effect on previously-existing games.

Quicksaves for characters with Ironman saves will be named "(Ironman) Quicksave" and you will not be able to load any game other than the most recent saved game. This behavior can be overriden by holding down the SHIFT key. Again, when playing an Ironman game, you will not be able to load a game or Quickload a game during gameplay.

Though there should not be an issue, it's recommended that you make a backup of all of your saves before playing with this mod enabled.

Execution -
Ironman has implemented execution into the court system. Players may be executed for the following crimes: Murder, Treason, High Treason, Piracy, Smuggling, and Criminal Conspiracy. You can only be executed for an executable offense (unless you've been banished from the region). After being banished from a region once, you will always be set to be executed for ANY offense; though you still have a chance to talk your way out of it. Any guild with the "Avoid Death" perk (Temple of Stendarr), will give you a chance to survive your execution. Avoid Death is a feature from classic. Execution will always be possible in Ironman games, but may be disabled in the settings menu for non-Ironman games.


[Ironman Game Systems]

This modification supplies a number of options that modify gameplay. IRONMAN IS NOT REQUIRED TO MAKE USE OF IRONMAN GAME SYSTEMS. Information on each setting is listed below.

Disable Pausing -
Excluding the court/prison window and the Ironman message window at the start of the game, gameplay will NEVER be paused. That means if you're reading a book, or equipping an item from your inventory screen, the game will keep running. Yes, you can die while at the Character Sheet or Save Game screens now. The only exception is when the console is open, but this is by design as console use is typical for debugging, cheating, or development.

Disable Resting On Horseback -
Prevents you from resting while you're on horseback.

Disable Recalling Near Enemies -
Prevents you from being able to recall or anchor while enemies are nearby.

Disable Quitting Near Enemies -
Prevents you from quitting the game while enemies are nearby.

Disable Transport Near Enemies -
You will not be able to change your method of transport while on-foot if enemies are nearby. If enemies are nearby, and you are mounted, you may dismount; but you will not be able to mount a horse again until you're clear of any enemies.

Enemies Transition With You -
Any non-quest enemy will follow you in and out of buildings and dungeons. This is compatible with the Persistent Dungeons mod in that enemies will not be cloned during the transition.

Always Use Classic Pacification -
Ironman Game Systems aims to ignore any pacification formula overrides from any mod, instead using Daggerfall Unity's pacification formula. For those with the Archaeologists mod enabled, you will still get the extra skill gain from language usage.

Prevent Guard Pacification -
Guards will be pacified momentarily, and then released from your implausible charms.

Can Surrender Once Identified -
Guards no longer need to hit you in order to bring up the surrender prompt and lower your reputation score. They will need to be within a fairly short distance in order to identify you. If your legal rep is above -10, they will not be able to identify you from your back; however, they can still identify you from the side. Chameleon and invisibility may affect your chance to not be seen by guards.

Use Armor Material in Hand To Hand -
Factors in the material of your gloves (when punching) and boots (when kicking) for the purposes of being able to hit your target. For example, you need at least silver gauntlets to successfully punch a werewolf. This has no effect when wielding a weapon.

Nerf Ebony Dagger Question -
At character generation, the ebony dagger option is replaced with a silver dagger. This has no effect on characters who choose to have their questions answered for them automatically.

Modify Critical Strike -
Critical Strike no longer grants a to-hit bonus. It, instead, now has a chance to increase your damage by up to 2.0x with 100% Critical Strike skill (though, it will scale with higher Critical Strike, as well). Currently, you have up to a 20% chance to critically strike with 100% Critical Strike skill - and again, that will scale with over 100% Critical Strike skill. CLASS-BASED ENEMIES WILL ALSO BENEFIT FROM THIS!

Modify Shop Burglary -
When in a shop after hours, you can no longer freely clear out the shelves. You will be subject to the same checks as if you were robbing a home. Additionally, every 10 seconds, there is a chance that the guards will come and try to charge you with Breaking & Entering. Your chance to NOT be caught by guards for Breaking & Entering is (((Luck * 2.5) / 5) + Stealth). With 50 Luck and 15 Stealth, you have a 40% chance to not be caught for B&E.

Modify Loan System -
Currently, disables the ability to borrow money from a bank. Loans will be re-enabled in a future version with severe punishments for defaulting on a loan.


- INSTALLATION -

Copy the contents of the folder matching your operating system (i.e. StandaloneWindows for Windows users) to your Daggerfall\DaggerfallUnity_Data\StreamingAssets\Mods folder.


- COMPATIBILITY -

For the moment, players who are traveling via Tedious Travel will have their game paused regardless of  their "Disable Pausing" setting when a message box pops up.


- FREQUENTLY ASKED QUESTIONS -

[Ironman]

Q: Will this mod work with my previously-created characters?
A: No. A new character must be created to play an Ironman game, but execution should work.

Q: What if I want to play a non-Ironman game. Do I need to disable the mod?
A: No. When you enter the game, just select "No" when the mod asks if you want to play in Ironman mode.

Q: Will this mod affect my other saves?
A: It shouldn't, as long as you use a fresh character name for Ironman games. Make a backup just in case.

Q: My game bugged out and I have a backup save that can correct the issue, but I can't load it. Help?
A: From the main menu, click Load Game, and then hold down the SHIFT key.

Q: I died and all of my saves except for the "(Ironman) Start" save were deleted!
A: It's a perma-death mod. Ironman characters should never use the same name as any other character.

Q: When I press my Quicksave key, I see the game has saved, but I don't see a Quicksave in my saves list?
A: For Ironman games, "Quicksave" is renamed to "(Ironman) Quicksave"

Q: Why can't I delete my "(Ironman) Start" save?
A: All saves under the character's name must be deleted before you can delete the "(Ironman) Start" save.

Q: Why can't I save over my "(Ironman) Start" save?
A: Because it's your starting point. The start save only exists to save you time in character creation.

Q: Why can't I load my "(Ironman) Start" save?
A: You have a more recent save. All other saves for the character must be deleted first.

Q: Why doesn't the load button on the in-game pause menu work?
A: You cannot load games (including quickloading) when playing an Ironman game.

Q: A judge just sentenced me to be executed. How did that happen?
A: Ironman adds the ability to be executed for certain crimes - even in normal games. While execution is always enabled for Ironman games, it may be disabled for normal games in Ironman's settings menu.


[Ironman Game Systems]

Q: Are all options for Ironman Game Systems enabled by default?
A: Yes. If you don't like an option introduced in a new version, you'll have to disable it manually.

Q: I have "Can Surrender Once Identified" enabled. How do guards "identify" me?
A: A guard will not be able to identify you unless they're fairly close to you and your back is not FULLY turned to them. However, they will be able to identify you when your back is turned to them once your legal reputation in the region is -10 or below. Helms or other facial coverings currently have no effect on the guards' ability to identify you.

Q: I was in a shop after hours, and guards attacked me! I didn't steal anything. Why did this happen?
A: With "Modify Shop Burglary" enabled, there's always a chance that guards will attempt to arrest you for Breaking & Entering. The chance to NOT have that happen is (((Luck * 2.5) / 5) + Stealth). With 50 Luck and 75 Stealth, guards will not come; and with 100 Luck and 50 Stealth, guards will not come. Any sufficiently high combination of Luck and Stealth should ensure that you can browse the shop freely.

Q: When I try to borrow money from a bank, I get a message that says they can't offer me a loan?
A: With "Modify Loan System" enabled, borrowing money from a bank will be disabled until a future version. In the future, loans will be re-enabled, and players who default on their loans will be punished severely for the transgression.


- CHANGELOG -

v0.2.2 -

[Ironman Game Systems]
  • Made disabling "Enemies Transition With You" actually prevent enemies from chasing you in/out of buildings and dungeons. Whoops.

v0.2.1 -

[Ironman]
  • Updated Ironman to work with the renaming of the "Disable Exiting Near Enemies" setting in IGS.
[Ironman Game Systems]
  • Renamed "Disable Exiting Near Enemies" to "Disable Quitting Near Enemies" for clarification. If you had this setting previously disabled, you will need to disable it again.
  • Added the "Enemies Transition With You" setting. When enabled, this will allow any and all enemies (except for enemies added by a quest) to follow you in and out of dungeons and buildings. This is compatible with Persistent Dungeons in that enemies will not be duplicated during the transition.
  • Gloves and boots will now take damage when using them in Hand-to-Hand combat IF the setting for "Use Armor Material In Hand to Hand" is enabled. Since they can already take damage as armor, there's a 50% less chance for them to take damage versus a normal weapon when being used to punch or kick.
  • When creating a new character and having the game answer the character creation questions for you, the ebony dagger will now be replaced by a silver dagger IF the "Nerf Ebony Dagger Question" option is enabled in the Ironman Game Systems settings menu.
  • You will now get a message popup when guards are summoned due to your traipsing around closed shops.

v0.2.0 -

[Ironman & Ironman Game Systems]
  • Split Ironman into two mods: "Ironman" and "Ironman Game Systems." The mods can be used independently of each other. All of the settings from v0.1.3 were migrated to Ironman Game Systems. You will need to set your game settings to your liking again. All Ironman Game Systems settings are enabled by default, regardless of whether or not you're playing an Ironman game. So if you like the changes that have been made in Ironman Game Systems, you can use them with the Ironman mod disabled. Please keep me aware of any bugs that you find in Ironman and Ironman Game Systems so I can fix them as soon as possible.

[Ironman]
  • Added execution to the court system. Execution is supported for the following crimes: Murder, Treason, High Treason, Piracy, Smuggling, and Criminal Conspiracy. You can only be executed for an executable offense. After being banished from a region once, the courts in that region will attempt to execute you regardless of the crime committed, though you still have a chance to talk your way out of being executed. Additionally, if you have the "Avoid Death" perk from any guilds or temples (currently, no guilds - just the Temple of Stendarr), you will have a chance to survive your execution. Avoid Death is something that was implemented in classic. While the Ironman mod is active, execution is not optional for Ironman games, but may be disabled for normal games in Ironman's settings menu.
  • Added the "Execution In Normal Games" setting. While execution is always enabled in Ironman games, you can disable it for your normal games, if you so prefer. Execution is enabled by default.
  • You will now be released at full health/mana/stamina after being banished. This should prevent instant death for those who get released during the day with the "Take Damage from Sunlight" disadvantage.
  • Ironman games will now save your court status. Meaning, if you kill the game task on the court window, you're still going to be in court when you reload.
  • Ironman games will now only quit after the pending quitsave has been completed. This may not have been an issue in previous versions, but the method of doing so before was hacky. This should prevent any possible save corruption on the Quitsave as a result of exiting the game naturally or by killing the task normally (force-kills and game crashes could potentially - but are unlikely to be - an issue, as they probably won't trigger OnApplicationQuit(), which is where saving occurs).
  • Changed the save/load game system a bit. You can now only load the most recent save. This is useful for people who like to play with the Autosave mod and don't tend to spend too much time Quicksaving. Also, the Quicksave key (default: F9) now saves as "(Ironman) Quicksave" instead of "(Ironman) Current" and quitting the game will generate an "(Ironman) Quitsave" save, which becomes your most recent save.
  • Killing the Daggerfall Unity task with "Disable Exiting" enabled now saves the game before it exits.
  • If you saved shortly after receiving the "surrender to guards" dialogue, you will now get another chance to surrender to guards when reloading the game.
  • Prevented the ability to Quicksave in menus when playing Ironman games.

[Ironman Game Systems]
  • Integrated with the Tedious Travel mod. Players with Tedious Travel installed will now get a message once a disease exceeds its incubation period and their travel will be stopped. Also, weather particles will be disabled during travel as this seems to cause issues. I can make that optional, if so desired. If whoever's currently maintaining the Tedious Travel mod would like to fold these changes into it, that would be great.
  • Integrated with the Airships mod. The transport window will work as if you had DREAM compatibility enabled. If you own an airship and a ship, you will be prompted with a message, asking if you want to summon your airship.
  • Integrated the with Archaeologists mod for "Always Use Classic Pacification" setting.
  • Integrated with Roleplay & Realism mod for "Modify Critical Strike" setting.
  • Added the "Disable Recalling Near Enemies" setting. If enabled, this prevents you from being able to recall when enemies are nearby.
  • Added the "Disable Transport Near Enemies" setting. When enabled, this will prevent you from opening the transport window while enemies are nearby. If pausing is disabled, and you leave the transport window open, the window will automatically update based on whether or not enemies are nearby. Also, your current mode of transport will be greyed out when this option is enabled because stuff like being able to choose "Foot" while you're already on-foot always irked me.
  • Added the "Disable Resting on Horseback" setting. If enabled, you will not be able to rest while on horseback.
  • Added the "Always Use Classic Pacification" setting. When enabled, Ironman Game Systems will try to ignore any modification to the pacification formula by other mods, and instead use Daggerfall Unity's formula. This is compatible with (and made in response to) the fantastic Archaeologists mod for those who don't like the heightened pacification chances, but appreciate the extra language skill gain.
  • Added the "Prevent Guard Pacification" setting. When enabled, guards may be pacified momentarily, but will begin to attack you almost immediately after their pacification.
  • Added the "Can Surrender Once Identified" setting. When enabled, guards no longer need to hit you in order to bring up the surrender prompt and lower your reputation score. They will need to be within a fairly short distance of you in order to identify you. If your legal rep is above -10, they will not be able to identify you from your back; however, they can still identify you from the side.
  • Added the "Use Armor Material In Hand To Hand" setting. When enabled, the material level of your gloves (when punching) and boots (when kicking) will be checked against the enemy's resistances to see if damage will be delivered or ignored. In other words, you now need at least silver gauntlets to punch a werewolf.
  • Added the "Nerf Ebony Dagger Question" setting. When enabled, the "An ebony dagger" answer at character generation will be changed to "A silver dagger" and you will receive that at the beginning of the game instead. This is due to the fact that unless you're roleplaying or have Ebony/Short Blades prohibited, there's really no reason not to choose the ebony dagger as it's a huge advantage at game start. This has no effect on characters who choose to have their questions answered for them automatically.
  • Added the "Modify Shop Burglary" setting. When enabled, you can no longer freely loot shops after they have closed. The success for stealing from a shop is the same as it would be if you were stealing from a home. Additionally, every 10 seconds, a check is made to see if the guards will be summoned to arrest you for Breaking & Entering. The chance for this NOT to happen is (((Luck * 2.5) / 5) + Stealth). This should stop happening at 100 Luck and 50 Stealth, 50 Luck and 75 Stealth, or any other sufficient combination.
  • Added the "Modify Critical Strike" setting. If enabled, Critical Strike will no longer grant a bonus to your chance to hit, but instead, grant a bonus to your damage. The bonus scales linearly with your Critical Strike skill. With 100% Critical Strike, you have a 20% chance to crit for 2.0x damage. With 1% Critical Strike skill, you have a .2% chance to crit for 1.01x damage. Critical Strike scales with greater than 100 Critical Strike skill. CLASS-BASED ENEMIES WILL BENEFIT FROM CRITICAL STRIKE AS WELL!
  • Added the "Modify Loan System" setting. Currently, this just disables the ability to borrow money from a bank. In future versions, loans will be re-enabled and players will be punished severely for defaulting on their loans.
  • Fixed the "Disable Pausing" setting. It now works as intended without any known issues*. The game will remain paused while the console is open, regardless of what this option is set to. This is by design as the console is mostly only useful for debugging/development, fixing a technical issue, or cheating. (Known Issue) The game will be paused if a message box pops up while traveling via Tedious Travel.
  • Renamed "Disable Exiting" to "Disable Exiting Near Enemies"
  • With every game load, the UnityEngine.Random seed will be updated to prevent some frustrating issues where "random" occurrences will always work out to not be so random.

v0.1.3 -
  • Disabled "disable pausing" for now. It caused too many issues with the game and wasn't ready for
    release yet anyway. Enabling it in the Ironman settings mod menu won't do anything.

v0.1.2 -
  • Fixed a bug where SAVE0 would be overwritten at the start of the game. Saves were not being enumerated by Daggerfall Unity that early on, causing the game to think none existed at the point of saving. Sorry!
  • Added mod setting to disable exiting the game when enemies are nearby. The process can still be killed.
  • Added mod setting to disable pausing. Gameplay will NEVER be paused (including ANY menus) when enabled. This isn't fully finished yet because 0.1.2 is a rush release due to the SAVE0 bug.
  • Slightly beautified the Ironman messages at game start.
  • Fixed an incredibly minor issue where the "Delete Save" and Save/Load buttons would display when first opening the Save Game or Load Game menus.

v0.1.1 -
  • Adjusted how saves were deleted to address a possible bug.
  • When playing an Ironman game, the game will now be saved when you attempt to exit the game. This includes by using the pause menu's exit button, Alt-F4/CMD-Q, and killing the task.

v0.1.0 -
  • First release.
Last edited by DFIronman on Mon Oct 14, 2019 7:53 am, edited 34 times in total.

DFIronman
Posts: 53
Joined: Sat Aug 24, 2019 12:48 am

Re: [MOD] Ironman

Post by DFIronman » Sun Aug 25, 2019 3:22 am

On the technical side, getting this mod to work was a chore. Initially, I just copied over the DaggerfallUnitySaveGameWindow class to a new file (IronmanSaveGameWindow) and modified it for my purposes. That worked great. In fact, I had finished this yesterday, uploaded, and even made a post here to advertise it. And then I tested it in the live version of the game, rather than playing from within the Unity editor.

And it didn't work. So I deleted the post. There was an error in the IronmanSaveGameWindow.Setup() function related to setting the Size and Position properties of the various window components due to the fact that the set accessors for BaseScreenComponent (which a majority/all of the GUI components like ListBox, Button, etc. are derived from) are marked as internal. That stopped my mod from working whatsoever in the live version of the game, though it worked fine when running it from Unity (even the .dfmod version). I guess this is because a mod is considered an external assembly, whereas anything compiled and loaded from within the Unity editor - even a mod - is not, for some reason. Always test your mods in a live install of Daggerfall Unity.

Here, I thought I was done with the mod and it turns out that it doesn't even work! So I decided to try to use Reflection to get around the "internal" property modifier. I tested it on one or two properties and it seemed to work, so I used Reflection to modify every reference to the Size and Position properties. "Great," I thought, "I'm done again!" I loaded the game up and... "Unity has stopped working." Yeah, it crashed. So I loaded it back up and tried again. And it crashed. Turns out (at least, in this specific case), even if you can successfully modify the .Size and .Position properties with Reflection, the game will crash if there's not (for some reason) at least one direct call to set a .Size or .Position property. The problem with that is an exception will be thrown because you're trying to modify an internal-marked property - like I had in the original version of this mod.

Well, that felt like running into a brick wall. So, after making a backup, I basically threw that code out and started with a new version of IronmanSaveGameWindow that derives from DaggerfallUnitySaveGameWindow. This new version makes heavy use of Reflection and intercepting windows in order to access private variables (like goButton, savesList, etc.), modify events in the parent (DaggerfallUnitySaveGameWindow) class, and even skipping a level above base.Update() (i.e. base.base.Update(), which isn't allowed) in order to retain the intended functionality of the mod. Though Reflection is considered "slow," this isn't noticeable at all in a Save/Load game menu, where all of this action takes place. For example, the call to the grandparent of IronmanSaveGameWindow ("base.base.Update()" a.k.a. DaggerfallPopupWindow.Update()), takes between 1-2 tenths of a millisecond on my low-grade machine.

Ultimately, despite the heavy use of Reflection, this new implementation is superior to the previous version as it should be much more compatible with any potential future updates of the DaggerfallUnitySaveGameWindow class (unless the updates are fairly extreme). Though there is some re-used code from DaggerfallUnitySaveGameWindow, it's not a lot and will be easier to maintain should that class undergo a serious update.

I hope this information is useful for others who may be having issues with their mods!

Edit: Also, here's an extension class I wrote (inspired by examples from various blogs/Stack Overflow posts) for ReflectionHelper that will make utilizing Reflection to get/set fields and properties much easier. In order to make my code more readable and save time, I ended up using properties with the same names as the fields I needed to access in DaggerfallUnitySaveGameWindow. Feel free to use this in your own works.

Example usage:

Code: Select all

// The "typeof(DaggerfallUnitySaveGameWindow)" is optional for all calls in the extension method.
ListBox savesList { get { return (ListBox)this.GetFieldValue("savesList", typeof(DaggerfallUnitySaveGameWindow)); } }
Button goButton { get { return (Button)this.GetFieldValue("goButton", typeof(DaggerfallUnitySaveGameWindow)); } }

// "typeof(DaggerfallUnitySaveGameWindow)" is still optional. I just include it to speed up the process
// of finding the fields/properties I need.
goButton.SetFieldValue("OnMouseClick", null, typeof(DaggerfallUnitySaveGameWindow));

// Yes, this is a Reflection call.
savesList.OnMouseDoubleClick += SaveLoadEventHandler;
ReflectionHelper extension class:

Code: Select all

    #region ReflectionHelper
    public static class ReflectionHelper
    {
        private static readonly BindingFlags _BindingFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;

        private static PropertyInfo GetPropertyInfo(this object obj, string property, Type startingType = null)
        {
            PropertyInfo info;

            // Use obj.GetType() if the startingType wasn't supplied or our class is not/does not descend from that Type
            Type t = ((startingType != null) && (startingType.IsAssignableFrom(obj.GetType()))) ? startingType : obj.GetType();

            startingType = t; // Just assign this in case we have to throw an exception.

            // Loop through the whole class family tree until we find it or not.
            while ((info = t.GetProperty(property, _BindingFlags)) == null && (t = t.BaseType) != null);

            if (info == null)
                throw new NullReferenceException("No property '" + property + "' in type '" + startingType + "' or its parent(s).");

            return info;
        }

        private static FieldInfo GetFieldInfo(this object obj, string field, Type startingType = null)
        {
            FieldInfo info;

            // Use obj.GetType() if the startingType wasn't supplied or our class is not/does not descend from that Type
            Type t = ((startingType != null) && (startingType.IsAssignableFrom(obj.GetType()))) ? startingType : obj.GetType();

            startingType = t; // Just assign this in case we have to throw an exception.

            // Loop through the whole class family tree until we find it or not.
            while ((info = t.GetField(field, _BindingFlags)) == null && (t = t.BaseType) != null);

            if (info == null)
                throw new NullReferenceException("No field '" + field + "' in type '" + startingType + "' or its parent class(es).");

            return info;
        }

        public static object GetPropertyByName(this object obj, string property, Type startingType = null, object[] index = null)
        {
            return GetPropertyInfo(obj, property, startingType).GetValue(obj, index);
        }

        public static object GetFieldByName(this object obj, string field, Type startingType = null)
        {
            return GetFieldInfo(obj, field, startingType).GetValue(obj);
        }

        public static void SetPropertyValue(this object obj, string property, object value, Type startingType = null, object[] index = null)
        {
            GetPropertyInfo(obj, property, startingType).SetValue(obj, value, index);
        }

        public static void SetFieldValue(this object obj, string field, object value, Type startingType = null)
        {
            GetFieldInfo(obj, field, startingType).SetValue(obj, value);
        }
    }
    #endregion
Last edited by DFIronman on Mon Aug 26, 2019 4:21 am, edited 5 times in total.

User avatar
Jay_H
Posts: 2837
Joined: Tue Aug 25, 2015 1:54 am

Re: [MOD] Ironman

Post by Jay_H » Sun Aug 25, 2019 3:45 am

YES! YES! I love this!! I've been hoping for an Ironman mode since DFU's creation! :D
ON HIATUS. Will be difficult to find.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.

DFIronman
Posts: 53
Joined: Sat Aug 24, 2019 12:48 am

Re: [MOD] Ironman

Post by DFIronman » Sun Aug 25, 2019 3:57 am

Jay_H wrote:
Sun Aug 25, 2019 3:45 am
YES! YES! I love this!! I've been hoping for an Ironman mode since DFU's creation! :D
Haha, that's awesome! Let me know if anything breaks or if you have any suggestions. I'll be watching this thread over the next few days, at least. I tested it a bunch, but as you can see from my second post, I had to refactor the code a lot and might have missed something.

Good luck!

User avatar
Jay_H
Posts: 2837
Joined: Tue Aug 25, 2015 1:54 am

Re: [MOD] Ironman

Post by Jay_H » Sun Aug 25, 2019 4:07 am

I won't be able to give it a serious try until the start of next week, so you won't hear from me until then. But this is AWEESOOMEEE!!! I'll post about anything that goes wrong.
ON HIATUS. Will be difficult to find.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.

User avatar
Jay_H
Posts: 2837
Joined: Tue Aug 25, 2015 1:54 am

Re: [MOD] Ironman

Post by Jay_H » Sun Aug 25, 2019 5:02 am

I set apart some time to try it right away, and it works so well! Buttons disappear where they should, your idea to keep a starting save for each character is excellent, and the saves disappear as they should. I killed off a new character on purpose to test it.

I'm trying the shift-Load workaround, and I can't get it to work. Is it intended to work during gameplay or on the menu only?

Augh, this is absolutely amazing. I'm doing a melee build based on Vondur's Mad Genius: Warm Ashes, slow healing, tedious travel, scanty resources... I'm traveling halfway across Daggerfall region to find better work and the sense of risk is amazing. I love this! It's a whole new game!
ON HIATUS. Will be difficult to find.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.

DFIronman
Posts: 53
Joined: Sat Aug 24, 2019 12:48 am

Re: [MOD] Ironman

Post by DFIronman » Sun Aug 25, 2019 5:33 am

Jay_H wrote:
Sun Aug 25, 2019 5:02 am
I set apart some time to try it right away, and it works so well! Buttons disappear where they should, your idea to keep a starting save for each character is excellent, and the saves disappear as they should. I killed off a new character on purpose to test it.

I'm trying the shift-Load workaround, and I can't get it to work. Is it intended to work during gameplay or on the menu only?

Augh, this is absolutely amazing. I'm doing a melee build based on Vondur's Mad Genius: Warm Ashes, slow healing, tedious travel, scanty resources... I'm traveling halfway across Daggerfall region to find better work and the sense of risk is amazing. I love this! It's a whole new game!
Haha dude, that's awesome - I'm glad you're enjoying it! The shift-loading will only work when trying to load a game from the Main Menu (or from a non-Ironman character while in-game). Also, thanks for all of your work on quests! You've done a great job so far. I use a bunch of your stuff, plus obviously, the original quest fixes and such.

User avatar
Jay_H
Posts: 2837
Joined: Tue Aug 25, 2015 1:54 am

Re: [MOD] Ironman

Post by Jay_H » Sun Aug 25, 2019 5:40 am

I noticed that it's possible to quit your game when in danger and return to your save game. What would you think about auto-saving upon game exit?
ON HIATUS. Will be difficult to find.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.

DFIronman
Posts: 53
Joined: Sat Aug 24, 2019 12:48 am

Re: [MOD] Ironman

Post by DFIronman » Sun Aug 25, 2019 5:44 am

Jay_H wrote:
Sun Aug 25, 2019 5:40 am
I noticed that it's possible to quit your game when in danger and return to your save game. What would you think about auto-saving upon game exit?
I thought about that, but someone could just kill the game process to achieve the same effect; though I might even be able to have it save in that case as well.

Are you asking because of the potential for Ironman competitions or something along the line? Excluding that, I figure anyone playing this mod probably won't want to cheat themselves of the authentic experience, because there's no real benefit to playing with it otherwise.

User avatar
Jay_H
Posts: 2837
Joined: Tue Aug 25, 2015 1:54 am

Re: [MOD] Ironman

Post by Jay_H » Sun Aug 25, 2019 5:57 am

Nah, anyone who wants to use this mod is going to play fair and follow its rules. I just mean, when you've invested so much in a character, there's such a temptation to bend the rules a little bit... And how rigid those rules are can determine whether a person bends them or not ;)
ON HIATUS. Will be difficult to find.
Come join the Unofficial Daggerfall Unity Discord.
See the Daggerfall Unity Wiki on the UESP.

Post Reply