diff --git a/RandomizerCommon/EldenForm.Designer.cs b/RandomizerCommon/EldenForm.Designer.cs index 8234493..aa5ff7e 100644 --- a/RandomizerCommon/EldenForm.Designer.cs +++ b/RandomizerCommon/EldenForm.Designer.cs @@ -128,6 +128,7 @@ private void InitializeComponent() this.nerfmalenia = new System.Windows.Forms.CheckBox(); this.allmaps = new System.Windows.Forms.CheckBox(); this.extraRandomGroup = new System.Windows.Forms.GroupBox(); + this.nodeathvalid = new System.Windows.Forms.CheckBox(); this.invertgestures = new System.Windows.Forms.CheckBox(); this.invertenvbgm = new System.Windows.Forms.CheckBox(); this.invertoutfits = new System.Windows.Forms.CheckBox(); @@ -1358,6 +1359,7 @@ private void InitializeComponent() // // extraRandomGroup // + this.extraRandomGroup.Controls.Add(this.nodeathvalid); this.extraRandomGroup.Controls.Add(this.invertgestures); this.extraRandomGroup.Controls.Add(this.invertenvbgm); this.extraRandomGroup.Controls.Add(this.invertoutfits); @@ -1373,6 +1375,19 @@ private void InitializeComponent() this.extraRandomGroup.TabStop = false; this.extraRandomGroup.Text = "Additional randomization"; // + // nodeathvalid + // + this.nodeathvalid.AutoSize = true; + this.nodeathvalid.Checked = true; + this.nodeathvalid.CheckState = System.Windows.Forms.CheckState.Checked; + this.nodeathvalid.Location = new System.Drawing.Point(6, 161); + this.nodeathvalid.Name = "nodeathvalid"; + this.nodeathvalid.Size = new System.Drawing.Size(150, 20); + this.nodeathvalid.TabIndex = 7; + this.nodeathvalid.Text = "Make sure the run can be done deathless"; + this.nodeathvalid.UseVisualStyleBackColor = true; + this.nodeathvalid.CheckedChanged += new System.EventHandler(this.option_CheckedChanged); + // // invertgestures // this.invertgestures.AutoSize = true; @@ -1822,6 +1837,7 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox invertgestures; private System.Windows.Forms.CheckBox invertenvbgm; private System.Windows.Forms.CheckBox invertoutfits; + private System.Windows.Forms.CheckBox nodeathvalid; } } diff --git a/RandomizerCommon/KeyItemsPermutation.cs b/RandomizerCommon/KeyItemsPermutation.cs index 9871e31..554216c 100644 --- a/RandomizerCommon/KeyItemsPermutation.cs +++ b/RandomizerCommon/KeyItemsPermutation.cs @@ -82,6 +82,24 @@ public KeyItemsPermutation(RandomizerOptions options, LocationData data, Annotat } } + //If noDeath guaranteed, set the drawingroomkey forced requirements + if (options["nodeathvalid"]) + { + configExprs["drawingroomkeyreq"] = Expr.Named("volcano_drawingroom"); + } + else + { + //"volcano_drawingroom OR (academy AND altus); + configExprs["drawingroomkeyreq"] = + new Expr( + new List(){ + Expr.Named("volcano_drawingroom"), + new Expr( + new List(){ + Expr.Named("academy"), + Expr.Named("altus") }) }, false); + } + // If leyndellRunes is 0, this condition just becomes true configExprs["runes_leyndell"] = new Expr(runes.Take(leyndellRunes).Select(r => Expr.Named(r)).ToList(), true); if (roldRunes == -1) diff --git a/diste/Base/annotations.txt b/diste/Base/annotations.txt index e9f0e3d..364dfff 100644 --- a/diste/Base/annotations.txt +++ b/diste/Base/annotations.txt @@ -597,7 +597,8 @@ Areas: - Name: volcano_town Text: Volcano Manor # Add 'altus' condition so that Dectus medallion isn't placed here - Req: volcano_drawingroom OR (academy AND altus) + # Old was : volcano_drawingroom OR (academy AND altus) + Req: drawingroomkeyreq Maps: m16_00_00_00 MainMaps: m16_00_00_00 - Name: volcano_temple diff --git a/diste/Messages/de.json b/diste/Messages/de.json index 0d094e8..2db6b6d 100644 --- a/diste/Messages/de.json +++ b/diste/Messages/de.json @@ -578,6 +578,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Mini-Dungeons von allen obigen Orten ausschließen" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/es-ES.json b/diste/Messages/es-ES.json index 893a19a..2874bb5 100644 --- a/diste/Messages/es-ES.json +++ b/diste/Messages/es-ES.json @@ -537,6 +537,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/es.json b/diste/Messages/es.json index e46b4c7..22b7c2f 100644 --- a/diste/Messages/es.json +++ b/diste/Messages/es.json @@ -560,6 +560,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Excluye a las mazmorras de todos los lugares anteriores" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/fr.json b/diste/Messages/fr.json index 9df4ae2..fb31e6a 100644 --- a/diste/Messages/fr.json +++ b/diste/Messages/fr.json @@ -590,6 +590,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Retire les mini-donjons de tous les emplacements au dessus" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "Assurer que le jeu puisse être complété sans mourir" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/it.json b/diste/Messages/it.json index 4bf92e8..1fc30fa 100644 --- a/diste/Messages/it.json +++ b/diste/Messages/it.json @@ -536,6 +536,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/ja.json b/diste/Messages/ja.json index 1d47698..c3abe4d 100644 --- a/diste/Messages/ja.json +++ b/diste/Messages/ja.json @@ -566,6 +566,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "上記すべての場所からミニダンジョンを除外" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/kk-KZ.json b/diste/Messages/kk-KZ.json index 02bf1f5..a9b4814 100644 --- a/diste/Messages/kk-KZ.json +++ b/diste/Messages/kk-KZ.json @@ -537,6 +537,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "[[Exclude mini-dungeons from all of the above locations]]" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/ko.json b/diste/Messages/ko.json index e6404fd..1bd3941 100644 --- a/diste/Messages/ko.json +++ b/diste/Messages/ko.json @@ -536,6 +536,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/pl.json b/diste/Messages/pl.json index ccc443a..5d2f9fa 100644 --- a/diste/Messages/pl.json +++ b/diste/Messages/pl.json @@ -560,6 +560,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Przedmioty kluczowe nie mogą się pojawiać w tych lokacjach" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/pt-BR.json b/diste/Messages/pt-BR.json index 5a39d22..6185b2e 100644 --- a/diste/Messages/pt-BR.json +++ b/diste/Messages/pt-BR.json @@ -542,6 +542,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Excluir mini-dungeons de todos os locais acima" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/ru.json b/diste/Messages/ru.json index bf5b8e7..80a0be8 100644 --- a/diste/Messages/ru.json +++ b/diste/Messages/ru.json @@ -560,6 +560,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "Исключить подземелья из выше упомянутого списка локаций" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/th.json b/diste/Messages/th.json index da07060..1757756 100644 --- a/diste/Messages/th.json +++ b/diste/Messages/th.json @@ -536,6 +536,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use", diff --git a/diste/Messages/zh.json b/diste/Messages/zh.json index 692a5ea..4229a5a 100644 --- a/diste/Messages/zh.json +++ b/diste/Messages/zh.json @@ -578,6 +578,12 @@ "english_text": "Exclude mini-dungeons from all of the above locations", "text": "在上述位置中排除小型箱庭" }, + { + "name": "EldenForm_nodeathvalid", + "explanation": "Button to force the randomizer to allow a no death run, making sur the drawing room key isn't inaccessible", + "english_text": "Make sure the run can be done deathless", + "text": "" + }, { "name": "EldenForm_nohand", "explanation": "Radio button for starting class randomization: if chosen, all starting class stat requirements are completely ignored, and the player may start with a weapon or spell they do not have the stats to use",