diff --git a/README.MD b/README.MD index 8864d40..0ecea0f 100755 --- a/README.MD +++ b/README.MD @@ -7,9 +7,9 @@ -

SubtleMods: Reflections of Destiny, an SoD Remix Mod

+

A BG Plot Mod with Main Character Energy!

-

Version 0.5
+

Version 0.8
Languages: English

Author: The Subtle Doctor

Home page

@@ -18,16 +18,15 @@

Overview

-

This mod is designed to modify, improve, and sometimes move around various parts of the Siege of Dragonspear campaign - and the bits of BG1 just before it and bits of BG2 just after it. The first two components focus on the last chapter of the BG1 campaign, starting with Sarevok's coronation scene. In the base game you get teleported to the final encounter, and that's it - game over. Here, I add more interactions with various end-game NPCs, flesh out more nuanced relationships, and you time to finish up any outstanding quests. The narrative center of gravity for this section of the game becomes Korlasz' dungeon, brought forward from Siege of Dragonspear into BG1, before you fight Sarevok.

-

Supporting that, mostly for giggles and a teeny-tiny hint of foreshadowing, the first component adds a cool new magic item to both BG1 and BG2, which lets you cast Simulacrum on anyone! Even Sarevok or Belhifet!

-

With those two seeds sown, future components will more directly alter parts of SoD itself. At least, that is the current plan.

+

This mod is designed to improve, modify, and sometimes move around various parts of the Baldur's Gate games in places where the main story is either not fully realized or just not well done. This mod contains a number of components, some of which make very large changes and some of which make very tiny changes, but all geared toward making the story of Gorion's Ward flow better from its origin in Candlekeep to its resolution (?) at the Throne of Bhaal.

+

Right now the mod contains two rather large components with major effects on the plots of BG1 and SoD; plus several very small components affecting BG1, SoD, and BG2. Given enough time and inspiration, I may add large component addressing issues with the BG2 and ToB plots as well. We shall see.

+

You will get the most out of this mod if you play with the EET mod putting all of the BG1, SoD, and BG2 campaigns into one game. That allows some of the components here to work, since some of them move content around among the different campaigns.

Installation

Windows:
The mod archive should be extracted into your game folder from the archive (or just unzipped and then copied there). If properly extracted, you should have a "Reflections" folder and "setup-Reflections.exe" in your game folder. To install, simply double-click "setup-Reflections.exe" and follow the instructions on screen.

-

Run setup-might_and_guile.exe in your game folder to reinstall, uninstall or otherwise change components.

-

Mac OS X:
+

MacOS:
This mod is packaged and installed with WeiDU. To install, simply extract the contents of the mod into your game folder. If properly extracted, you should have a folder called "Reflections." I highly recommend using the "Mac Weidu Launcher" utility, made by me (!), which opens a menu of all mods in your game folder and lets you choose which one to install.

Compatibility

@@ -35,50 +34,95 @@

This mod is meant to be installed on BGEE games with the Siege of Dragonspear expansion, or on BG2EE games with EET installed. You will have the best experience in EET.

Reflections aims to be compatible with other popular mods. There are, however, a few compatibility issues of note:

Load Order:
This mod should be installed fairly early. It should definitely be installed after EET, EndlessBG1, and The Calling. And it should be installed before EET_end.

Contents

-

Component 50:

+

Component 100:

-

BG2 Bonus Content!

-

This component makes several SoD areas accessible in BG2, as long as you did not play SoD up to that point. So if you play and utilize component 200's option to skip the SoD campaign... or you use another mod to skip the SoD campaign... or you import a character from the end of BG1 into the BG2 campaign... or you simply start a new BG2 campaign - as long as your character has not been through SoD, then you will be able to play through these areas in chapter 2 of BG2.

-

Note, however, that this component will only install on games that have EET installed - your character must not have played SoD, however it is still necessary to have the SoD areas available in the game for the mod to send you there!

-

This is designed as a kind of easter egg, so I do not want to spoil where the SoD areas are on the BG2 map. Most should be fairly obvious when you pass through the Athkatla City Gates; one, however, is in a different place - search west of De'Arnise's Hold.

+

The Future is Now

+

The original Baldur's Gate game has a great story and does not suffer from the pacing problems of its sequel(s). That said, chapter 7 of the BG1 campaign is extremely abbreviated. After sneaking back into the city, you make your way to the Ducal Palace and interrupt Sarevok's coronation as a Grand Duke... and then you are teleported to the maze that takes you to the end-game fight, after which the game fades to black.

+

This component gives a LOT more breathing room after you stop Sarvok's coronation. You are successful mid-level adventurers at this point, and the mod sets you up as agents of the rulers of the city. First you get a very simple quest to track down information about where Sarevok retreated to - which takes you out into the streets of the city, where if you need to, you can handle any other business you have outstanding.

+

Then it moves the 'Korlasz' Crypt' dungeon forward from the Siege of Dragonspear campaign to this chapter, setting it up as a stop between you and your final confrontation with Sarevok. After handling this dungeon you will report back to the Dukes, but you can handle any outstanding quests or business in between.

+

Next you are tasked with finding (finding!) Sarevok and after that you can again take some time and handle other business on your way to report back once again to the Dukes.

+

After Sarevok is handled, you will have a choice: help the Dukes begin to address the threat of the Shining Lady's Crusade to the north, or refuse to do so and, effectively, skip to the BG2 campaign. There is a small 'quest' added to handle the transition to BG2, using some assets from SoD. It is meant to make your capture by Irenicus and escape from his lair feel like it is still occurring in the BG1 campaign. It should add immediacy to the transition to BG2, rather than feeling like you stopped playing one game and started playing another one. (Assuming, of course, that you are playing EET.)

+

If you continue working for the Dukes, you will be sent on another quest to Beregost and other locations outside Baldur's Gate - during which time, again, you may also complete other quests and tasks. (This is a theme here, in case you didn't notice.) This will introduce some hints of what is to come later in the SoD campaign, and notably, it explains how Caelar Argent knows you are a Bhaalspawn. Finally, after this quest is complete, you will again have the choice to continue on into SoD, or skip it and instead continue to BG2.

+

Along the way, this component also handles Imoen's situation: you can take her with you through all these quests, or you can have left her behind way back at the walls of Candlekeep... either way, she will get where she needs to be for her part in what follows in SoD and/or BG2.

+

Through all this added content and time, there are many more dialogues which flesh out what is happening in the city, how you are perceived, and your relationship to the city's rulers. You will have an explicit choice to disclose your heritage to them, or to keep it concealed. This choice does not have any mechanical consequences (yet!) but provides a better sense of agency and more in-depth player interactions in a part of the game that, in its initial release, is shockingly sparse.

-

Component 100:

+

Component 110:

The Mirror Shard

This small component adds a new magic item in Durlag's Tower and in Irenicus' Dungeon in the BG2 campaign. This item is quite powerful: it allows you to cast Simulacrum on anyone - anyone - and create a friendly, 60%-strength clone of them for 10 rounds. The item can only be used a few times, however, so use it wisely!

+

In addition to just being a fun artifact, this is meant to provide a possible explanation for how Irenicus pulls off disgracing and kidnapping you if you choose the 'Skip SoD' option of component 100. (However, both components are independent, neither relis on the other in a technical sense.)

Component 200:

-

Back to the Future

-

This component is much more involved. First, it adds a plot to the end of the BG1 campaign that implicitly involves the Mirror Shard from component 100 and Melicamp's Netherese bracers. Installing component 100 is not required, but if you do you might have an inkling that other entities are making use of the Mirror Shard. You will get a bit more satisfaction out of this plot if you also install "The Calling" quest mod and the "Brandock" NPC mod.

-

Next, you are given a lot more breathing room in the last chapter of BG1. Instead of teleporting you to the Undercity Maze after you interrupt Sarevok's coronation, now the Grand Dukes will ask you to investigate where he may have gone. While you search for Sarevok, you can finish up other quests. This should work well with the excellent Black Hearts mod, which also gives you things to do in the last chapter of BG1.

-

Next, this mod brings Korlasz' Crypt forward from the Siege of Dragonspear campaign into the BG1 campaign. Instead of being a "Sarevok clean-up quest" as Beamdog set it up, this great dungeon now becomes an integral part of your search for Sarevok.

-

Next, once you find Sarevok and fight him, the BG1 campaign will no longer abruptly end. Instead you will report your success to the Grand Dukes - and they may not be as happy about your actions as you might think! This is where the game will finally move on to the Siege of Dragonspear campaign.

-

However, this also presents you with an option to skip Siege of Dragonspear, and stay in Baldur's Gate when the Coalition army marches north to meet Caelar Argent. This choice will proceed to the resolution of the Mirror Shard plot (again, only implicitly) and send you to the beginning of the Shadows of Amn campaign. The goal here is to make your capture by Irenicus and escape from his lair feel like it is still occurring in the BG1 campaign. It should add immediacy to the transition to BG2.

-

Through all this, there are many more dialogues in the end of BG1 which flesh out what is happening in the city, how you are perceived, and your relationship to the city's rulers. You will have an explicit choice to disclose your heritage to them, or to keep it concealed. This doesn't have any mechanical consequences (yet!) but provides a better sense of agency and more in-depth player interactions in a part of the game that, in its initial release, is shockingly sparse.

+

Rewriting History

+

This component modifies a large number of dialogues and cut scenes in SoD to change Caelar Argent's backstory and motivations. Caelar is Lawful Good, and Knight of the Order of the Aster, and in this telling her Crusade is a crusade against chaos - specifically, the chaos that will "follow in [the] wake" of the Bhaalspawn, as prophesied by Alaundo. Caelar is freaked out that a Bhaalspawn rose to the top leadership position in a city as large and influential as Baldur's Gate and almost started a major war. And there are scores of other Bhaalspawn out there. Caelar determines that the only way to prevent the foretold chaos is by raising an army and conquering the entire region, thereafter ruling it with a Lawful Good iron fist.

+

Caelar has a secret weapon in her campaign to avert fate: she is no normal mortal, but the descendent of a solar - basically, a god who dispenses with the need for worshippers. Caelar is therefore an aasimar, but, like an aasimar on steroids. Her solar ancestor was also a crusader against chaos. Caelar has been undergoing daily magical rituals with her trusted advisor, using the connection of her blood to connect the interplanar conduit in Dragonspear Castle to the location of her solar ancestor. Then, she plans to open it and recruit a celestial army to join her own crusade, and wipe away all opposition on the Sword Coast...

+

This component makes several changes that are observable in-game:
+

+

Other than that, the game plays out very much like normal: Caelar is leading an incredibly dangerous force, with a goal that is inimical to the region's power structures, and she is based at the site of an incredibly dangerous interplanar construct. At various places the Coalition must beat back the crusaders, and then attack Dragonspear Castle itself. The end-game required more adjustment, mostly just adapting to the absence of Aun Argent and the fact that the portal has to be closed from the Prime Material side. Actual gameplay changes are minimal - a single minor battle is removed from the game (Belben) in order to make that section a bit more atmospheric. The biggest change is that the Parley scene between Caelar, Ashatiel, Hephernaan, Nederlok, Stonehand, and DeLancie at Deam Man's Pass is removed entirely. There is just no way to make that scene make sense.

-

Component 300:

+

Component 220:

-

The Clone Saga

-

This component uses the Mirror Shard/clone plot that is the basis of the 'Skip SoD' option in component 200, and adds it to the end of SoD. The entire end-of-SoD plot involving the murder of Skie Silvershield and the trial of Charname is removed, and replaced with this version. Skie's death happens off-screen, not in a dream sequence; and there is no trial. Instead the events unfold more quickly and you find yourself outside Baldur's Gate under a cloud of suspicion, which goes unresolved. This should be a bit closer to how Charname's leaving Baldur's Gate was described in BG2.

-

Note: this component should not be installed along with Another Fine Hell component 0. It can cause serious technical problems, and there is no reason to install both since the end of SoD can only play out according to one mod or the other. Choose one.

+

Magical Realism

+

This much smaller component makes several changes across SoD that should improved verisimilitude and convenience. As of now there are four changes:

+

1. Charname is a somewhat famous figure, known to Caelar Argent and her top lieutenants, so the crusaders are more wary about you. You cannot expect to walk around Crusader encampments and fortified positions and just not be recognized. If you want to infiltrate Crusader areas (something the game asks you to do, like, a LOT), then you will need to keep Charname invisible or otherwise hidden. The rest of your party is not as well known and they can walk around asking questions.

+

2. If you played through BG1 and never took on Skie Silvershield as a companion, or if you start a new SoD game directly, it is quite weird that Skie would approach you in the palace in the initial scenes of SoD, even sneaking into your bedroom and waking you up. This component removes those two interactions in the Ducal Palace. It leaves everything else related to Skie just as it already is: you can run into her at the Coast Way Forest, she is tagging along with the Coalition army trying to prove her worth, etc. She has a good storyline; this only changes that very first, very unnecessary, encounter with her.

+

3. During the sequential battles in the Coalition Camp, Dosia the priest of Ilmater has the ability to rejuvenate your party as if you has had a full night's rest. But later, in Dragonspear Castle, after a major battle and when you are about to enter the final, extremely dangerous set of areas, she no longer offers that option. This component fixes that: you can get a free rest from Dosia in Dragonspear Castle before heading into the portal room with Bence.

+

4. The troop numbers that Torsin DeLancie and General Stonehand discuss are a bit ridiculous. We are besieging a magical castle with only 350 soldiers? The dialogues is changed and the troop numbers roughly quadrupled. That's it, it's purely for flavor.

-

Component 400:

+

Component 230:

Nothing to Fear but Feyr Itself

-

This very small component changes the encounter with Elandro at Bridgefort. It is meant to hint at the possibility that Elandro is... special, in a familiar way. But, like the Mirror Shard component above, the mod will give you no more than hints.

+

This very small component changes the encounter with Elandro at Bridgefort. It is meant to hint at the possibility that Elandro is... special, in a familiar way. But, nothing is made explicit, you just get a hint.

This component could make the Elandro encounter a bit more dangerous, depending on how you play things. So beware! Also it should give you a bit of a reward at the end, which you may find useful. This reward, again, is meant to hint at things to come. And is hopefully fun for players!

+

Component 240:

+
+

At the Precipice of Death

+

This small component attempts to add a noticeable acknowledgement that SoD send the child of the god of murder into Kanaglym, where there is an open portal to the Fugue Plane. That should count for something, right?

+

While in the Kanaglym map, Charname will get a passive, automatic Control Undead ability that you can use to help in your assault on Kherriun. But note, the undead will only recognize and obey you for so long - they get a saving throw to overcome your control every two rounds, and the save gets easier each time. Each one can probably be controlled for about one turn... probably...

+
+

Component 320:

+
+

Imoen Can Die, by Jastey

+

One longstanding issue with BG2 is that you run into Imoen at a time when the story really pushes you to take her into your party, but you might already have six people in your party. Or, given how many NPCs there are in the game (and how many mage/thieves, specifically) you just might not want to take Imoen to the end-game this run. It is understandable! But in the base game, the only way to do this is to leave Imoen alone in the depths of Spellhold - which is not only a dangerous dungeon, but is a magical dungeon that does not have stairs leading out! If she doesn't get out with you, she basically can't escape! (I know she can actually make her way to the Copper Coronet, but in the moment that does not seem possible and the whole thing is incredibly awkward.)

+

This component adds a dialogue branch with Imoen that has her die, right there. This absolves you of any implied responsibility to take her along in your party, and adds emotional weight to your drive to pursue Irenicus.

+

The dialogue branch is completely optional, so you can install this component and then continuously play the game the way it was originally designed. It just gives you the possibility of having things play out a different way. +

+

Component 330:

+
+

Wherever You Go, There You Are

+

This component makes several SoD areas accessible in BG2, as long as you did not play SoD up to that point. This is fundamentally meant to complement component 100's option to skip the SoD campaign - if you do, some of the SoD areas and dungeons will appear in BG2 as independent encounters. So you will still get the benefit of those very well-designed areas and battles. + While I designed this to support my own option in this mod, it should work just as well with other methods of skipping SoD as well - like, if you don't install component 100 and instead use another mod to skip the SoD campaign... or if you import a character from the end of BG1 into the BG2 campaign... or even if you just start a new BG2 campaign directly. As long as your character has not been through SoD, then you will be able to play through these areas in chapter 2 of BG2.

+

Note, however, that this component will only install on games that have EET installed - even though your character must not have played SoD, it is still necessary to have the SoD areas available in the game for the mod to send you there!

+

There are currently four areas added this way:
+ – The Coast Way Forest
+ – The Deepvein Dig Site
+ – Bloodbark Grove
+ – The Forest of Wyrms

+

This is designed as a kind of easter egg, so I do not want to spoil where the SoD areas are on the BG2 map. Most should be fairly obvious when you pass through the Athkatla City Gates; one, however, is in a different place - search west of De'Arnise's Hold.

+

NOTE: with this component installed, you can also play through SoD, and then these areas will not be accessible in BG2, and everything will play out completely normally. And of course even if you have these accessible, there is no need to interact with them. Like the 'Imoen Can Die' component, this does not necessarily change anything, it just gives you the option to have things changed.

+

Contact Information

diff --git a/Reflections/Reflections.tp2 b/Reflections/Reflections.tp2 index e655667..59a7d15 100755 --- a/Reflections/Reflections.tp2 +++ b/Reflections/Reflections.tp2 @@ -1,7 +1,7 @@ BACKUP ~weidu_external/backup/Reflections~ AUTHOR ~SubtleD~ -VERSION ~0.8.0~ +VERSION ~0.8.1~ ALWAYS INCLUDE ~%MOD_FOLDER%/lib/misc_functions.tpa~ @@ -79,6 +79,11 @@ INCLUDE ~%MOD_FOLDER%/comp/comp_106.tpa~ // dukes post-sarevok INCLUDE ~%MOD_FOLDER%/comp/comp_107.tpa~ // off-ramp to BG2 INCLUDE ~%MOD_FOLDER%/comp/comp_108.tpa~ // quest introducing the crusade +// prep journal entries + +ADD_JOURNAL TITLE (@10200) @10234 @10235 @10321 @10322 @10323 @10435 @10415 @10501 @10601 @10650 +ADD_JOURNAL TITLE (@10800) @10801 @10803 @10805 @10807 @10808 @10809 + LAF kill_thalantyr END LAF delay_maze END LAF early_korlasz END @@ -99,6 +104,19 @@ INCLUDE ~%MOD_FOLDER%/comp/comp_110.tpa~ LAF mirror_shards END +//___________________________________________________________________________________ +// +/* +BEGIN @150 // bp in bg +DESIGNATED 150 +LABEL ~D5_REFLECTIONS_BP_IN_BG~ +REQUIRE_PREDICATE (GAME_IS ~eet~) OR (GAME_INCLUDES ~sod~) ~ ~ + +INCLUDE ~%MOD_FOLDER%/comp/comp_150.tpa~ + +LAF put_bp_in_bg END +*/ + //___________________________________________________________________________________ // BEGIN @200 // rewriting history @@ -177,12 +195,24 @@ LAF clone_saga END //___________________________________________________________________________________ // -BEGIN @310 // SoD content in BG2 -DESIGNATED 310 +BEGIN @320 // imoen can die +DESIGNATED 320 +LABEL ~D5_REFLECTIONS_IMOEN_CAN_DIE~ +REQUIRE_PREDICATE (GAME_IS ~bg2ee eet~) ~ ~ +// forbid if i4eva installed + +INCLUDE ~%MOD_FOLDER%/comp/comp_320.tpa~ + +LAF imoen_can_die END + +//___________________________________________________________________________________ +// +BEGIN @330 // SoD content in BG2 +DESIGNATED 330 LABEL ~D5_REFLECTIONS_SOD_CONTENT_SOA~ REQUIRE_PREDICATE (GAME_IS ~eet~) ~ ~ -INCLUDE ~%MOD_FOLDER%/comp/comp_310.tpa~ +INCLUDE ~%MOD_FOLDER%/comp/comp_330.tpa~ LAF reveal_small_teeth END LAF sod_remix_coldhearth_dungeon END @@ -191,18 +221,6 @@ LAF sod_remix_wyrm_forest END LAF sod_remix_bloodbark_grove END // LAF sod_remix_underground_river END -//___________________________________________________________________________________ -// -BEGIN @330 // imoen can die -DESIGNATED 330 -LABEL ~D5_REFLECTIONS_IMOEN_CAN_DIE~ -REQUIRE_PREDICATE (GAME_IS ~bg2ee eet~) ~ ~ -// forbid if i4eva installed - -INCLUDE ~%MOD_FOLDER%/comp/comp_330.tpa~ - -LAF imoen_can_die END - //___________________________________________________________________________________ // diff --git a/Reflections/comp/comp_102.tpa b/Reflections/comp/comp_102.tpa index 7406f2c..a1e3d6b 100755 --- a/Reflections/comp/comp_102.tpa +++ b/Reflections/comp/comp_102.tpa @@ -36,7 +36,7 @@ COPY_EXISTING ~liia.cre~ ~override~ // prep journal entries -ADD_JOURNAL TITLE (@10200) @10234 @10235 +// ADD_JOURNAL TITLE (@10200) @10234 @10235 // add to Belt's dialogue diff --git a/Reflections/comp/comp_103.tpa b/Reflections/comp/comp_103.tpa index a233269..cd3d430 100755 --- a/Reflections/comp/comp_103.tpa +++ b/Reflections/comp/comp_103.tpa @@ -30,7 +30,7 @@ DEFINE_ACTION_FUNCTION early_korlasz BEGIN // prep journal entries -ADD_JOURNAL TITLE (@10200) @10321 @10322 @10323 +// ADD_JOURNAL TITLE (@10200) @10321 @10322 @10323 INCLUDE ~%MOD_FOLDER%/lib/get_response_strrefs.tph~ diff --git a/Reflections/comp/comp_104.tpa b/Reflections/comp/comp_104.tpa index e23f9a7..cd63440 100755 --- a/Reflections/comp/comp_104.tpa +++ b/Reflections/comp/comp_104.tpa @@ -31,7 +31,7 @@ DEFINE_ACTION_FUNCTION entar_accuse BEGIN // prep journal entries -ADD_JOURNAL TITLE (@10200) @10435 @10415 +// ADD_JOURNAL TITLE (@10200) @10435 @10415 // add a game check to record the last time Imoen is in the party diff --git a/Reflections/comp/comp_105.tpa b/Reflections/comp/comp_105.tpa index ffe07bb..f3f74d5 100755 --- a/Reflections/comp/comp_105.tpa +++ b/Reflections/comp/comp_105.tpa @@ -22,7 +22,7 @@ DEFINE_ACTION_FUNCTION keep_playing BEGIN // prep journal entries -ADD_JOURNAL TITLE (@10200) @10501 +// ADD_JOURNAL TITLE (@10200) @10501 // stuff from EBG1 diff --git a/Reflections/comp/comp_106.tpa b/Reflections/comp/comp_106.tpa index ec5c5ba..a1d34fa 100755 --- a/Reflections/comp/comp_106.tpa +++ b/Reflections/comp/comp_106.tpa @@ -41,7 +41,7 @@ TO DO: // prep journal entries -ADD_JOURNAL TITLE (@10200) @10601 @10650 +// ADD_JOURNAL TITLE (@10200) @10601 @10650 <<<<<<<< .../c#st2sod.baf IF @@ -368,7 +368,8 @@ IF ~~ BEGIN d5beltsd_14 IF ~~ DO ~SetGlobal("D5DaustonQuest","GLOBAL",1) SetGlobal("BD_KICK_DAUSTON","GLOBAL",99) - AddJournalEntry(@10601,QUEST_DONE)~ + AddJournalEntry(@10601,QUEST_DONE) + AddJournalEntry(@10801,QUEST)~ EXIT END @@ -387,7 +388,8 @@ IF WEIGHT #-1 ~Global("C#st_HeroCutScene","GLOBAL",1) Global("D5AltEndSoD","GLOB IF ~~ DO ~SetGlobal("D5DaustonQuest","GLOBAL",1) SetGlobal("BD_KICK_DAUSTON","GLOBAL",99) - AddJournalEntry(@10601,QUEST_DONE)~ + AddJournalEntry(@10601,QUEST_DONE) + AddJournalEntry(@10801,QUEST)~ EXIT END diff --git a/Reflections/comp/comp_107.tpa b/Reflections/comp/comp_107.tpa index b2ce2e4..34b90db 100755 --- a/Reflections/comp/comp_107.tpa +++ b/Reflections/comp/comp_107.tpa @@ -19,7 +19,7 @@ TO DO: // prep journal entries ...? -//ADD_JOURNAL TITLE (@10701) @10702 +// ADD_JOURNAL TITLE (@10701) @10702 // copy in stuff diff --git a/Reflections/comp/comp_108.tpa b/Reflections/comp/comp_108.tpa index df1522a..7857653 100755 --- a/Reflections/comp/comp_108.tpa +++ b/Reflections/comp/comp_108.tpa @@ -4,8 +4,6 @@ DEFINE_ACTION_FUNCTION one_for_the_road BEGIN /* TO DO: -***** WRITE JOURNAL ENTRIES - ***** add phantom sarevok - after killing Sarevok, dukes talk about Caelar @@ -32,7 +30,7 @@ TO DO: // prep journal entries -ADD_JOURNAL TITLE (@10800) @10801 @10802 @10803 @10805 @10807 @10808 @10809 +// ADD_JOURNAL TITLE (@10800) @10801 @10802 @10803 @10805 @10807 @10808 @10809 // make spells for soul glow @@ -130,7 +128,10 @@ END IF ~~ BEGIN d5bart3dq_3 SAY @10813 - IF ~~ REPLY @10812 DO ~SetGlobal("D5DaustonQuest","GLOBAL",4) AddJournalEntry(@10803,QUEST)~ EXIT + IF ~~ REPLY @10812 + DO ~SetGlobal("D5DaustonQuest","GLOBAL",4) + AddJournalEntry(@10803,QUEST)~ + EXIT END END @@ -225,7 +226,10 @@ APPEND BART14 IF ~~ BEGIN d5bart14dq_1 SAY @10816 - IF ~~ REPLY @10818 DO ~SetGlobal("D5DaustonQuest","GLOBAL",6) AddJournalEntry(@10805,QUEST)~ EXIT + IF ~~ REPLY @10818 + DO ~SetGlobal("D5DaustonQuest","GLOBAL",6) + AddJournalEntry(@10805,QUEST)~ + EXIT END END @@ -352,6 +356,7 @@ IF ~~ BEGIN d5ubmay1_14 SAY @10843 IF ~~ REPLY @10818 DO ~SetGlobal("D5DaustonQuest","GLOBAL",6) + AddJournalEntry(@10805,QUEST) SetGlobal("D5UBRefugeesMove","GLOBAL",3) SetGlobal("D5UBRefugeeSpeech","%bg1_area_prefix%1000",4)~ EXIT END diff --git a/Reflections/comp/comp_200.tpa b/Reflections/comp/comp_200.tpa index 7800f29..fd49bb2 100755 --- a/Reflections/comp/comp_200.tpa +++ b/Reflections/comp/comp_200.tpa @@ -3,8 +3,6 @@ DEFINE_ACTION_FUNCTION rewrite_caelar BEGIN /* -***** traify everything - ***** write journal entries rewrite plot: @@ -92,26 +90,9 @@ rewrite plot: ...if Charname never enters basalt tower ...and backtracks - -- Change the Avernus portal to work like Bridgefort as well -Upon return to portal, if Global("D5SkipBel","GLOBAL",1), then upon using it SetGlobal("D5SkipBel","GLOBAL",2) -Have Skie talk to you when you return, and go through the portal with you -If Darnas is there, him too. - -[ - add a messenger to dead man's pass if bd_plot=393, saying that caelar's forces were marching out to smash the coalition before it could surround Dragonspear, the main coalition force was out in the field but a contingent of elite crusader fighters had broken off and were moving toward the camp, and Charname needs to get there ASAP! ...and preclude travel to anywhere by the camp in such case? ...just add travel triggers that are active if bd_plot=393? -] - -- Bel's plan all along: turn caelar. just a little game he is playing to embarrass zariel. - ----------------- - -Caelar wants to take over the Sword Coast, to suppress the chaos of the bhaalspawn; Belhifet wants to prevent Bhaal's return, since Bhaal was a powerful presence in the LE planes and Belhifet could gain from the power vacuum. Hephernaan has promised to introduce Caelar to Zariel, who is (lo and behold) Caelar's ancient ancestor. Caelar knows she doesn't have the power to truly control the Sword Coast, and while she doesn't want to use baatezu for that, she is convinced Zariel has been playing a long game and will support her. - -[there needs to be a macguffin - caelar's soul wore down the walls between planes, and Heph's artifact crackled it open. Now the artifact can seal it again... but Caelar must remain on the other side, so that her blood won't continue to weaken the barrier.] - - er, no. we have moved on from this idea. */ @@ -120,15 +101,10 @@ Caelar wants to take over the Sword Coast, to suppress the chaos of the bhaalspa // // prep journal entries -/* -ADD_JOURNAL TITLE (~The Siege of Dragonspear~) ~The Siege of Dragonspear +// ***** write these! -Caelar Argent turned evil!!! But she is dead now. I must take the Dragonspear vault key back to Faerun so that the Coalition can close the portal.~ ~The Siege of Dragonspear +ADD_JOURNAL TITLE (@20001) @20002 @20003 @20004 @20005 -Caelar Argent resisted temptation and fought against Belhifet~ ~The Siege of Dragonspear - -Caelar Argent is staying on the planes. She gave me the vault key. I must get it back to Faerun at once, so that the Coalition can close the portal.~ -*/ //___________________________________________________________________________________ @@ -136,7 +112,7 @@ Caelar Argent is staying on the planes. She gave me the vault key. I must get it // amend cut scene w/ caelar and hood - bdcut11 // add new line w/ RESOLVE_STR_REF and then REPLACE_TEXTUALLY ~%eet_2%66071~ with it -OUTER_SET goal_string = RESOLVE_STR_REF (~My goals? Why, only to turn the tide of fate. Most are not aware, but a time of prophecy is upon us. This land is soon to be riven with chaos and strife. But I can prevent it.~) +OUTER_SET goal_string = RESOLVE_STR_REF (@20011) ACTION_IF (FILE_EXISTS_IN_GAME ~bdcut11.bcs~) BEGIN COPY_EXISTING ~bdcut11.bcs~ ~override~ @@ -167,27 +143,27 @@ ADD_STATE_TRIGGER bdcaelar 88 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDCAELAR IF ~AreaCheck("bd0071")~ BEGIN d5caelar_a1 - SAY ~You know my name! You know where I come from. The Argents are a noble family, blessed long ago with an angel as our ancestor. The drive for justice flows in my veins! But, justice requires order.~ + SAY @20012 IF ~~ GOTO d5caelar_a2 END IF ~~ BEGIN d5caelar_a2 - SAY ~We live in dangerous times. Prophecy tells us that chaos is about to engulf the Sword Coast! The leaders of Waterdeep, Neverwinter, Baldur's Gate and Amn do not care! They care only for the flow of silver and gold into their coffers.~ + SAY @20013 IF ~~ GOTO d5caelar_a3 END IF ~~ BEGIN d5caelar_a3 - SAY ~Corruption has set in to these regimes - and corruption breeds chaos, and chaos brings death! In Baldur's Gate, a child of the dead Lord of Murder, Bhaal himself, was elevated to Grand Duke! He very nearly brought war to the entire region. The rulers of Baldur's Gate let that happen!~ + SAY @20014 IF ~~ GOTO d5caelar_a4 END IF ~~ BEGIN d5caelar_a4 - SAY ~Now more of Bhaal's Children are seeking power and death. We cannot let them succeed! Together, we can change the course of history! We can bring order to the land and make it inhospitable for the agents of murder and chaos!~ + SAY @20015 IF ~~ GOTO d5caelar_a5 END IF ~~ BEGIN d5caelar_a5 - SAY ~Follow me, and we will make this a land of justice and peace, where those who venerate death will have no place to hide! Follow me in this crusade, and we will fight the future itself!~ + SAY @20016 IF ~~ DO ~AddJournalEntry(%eet_2%64435,INFO) SetCutSceneLite(TRUE) @@ -207,7 +183,7 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5scry3a.d~ EVALUATE_BUFFER // just rewrite the state <<<<<<<< d5/d5takos.d -REPLACE_SAY BDTAKOS 4 ~I'll tell you my story if it means you'll go away. We used to get some... unsavory types here. Everyone was always pretty well-behaved - this is where they get their grog, see? But then this pack of clinking crusaders passed through, and just couldn't leave well enough alone. Acted like they were the law, started a fight - and next thing I know, the whole place is ablaze!~ +REPLACE_SAY BDTAKOS 4 @20020 >>>>>>>> COPY ~d5/d5takos.d~ ~weidu_external/%MOD_FOLDER%/compile/200/d5takos.d~ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5takos.d~ @@ -226,61 +202,61 @@ ADD_STATE_TRIGGER bdcaelar 10 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDCAELAR IF WEIGHT #3 ~GlobalGT("bd_plot","global",160) GlobalLT("bd_plot","global",170) AreaCheck("bd1000")~ BEGIN d5caelar_b1 - SAY ~And so comes the hero of Baldur's Gate. Such as is. Many call you hero, but I know what you really are. There are few enough godspawn in Faerun - most are born of Bhaal. Am I right?~ - IF ~~ REPLY ~Yes, you are. What of it? I am my own person.~ DO ~SetGlobal("bd_plot","global",170)~ GOTO d5caelar_b2 - IF ~~ REPLY ~What I am is none of your business. What matters is that I am in the employ of the Grand Dukes.~ DO ~SetGlobal("bd_plot","global",170)~ GOTO d5caelar_b2 + SAY @20021 + IF ~~ REPLY @20022 DO ~SetGlobal("bd_plot","global",170)~ GOTO d5caelar_b2 + IF ~~ REPLY @20023 DO ~SetGlobal("bd_plot","global",170)~ GOTO d5caelar_b2 END IF ~~ BEGIN d5caelar_b2 - SAY ~They call you hero but I have looked into your background.~ + SAY @20024 IF ~~ GOTO d5caelar_b3 END IF ~~ BEGIN d5caelar_b3 - SAY ~The first reports involve stirring up fights in bars and murdering rivals in the streets. You restored an iron mine for Amn, and destroyed the last functioning mine available to Baldur's Gate - in the process, desecrating an ancient dwarven gravesite. This bankrupted the local chapter of the Iron Throne... just as directors of other trading costers were being assassinated. You weakened the city, even as the drums of war grew louder.~ - IF ~~ REPLY ~Okay that… is actually a pretty fair description of what happened. But that was Sarevok's doing! I put a stop to his schemes.~ GOTO d5caelar_b4 + SAY @20025 + IF ~~ REPLY @20026 GOTO d5caelar_b4 END IF ~~ BEGIN d5caelar_b4 - SAY ~You are kin to Sarevok. He who almost brought ruin to Baldur's Gate and Amn. I know what you are because unlike many, I have studied Alaundo's prophecy. Sarevok was but one of many Children of Bhaal! Their fate is set; their actions lead to chaos and death whether they mean it or not.~ - IF ~~ REPLY ~Oh, I assure you, Sarevok knew exactly what he was doing, and it was not just about chaos and death. You have no idea what I really stopped.~ GOTO d5caelar_b5 - IF ~~ REPLY ~Some, perhaps. Maybe even most. But there are plenty of agents of evil out there. Zhents, Red Wizards, Dragon Cultists, Cyricists... what matters is our choice to oppose such people. I have proven myself - you cannot judge me based solely on blood.~ GOTO d5caelar_b5 + SAY @20029 + IF ~~ REPLY @20030 GOTO d5caelar_b5 + IF ~~ REPLY @20031 GOTO d5caelar_b5 END IF ~~ BEGIN d5caelar_b5 - SAY ~Judgment is immaterial. Sarevok's death is the spark that will ignite a new era of chaos on the Sword Coast. Alaundo did not hand down suppositions or predictions; he gave us prophecy! He saw fate! Hero you may be, but your approach is doomed regardless of intentions.~ + SAY @20033 IF ~~ GOTO d5caelar_b6 END IF ~~ BEGIN d5caelar_b6 - SAY ~You are reacting. "Adventuring." But you cannot avert what is to come by playing hero. Do you think fate can be changed so easily? No, it is beyond you. Your blood makes you the subject of prophecy - whereas I will be its master! I will BEND history to my will!~ - IF ~~ REPLY ~You may know what I am, Caelar, but I know what you are. A zealot driven by the whisperings of your own blood. At least I don't give in to mine.~ GOTO d5caelar_b7 - IF ~~ REPLY ~What makes you think you can do this, where others cannot? This sounds like delusion to me.~ GOTO d5caelar_b7 + SAY @20034 + IF ~~ REPLY @20035 GOTO d5caelar_b7 + IF ~~ REPLY @20036 GOTO d5caelar_b7 END IF ~~ BEGIN d5caelar_b7 - SAY ~I have the power of the heavens within me. My line was blessed long ago by a Solar - an avenging angel ceaselessly fighting for good. I can bring to bear enough force to change the world. That is the only hope.~ - IF ~~ REPLY ~What force will you bring to bear? Why are you, of all people, based at Dragonspear with its ill history?~ GOTO d5caelar_b8 + SAY @20038 + IF ~~ REPLY @20039 GOTO d5caelar_b8 END IF ~~ BEGIN d5caelar_b8 - SAY ~I will do what I must to subdue chaos. I will do what others cannot, or will not. The Grand Dukes let Sarevok take control of Baldur's Gate, however briefly. And now they send YOU as their champion. They have demonstrated their inability to contain the danger we face.~ + SAY @20041 IF ~~ GOTO d5caelar_b9 END IF ~~ BEGIN d5caelar_b9 - SAY ~Peace can only prevail if the Sword Coast is under my righteous authority. Go tell the Grand Dukes to submit to me. This transition can be bloodless. From Baldur's Gate, I will be able to marshal enough strength to bring the entire region under my control. Your Bhaal-kin will have no air to breathe, no chance to flourish. Countless lives will be saved.~ - IF ~~ REPLY ~You see things in absolutes only. Nobody's path is set in stone.~ GOTO d5caelar_b10 - IF ~~ REPLY ~What, everything thing will be fine if we just crown you queen? Sorry, I've heard this one before.~ GOTO d5caelar_b10 + SAY @20042 + IF ~~ REPLY @20043 GOTO d5caelar_b10 + IF ~~ REPLY @20044 GOTO d5caelar_b10 END IF ~~ BEGIN d5caelar_b10 - SAY ~Only I see things as they really are! Consider, clerics of gods both good an evil are in both armies. The gods do not know the righteous path any more than most mortals. That is the effect of chaos! The only way through this time is with clarity, and a strong arm. Only I have both.~ - IF ~~ REPLY ~Sarevok wanted war, and we narrowly averted it. And now, you have brought it upon us anyway! Even after his death, you are giving him what he wanted all along!~ GOTO d5caelar_b11 + SAY @20046 + IF ~~ REPLY @20047 GOTO d5caelar_b11 END IF ~~ BEGIN d5caelar_b11 - SAY ~This crossing is destroyed. My forces are already on the way to take Bridgefort and Boareskyr Bridge. If you truly value peace, stand down your troops and surrender yourself to me there. If not, I will march to Baldur's Gate and root out you and your kin by whatever means necessary. Order WILL prevail. It is the only way.~ + SAY @20050 IF ~~ GOTO 34 END @@ -306,23 +282,23 @@ THEN StorePartyLocations() FadeToColor([0.0],0) SmallWait(5) - ApplySpellRES("bdhide",Player1) // No such index - ApplySpellRES("bdhide",Player2) // No such index - ApplySpellRES("bdhide",Player3) // No such index - ApplySpellRES("bdhide",Player4) // No such index - ApplySpellRES("bdhide",Player5) // No such index - ApplySpellRES("bdhide",Player6) // No such index - ActionOverride(Player2,LeaveAreaLUA("bd4100","",[2120.1120],S)) // Dragonspear Castle Keep, First Floor - ActionOverride(Player3,LeaveAreaLUA("bd4100","",[2055.1145],S)) // Dragonspear Castle Keep, First Floor - ActionOverride(Player4,LeaveAreaLUA("bd4100","",[2085.1145],S)) // Dragonspear Castle Keep, First Floor - ActionOverride(Player5,LeaveAreaLUA("bd4100","",[2020.1170],S)) // Dragonspear Castle Keep, First Floor - ActionOverride(Player6,LeaveAreaLUA("bd4100","",[2055.1170],S)) // Dragonspear Castle Keep, First Floor - LeaveAreaLUAPanic("bd4100","",[2085.1120],S) // Dragonspear Castle Keep, First Floor - LeaveAreaLUA("bd4100","",[2085.1120],S) // Dragonspear Castle Keep, First Floor + ApplySpellRES("bdhide",Player1) + ApplySpellRES("bdhide",Player2) + ApplySpellRES("bdhide",Player3) + ApplySpellRES("bdhide",Player4) + ApplySpellRES("bdhide",Player5) + ApplySpellRES("bdhide",Player6) + ActionOverride(Player2,LeaveAreaLUA("bd4100","",[2120.1120],S)) + ActionOverride(Player3,LeaveAreaLUA("bd4100","",[2055.1145],S)) + ActionOverride(Player4,LeaveAreaLUA("bd4100","",[2085.1145],S)) + ActionOverride(Player5,LeaveAreaLUA("bd4100","",[2020.1170],S)) + ActionOverride(Player6,LeaveAreaLUA("bd4100","",[2055.1170],S)) + LeaveAreaLUAPanic("bd4100","",[2085.1120],S) + LeaveAreaLUA("bd4100","",[2085.1120],S) MultiPlayerSync() MoveViewPoint([2000.1090],INSTANT) - CreateCreature("BDSERV",[1960.1110],NW) // Servant - CreateCreature("BDCAELAR",[2070.1060],NE) // Caelar Argent + CreateCreature("BDSERV",[1960.1110],NW) + CreateCreature("BDCAELAR",[2070.1060],NE) SmallWait(1) Explore() SetAreaScript("cutskip",OVERRIDE) @@ -331,40 +307,40 @@ THEN SmallWait(10) FadeFromColor([20.0],0) SmallWait(10) - DisplayStringWait("BDCAELAR",%eet_2%66627) // ...I am sorry for your loss, but rest assured that your husband’s sacrifice will never be forgotten. Signed... Yours ever in faith, Caelar Argent. + DisplayStringWait("BDCAELAR",%eet_2%66627) SmallWait(15) - CreateCreature("BDHEPH2",[1735.835],SW) // Hephernaan + CreateCreature("BDHEPH2",[1735.835],SW) SmallWait(20) ActionOverride("BDHEPH2",MoveToPoint([1865.1060])) SmallWait(45) - ActionOverride("BDSERV",FaceObject("BDHEPH2")) // Hephernaan - ActionOverride("BDCAELAR",FaceObject("BDHEPH2")) // Hephernaan - DisplayStringWait("BDHEPH2",~More letters of condolence, my lady? Surely they can wait. It is time for your treatments.~) + ActionOverride("BDSERV",FaceObject("BDHEPH2")) + ActionOverride("BDCAELAR",FaceObject("BDHEPH2")) + DisplayStringWait("BDHEPH2",@20061) SmallWait(5) ActionOverride("BDHEPH2",Face(E)) - DisplayStringWait("BDCAELAR",~I will not argue this again, Hephernaan. The condolences are as important as anything else.~) + DisplayStringWait("BDCAELAR",@20062) Wait(1) - DisplayStringWait("BDHEPH2",~Of course. But we have made much progress. Your celestial blood is positively singing out to its origin.~) - ActionOverride("BDSERV",FaceObject("BDCAELAR")) // Caelar Argent + DisplayStringWait("BDHEPH2",@20063) + ActionOverride("BDSERV",FaceObject("BDCAELAR")) SmallWait(10) - DisplayStringWait("BDCAELAR",~Yes, I can feel it. I am stronger every day. And... you have been able to use it to contact my ancestor?~) + DisplayStringWait("BDCAELAR",@20064) SmallWait(10) - DisplayStringWait("BDHEPH2",~Oh yes. The link is quite strong. Soon you will as well, and we will forge the alliance that can wipe away your opposition.~) - ActionOverride("BDSERV",FaceObject("BDCAELAR")) // Caelar Argent + DisplayStringWait("BDHEPH2",@20065) + ActionOverride("BDSERV",FaceObject("BDCAELAR")) SmallWait(10) - DisplayStringWait("BDCAELAR",~Yes... yes. Then we will implement my peace across the land.~) + DisplayStringWait("BDCAELAR",@20066) PlaySound("cas_p07n") SmallWait(2) ActionOverride("BDCAELAR",SetSequence(SEQ_CONJURE)) Wait(1) ActionOverride("BDCAELAR",SetSequence(SEQ_CAST)) SmallWait(5) - CreateVisualEffectObject("ICPRAYI","BDCAELAR") // Caelar Argent - ApplySpellRES("bdcpulse","BDCAELAR") // - CreateVisualEffectObject("ICPRAYI","BDHEPH2") // Hephernaan - ApplySpellRES("bdcpulse","BDHEPH2") // - CreateVisualEffectObject("ICPRAYI","BDSERV") // Servant - ApplySpellRES("bdcpulse","BDSERV") // + CreateVisualEffectObject("ICPRAYI","BDCAELAR") + ApplySpellRES("bdcpulse","BDCAELAR") + CreateVisualEffectObject("ICPRAYI","BDHEPH2") + ApplySpellRES("bdcpulse","BDHEPH2") + CreateVisualEffectObject("ICPRAYI","BDSERV") + ApplySpellRES("bdcpulse","BDSERV") Wait(1) DisplayStringWait("BDCAELAR",%eet_2%66633) // Gather the faithful. We have much to do. SmallWait(10) @@ -382,14 +358,14 @@ THEN SmallWait(10) RestorePartyLocations() MultiPlayerSync() - ApplySpellRES("bdunhide",Player1) // No such index - ApplySpellRES("bdunhide",Player2) // No such index - ApplySpellRES("bdunhide",Player3) // No such index - ApplySpellRES("bdunhide",Player4) // No such index - ApplySpellRES("bdunhide",Player5) // No such index - ApplySpellRES("bdunhide",Player6) // No such index + ApplySpellRES("bdunhide",Player1) + ApplySpellRES("bdunhide",Player2) + ApplySpellRES("bdunhide",Player3) + ApplySpellRES("bdunhide",Player4) + ApplySpellRES("bdunhide",Player5) + ApplySpellRES("bdunhide",Player6) SmallWait(7) - SetGlobalTimer("bd_bence_delay","bd7100",ONE_ROUND) // Troll Forest + SetGlobalTimer("bd_bence_delay","bd7100",ONE_ROUND) FadeFromColor([20.0],0) EndCutSceneMode() END @@ -404,13 +380,13 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/bdcut20a.baf~ EVALUATE_BUFFER // write out new cut scene script // preserve all technical aspects of the original -OUTER_SET ca_string_1 = RESOLVE_STR_REF (~The report about Boareskyr Bridge is troubling. I hoped this Bhaal-child was truly a hero, but the uncontrolled manifestation reinforces all my fears.~) -OUTER_SET ca_string_2 = RESOLVE_STR_REF (~Mere presence would not cause such an event. The area had to have been ritually prepared ahead of time! cannot be trusted!~) -OUTER_SET ca_string_3 = RESOLVE_STR_REF (~I am not sure. Sometimes, apparently, blood such as ours calls out to its origin.~) -OUTER_SET ca_string_4 = RESOLVE_STR_REF (~Caelar... do you really think Zariel will answer you? This is a dangerous gambit. But, if she joins us...~) -OUTER_SET ca_string_5 = RESOLVE_STR_REF (~It will shake both the heavens and the earth. Like us she is a crusader against chaos. She must join us. She will answer her kin!~) -OUTER_SET ca_string_6 = RESOLVE_STR_REF (~And the godspawn? must answer for what happened to my brother.~) -OUTER_SET ca_string_7 = RESOLVE_STR_REF (~You will do what you must. had a chance to be reasonable; now we are beyond that point. Hero or not, must be put down like the rest.~) +OUTER_SET ca_string_1 = RESOLVE_STR_REF (@20071) +OUTER_SET ca_string_2 = RESOLVE_STR_REF (@20072) +OUTER_SET ca_string_3 = RESOLVE_STR_REF (@20073) +OUTER_SET ca_string_4 = RESOLVE_STR_REF (@20074) +OUTER_SET ca_string_5 = RESOLVE_STR_REF (@20075) +OUTER_SET ca_string_6 = RESOLVE_STR_REF (@20076) +OUTER_SET ca_string_7 = RESOLVE_STR_REF (@20077) ACTION_IF (FILE_EXISTS_IN_GAME ~bdcut30a.bcs~) BEGIN COPY_EXISTING ~bdcut30a.bcs~ ~override~ @@ -545,48 +521,48 @@ ADD_STATE_TRIGGER BDHEPHER 8 ~GlobalGT("D5Intercession","BD4300",0)~ APPEND BDHEPHER IF WEIGHT #-1 ~AreaCheck("BD4300") GlobalLT("bd_plot","GLOBAL",360)~ BEGIN d5heph_b1 - SAY ~...work proceeds, master. Each time we perform the ritual, we disentangle one of the threads in the knot that makes up the planar barrier. Its design is quite complex. If we move too fast, the feedback could kill Caelar. The perils of working with mortals, I am afraid. They are quite fragile.~ + SAY @20081 IF ~~ GOTO d5heph_b2 END IF ~~ BEGIN d5heph_b2 - SAY ~Perhaps if we had the Bhaal Child's blood as well...~ + SAY @20082 IF ~~ EXTERN BDVOICE d5bel_b1 END IF ~~ BEGIN d5heph_b3 - SAY ~He escaped my agents, master. We are not sure how. Someone must have known of our approach and intercepted him. I suspect a plot by the Exile...~ + SAY @20083 IF ~~ EXTERN BDVOICE d5bel_b2 END IF ~~ BEGIN d5heph_b4 - SAY ~I do not need help from that snake! I will take care of the Bhaalspawn myself!~ + SAY @20084 IF ~~ EXTERN BDVOICE d5bel_b4 END IF ~~ BEGIN d5heph_b5 - SAY ~Of course, master.~ + SAY @20085 IF ~~ GOTO d5heph_b6 END IF ~~ BEGIN d5heph_b6 - SAY ~Hello, . I am afraid you have ventured too far. I thought our little supply station might attract you. Impossible for an army to utilize, but irresistible for an adventurer.~ - IF ~~ REPLY ~I heard you. I know what you are planning. You are just using Caelar!~ GOTO d5heph_b7 - IF ~~ REPLY ~Well, I'm here now, and soon you won't be!~ GOTO d5heph_b8 + SAY @20086 + IF ~~ REPLY @20087 GOTO d5heph_b7 + IF ~~ REPLY @20088 GOTO d5heph_b8 END IF ~~ BEGIN d5heph_b7 - SAY ~Yes, yes. And now you will take that knowledge to the next life. There is an army of crusaders above you and below you. You won't escape.~ + SAY @20089 IF ~~ GOTO d5heph_b9 END IF ~~ BEGIN d5heph_b8 - SAY ~We will see about that. Now I will end you. The horde of crusaders above and below you will ensure it.~ + SAY @20090 IF ~~ GOTO d5heph_b9 END IF ~~ BEGIN d5heph_b9 - SAY ~Come now, and feel true power! This is your end!~ + SAY @20091 IF ~~ DO ~SetGlobal("D5Intercession","BD4300",1) ActionOverride("bdhepher",Enemy()) ActionOverride("bdesseri",Enemy()) @@ -602,22 +578,22 @@ END APPEND BDVOICE IF ~~ BEGIN d5bel_b1 - SAY ~No - the godspawn is useless for this. Bhaal is a memory, dead and mouldering in the Astral backwash. 's blood calls to nothing but the prophecy. You should have obtained the other Argent!~ + SAY @20092 IF ~~ EXTERN BDHEPHER d5heph_b3 END IF ~~ BEGIN d5bel_b2 - SAY ~You see plots everywhere. Never mind the Exile. He is a child chasing shadows. No such shadows will remain to sustain him once my fires burn across the land.~ + SAY @20093 IF ~~ GOTO d5bel_b3 END IF ~~ BEGIN d5bel_b3 - SAY ~Continue the work. Open the door. Subdue the godspawn, but be careful. They are a chaos agent. I am going to send Illaruel to secure the door once it is open.~ + SAY @20094 IF ~~ EXTERN BDHEPHER d5heph_b4 END IF ~~ BEGIN d5bel_b4 - SAY ~Youngling, you have much to learn about fighting chaos. If you think to handle the godspawn, then do so now! Turn around and face your task, and do not fail me!~ + SAY @20095 IF ~~ EXTERN BDHEPHER d5heph_b5 END @@ -657,7 +633,7 @@ THEN Wait(2) ApplySpell("bdhepher","WIZARD_SPELL_STRIKE") SetGlobal("D5Intercession","BD4300",3) - DisplayStringHead("bdhepher",~What! Who dares??~) + DisplayStringHead("bdhepher",@20099) Continue() END @@ -679,9 +655,9 @@ EXTEND_TOP ~bd4300.bcs~ ~weidu_external/%MOD_FOLDER%/compile/200/d54300_2.baf~ // adjustments to Daeros' expository dialogue <<<<<<<< d5/d5daero+.d -REPLACE_SAY BDDAEROS 2 ~He plays the pious, kindhearted priest, but he's trying to open a gate to the Nine Hells, the snake. I first saw Hephernaan when he came down here with that aasimar, what's her name—Caelar. You know what an aasimar is? Celestial-blooded, you could say. They need particular blood to open the gate, but Caelar's isn't strong enough to do it quickly. He has had to perform rituals with her every day to slowly pry the portal open.~ +REPLACE_SAY BDDAEROS 2 @20101 -REPLACE_SAY BDDAEROS 3 ~Hephernaan has bee frustrated. I saw him use that altar there to speak with some dark creature - possibly he is afraid of failing his master. I was trying to listen in, but he spotted me and bound me right quick. I've been trapped ever since.~ +REPLACE_SAY BDDAEROS 3 @20102 ADD_TRANS_TRIGGER BDDAEROS 2 ~FALSE()~ DO 1 @@ -717,12 +693,12 @@ COPY_EXISTING ~BD5000.are~ ~override~ /* add travel region that links to dead man's pass */ LAUNCH_PATCH_FUNCTION ~fj_are_structure~ INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 1024 // y coordinate - fj_box_right = 30 // x coordinate - fj_box_bottom = 3839 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol + fj_type = 2 //travel + fj_box_left = 1 + fj_box_top = 1024 + fj_box_right = 30 + fj_box_bottom = 3839 + fj_cursor_idx = 30 fj_flags = 4 fj_vertex_0 = 1 + (1024 << 16) fj_vertex_1 = 30 + (1024 << 16) @@ -730,19 +706,19 @@ COPY_EXISTING ~BD5000.are~ ~override~ fj_vertex_3 = 1 + (3839 << 16) STR_VAR fj_structure_type = region - fj_name = bd5000_bd7300a //name of this travel region so you can address it via script etc. - fj_destination_area = BD7300 //name of the destination area - fj_destination_name = d5bd5000 //name of exitpoint in destination area + fj_name = bd5000_bd7300a + fj_destination_area = BD7300 + fj_destination_name = d5bd5000 END LAUNCH_PATCH_FUNCTION ~fj_are_structure~ INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 31 // x coordinate - fj_box_top = 3809 // y coordinate - fj_box_right = 5188 // x coordinate - fj_box_bottom = 3839 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol + fj_type = 2 + fj_box_left = 31 + fj_box_top = 3809 + fj_box_right = 5188 + fj_box_bottom = 3839 + fj_cursor_idx = 30 fj_flags = 4 fj_vertex_0 = 31 + (3809 << 16) fj_vertex_1 = 5188 + (3809 << 16) @@ -750,19 +726,19 @@ COPY_EXISTING ~BD5000.are~ ~override~ fj_vertex_3 = 31 + (3839 << 16) STR_VAR fj_structure_type = region - fj_name = bd5000_bd7300b //name of this travel region so you can address it via script etc. - fj_destination_area = BD7300 //name of the destination area - fj_destination_name = d5bd5000 //name of exitpoint in destination area + fj_name = bd5000_bd7300b + fj_destination_area = BD7300 + fj_destination_name = d5bd5000 END LAUNCH_PATCH_FUNCTION ~fj_are_structure~ INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 5089 // x coordinate - fj_box_top = 1105 // y coordinate - fj_box_right = 5119 // x coordinate - fj_box_bottom = 3839 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol + fj_type = 2 + fj_box_left = 5089 + fj_box_top = 1105 + fj_box_right = 5119 + fj_box_bottom = 3839 + fj_cursor_idx = 30 fj_flags = 4 fj_vertex_0 = 5089 + (1105 << 16) fj_vertex_1 = 5119 + (1105 << 16) @@ -770,21 +746,21 @@ COPY_EXISTING ~BD5000.are~ ~override~ fj_vertex_3 = 5089 + (3839 << 16) STR_VAR fj_structure_type = region - fj_name = bd5000_bd7300c //name of this travel region so you can address it via script etc. - fj_destination_area = BD7300 //name of the destination area - fj_destination_name = d5bd5000 //name of exitpoint in destination area + fj_name = bd5000_bd7300c + fj_destination_area = BD7300 + fj_destination_name = d5bd5000 END BUT_ONLY COPY_EXISTING ~BD7300.are~ ~override~ LAUNCH_PATCH_FUNCTION ~fj_are_structure~ INT_VAR - fj_loc_x = 4900 // x coordinate where the group will spawn - fj_loc_y = 600 // y coordinate where the group will spawn - fj_orientation = 4 // W face direction in which group is looking after coming through + fj_loc_x = 4900 + fj_loc_y = 600 + fj_orientation = 4 // W f STR_VAR fj_structure_type = entrance - fj_name = d5bd5000 // name of this new exitpoint so it can be referenced for the travel region of the other area + fj_name = d5bd5000 END BUT_ONLY @@ -836,35 +812,30 @@ EXTEND_TOP ~bd7300.bcs~ ~weidu_external/%MOD_FOLDER%/compile/200/d5bd7300.baf~ // set unattainable trigger for bdcaelar state 44 // append new state w/ new speech // make sure any variables and exit conditions from original speech get recreated -/* -have someone comment it's weird she is not there leading the troops (maybe bddelanc #71?) -replace the proximity cut scene bddsgat2.bcs -new dialogue between caelar & heph -then back to opening the inner gate via a new cut scene -*/ + <<<<<<<< d5/bddsgat2.baf IF Clicked([ANYONE]) !Range(LastTrigger,12) THEN RESPONSE #100 - DisplayString(Myself,38224) // You are too far away to use that. + DisplayString(Myself,%eet_2%38224) // You are too far away to use that. END IF Clicked([ANYONE]) Range(LastTrigger,12) - Global("bd_inner_gate_ot","bd4000",0) // Dragonspear Castle, Exterior + Global("bd_inner_gate_ot","bd4000",0) THEN RESPONSE #100 - SetGlobal("bd_inner_gate_ot","bd4000",1) // Dragonspear Castle, Exterior - DisplayString(Myself,40901) // These sturdy gates are very likely to hold off any assault conducted without the use of heavy siege machines. Or a good deal of explosive material. + SetGlobal("bd_inner_gate_ot","bd4000",1) + DisplayString(Myself,%eet_2%40901) END IF GlobalLT("bd_plot","global",450) - GlobalTimerExpired("bd_caelar_delay","bd4000") // Dragonspear Castle, Exterior - Dead("bdashati") // Ashatiel + GlobalTimerExpired("bd_caelar_delay","bd4000") + Dead("bdashati") TriggerOverride("gate_proxy",Range([PC],23)) !TriggerOverride("bddelanc",Detect([PC])) THEN @@ -878,8 +849,8 @@ END IF GlobalLT("bd_plot","global",450) - GlobalTimerExpired("bd_caelar_delay","bd4000") // Dragonspear Castle, Exterior - Dead("bdashati") // Ashatiel + GlobalTimerExpired("bd_caelar_delay","bd4000") + Dead("bdashati") TriggerOverride("gate_proxy",Range([PC],23)) TriggerOverride("bddelanc",Detect([PC])) THEN @@ -892,11 +863,11 @@ IF Range(LastTrigger,12) THEN RESPONSE #100 - DisplayString(Myself,40901) // These sturdy gates are very likely to hold off any assault conducted without the use of heavy siege machines. Or a good deal of explosive material. + DisplayString(Myself,%eet_2%40901) // These sturdy gates are very likely to hold off any assault conducted without the use of heavy siege machines. Or a good deal of explosive material. END >>>>>>>> COPY ~d5/bddsgat2.baf~ ~weidu_external/%MOD_FOLDER%/compile/200/bddsgat2.baf~ -COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/bddsgat2.baf~ +COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/bddsgat2.baf~ EVALUATE_BUFFER <<<<<<<< d5/d5port1.baf IF @@ -907,12 +878,12 @@ THEN ClearAllActions() StorePartyLocations() SmallWait(5) - ApplySpellRES("bdhide",Player1) // No such index - ApplySpellRES("bdhide",Player2) // No such index - ApplySpellRES("bdhide",Player3) // No such index - ApplySpellRES("bdhide",Player4) // No such index - ApplySpellRES("bdhide",Player5) // No such index - ApplySpellRES("bdhide",Player6) // No such index + ApplySpellRES("bdhide",Player1) + ApplySpellRES("bdhide",Player2) + ApplySpellRES("bdhide",Player3) + ApplySpellRES("bdhide",Player4) + ApplySpellRES("bdhide",Player5) + ApplySpellRES("bdhide",Player6) ActionOverride(Player2,LeaveAreaLUA("bd4300","",[815.545],S)) ActionOverride(Player3,LeaveAreaLUA("bd4300","",[845.515],S)) ActionOverride(Player4,LeaveAreaLUA("bd4300","",[845.545],S)) @@ -922,8 +893,8 @@ THEN LeaveAreaLUA("bd4300","",[815.515],S) MultiPlayerSync() MoveViewPoint([615.420],INSTANT) - CreateCreature("bdcaelar",[520.400],SE) // Caelar Argent - CreateCreature("bdhepher",[720.470],S) // Hephernaan + CreateCreature("bdcaelar",[520.400],SE) + CreateCreature("bdhepher",[720.470],S) SmallWait(5) CreateCreature("bdcrue50",[440.520],NE) // Crusader Elite CreateCreature("bdcrue53",[470.295],SE) // Crusader Elite @@ -948,7 +919,7 @@ THEN FadeFromColor([20.0],0) SmallWait(10) ActionOverride("bdcaelar",SetSequence(SEQ_READY)) - DisplayStringWait("BDCAELAR",~They are at the gates, Hephernaan. We must perform the summoning now! You said Zariel would answer my call!~) + DisplayStringWait("BDCAELAR",@20110) SmallWait(45) ActionOverride("bdhepher",StartDialogueNoSet(Player1)) END @@ -966,14 +937,14 @@ THEN ActionOverride("bdhepher",ForceSpellRES("bdhepher",Myself)) ActionOverride("bdhepher",MoveToPoint([590.400])) SmallWait(23) - ReallyForceSpellRES("bdglowgr","bdlieuta") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue50") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue51") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue52") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue53") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue54") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue55") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutg") // No such index + ReallyForceSpellRES("bdglowgr","bdlieuta") + ReallyForceSpellRES("bdglowgr","bdcrue50") + ReallyForceSpellRES("bdglowgr","bdcrue51") + ReallyForceSpellRES("bdglowgr","bdcrue52") + ReallyForceSpellRES("bdglowgr","bdcrue53") + ReallyForceSpellRES("bdglowgr","bdcrue54") + ReallyForceSpellRES("bdglowgr","bdcrue55") + ReallyForceSpellRES("bdglowgr","bdlieutg") ActionOverride("bdlieuta",SetSequence(SEQ_READY)) ActionOverride("bdcrue50",SetSequence(SEQ_READY)) ActionOverride("bdcrue51",SetSequence(SEQ_READY)) @@ -983,11 +954,11 @@ THEN ActionOverride("bdcrue55",SetSequence(SEQ_READY)) ActionOverride("bdlieutg",SetSequence(SEQ_READY)) SmallWait(3) - ReallyForceSpellRES("bdglowgr","bdlieutb") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutc") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutd") // No such index - ReallyForceSpellRES("bdglowgr","bdlieute") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutf") // No such index + ReallyForceSpellRES("bdglowgr","bdlieutb") + ReallyForceSpellRES("bdglowgr","bdlieutc") + ReallyForceSpellRES("bdglowgr","bdlieutd") + ReallyForceSpellRES("bdglowgr","bdlieute") + ReallyForceSpellRES("bdglowgr","bdlieutf") ActionOverride("bdlieuta",SetSequence(SEQ_READY)) ActionOverride("bdcrue50",SetSequence(SEQ_READY)) ActionOverride("bdcrue51",SetSequence(SEQ_READY)) @@ -1019,7 +990,7 @@ THEN ActionOverride("bdcaelar",SetSequence(SEQ_DAMAGE)) SmallWait(5) ActionOverride("bdcaelar",SetSequence(SEQ_DIE)) - DisplayStringWait("bdhepher",~Goodbye Caelar, I go to meet my master. Feel free to follow me, if you can.~) + DisplayStringWait("bdhepher",@20111) SmallWait(35) ActionOverride("bdlieuta",SetSequence(SEQ_READY)) ActionOverride("bdcrue50",SetSequence(SEQ_READY)) @@ -1105,12 +1076,12 @@ THEN SmallWait(10) RestorePartyLocations() MultiPlayerSync() - ApplySpellRES("bdunhide",Player1) // No such index - ApplySpellRES("bdunhide",Player2) // No such index - ApplySpellRES("bdunhide",Player3) // No such index - ApplySpellRES("bdunhide",Player4) // No such index - ApplySpellRES("bdunhide",Player5) // No such index - ApplySpellRES("bdunhide",Player6) // No such index + ApplySpellRES("bdunhide",Player1) + ApplySpellRES("bdunhide",Player2) + ApplySpellRES("bdunhide",Player3) + ApplySpellRES("bdunhide",Player4) + ApplySpellRES("bdunhide",Player5) + ApplySpellRES("bdunhide",Player6) SetGlobal("D5BackToGate","BD4000",1) FadeFromColor([20.0],0) EndCutSceneMode() @@ -1126,8 +1097,8 @@ THEN RESPONSE #100 SetGlobal("D5BackToGate","BD4000",2) MoveViewPoint([2680.1885],INSTANT) - CreateCreature("bdcutid",[2795.1790],S) // No such index - CreateCreature("bdphosse",[2380.2050],NE) // Phossey Dugdeep + CreateCreature("bdcutid",[2795.1790],S) + CreateCreature("bdphosse",[2380.2050],NE) ClearAllActions() StartCutSceneMode() StartCutSceneEx("bdcut43",TRUE) @@ -1141,19 +1112,19 @@ IF True() THEN RESPONSE #100 - CutSceneId("bdcutid") // No such index + CutSceneId("bdcutid") SetGlobal("bd_cant_rest","myarea",0) SmallWait(5) - CreateCreature("cutspy",[2680.1885],S) // No such index + CreateCreature("cutspy",[2680.1885],S) ActionOverride("bdphosse",MoveToPoint([2760.1845])) SmallWait(30) END IF - GlobalGT("bd_wall_explosion","bd4000",0) // Dragonspear Castle, Exterior + GlobalGT("bd_wall_explosion","bd4000",0) THEN RESPONSE #100 - CutSceneId("bdcutid") // No such index + CutSceneId("bdcutid") DisplayStringHead("bdphosse",%eet_2%38366) // This one'll be a touch easier—fewer arrows flying at my bloody head! END @@ -1161,7 +1132,7 @@ IF True() THEN RESPONSE #100 - CutSceneId("bdcutid") // No such index + CutSceneId("bdcutid") SmallWait(35) ActionOverride("bdphosse",Face(NE)) ActionOverride("bdphosse",SetSequence(SEQ_CONJURE)) @@ -1180,7 +1151,7 @@ THEN CreateVisualEffect("SPFIREPI",[2795.1800]) PlaySound("EFF_M36B") SmallWait(3) - ActionOverride("dsc_gate_inner",ReallyForceSpellPoint([2795.1800],WIZARD_FIREBALL)) // SPWI304.SPL (Fireball) + ActionOverride("dsc_gate_inner",ReallyForceSpellPoint([2795.1800],WIZARD_FIREBALL)) SmallWait(2) CreateVisualEffect("SPFLAMES",[2750.1785]) CreateVisualEffect("bdFLAST1",[2765.1830]) @@ -1190,7 +1161,7 @@ THEN CreateVisualEffect("SPFLAST2",[3155.3430]) PlaySound("EFF_M36B") SmallWait(3) - ActionOverride("dsc_gate_inner",ReallyForceSpellPoint([2795.1800],WIZARD_FIREBALL)) // SPWI304.SPL (Fireball) + ActionOverride("dsc_gate_inner",ReallyForceSpellPoint([2795.1800],WIZARD_FIREBALL)) Unlock("door01") SmallWait(2) OpenDoor("door01") @@ -1362,40 +1333,60 @@ ADD_STATE_TRIGGER bdcaelar 44 ~GlobalGT("bd_plot","GLOBAL",999)~ ADD_STATE_TRIGGER bdcaelar 50 ~GlobalGT("bd_plot","GLOBAL",999)~ ADD_STATE_TRIGGER bdcaelar 52 ~GlobalGT("bd_plot","GLOBAL",999)~ +APPEND BDDELANC + +IF WEIGHT #-1 ~AreaCheck("bd4000") GlobalGT("bd_plot","global",430) GlobalLT("bd_plot","global",450)~ BEGIN d5delanc_c1 + SAY @20112 + IF ~~ REPLY @20113 GOTO d5delanc_c2 +END + +IF ~~ BEGIN d5delanc_c2 + SAY @20114 + IF ~~ + DO ~ClearAllActions() + SetGlobal("bd_plot","global",450) + StartCutSceneMode() + FadeToColor([20.0],0) + StartCutSceneEx("d5port1",TRUE)~ + EXIT +END + +END + APPEND BDHEPHER IF WEIGHT #5 ~GlobalGT("bd_plot","global",449) GlobalLT("bd_plot","global",480) AreaCheck("bd4300")~ BEGIN d5heph_c1 - SAY ~I’m sorry, I was not entirely clear about the nature of the bridge we have built. We are the ones being summoned - to Avernus. Don’t worry though, we will not stay long. I will shortly reconvene with my true master, and then return to Faerun with every bit the army you hoped for.~ + SAY @20115 IF ~~ EXTERN BDCAELAR d5caelar_c1 END IF ~~ BEGIN d5heph_c2 - SAY ~Foolish child. The godspawn are nothing. Candles, sputtering in a breeze. My liege is a hurricane! What do we care for Bhaal? We were ancient when Bhaal was a mewling babe, mortal as you. Bhaal seized power briefly, and inspired a few followers to murder. As if they would not have done so anyway! And now he is gone, soon to be forgotten. Pathetic!~ + SAY @20116 IF ~~ GOTO d5heph_c3 END IF ~~ BEGIN d5heph_c3 - SAY ~You want order? We will give you order. The children of Bhaal will be brought to heel, or exterminated. The chaos in their wake will be stamped out. Your entire world will be enslaved, made to serve our campaign against the old enemies, the TRUE chaos.~ + SAY @20117 IF ~~ GOTO d5heph_c4 END IF ~~ BEGIN d5heph_c4 - SAY ~It was meant to be, surely. Why else would this door be so conveniently placed here?~ + SAY @20118 IF ~~ EXTERN BDCAELAR d5caelar_c2 END IF ~~ BEGIN d5heph_c5 - SAY ~They are not my concern. You would do well to convince them to join our cause, lest they be the first ones ground under our feet!~ + SAY @20119 IF ~~ GOTO d5heph_c7 END IF ~~ BEGIN d5heph_c6 - SAY ~Worms. They would serve better a reanimated shock troops - shame that our little gambit in Kanaglym was interrupted.~ + SAY @20120 IF ~~ GOTO d5heph_c7 END IF ~~ BEGIN d5heph_c7 - SAY ~Goodbye Caelar, I go to meet my master. Feel free to follow me, if you can.~ + SAY @20121 IF ~~ DO ~StartCutSceneMode() StartCutSceneEx("d5port2",FALSE)~ @@ -1407,36 +1398,16 @@ END APPEND BDCAELAR IF ~~ BEGIN d5caelar_c1 - SAY ~But, the Bhaal crisis -~ + SAY @20122 IF ~~ EXTERN BDHEPHER d5heph_c2 END IF ~~ BEGIN d5caelar_c2 - SAY ~How could you? You betray all of the good men and women fighting and dying out there!~ + SAY @20123 IF ~Global("bd_halata_freed","global",0)~ EXTERN BDHEPHER d5heph_c5 IF ~Global("bd_halata_freed","global",1)~ EXTERN BDHEPHER d5heph_c6 END -END - -APPEND BDDELANC - -IF WEIGHT #-1 ~AreaCheck("bd4000") GlobalGT("bd_plot","global",430) GlobalLT("bd_plot","global",450)~ BEGIN d5delanc_c1 - SAY ~Good job so far! But I am concerned - Caelar's lieutenants have been leading the fight out here, but she herself has been nowhere to be found. It is unlike her to lead from the rear.~ - IF ~~ REPLY ~We need to get into the castle!~ GOTO d5delanc_c2 -END - -IF ~~ BEGIN d5delanc_c2 - SAY ~I agree. Where is Phosse? Someone bring her here!~ - IF ~~ - DO ~ClearAllActions() - SetGlobal("bd_plot","global",450) - StartCutSceneMode() - FadeToColor([20.0],0) - StartCutSceneEx("d5port1",TRUE)~ - EXIT -END - END >>>>>>>> COPY ~d5/d5caehef.d~ ~weidu_external/%MOD_FOLDER%/compile/200/d5caehef.d~ @@ -1449,11 +1420,11 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5caehef.d~ // just rewrite the state <<<<<<<< d5/d5pordor.d -REPLACE_SAY BDFFMAGE 0 ~I sense powerful alteration magic, tinged with evil. And... conjuration magic, as well? Gods - Corporal, I think the portal is behind this door!~ +REPLACE_SAY BDFFMAGE 0 @20125 -REPLACE_SAY BDANDRUS 0 ~I sense powerful alteration magic, tinged with evil. And... conjuration magic, as well? Gods - Corporal, I think the portal is behind this door!~ +REPLACE_SAY BDANDRUS 0 @20125 -REPLACE_SAY BDBENCE 105 ~Well then, pray it has not been opened. What do you say, ? Are you ready for this? Make sure you are equipped with every tool available. What awaits us may be worse than anything we have ever faced.~ +REPLACE_SAY BDBENCE 105 @20126 >>>>>>>> COPY ~d5/d5pordor.d~ ~weidu_external/%MOD_FOLDER%/compile/200/d5pordor.d~ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5pordor.d~ @@ -1472,7 +1443,7 @@ IF True() THEN RESPONSE #100 - CutSceneId("bdcutid2") // No such index + CutSceneId("bdcutid2") ClearAllActions() SetAreaScript("cutskip",OVERRIDE) SetGlobal("BD_CUTSCENE_BREAKABLE","GLOBAL",60) @@ -1487,7 +1458,7 @@ THEN Unlock("door03") OpenDoor("door03") SmallWait(5) - CreateCreature("bdcaelar",[520.400],SE) // Caelar Argent + CreateCreature("bdcaelar",[520.400],SE) CreateCreature("bdcrue50",[440.520],NE) // Crusader Elite CreateCreature("bdcrue53",[470.295],SE) // Crusader Elite CreateCreature("bdlieutg",[745.300],SW) // Crusader Elite @@ -1505,19 +1476,19 @@ THEN CreateCreature("bdlieutf",[645.230],S) // Crusader Elite ActionOverride("bdcaelar",SetSequence(16)) SmallWait(5) - ReallyForceSpellRES("bdglowgr","bdlieuta") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue50") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue51") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue52") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue53") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue54") // No such index - ReallyForceSpellRES("bdglowgr","bdcrue55") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutg") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutb") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutc") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutd") // No such index - ReallyForceSpellRES("bdglowgr","bdlieute") // No such index - ReallyForceSpellRES("bdglowgr","bdlieutf") // No such index + ReallyForceSpellRES("bdglowgr","bdlieuta") + ReallyForceSpellRES("bdglowgr","bdcrue50") + ReallyForceSpellRES("bdglowgr","bdcrue51") + ReallyForceSpellRES("bdglowgr","bdcrue52") + ReallyForceSpellRES("bdglowgr","bdcrue53") + ReallyForceSpellRES("bdglowgr","bdcrue54") + ReallyForceSpellRES("bdglowgr","bdcrue55") + ReallyForceSpellRES("bdglowgr","bdlieutg") + ReallyForceSpellRES("bdglowgr","bdlieutb") + ReallyForceSpellRES("bdglowgr","bdlieutc") + ReallyForceSpellRES("bdglowgr","bdlieutd") + ReallyForceSpellRES("bdglowgr","bdlieute") + ReallyForceSpellRES("bdglowgr","bdlieutf") SmallWait(5) ActionOverride("bdffsol1",MoveToPoint([995.665])) ActionOverride("bdffsol2",MoveToPoint([1055.605])) @@ -1563,7 +1534,7 @@ THEN ActionOverride("bdcaelar",SetSequence(1)) SmallWait(10) PlaySound("EFF_E06") - ReallyForceSpellRES("bddispel","bdcaelar") // No such index + ReallyForceSpellRES("bddispel","bdcaelar") SmallWait(5) ActionOverride("bdcaelar",SetSequence(SEQ_ATTACK_BACKSLASH)) SmallWait(10) @@ -1584,23 +1555,23 @@ THEN ActionOverride("bdlieutd",SetSequence(SEQ_DAMAGE)) ActionOverride("bdlieute",SetSequence(SEQ_DAMAGE)) ActionOverride("bdlieutf",SetSequence(SEQ_DAMAGE)) - ReallyForceSpellRES("bddispel","bdlieuta") // No such index - ReallyForceSpellRES("bddispel","bdcrue51") // No such index - ReallyForceSpellRES("bddispel","bdcrue53") // No such index - ReallyForceSpellRES("bddispel","bdcrue55") // No such index + ReallyForceSpellRES("bddispel","bdlieuta") + ReallyForceSpellRES("bddispel","bdcrue51") + ReallyForceSpellRES("bddispel","bdcrue53") + ReallyForceSpellRES("bddispel","bdcrue55") SmallWait(3) PlaySound("EFF_E06") - ReallyForceSpellRES("bddispel","bdcrue50") // No such index - ReallyForceSpellRES("bddispel","bdcrue52") // No such index - ReallyForceSpellRES("bddispel","bdcrue54") // No such index - ReallyForceSpellRES("bddispel","bdlieutg") // No such index + ReallyForceSpellRES("bddispel","bdcrue50") + ReallyForceSpellRES("bddispel","bdcrue52") + ReallyForceSpellRES("bddispel","bdcrue54") + ReallyForceSpellRES("bddispel","bdlieutg") SmallWait(3) - ReallyForceSpellRES("bddispel","bdlieutb") // No such index - ReallyForceSpellRES("bddispel","bdlieutc") // No such index - ReallyForceSpellRES("bddispel","bdlieutd") // No such index - ReallyForceSpellRES("bddispel","bdlieute") // No such index - ReallyForceSpellRES("bddispel","bdlieutf") // No such index - DisplayStringHead("bdcaelar",~Hephernaan... what have you done? I will have your head! Crusaders, with me!~) + ReallyForceSpellRES("bddispel","bdlieutb") + ReallyForceSpellRES("bddispel","bdlieutc") + ReallyForceSpellRES("bddispel","bdlieutd") + ReallyForceSpellRES("bddispel","bdlieute") + ReallyForceSpellRES("bddispel","bdlieutf") + DisplayStringHead("bdcaelar",@20130) SmallWait(10) EndCutSceneMode() ActionOverride("bdcaelar",StartDialogueNoSet(Player1)) @@ -1614,32 +1585,32 @@ IF True() THEN RESPONSE #100 - CutSceneId("bdcutid2") // No such index + CutSceneId("bdcutid2") ClearAllActions() - DisplayStringHead("bdbence",~Hold this room open!~) + DisplayStringHead("bdbence",@20131) ActionOverride("bdbence",MoveToPoint([1100.725])) Wait(2) - DisplayStringHead("bdcaelar",~No! Stay out! I must see this through!~) + DisplayStringHead("bdcaelar",@20132) ActionOverride("bdbence",JumpToPoint([1100.725])) SmallWait(1) ActionOverride("bdcaelar",SetSequence(SEQ_ATTACK_BACKSLASH)) SmallWait(5) - ReallyForceSpellRES("bddispel","bdlieuta") // No such index - ReallyForceSpellRES("bddispel","bdcrue51") // No such index - ReallyForceSpellRES("bddispel","bdcrue53") // No such index - ReallyForceSpellRES("bddispel","bdcrue55") // No such index + ReallyForceSpellRES("bddispel","bdlieuta") + ReallyForceSpellRES("bddispel","bdcrue51") + ReallyForceSpellRES("bddispel","bdcrue53") + ReallyForceSpellRES("bddispel","bdcrue55") SmallWait(3) PlaySound("EFF_E06") - ReallyForceSpellRES("bddispel","bdcrue50") // No such index - ReallyForceSpellRES("bddispel","bdcrue52") // No such index - ReallyForceSpellRES("bddispel","bdcrue54") // No such index - ReallyForceSpellRES("bddispel","bdlieutg") // No such index + ReallyForceSpellRES("bddispel","bdcrue50") + ReallyForceSpellRES("bddispel","bdcrue52") + ReallyForceSpellRES("bddispel","bdcrue54") + ReallyForceSpellRES("bddispel","bdlieutg") SmallWait(3) - ReallyForceSpellRES("bddispel","bdlieutb") // No such index - ReallyForceSpellRES("bddispel","bdlieutc") // No such index - ReallyForceSpellRES("bddispel","bdlieutd") // No such index - ReallyForceSpellRES("bddispel","bdlieute") // No such index - ReallyForceSpellRES("bddispel","bdlieutf") // No such index + ReallyForceSpellRES("bddispel","bdlieutb") + ReallyForceSpellRES("bddispel","bdlieutc") + ReallyForceSpellRES("bddispel","bdlieutd") + ReallyForceSpellRES("bddispel","bdlieute") + ReallyForceSpellRES("bddispel","bdlieutf") SmallWait(5) CloseDoor("door03") ActionOverride("bdcaelar",Face(N)) @@ -1649,7 +1620,7 @@ THEN ActionOverride("bdcaelar",Face(W)) SmallWait(1) ActionOverride("bdcaelar",Face(SW)) - DisplayStringHead("bdcaelar",~Crusaders, with me! We must pursue Hephernaan!~) + DisplayStringHead("bdcaelar",@20133) SmallWait(10) ActionOverride("bdcaelar",MoveToPoint([630.430])) SmallWait(5) @@ -1668,7 +1639,7 @@ THEN ActionOverride("bdlieutd",MoveToPoint([630.430])) ActionOverride("bdlieute",MoveToPoint([630.430])) ActionOverride("bdlieutf",MoveToPoint([630.430])) - CreateVisualEffectObject("shair","bdcaelar") // Caelar Argent + CreateVisualEffectObject("shair","bdcaelar") ActionOverride("bdcaelar",DestroySelf()) SmallWait(11) CreateVisualEffectObject("shair","bdlieuta") // Caelar's Lieutenant @@ -1703,7 +1674,7 @@ THEN Lock("door03") CreateCreature("BDSKIE",[920.360],SW) SmallWait(10) - DisplayStringHead("BDSKIE",~Not so fast! Where do you think you're going?~) + DisplayStringHead("BDSKIE",@20134) ActionOverride("BDSKIE",MoveToPoint([630.430])) SmallWait(30) CreateVisualEffectObject("shair","BDSKIE") @@ -1730,8 +1701,8 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5nuport.baf~ APPEND BDCAELAR IF ~GlobalGT("bd_plot","global",479) GlobalLT("bd_plot","global",500) AreaCheck("bd4300")~ BEGIN d5caelar_d1 - SAY ~Hephernaan... I will not let him get away with this!~ - IF ~~ REPLY ~Caelar? What happened here? Where is Hephernaan?~ EXTERN BDBENCE d5benc_d1 + SAY @20135 + IF ~~ REPLY @20136 EXTERN BDBENCE d5benc_d1 END END @@ -1739,12 +1710,12 @@ END APPEND BDBENCE IF ~~ BEGIN d5benc_d1 - SAY ~Don't you see?? She opened the portal to the Nine Hells! This must have been her plan all along!~ + SAY @20137 IF ~~ GOTO d5benc_d2 END IF ~~ BEGIN d5benc_d2 - SAY ~We feared this eventuality but we are prepared for it. Stay here and at all costs, hold this vault open! We must bring Torsin to the portal, he has the means to close it again!~ + SAY @20138 IF ~~ DO ~SetGlobal("bd_plot","global",490) StartCutSceneMode() @@ -1760,10 +1731,9 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5nuport.d~ //___________________________________________________________________________________ // -// add skie to avernus, right near portal - 930.1150 +// add skie to avernus, right near portal // have her start dialogue if nearby and no combat happening -// she is freaked out - be either supportive or dismissive -// she moves to portal after dialogue +// she is freaked out; moves to portal after dialogue <<<<<<<< d5/d54400_1.baf IF @@ -1809,33 +1779,33 @@ EXTEND_BOTTOM ~bdskie.bcs~ ~weidu_external/%MOD_FOLDER%/compile/200/d5skie_1.baf APPEND BDSKIE IF ~AreaCheck("BD4400") GlobalGT("D5SkieInHell","global",1) GlobalLT("D5SkieInHell","global",4)~ BEGIN d5bdskie_a1 - SAY ~! Thank the gods you're here! I thought I should follow those crusaders to stop their plan but... they're already dying! The monsters here are really scary!~ + SAY @20141 IF ~~ GOTO d5bdskie_a2 END IF ~~ BEGIN d5bdskie_a2 - SAY ~There are cats that are invisible! I tried to stay hidden too, but I think some of the fiends could see me! A couple chased me. Other ones looked right at me... but didn't chase me? Why would they do that? ~ + SAY @20142 IF ~~ GOTO d5bdskie_a3 END IF ~~ BEGIN d5bdskie_a3 - SAY ~I'm so scared! This place isn't natural! I think... I think I'm out of my depth...~ - IF ~~ REPLY ~Okay Skie, calm down. This is bad, but the way to survive is to keep cool. Can you do that?~ GOTO d5bdskie_a4 - IF ~~ REPLY ~Oh do you think that? Really? Skie, you've been out of your depth for weeks, it's about time you finally realized it.~ GOTO d5bdskie_a5 + SAY @20143 + IF ~~ REPLY @20144 GOTO d5bdskie_a4 + IF ~~ REPLY @20145 GOTO d5bdskie_a5 END IF ~~ BEGIN d5bdskie_a4 - SAY ~Okay. Yes. I think I can do that. I- I want to stay alive. Do you have a plan? What should we do?~ - IF ~~ REPLY ~I need to follow Caelar. She has the vault key and we need to open the vault to let the Coalition close the portal. But someone needs to keep an eye on the portal. Can you do that for me? Stay hidden if you can. I'll be back and then we'll go home together.~ GOTO d5bdskie_a6 + SAY @20146 + IF ~~ REPLY @20147 GOTO d5bdskie_a6 END IF ~~ BEGIN d5bdskie_a5 - SAY ~Hey! Didn't I just say that? Can you please just... help? Just tell me what to do, okay? Please?~ - IF ~~ REPLY ~Well, I'm following Caelar. I assume she went to that big tower over there? I suggest you stay as close to the portal as you can, and try to avoid the fiends who will kill you and steal your soul. If you'r lucky, I'll be back soon and we'll close the portal from the other side.~ GOTO d5bdskie_a6 + SAY @20149 + IF ~~ REPLY @20150 GOTO d5bdskie_a6 END IF ~~ BEGIN d5bdskie_a6 - SAY ~Okay. Yeah. I think I can do that. I'll scout this side of the portal! I'm good at scouting. Just, come back soon, okay?~ + SAY @20152 IF ~~ DO ~SetGlobal("D5SkieInHell","global",4)~ EXIT @@ -1852,14 +1822,14 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5skaver.d~ // darnas' dialogue in avernus // just rewrite the states <<<<<<<< d5/d5darnas.d -REPLACE_SAY BDDARNAS 2 ~It has all gone wrong! Caelar has pushed forward, she thinks she can find... redemption, or power, chasing after Hephernaan. We have always been loyal to her, but look around us! How did it come to this? We never expected she would charge into darkness alone and unaided...~ +REPLACE_SAY BDDARNAS 2 @20156 ALTER_TRANS BDDARNAS // file name BEGIN 2 END // state number BEGIN 1 END // transition number - BEGIN "REPLY" ~I do no think anyone expected this day to turn out as it has.~ END + BEGIN "REPLY" ~@20157~ END -REPLACE_SAY BDDARNAS 4 ~We should not be set against each other any longer. Please, help us stop Hephernaan and save Caelar. If that portal remains open, none of use will survive!~ +REPLACE_SAY BDDARNAS 4 @20158 >>>>>>>> COPY ~d5/d5darnas.d~ ~weidu_external/%MOD_FOLDER%/compile/200/d5darnas.d~ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5darnas.d~ @@ -1896,6 +1866,7 @@ ACTION_IF (FILE_EXISTS_IN_GAME ~bdavernu.bcs~) BEGIN BUT_ONLY END + //___________________________________________________________________________________ // // remove umbral accord minutes from illaruel @@ -1908,7 +1879,7 @@ IF_EXISTS BUT_ONLY // // change cut scene line when you catch up to caelar in avernus - bdcut50 -OUTER_SET promise_string = RESOLVE_STR_REF (~You promised a celestial alliance, but now we are in Hell, surrounded by evil and naught but madness in your eyes!~) +OUTER_SET promise_string = RESOLVE_STR_REF (@20160) ACTION_IF (FILE_EXISTS_IN_GAME ~bdcut50.bcs~) BEGIN COPY_EXISTING ~bdcut50.bcs~ ~override~ @@ -1931,48 +1902,48 @@ END // change caelar's dialogue when you catch up to her in avernus // set unattainable trigger for bdcaelar state 53 // append new state w/ new speech -// make sure any variables and exit conditions from original speech get recreated + <<<<<<<< d5/d5cavern.d ADD_STATE_TRIGGER bdcaelar 53 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDCAELAR IF ~Global("bd_plot","global",530) AreaCheck("bd4500")~ BEGIN d5caelar_e1 - SAY ~I'll not kill an innocent man. I've not fallen so far as that. But I must keep going. I must know whether there is any hope of finding my ancestor.~ - IF ~~ REPLY ~Caelar, give me the vault key and come back with me! Hephernaan has lied to you, there is nothing for us here!~ GOTO d5caelar_e6 - IF ~~ REPLY ~What is this obsession of yours? What are you really after?~ GOTO d5caelar_e2 - IF ~~ REPLY ~I don't care about your family drama. I only care about getting the key to the vault. If I need to go through you to get it, so be it.~ GOTO d5caelar_e6 + SAY @20161 + IF ~~ REPLY @20162 GOTO d5caelar_e6 + IF ~~ REPLY @20163 GOTO d5caelar_e2 + IF ~~ REPLY @20164 GOTO d5caelar_e6 END IF ~~ BEGIN d5caelar_e2 - SAY ~Long ago, one of my forefathers was blessed by a union with Zariel, one of the most righteous and powerful solars in all the heavens. Since then by family has benefited from that union - we have tended to be strong, vigorous, charismatic. Natural leaders. The Order of the Aster to celebrate our good fortune and spread the blessings of Lathander to others.~ + SAY @20165 IF ~~ GOTO d5caelar_e3 END IF ~~ BEGIN d5caelar_e3 - SAY ~The very heavens are in our blood, you see? It does not diminish over generations. It is carried by mortals, but the power itself is beyond mortality. When I told you I could bend the path of fate, I was not being boastful! It is this blessing that makes me uniquely able to save the Sword Coast.~ + SAY @20166 IF ~~ GOTO d5caelar_e4 END IF ~~ BEGIN d5caelar_e4 - SAY ~But my ancestor, Zariel... she was lost, long ago. Some sages speculate she was imprisoned, others say fallen. Or maybe traveling the planes in some hidden guise. Wherever she is... inside me is a link to her! Hephernaan told me that certain rituals would penetrate the planar boundaries between us. If imprisoned, I could free her! If fallen, I could redeem her! With every application of his spells, I felt closer to her! The link was real, I tell you!~ + SAY @20167 IF ~~ GOTO d5caelar_e5 END IF ~~ BEGIN d5caelar_e5 - SAY ~But... when his work was completed the only path that was opened led here. To Avernus. Where the Dragonspear portal always led! The conduit should have moved! I need to understand why it did not!~ - IF ~~ REPLY ~It doesn't matter!~ GOTO d5caelar_e6 - IF ~CheckStatGT(Myself,16,CHR) CheckStatGT(Myself,15,INT)~ REPLY ~Caelar, I will not dissuade you from your mission. But do not put the Sword Coast at risk! Give me the vault key, let us close the portal, and... you can continue on your own path, wherever it leads.~ GOTO d5caelar_e8 + SAY @20168 + IF ~~ REPLY @20169 GOTO d5caelar_e6 + IF ~CheckStatGT(Myself,16,CHR) CheckStatGT(Myself,15,INT)~ REPLY @20170 GOTO d5caelar_e8 END IF ~~ BEGIN d5caelar_e6 - SAY ~The Sword Coast may be lost to your chaos. Whatever your intent, you and Hephernaan's betrayal have defeated my plan. But I must go onward! I will pursue Hephernaan and wring the truth from him!~ - IF ~~ REPLY ~The priority must be to close the portal!~ GOTO d5caelar_e7 - IF ~~ REPLY ~Just give me the key, damn it, I don't care what you do after that!~ GOTO d5caelar_e7 + SAY @20172 + IF ~~ REPLY @20173 GOTO d5caelar_e7 + IF ~~ REPLY @20174 GOTO d5caelar_e7 END IF ~~ BEGIN d5caelar_e7 - SAY ~If Zariel is here I must find her! The portal must remain open to allow for our return!~ + SAY @20176 IF ~~ DO ~SetGlobal("bd_plot","global",530) StartCutSceneMode() StartCutSceneEx("bdcut51",FALSE)~ @@ -1980,7 +1951,7 @@ IF ~~ BEGIN d5caelar_e7 END IF ~~ BEGIN d5caelar_e8 - SAY ~You... you are right. My determination must not put any more innocents at risk. Very well, I will give you the vault key. Return to Dragonspear and close the portal! Do not wait for me. I will find my fate here on the planes.~ + SAY @20177 IF ~~ DO ~SetGlobal("bd_plot","global",530) SetGlobal("D5SkipBel","GLOBAL",1) GiveItemCreate("bdkey02",Player1,1,0,0) @@ -1998,11 +1969,11 @@ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5cavern.d~ // // change cut scene in advance of belhifet talk - bdcut57 -OUTER_SET caebel_string = RESOLVE_STR_REF (~I know who you are, fiend! I have seen your likeness. You are Belhifet! What did you put Hephernaan up to? Where is Zariel?~) +OUTER_SET caebel_string = RESOLVE_STR_REF (@20181) -OUTER_SET belcae1_string = RESOLVE_STR_REF (~I am so glad you made it here, aasimar. Zariel is not here. But I may yet grant your desire, after a fashion.~) +OUTER_SET belcae1_string = RESOLVE_STR_REF (@20182) -OUTER_SET belcae2_string = RESOLVE_STR_REF (~Now, without those bothersome gnats, let us speak.~) +OUTER_SET belcae2_string = RESOLVE_STR_REF (@20183) ACTION_IF (FILE_EXISTS_IN_GAME ~bdcut57.bcs~) BEGIN COPY_EXISTING ~bdcut57.bcs~ ~override~ @@ -2049,72 +2020,72 @@ ADD_STATE_TRIGGER bdbelhif 1 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDBELHIF IF ~GlobalLT("bd_plot","global",565)~ BEGIN d5belhif_f1 - SAY #%eet_2%39113 // ~What is this? The spawn of Bhaal, already? I'll have Thrix's hide for this!~ - IF ~~ REPLY ~Caelar, enough! Did you really expect to find a solar here?~ DO ~SetGlobal("bd_plot","global",565)~ EXTERN BDCAELAR d5caelar_f1 - IF ~~ REPLY ~He really is a treacherous weasel. Then again, he is a devil and his name is Thrix the Profane.~ DO ~SetGlobal("bd_plot","global",565)~ GOTO d5belhif_f2 - IF ~~ REPLY ~The Profane One is the last thing you should be concerned about, fiend.~ DO ~SetGlobal("bd_plot","global",565)~ GOTO d5belhif_f2 + SAY #%eet_2%39113 // What is this? The spawn of Bhaal, already? I'll have Thrix's hide for this! + IF ~~ REPLY @20201 DO ~SetGlobal("bd_plot","global",565)~ EXTERN BDCAELAR d5caelar_f1 + IF ~~ REPLY @20202 DO ~SetGlobal("bd_plot","global",565)~ GOTO d5belhif_f2 + IF ~~ REPLY @20203 DO ~SetGlobal("bd_plot","global",565)~ GOTO d5belhif_f2 END IF ~~ BEGIN d5belhif_f2 - SAY ~I will deal with him in time. But first, let me welcome Caelar Argent. I am pleased that you made it this far. Your combination of arrogance and desperation is... delectable. Marred only by the stench of your celestial blood. But, we can fix that.~ + SAY @20204 IF ~~ GOTO d5belhif_f4 END IF ~~ BEGIN d5belhif_f3 - SAY ~Indeed, arrogance and desperation. Quite a delectable combination. Marred only by the stench of your celestial blood. But, we can fix that.~ + SAY @20205 IF ~~ GOTO d5belhif_f4 END IF ~~ BEGIN d5belhif_f4 - SAY ~Zariel is not here, child. You will not speak with her. In fact I have taken care to shield our doings from her perception, temporarily. Oh, what cruelty perspective can inflict upon us! Your heritage, stemming from a momentary tryst centuries ago - it is the most important thing in your tiny life. But Zariel? She is as a god. You are less than a speck of dust to her.~ + SAY @20206 IF ~~ GOTO d5belhif_f5 END IF ~~ BEGIN d5belhif_f5 - SAY ~On the other hand, some of us can appreciate details lost to such lofty perspective. This little godspawn, for instance, is quite interesting. Now that I see you with my own eyes, I see you are more than the runt of some fecund avatar. You have been... enhanced. Somehow you have the ability to convert slain souls into power.~ + SAY @20207 IF ~~ GOTO d5belhif_f6 END IF ~~ BEGIN d5belhif_f6 - SAY ~With the right... modifications... you could be quite the weapon against the hated enemies. We could capture and utilize the souls of the generals of chaos, instead of merely discoporating their bodies. Oh, what interesting things occur when up-jumped gods frolic in the Prime!~ + SAY @20208 IF ~~ EXTERN BDCAELAR d5caelar_f2 END IF ~~ BEGIN d5belhif_f7 - SAY ~Hephernaan did what was necessary to open the door to your realm and bring you to me. No more, no less. It was a necessary deception, which we can now dispense with. That said, little Argent, what if I told you your goal is still within reach?~ - IF ~~ REPLY ~Never mind that, Belhifet. Caelar, we need to g-~ EXTERN BDCAELAR d5caelar_f3 + SAY @20209 + IF ~~ REPLY @20210 EXTERN BDCAELAR d5caelar_f3 END IF ~~ BEGIN d5belhif_f8 - SAY ~You want to prevent the chaos represented by Bhaal's offspring? You want order? In truth, I want these things too. The forces of Law - MY forces of Law - can stamp out chaos in your Sword Coast. Serve as my lieutenant, and together we will bring order to your realm.~ + SAY @20215 IF ~~ GOTO d5belhif_f9 END IF ~~ BEGIN d5belhif_f9 - SAY ~The Bhaalspawn will be found and sent to the Blood War. I cannot enter the Prime - not yet - so I will name you regent of our dominion there. Sure you will be able to moderate my legions' excesses, should you desire. Consider it: everything you have strived for, all this time - will be achieved! It will be the greatest success of any in the Argent line! It might even make you truly worthy of Zariel's notice. You might be surprised at what attracts her notice these days...~ + SAY @20216 IF ~~ EXTERN BDCAELAR d5caelar_f5 END IF ~~ BEGIN d5belhif_f10 - SAY ~Nevertheless, your world is exposed. I will claim it, with or without you. This is not the deal you hoped to make, but it is the deal that is available to you. Success is still within your grasp! What is your alternative? Return in shame, and spend the rest of your days in chains? Rebel with this Bhaal child? I know your blood - failure and rebellion are not in your nature.~ + SAY @20217 IF ~~ GOTO d5belhif_f11 END IF ~~ BEGIN d5belhif_f11 - SAY ~The righteousness of Law drives you. And though we express it in different ways, it drives me as well. That flaming sword you wield, so like the one Zariel once bore... swear it to my service, and my army will be at your back when you return to the mortal realm. You will be a true crusader, just like your forebear...~ - IF ~~ REPLY ~Caelar, no! He is evil, and still manipulating you! Maybe your crusade was a mistake, maybe Zariel can never be saved. But YOU can be redeemed! This moment, right now, is what defines heroes! Stand with me against Belhifet, and together we will close the portal and safeguard the residents of the Sword Coast!~ EXTERN BDCAELAR d5caelar_f6 - IF ~~ REPLY ~Caelar, law and order are not worth your soul. I know it must be difficult four you, but this is the time to rebel! Trust me when I tell you: you are not bound by your lineage. I am my own person and I do not let my father's influence control me!~ EXTERN BDCAELAR d5caelar_f6 - IF ~~ REPLY ~This is a disaster! Your crusade only led to this: a chance for the fiends of Avernus to overrun the Sword Coast. Whatever you feared from Bhaal's children is nothing compared to the evil you have unleashed today. Every death, every bit of devastation that arises from this - it is laid at your feet!~ EXTERN BDCAELAR d5caelar_f8 - IF ~~ REPLY ~Fool! You have been so deluded by the ravings of your blood that you could not use common sense! Now you have snared the entire region in a devil's trap! Your folly must end, for good, here and now!~ EXTERN BDCAELAR d5caelar_f8 + SAY @20218 + IF ~~ REPLY @20221 EXTERN BDCAELAR d5caelar_f6 + IF ~~ REPLY @20222 EXTERN BDCAELAR d5caelar_f6 + IF ~~ REPLY @20223 EXTERN BDCAELAR d5caelar_f8 + IF ~~ REPLY @20224 EXTERN BDCAELAR d5caelar_f8 END IF ~~ BEGIN d5belhif_f12 - SAY ~Bah! I should have known things would go awry when one of Bhaal's whelps became involved. "Chaos shall follow in their wake..." Alaundo spoke true. She was on the cusp of giving herself over to me, willingly! An Argent, in the service of Belhifet - do you know how long I have worked for this prize? If only to see the look on Zariel's face!~ + SAY @20225 IF ~~ GOTO d5belhif_f13 END IF ~~ BEGIN d5belhif_f13 - SAY ~Well. You have ruined my little game, and there can only be one consequence for that. Your souls will be my playthings for eternity. The argent will be raised as a death knight, but you, little godling, for you there is only oblivion. Come now, meet your doom!~ + SAY @20226 IF ~~ DO ~ AddJournalEntry(%eet_2%59847,QUEST) @@ -2123,12 +2094,12 @@ IF ~~ BEGIN d5belhif_f13 END IF ~~ BEGIN d5belhif_f14 - SAY ~YES! I will grant you the power you need! Swear yourself to my service, and it shall be yours!~ - IF ~~ REPLY ~What? Caelar, this is not the answer!~ EXTERN BDCAELAR d5caelar_f10 + SAY @20227 + IF ~~ REPLY @20228 EXTERN BDCAELAR d5caelar_f10 END IF ~~ BEGIN d5belhif_f15 - SAY ~Ha ha ha! Very well, the loss of one agent is worth having Zariel's spawn as my blackguard. Hephernaan, you have served me tolerably well. In the eons hence you may rise back through the ranks, and I will respect you all the more for it. ~ + SAY @20230 IF ~~ EXTERN BDHEPHER d5hepher_f2 END @@ -2137,33 +2108,33 @@ END APPEND BDCAELAR IF ~~ BEGIN d5caelar_f1 - SAY ~I am here for Hephernaan! He will tell me where I need to go next. I am not surprised to find him cowering between the legs of a true devil.~ + SAY @20231 IF ~~ EXTERN BDHEPHER d5hepher_f1 END IF ~~ BEGIN d5caelar_f2 - SAY ~Enough, Belhifet! We are not interested in your Blood War! Hephernaan's treatments - the link was real! I FELT it!~ + SAY @20232 IF ~~ EXTERN BDBELHIF d5belhif_f7 END IF ~~ BEGIN d5caelar_f3 - SAY ~Quiet!~ + SAY @20233 IF ~~ GOTO d5caelar_f4 END IF ~~ BEGIN d5caelar_f4 - SAY ~What are you talking about, fiend?~ + SAY @20234 IF ~~ EXTERN BDBELHIF d5belhif_f8 END IF ~~ BEGIN d5caelar_f5 - SAY ~I- no- this is not what I wanted. I did not come all this way to lend aid to devils, to expose my world to the cruelty of the Nine Hells!~ + SAY @20235 IF ~~ EXTERN BDBELHIF d5belhif_f10 END IF ~~ BEGIN d5caelar_f6 SAY #%eet_2%39160 - IF ~~ REPLY ~I don't know what Alaundo's prophecy truly portends, but if you and I can stand firm here against Belhifet, there will be heroes to overcome any crisis sown by Bhaal. We may be mortals, but we lack for neither courage nor power. Are you with me?~ GOTO d5caelar_f7 + IF ~~ REPLY @20236 GOTO d5caelar_f7 END IF ~~ BEGIN d5caelar_f7 @@ -2188,17 +2159,17 @@ IF ~~ BEGIN d5caelar_f7 END IF ~~ BEGIN d5caelar_f8 - SAY ~You... you are wrong. You must be wrong. You and your ilk are the cause of all of this! All I have endeavored to do was give people justice. You raised an army against me, pushed back time and again, amassed power of the god or murder to use against ME?~ + SAY @20240 IF ~~ GOTO d5caelar_f9 END IF ~~ BEGIN d5caelar_f9 - SAY ~I see clearly now: I am a crusader against chaos! That is all I have ever been! The Order of the Aster was founded for it - but has lacked the power to achieve its goals. No longer! with Belhifet behind me, the last remains of Bhaal will finally be extinguished. Then peace - MY peace - will reign!~ + SAY @20241 IF ~~ EXTERN BDBELHIF d5belhif_f14 END IF ~~ BEGIN d5caelar_f10 - SAY ~This has always been the answer. I see that now. I swear myself to you, Belhifet, on one condition: that you destroy Hephernaan for his treachery against me.~ + SAY @20242 IF ~~ EXTERN BDBELHIF d5belhif_f15 END @@ -2207,12 +2178,12 @@ END APPEND BDHEPHER IF ~~ BEGIN d5hepher_f1 - SAY ~Your arrogance is truly impressive, Caelar. I am pleased that you have made it this far.~ + SAY @20244 IF ~~ EXTERN BDBELHIF d5belhif_f3 END IF ~~ BEGIN d5hepher_f2 - SAY ~Whaaat?? No!~ + SAY @20245 IF ~~ DO ~StartCutSceneMode() AddJournalEntry(%eet_2%59849,QUEST) @@ -2421,28 +2392,28 @@ ADD_STATE_TRIGGER bdcaelar 83 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDCAELAR IF ~Global("bd_plot","global",577) AreaCheck("bd4700") !ActuallyInCombat()~ BEGIN d5caelar_g1 - SAY ~Belhifet is gone. In his own place of power, our combined might overcame him. He will be reborn, no doubt, but it will be eons before can rise to a station high enough to bother mortals.~ + SAY @20251 IF ~~ GOTO d5caelar_g2 END IF ~~ BEGIN d5caelar_g2 - SAY ~I owe you a debt of gratitude. Not only for fighting by my side - but I almost gave in. I was on the cusp of betraying everything I ever held dear. And it seemed so right! He made it seem like betraying my soul for him was the only way to be true to myself.~ + SAY @20252 IF ~~ GOTO d5caelar_g3 END IF ~~ BEGIN d5caelar_g3 - SAY ~That you could believe in me still, could see past our opposition - it gave me the strength to resist his entreaties. Heavens know what evil might have been wrought if I agreed.~ - IF ~~ REPLY ~So you don't mean to marshal this power for yourself? We were allies a moment ago, but if you still mean to conquer the Sword Coast, I will oppose you here and now.~ GOTO d5caelar_g4 - IF ~~ REPLY ~The words of one who knows she is defeated. I hope you don't think to seize Belhifet's power and march fiends through the gate.~ GOTO d5caelar_g4 + SAY @20253 + IF ~~ REPLY @20254 GOTO d5caelar_g4 + IF ~~ REPLY @20255 GOTO d5caelar_g4 END IF ~~ BEGIN d5caelar_g4 - SAY ~No. My crusade is finished. But we should not tarry here. The portal remains open, the fiends of Avernus could find it and spill through. It will not happen quickly without Belhifet and Hephernaan to lead them; we should take advantage of this window of opportunity to close the conduit.~ + SAY @20257 IF ~~ GOTO d5caelar_g5 END IF ~~ BEGIN d5caelar_g5 - SAY ~Here: take the key to the Dragonspear Vault. I know the forces of Waterdeep have the means to close the portal again.~ + SAY @20258 IF ~~ DO ~SetGlobal("bd_caelar_fate","global",5) // ***** and AddJournalEntry SetGlobal("bd_plot","global",578) @@ -2504,64 +2475,62 @@ ADD_STATE_TRIGGER bdcaelar 84 ~GlobalGT("bd_plot","GLOBAL",999)~ APPEND BDCAELAR -// longer "what will you do now?" and GiveItemCreate("bdkey02",Player1,1,0,0) - IF ~Global("bd_plot","global",580) AreaCheck("BD4400") !ActuallyInCombat()~ BEGIN d5caelar_h1 - SAY ~Here we must part ways. I am not going back. ~ - IF ~~ REPLY ~You have been so driven, for so long. Would you really give up your crusade?~ DO ~SetGlobal("bd_plot","global",581)~ GOTO d5caelar_h2 + SAY @20261 + IF ~~ REPLY @20262 DO ~SetGlobal("bd_plot","global",581)~ GOTO d5caelar_h2 END IF ~~ BEGIN d5caelar_h2 - SAY ~Not really. I still think I had the right of it. The prophecy of Bhaal's children - of you - is incredibly dangerous for the Sword Coast. Many will suffer. You think you can avert that suffering, but you are not equipped to do so.~ + SAY @20264 IF ~~ GOTO d5caelar_h3 END IF ~~ BEGIN d5caelar_h3 - SAY ~But, if I succeeded? If I subdued the region and stamped out Bhaal's children, maybe with the help of fiendish power? Maybe it would be worse. There is no way to know - there is no prophecy detailing that future. So, I will let it go. You, on the other hand, are still bound to your fate. I almost feel sorry for you...~ - IF ~~ REPLY ~Would you really prefer to brave the Hells than return to Dragonspear and face justice?~ GOTO d5caelar_h6 - IF ~~ REPLY ~I cannot allow you to stay here. You thanked me but you owe justice to many more back at Dragonspear Castle.~ GOTO d5caelar_h5 - IF ~~ REPLY ~You think I am going to just let you go? You are coming with me - if I have to drag your corpse with me and raise you to stand trial, so be it!~ GOTO d5caelar_h4 + SAY @20265 + IF ~~ REPLY @20266 GOTO d5caelar_h6 + IF ~~ REPLY @20267 GOTO d5caelar_h5 + IF ~~ REPLY @20268 GOTO d5caelar_h4 END IF ~~ BEGIN d5caelar_h4 - SAY ~We were effective fighting together against Belhifet, but you are a fool if you think you can take me against my will!~ + SAY @20269 IF ~~ DO ~Enemy()~ EXIT END IF ~~ BEGIN d5caelar_h5 - SAY ~With respect: what will you do? Chase me? I will simply lead you away, and you would have to leave the portal unguarded against invasion. Your whole world will be lost.~ - IF ~~ REPLY ~It is your world too! Would you really risk that?~ GOTO d5caelar_h6 + SAY @20270 + IF ~~ REPLY @20271 GOTO d5caelar_h6 END IF ~~ BEGIN d5caelar_h6 - SAY ~Faerun is no longer my home. Maybe it never was. You have friends there, comrades, family. You are regarded as a hero. Go there. Close the portal. Be the hero. But I... I must still heed the calling of my blood. You claimed it can be ignored, but I have doubts.~ + SAY @20273 IF ~~ GOTO d5caelar_h7 END IF ~~ BEGIN d5caelar_h7 - SAY ~I will guard the portal from this side, while it is open. And then I will find Zariel. Hephernaan's rituals were a way of controlling me - truly fiendish magic - but they exploited a real connection It called me here for a reason. I must find out the truth.~ - IF ~~ REPLY ~Very well, I guess. Good luck.~ GOTO d5caelar_h9 - IF ~~ REPLY ~After all this, you haven't changed. Good luck finding your way out of this literal hellhole.~ GOTO d5caelar_h9 - IF ~GlobalGT("D5DaustonQuest","GLOBAL",6)~ REPLY ~I met your cousin once. Dauston? He was like you - sort of. He said the calling of your blood is not real. Just an echo of the past.~ GOTO d5caelar_h8 + SAY @20274 + IF ~~ REPLY @20275 GOTO d5caelar_h9 + IF ~~ REPLY @20276 GOTO d5caelar_h9 + IF ~GlobalGT("D5DaustonQuest","GLOBAL",6)~ REPLY @20277 GOTO d5caelar_h8 END IF ~~ BEGIN d5caelar_h8 - SAY ~Maybe that is so. I do not know. But out here, everything is an echo of the past, a reflection of some story or other. Maybe this is where I belong. Certainly many have become Planewalkers for worse reasons than echoes of the past singing in their blood!~ + SAY @20278 IF ~~ GOTO d5caelar_h9 END IF ~~ BEGIN d5caelar_h9 - SAY ~Listen: the other children of Bhaal are awakening, just as you have. Scores of them. No matter your actions, most of them will give in to their dark urges. You averted Sarevok's war but I say again: you cannot avert the war to come. You are not like me - not a crusader.~ + SAY @20279 IF ~~ GOTO d5caelar_h10 END IF ~~ BEGIN d5caelar_h10 - SAY ~Bhaal's war will come, but maybe if there are enough heroes, its worst effects can be mitigated. Maybe that is the best we can hope for. Good fortune to you, in any event.~ + SAY @20280 IF ~~ EXIT END IF ~GlobalGT("bd_plot","global",582) AreaCheck("BD4400")~ BEGIN d5caelar_h11 - SAY ~Enter the portal! Go back to Faerun, and let the Waterdeep forces into the vault. They can close the conduit.~ + SAY @20281 IF ~~ EXIT END @@ -2570,7 +2539,7 @@ END APPEND BDSKIE IF ~GlobalGT("bd_plot","global",579) AreaCheck("bd4400")~ BEGIN d5skie_h1 - SAY ~Can we go home now? Please??~ + SAY @20284 IF ~~ EXIT END @@ -2579,7 +2548,7 @@ END APPEND BDDARNAS IF ~GlobalGT("bd_plot","global",579) AreaCheck("bd4400")~ BEGIN d5darnas_h1 - SAY ~If you have the vault key, we should go at once. We must ensure no more fiends get through.~ + SAY @20285 IF ~~ EXIT END @@ -2777,14 +2746,14 @@ THEN ActionOverride("cutspy",DestroySelf()) FadeToColor([40.0],0) SmallWait(25) - ApplySpellRES("bdunhide",Player1) // No such index - ApplySpellRES("bdunhide",Player2) // No such index - ApplySpellRES("bdunhide",Player3) // No such index - ApplySpellRES("bdunhide",Player4) // No such index - ApplySpellRES("bdunhide",Player5) // No such index - ApplySpellRES("bdunhide",Player6) // No such index - ApplySpellRES("bdunhide","bdskie") // No such index - ApplySpellRES("bdunhide","bddarnas") // No such index + ApplySpellRES("bdunhide",Player1) + ApplySpellRES("bdunhide",Player2) + ApplySpellRES("bdunhide",Player3) + ApplySpellRES("bdunhide",Player4) + ApplySpellRES("bdunhide",Player5) + ApplySpellRES("bdunhide",Player6) + ApplySpellRES("bdunhide","bdskie") + ApplySpellRES("bdunhide","bddarnas") SetCutSceneBreakable(FALSE) SetGlobal("BD_CUTSCENE_BREAKABLE","GLOBAL",0) SetAreaScript("",OVERRIDE) @@ -2809,8 +2778,8 @@ THEN ActionOverride(Player4,LeaveAreaLUA("bd4300","",[500.425],E)) ActionOverride(Player5,LeaveAreaLUA("bd4300","",[520.475],NE)) ActionOverride(Player6,LeaveAreaLUA("bd4300","",[580.495],NE)) - LeaveAreaLUAPanic("bd4300","",[660.365],SW) // Dragonspear Castle Basement - LeaveAreaLUA("bd4300","",[660.365],SW) // Dragonspear Castle Basement + LeaveAreaLUAPanic("bd4300","",[660.365],SW) + LeaveAreaLUA("bd4300","",[660.365],SW) MultiPlayerSync() Wait(1) StartCutSceneEx("bdcut59b",TRUE) @@ -2858,7 +2827,7 @@ THEN RESPONSE #100 CutSceneId(Player1) SetGlobal("D5SkieInHell","global",7) - CreateCreature("bdskie",[600.350],E) // Skie + CreateCreature("bdskie",[600.350],E) Continue() END >>>>>>>> @@ -2917,7 +2886,7 @@ THEN DestroyItem("bdkey02") MoveViewPoint([720.480],VERY_FAST) MoveToPoint([735.495]) - DisplayStringHead(Myself,~Uses Rod of Disjunction~) + DisplayStringHead(Myself,@20291) SmallWait(5) ForceSpell(Myself,CLERIC_DRAW_UPON_HOLY_MIGHT) ForceSpell(Myself,CLERIC_HOLY_POWER) @@ -2935,19 +2904,19 @@ COPY ~d5/d5cut59z.baf~ ~weidu_external/%MOD_FOLDER%/compile/200/d5cut59z.baf~ COMPILE ~weidu_external/%MOD_FOLDER%/compile/200/d5cut59z.baf~ <<<<<<<< d5/d5imback.d -REPLACE_SAY BDBENCE 66 ~Now if you'll excuse me, I need to check on Skie. She seems extremely disturbed. Between you and me I will credit her for being brave - brave to the point of foolhardiness. But she was not made for excusions to the Hells.~ +REPLACE_SAY BDBENCE 66 @20292 ADD_STATE_TRIGGER BDDELANC 95 ~Global("D5ClosePortal","BD4300",2)~ // replace the text of bddelanc state 77 transions 0-1 -ALTER_TRANS BDDELANC BEGIN 77 END BEGIN 0 END BEGIN "REPLY" ~Caelar Argent is dead. Her advisor, Hephernaan, was secretly working for an archfiend. They have been defeated, but we must close the portal.~ END +ALTER_TRANS BDDELANC BEGIN 77 END BEGIN 0 END BEGIN "REPLY" ~@20293~ END -ALTER_TRANS BDDELANC BEGIN 77 END BEGIN 1 END BEGIN "REPLY" ~The Crusade was secretly inspired and manipulated by an archfiend. They have been defeated. Now we must close the portal to Avernus.~ END +ALTER_TRANS BDDELANC BEGIN 77 END BEGIN 1 END BEGIN "REPLY" ~@20294~ END APPEND BDDELANC IF ~Global("bd_plot","global",590) AreaCheck("bd4300") Global("D5ClosePortal","BD4300",1)~ BEGIN d5delanc_i1 - SAY ~That will bind the portal shut temporarily. We will task a team of magic users to re-weave the seals that Caelar undid, in order to seal the portal permanently. In time, we must devise a way to dislodge the conduit behind the portal from its connection to Toril. But that is a task for another day. For now, we are safe.~ + SAY @20295 IF ~~ DO ~SetGlobal("D5ClosePortal","BD4300",2)~ EXIT END @@ -2956,7 +2925,7 @@ END APPEND BDSKIE IF ~GlobalGT("bd_plot","global",581) AreaCheck("bd4300") GlobalGT("D5SkieInHell","global",1)~ BEGIN d5skie_i1 - SAY ~I need to get upstairs, away from this thing! I- I can't talk right now.~ + SAY @20300 IF ~~ EXIT END diff --git a/Reflections/comp/comp_310.tpa b/Reflections/comp/comp_310.tpa index 9023110..7a0b45a 100755 --- a/Reflections/comp/comp_310.tpa +++ b/Reflections/comp/comp_310.tpa @@ -1,998 +1,31 @@ -/* - -TO DO: - -***** -- if player skips SoD, add entrance to Coast Way Forest from... SW edge of Umar Hills? - -- and disable Skie scene - --- and remove her two crusaders - -***** -- if player skips SoD, add entrance to Bloodbark Grove from... SW edge of druid grove? - -***** -- if player skips SoD, add entrance to Forest of Wyrms from... SE edge of Small Teeth Pass? - -- and enable this area on the map - -- remove crusaders from temple of cyric - -- remove dialogue about recruitment or the crusade - -***** -- if player skips SoD, move the Coldhearth dungeon to Small Teeth Pass @ 2060x12455 - -- and enable this area on the map - --- OR to Umar's Cave, @ 1405x725 - -- check skip variable, enable entrance on map - -- check initial dialogue for references to crusade - -- disable final recruitment dialogue - -- disable recruit coldhearth dialogue - -***** -- if player skips SoD, move underground river area to...beneath the bridge district? - -- change the crusaders to smugglers - -- remove the northwest exit and its guardians - -- kill the crusaders fighting against the drow - -- remove any druid dialogue relating to the crusade - -- remove crusader patrols - -*/ - - - -DEFINE_ACTION_FUNCTION reveal_small_teeth BEGIN - -// enable AR1700 on main map - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR0020.are~) BEGIN -<<<<<<<< d5/ar0020_.baf -IF - Global("D5SkipSoD","GLOBAL",0) - GlobalLT("BD_HAVE_SOD","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5SkipSoD","GLOBAL",1) - SetGlobal("D5_AR1700_Revealed","GLOBAL",1) - RevealAreaOnMap("AR1700") - Continue() -END - -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5_AR1700_Revealed","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5_AR1700_Revealed","GLOBAL",1) - RevealAreaOnMap("AR1700") - Continue() -END ->>>>>>>> - COPY ~d5/ar0020_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar0020_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~ar0020~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar0020_~ END -END - -END // end function - -//___________________________________________________________________________________ -// - -DEFINE_ACTION_FUNCTION sod_remix_coldhearth_dungeon BEGIN - -<<<<<<<< d5/bdcoldh+.d -ADD_TRANS_TRIGGER BDCOLDH 25 ~Global("D5SkipSoD","GLOBAL",0)~ DO 0 - -ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 1 - -ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 2 - -ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 3 - -ADD_TRANS_TRIGGER BDCOLDH 32 ~Global("D5SkipSoD","GLOBAL",0)~ DO 1 ->>>>>>>> -COPY ~d5/bdcoldh+.d~ ~weidu_external/%MOD_FOLDER%/compile/310/bdcoldh+.d~ -COMPILE ~weidu_external/%MOD_FOLDER%/compile/310/bdcoldh+.d~ - -// don't even need to do this for brother deepvein! ...I think - - -// add dungeon entrance to ar1700 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN - COPY_EXISTING ~AR1700.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1940 // x coordinate - fj_box_top = 1225 // y coordinate - fj_box_right = 2075 // x coordinate - fj_box_bottom = 1365 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1940 + (1225 << 16) // start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2075 + (1225 << 16) - fj_vertex_2 = 2075 + (1365 << 16) - fj_vertex_3 = 1940 + (1365 << 16) - STR_VAR - fj_structure_type = region - fj_name = ar1700_bd1100 //name of this travel region so you can address it via script etc. - fj_destination_area = bd1100 //name of the destination area - fj_destination_name = d5ar1700 //name of exitpoint in destination area - END - -/* add exitpoint for backwards travel */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_loc_x = 2120 // x coordinate where the group will spawn - fj_loc_y = 1500 // y coordinate where the group will spawn - fj_orientation = 12 // E face direction in which group is looking after coming through - STR_VAR - fj_structure_type = entrance - fj_name = d5bd1100 // name of this new exitpoint so it can be referenced for the travel region of the other area - END - BUT_ONLY -END - - -// modify dungeon exit to point back to BG2 - -ACTION_IF (FILE_EXISTS_IN_GAME ~BD1100.are~) BEGIN - COPY_EXISTING ~BD1100.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 150 // x coordinate - fj_box_top = 1160 // y coordinate - fj_box_right = 370 // x coordinate - fj_box_bottom = 1350 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 150 + (1160 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 370 + (1160 << 16) - fj_vertex_2 = 370 + (1350 << 16) - fj_vertex_3 = 150 + (1350 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd1100_ar1700 //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd1100 //name of exitpoint in destination area - END - -/* add exitpoint for backwards travel */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_loc_x = 375 // x coordinate where the group will spawn - fj_loc_y = 1330 // y coordinate where the group will spawn - fj_orientation = 14 // SE - face direction in which group is looking after coming through - STR_VAR - fj_structure_type = entrance - fj_name = d5ar1700 //name of this new exitpoint so it can be referenced for the travel region of the other area - END - BUT_ONLY -END - - -// set area scripts to allow travel from BG2 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN -<<<<<<<< d5/ar1700a.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5AR1700toBD1100","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5AR1700toBD1100","GLOBAL",1) - TriggerActivation("ar1700_bd1100",TRUE) - Continue() -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayAR1700a","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayAR1700a","GLOBAL",1) - TriggerActivation("ar1700_bd1100",FALSE) - Continue() -END - -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5HeresDaran","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5HeresDaran","GLOBAL",1) - CreateCreature("bddaran",[2345.1570],6) - CreateCreature("zombie",[2240.1440],14) - CreateCreature("zombie",[2155.1530],12) - Continue() -END ->>>>>>>> - COPY ~d5/ar1700a.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700a.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700a~ END -END - -ACTION_IF (FILE_EXISTS_IN_GAME ~bd1100.are~) BEGIN -<<<<<<<< d5/bd1100_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5BD1100toAR1700","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5BD1100toAR1700","GLOBAL",1) - TriggerActivation("bd1100_ar1700",TRUE) - TriggerActivation("tranbd1000",FALSE) - Continue() -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayBD1100","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayBD1100","GLOBAL",1) - TriggerActivation("bd1100_ar1700",FALSE) - Continue() -END ->>>>>>>> - COPY ~d5/bd1100_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd1100_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~bd1100~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd1100_~ END -END - - -// make Daran talk to us - -<<<<<<<< d5/bddar++.d -REPLACE_SAY BDDARAN 19 @31091 - -APPEND BDDARAN - -IF WEIGHT #-1 ~AreaCheck("AR1700")~ BEGIN d5bddaran_0 - SAY @31092 - IF ~~ GOTO 2 -END - -END ->>>>>>>> -COMPILE ~d5/bddar++.d~ - - -// robert is now your uncle - -END // end function - - -//___________________________________________________________________________________ -// - -DEFINE_ACTION_FUNCTION sod_remix_coast_way_forest BEGIN - -// rewrite BDISABEL state 50 - -<<<<<<<< d5/bdisab+.d -REPLACE_SAY BDISABEL 50 @31093 ->>>>>>>> -COPY ~d5/bdisab+.d~ ~weidu_external/%MOD_FOLDER%/compile/310/bdisab+.d~ -COMPILE ~weidu_external/%MOD_FOLDER%/compile/310/bdisab+.d~ - - -// add map travel entrance from AR1300 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1300.are~) BEGIN - COPY_EXISTING ~AR1300.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 2050 // y coordinate - fj_box_right = 100 // x coordinate - fj_box_bottom = 3839 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1 + (2050 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 100 + (2050 << 16) - fj_vertex_2 = 100 + (3839 << 16) - fj_vertex_3 = 1 + (3839 << 16) - STR_VAR - fj_structure_type = region - fj_name = ar1700_bd7000 //name of this travel region so you can address it via script etc. - fj_destination_area = bd7000 //name of the destination area - fj_destination_name = ExitNE //name of exitpoint in destination area - END - -/* add exitpoint for backwards travel */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_loc_x = 175 // x coordinate where the group will spawn - fj_loc_y = 2795 // y coordinate where the group will spawn - fj_orientation = 12 // E face direction in which group is looking after coming through - STR_VAR - fj_structure_type = entrance - fj_name = d5bd7000 // name of this new exitpoint so it can be referenced for the travel region of the other area - END - BUT_ONLY -END - - -// add travel back to AR1300 - need to cover four map edges - -ACTION_IF (FILE_EXISTS_IN_GAME ~BD7000.are~) BEGIN - COPY_EXISTING ~BD7000.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 2495 // x coordinate - fj_box_top = 165 // y coordinate - fj_box_right = 2559 // x coordinate - fj_box_bottom = 480 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 2495 + (165 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2559 + (165 << 16) - fj_vertex_2 = 2559 + (480 << 16) - fj_vertex_3 = 2495 + (480 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7000_ar1300a //name of this travel region so you can address it via script etc. - fj_destination_area = AR1300 //name of the destination area - fj_destination_name = d5bd7000 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 2495 // x coordinate - fj_box_top = 1640 // y coordinate - fj_box_right = 2559 // x coordinate - fj_box_bottom = 1780 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 2495 + (1640 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2559 + (1640 << 16) - fj_vertex_2 = 2559 + (1780 << 16) - fj_vertex_3 = 2495 + (1780 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7000_ar1300b //name of this travel region so you can address it via script etc. - fj_destination_area = AR1300 //name of the destination area - fj_destination_name = d5bd7000 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 2150 // x coordinate - fj_box_top = 1875 // y coordinate - fj_box_right = 2280 // x coordinate - fj_box_bottom = 1919 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 2150 + (1875 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2280 + (1875 << 16) - fj_vertex_2 = 2280 + (1919 << 16) - fj_vertex_3 = 2150 + (1919 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7000_ar1300c //name of this travel region so you can address it via script etc. - fj_destination_area = AR1300 //name of the destination area - fj_destination_name = d5bd7000 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 410 // x coordinate - fj_box_top = 1875 // y coordinate - fj_box_right = 1155 // x coordinate - fj_box_bottom = 1919 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 410 + (1875 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 1155 + (1875 << 16) - fj_vertex_2 = 1155 + (1919 << 16) - fj_vertex_3 = 410 + (1919 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7000_ar1300d //name of this travel region so you can address it via script etc. - fj_destination_area = AR1300 //name of the destination area - fj_destination_name = d5bd7000 //name of exitpoint in destination area - END - BUT_ONLY -END - - -// set area scripts to allow travel from BG2 +DEFINE_ACTION_FUNCTION imoen_is_stone BEGIN -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1300.are~) BEGIN -<<<<<<<< d5/ar1300_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5AR1300toBD7000","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5AR1300toBD7000","GLOBAL",1) - TriggerActivation("ar1700_bd7000",TRUE) -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayAR1300","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayAR1300","GLOBAL",1) - TriggerActivation("ar1700_bd7000",FALSE) -END ->>>>>>>> - COPY ~d5/ar1300_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1300_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~ar1300~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1300_~ END -END - -ACTION_IF (FILE_EXISTS_IN_GAME ~bd7000.are~) BEGIN -<<<<<<<< d5/bd7000_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5BD7000toAR1300","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5BD7000toAR1300","GLOBAL",1) - TriggerActivation("bd7000_ar1300a",TRUE) - TriggerActivation("bd7000_ar1300b",TRUE) - TriggerActivation("bd7000_ar1300c",TRUE) - TriggerActivation("bd7000_ar1300d",TRUE) -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayBD7000","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayBD7000","GLOBAL",1) - TriggerActivation("bd7000_ar1300a",FALSE) - TriggerActivation("bd7000_ar1300b",FALSE) - TriggerActivation("bd7000_ar1300c",FALSE) - TriggerActivation("bd7000_ar1300d",FALSE) -END ->>>>>>>> - COPY ~d5/bd7000_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7000_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~bd7000~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7000_~ END -END - - -// that's...it? - -// maybe rewrite Tsolak's combat script? he should be stronger - - -END // end function - - -//___________________________________________________________________________________ -// - -DEFINE_ACTION_FUNCTION sod_remix_wyrm_forest BEGIN - -// add map travel entrance from AR1700 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN - COPY_EXISTING ~AR1700.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1825 // x coordinate - fj_box_top = 3065 // y coordinate - fj_box_right = 2880 // x coordinate - fj_box_bottom = 3135 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1825 + (3065 << 16) // start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2880 + (3065 << 16) - fj_vertex_2 = 2880 + (3135 << 16) - fj_vertex_3 = 1825 + (3135 << 16) - STR_VAR - fj_structure_type = region - fj_name = ar1700_bd7200 //name of this travel region so you can address it via script etc. - fj_destination_area = bd7200 //name of the destination area - fj_destination_name = ExitNW //name of exitpoint in destination area - END - -/* add exitpoint for backwards travel */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_loc_x = 2515 // x coordinate where the group will spawn - fj_loc_y = 3045 // y coordinate where the group will spawn - fj_orientation = 8 // N face direction in which group is looking after coming through - STR_VAR - fj_structure_type = entrance - fj_name = d5bd7200 // name of this new exitpoint so it can be referenced for the travel region of the other area - END - BUT_ONLY -END - - -// add travel back to AR1700 - need to cover three map areas - -ACTION_IF (FILE_EXISTS_IN_GAME ~BD7200.are~) BEGIN - COPY_EXISTING ~BD7200.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 1 // y coordinate - fj_box_right = 115 // x coordinate - fj_box_bottom = 315 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1 + (1 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 115 + (1 << 16) - fj_vertex_2 = 115 + (315 << 16) - fj_vertex_3 = 1 + (315 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7200_ar1700a //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7200 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 255 // x coordinate - fj_box_top = 1 // y coordinate - fj_box_right = 385 // x coordinate - fj_box_bottom = 65 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 255 + (1 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 385 + (1 << 16) - fj_vertex_2 = 385 + (65 << 16) - fj_vertex_3 = 255 + (65 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7200_ar1700b //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7200 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 590 // x coordinate - fj_box_top = 1 // y coordinate - fj_box_right = 770 // x coordinate - fj_box_bottom = 65 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 590 + (1 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 770 + (1 << 16) - fj_vertex_2 = 770 + (65 << 16) - fj_vertex_3 = 590 + (65 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7200_ar1700c //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7200 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 1515 // y coordinate - fj_box_right = 75 // x coordinate - fj_box_bottom = 1755 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1 + (1515 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 75 + (1515 << 16) - fj_vertex_2 = 75 + (1755 << 16) - fj_vertex_3 = 1 + (1755 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7200_ar1700d //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7200 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1230 // x coordinate - fj_box_top = 1865 // y coordinate - fj_box_right = 1875 // x coordinate - fj_box_bottom = 1919 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1230 + (1865 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 1875 + (1865 << 16) - fj_vertex_2 = 1875 + (1919 << 16) - fj_vertex_3 = 1230 + (1919 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7200_ar1700e //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7200 //name of exitpoint in destination area - END - BUT_ONLY -END - - -// set area scripts to allow travel from BG2 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN -<<<<<<<< d5/ar1700b.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5AR1700toBD7200","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5AR1700toBD7200","GLOBAL",1) - TriggerActivation("ar1700_bd7200",TRUE) - Continue() -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayAR1700b","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayAR1700b","GLOBAL",1) - TriggerActivation("ar1700_bd7200",FALSE) - Continue() -END ->>>>>>>> - COPY ~d5/ar1700b.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700b.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700b~ END -END - -ACTION_IF (FILE_EXISTS_IN_GAME ~bd7200.are~) BEGIN -<<<<<<<< d5/bd7200_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5BD7200toAR1700","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5BD7200toAR1700","GLOBAL",1) - TriggerActivation("bd7200_ar1700a",TRUE) - TriggerActivation("bd7200_ar1700b",TRUE) - TriggerActivation("bd7200_ar1700c",TRUE) - TriggerActivation("bd7200_ar1700d",TRUE) - TriggerActivation("bd7200_ar1700e",TRUE) -END +/* -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayBD7200","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayBD7200","GLOBAL",1) - TriggerActivation("bd7200_ar1700a",FALSE) - TriggerActivation("bd7200_ar1700b",FALSE) - TriggerActivation("bd7200_ar1700c",FALSE) - TriggerActivation("bd7200_ar1700d",FALSE) - TriggerActivation("bd7200_ar1700e",FALSE) -END ->>>>>>>> - COPY ~d5/bd7200_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7200_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~bd7200~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7200_~ END -END +Incorporate the Imoen is Stone mod +Petrify Imoen in the Waukeen's Promenade cut scene; de-petrify her soon after -// remove crusaders +As far as Charname knows, she is in the same state as Branwen was - so chapter 2 time pressure is lessened -/* use the area script -<<<<<<<< d5/bdkher_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - AreaCheck("bd7230") - Global("D5NoKeherrem","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5NoKeherrem","GLOBAL",1) - DestroySelf() -END ->>>>>>>> -COPY ~d5/bdkher_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bdkher_.baf~ -EXTEND_BOTTOM ~bdkher.bcs~ ~weidu_external/%MOD_FOLDER%/compile/310/bdkher_.baf~ END */ -<<<<<<<< d5/bd7230_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - InMyArea("bdkharmy") -THEN - RESPONSE #100 - ActionOverride("bdkharmy",DestroySelf()) -END - -IF - Global("D5SkipSoD","GLOBAL",1) - InMyArea("bdkher1") -THEN - RESPONSE #100 - ActionOverride("bdkher1",DestroySelf()) -END - -IF - Global("D5SkipSoD","GLOBAL",1) - InMyArea("bdkher2") -THEN - RESPONSE #100 - ActionOverride("bdkher2",DestroySelf()) -END ->>>>>>>> -COPY ~d5/bd7230_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7230_.baf~ -LAF cd_extend_bg_area_script STR_VAR area = ~bd7230~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7230_~ END - - -// fix dialogues - - -END // end function - - //___________________________________________________________________________________ // -DEFINE_ACTION_FUNCTION sod_remix_bloodbark_grove BEGIN - -// add map travel entrance from AR1700 - -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN - COPY_EXISTING ~AR1700.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 3455 // x coordinate - fj_box_top = 1505 // y coordinate - fj_box_right = 3519 // x coordinate - fj_box_bottom = 1595 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 3455 + (1505 << 16) // start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 3519 + (1505 << 16) - fj_vertex_2 = 3519 + (1595 << 16) - fj_vertex_3 = 3455 + (1595 << 16) - STR_VAR - fj_structure_type = region - fj_name = ar1700_bd7400 //name of this travel region so you can address it via script etc. - fj_destination_area = bd7400 //name of the destination area - fj_destination_name = ExitNW //name of exitpoint in destination area - END - -/* add exitpoint for backwards travel */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_loc_x = 3280 // x coordinate where the group will spawn - fj_loc_y = 1580 // y coordinate where the group will spawn - fj_orientation = 4 // W face direction in which group is looking after coming through - STR_VAR - fj_structure_type = entrance - fj_name = d5bd7400 // name of this new exitpoint so it can be referenced for the travel region of the other area - END - BUT_ONLY -END - - -// add travel back to AR1700 - need to cover ___ map areas - -ACTION_IF (FILE_EXISTS_IN_GAME ~BD7400.are~) BEGIN - COPY_EXISTING ~BD7400.are~ ~override~ - /* add travel region that links to other area */ - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 430 // y coordinate - fj_box_right = 75 // x coordinate - fj_box_bottom = 845 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1 + (430 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 75 + (430 << 16) - fj_vertex_2 = 75 + (845 << 16) - fj_vertex_3 = 1 + (845 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700a //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 1 // x coordinate - fj_box_top = 990 // y coordinate - fj_box_right = 75 // x coordinate - fj_box_bottom = 1135 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 1 + (990 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 75 + (990 << 16) - fj_vertex_2 = 75 + (1135 << 16) - fj_vertex_3 = 1 + (1135 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700b //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 30 // x coordinate - fj_box_top = 1870 // y coordinate - fj_box_right = 755 // x coordinate - fj_box_bottom = 1919 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 30 + (1870 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 755 + (1870 << 16) - fj_vertex_2 = 755 + (1919 << 16) - fj_vertex_3 = 30 + (1919 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700c //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 2500 // x coordinate - fj_box_top = 60 // y coordinate - fj_box_right = 2559 // x coordinate - fj_box_bottom = 415 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 2500 + (60 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2559 + (60 << 16) - fj_vertex_2 = 2559 + (415 << 16) - fj_vertex_3 = 2500 + (415 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700d //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 2300 // x coordinate - fj_box_top = 1 // y coordinate - fj_box_right = 2559 // x coordinate - fj_box_bottom = 60 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 2300 + (1 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 2559 + (1 << 16) - fj_vertex_2 = 2559 + (60 << 16) - fj_vertex_3 = 2300 + (60 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700e //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - - LAUNCH_PATCH_FUNCTION ~fj_are_structure~ - INT_VAR - fj_type = 2 //travel - kind of trigger area - fj_box_left = 540 // x coordinate - fj_box_top = 1 // y coordinate - fj_box_right = 1125 // x coordinate - fj_box_bottom = 65 // y coordinate - fj_cursor_idx = 30 //door - mouse cursor symbol - fj_flags = 4 - fj_vertex_0 = 540 + (1 << 16) //start with the lowest point: x coodinate - y coordinate - fj_vertex_1 = 1125 + (1 << 16) - fj_vertex_2 = 1125 + (65 << 16) - fj_vertex_3 = 540 + (65 << 16) - STR_VAR - fj_structure_type = region - fj_name = bd7400_ar1700f //name of this travel region so you can address it via script etc. - fj_destination_area = AR1700 //name of the destination area - fj_destination_name = d5bd7400 //name of exitpoint in destination area - END - BUT_ONLY -END - - -// set area scripts to allow travel from BG2 -ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN -<<<<<<<< d5/ar1700c.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5AR1700toBD7400","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5AR1700toBD7400","GLOBAL",1) - TriggerActivation("ar1700_bd7400",TRUE) - Continue() -END -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayAR1700c","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayAR1700c","GLOBAL",1) - TriggerActivation("ar1700_bd7400",FALSE) - Continue() -END ->>>>>>>> - COPY ~d5/ar1700c.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700c.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700c~ END -END +// -ACTION_IF (FILE_EXISTS_IN_GAME ~bd7400.are~) BEGIN -<<<<<<<< d5/bd7400_.baf -IF - Global("D5SkipSoD","GLOBAL",1) - Global("D5BD7400toAR1700","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5BD7400toAR1700","GLOBAL",1) - TriggerActivation("bd7400_ar1700a",TRUE) - TriggerActivation("bd7400_ar1700b",TRUE) - TriggerActivation("bd7400_ar1700c",TRUE) - TriggerActivation("bd7400_ar1700d",TRUE) - TriggerActivation("bd7400_ar1700e",TRUE) - TriggerActivation("bd7400_ar1700f",TRUE) -END - -IF - Global("D5SkipSoD","GLOBAL",0) - Global("D5StayBD7400","GLOBAL",0) -THEN - RESPONSE #100 - SetGlobal("D5StayBD7400","GLOBAL",1) - TriggerActivation("bd7400_ar1700a",FALSE) - TriggerActivation("bd7400_ar1700b",FALSE) - TriggerActivation("bd7400_ar1700c",FALSE) - TriggerActivation("bd7400_ar1700d",FALSE) - TriggerActivation("bd7400_ar1700e",FALSE) - TriggerActivation("bd7400_ar1700f",FALSE) -END ->>>>>>>> - COPY ~d5/bd7400_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7400_.baf~ - LAF cd_extend_bg_area_script STR_VAR area = ~bd7400~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7400_~ END -END - - -// fix dialogues --> not even necessary! - - -END // end function //___________________________________________________________________________________ // -DEFINE_ACTION_FUNCTION sod_remix_random_cave BEGIN - END // end function - -//___________________________________________________________________________________ -// - -/* -DEFINE_ACTION_FUNCTION sod_remix_underground_river BEGIN - - -END // end function -*/ - //////////////////// //////////////////// //////////////////// diff --git a/Reflections/comp/comp_320.tpa b/Reflections/comp/comp_320.tpa index 7a0b45a..043f356 100755 --- a/Reflections/comp/comp_320.tpa +++ b/Reflections/comp/comp_320.tpa @@ -1,23 +1,102 @@ -DEFINE_ACTION_FUNCTION imoen_is_stone BEGIN +DEFINE_ACTION_FUNCTION imoen_can_die BEGIN /* -Incorporate the Imoen is Stone mod +Incorporate the Imoen Can Die mod -Petrify Imoen in the Waukeen's Promenade cut scene; de-petrify her soon after +Add a dialogue option with Imoen in the Spellhold Dungeon -As far as Charname knows, she is in the same state as Branwen was - so chapter 2 time pressure is lessened +One option has the ritual being too much for her, and she perishes + +This way you can take other party members instead, and not feel bad about it! */ //___________________________________________________________________________________ // - - -// - +ACTION_IF GAME_IS ~bgt~ THEN BEGIN + OUTER_SPRINT ~ENDOFBG1_2~ ~Global("ENDOFBG1","GLOBAL",2)~ +END + +ACTION_IF GAME_IS ~eet bg2ee~ THEN BEGIN + OUTER_SPRINT ~ENDOFBG1_2~ ~True()~ +END + +ACTION_IF (GAME_IS ~tob~ AND NOT GAME_IS ~bgt~) THEN BEGIN + OUTER_SPRINT ~ENDOFBG1_2~ ~True()~ +END + +// scripted death + +<<<<<<<< d5/c#icd001.baf +IF + True() +THEN + RESPONSE #100 + CutSceneID(Player1) + MoveViewObject("IMOEN2",INSTANT) +ActionOverride("IMOEN2",ApplySpell("IMOEN2",WIZARD_FINGER_OF_DEATH_IGNORE_RESISTANCE)) + Wait(1) + CreateVisualEffectObject("SPSTRENH","IMOEN2") + ActionOverride("IMOEN2",DestroySelf()) + Wait(2) + EndCutSceneMode() + ActionOverride(Player1,StartDialog("player1",Player1)) +END +>>>>>>>> +COPY ~d5/c#icd001.baf~ ~weidu_external/%MOD_FOLDER%/compile/330/c#icd001.baf~ +COMPILE ~weidu_external/%MOD_FOLDER%/compile/330/c#icd001.baf~ + + +// new dialogue and reactions in Spellhold + +<<<<<<<< d5/imoen_maze.d +APPEND IMOEN2 + +IF WEIGHT #-1 +~%ENDOFBG1_2%~ THEN imoen_can_die +SAY @33001 +++ @33002 + 1 //Imoen's original first line +++ @33003 + imoen_dies_01 +END + +IF ~~ THEN imoen_dies_01 +SAY @33004 +IF ~~ THEN DO ~SetGlobal("C#ICD_ImoenIsDead","GLOBAL",1) + ClearAllActions() + StartCutSceneMode() + StartCutScene("c#icd001")~ EXIT +END + +END // end append + +CHAIN +IF WEIGHT #-1 +~Global("C#ICD_ImoenIsDead","GLOBAL",1)~ THEN Player1 imoen_dies_02 +~(You can do nothing but watch, as Imoen's body disintegrates into nothing.)~ +== BAERIE IF ~InParty("aerie") InMyArea("aerie") !StateCheck("aerie",CD_STATE_NOTVALID)~ THEN @33011 +== BJAHEIR IF ~InParty("JAHEIRA") InMyArea("JAHEIRA") !StateCheck("JAHEIRA",CD_STATE_NOTVALID)~ THEN @33012 +== BMINSC IF ~InParty("MINSC") InMyArea("MINSC") !StateCheck("MINSC",CD_STATE_NOTVALID) HasItem("MISC84","MINSC")~ THEN @33013 +== BMINSC IF ~InParty("MINSC") InMyArea("MINSC") !StateCheck("MINSC",CD_STATE_NOTVALID) !HasItem("MISC84","MINSC")~ THEN @33014 +== BKORGAN IF ~InParty("KORGAN") InMyArea("KORGAN") !StateCheck("KORGAN",CD_STATE_NOTVALID)~ THEN @33015 +== BEDWIN IF ~InParty("EDWIN") InMyArea("EDWIN") !StateCheck("EDWIN",CD_STATE_NOTVALID)~ THEN @33016 +== BHAERDA IF ~InParty("HAERDALIS") InMyArea("HAERDALIS") !StateCheck("HAERDALIS",CD_STATE_NOTVALID)~ THEN @33017 +== BNALIA IF ~InParty("nalia") InMyArea("nalia") !StateCheck("nalia",CD_STATE_NOTVALID)~ THEN @33018 +== BVALYGA IF ~InParty("valygar") InMyArea("valygar") !StateCheck("valygar",CD_STATE_NOTVALID)~ THEN @33019 +== BVICONI IF ~InParty("viconia") InMyArea("viconia") !StateCheck("viconia",CD_STATE_NOTVALID)~ THEN @33020 +== BMAZZY IF ~InParty("mazzy") InMyArea("mazzy") !StateCheck("mazzy",CD_STATE_NOTVALID)~ THEN @33021 +== BCERND IF ~InParty("cernd") InMyArea("cernd") !StateCheck("cernd",CD_STATE_NOTVALID)~ THEN @33022 +== BJAN IF ~InParty("jan") InMyArea("jan") !StateCheck("jan",CD_STATE_NOTVALID)~ THEN @33023 +== BANOMEN IF ~InParty("anomen") InMyArea("anomen") !StateCheck("anomen",CD_STATE_NOTVALID) Global("AnomenIsNotknight","GLOBAL",0)~ THEN @33024 +== BANOMEN IF ~InParty("anomen") InMyArea("anomen") !StateCheck("anomen",CD_STATE_NOTVALID) Global("AnomenIsNotknight","GLOBAL",1)~ THEN @33025 +== BKELDOR IF ~InParty("KELDORN") InMyArea("KELDORN") !StateCheck("KELDORN",CD_STATE_NOTVALID)~ THEN @33026 +END +IF ~~ THEN DO ~SetGlobal("C#ICD_ImoenIsDead","GLOBAL",2)~ SOLVED_JOURNAL @33010 EXIT +>>>>>>>> +COPY ~d5/imoen_maze.d~ ~weidu_external/%MOD_FOLDER%/compile/330/imoen_maze.d~ +COMPILE ~weidu_external/%MOD_FOLDER%/compile/330/imoen_maze.d~ EVALUATE_BUFFER //___________________________________________________________________________________ diff --git a/Reflections/comp/comp_330.tpa b/Reflections/comp/comp_330.tpa index 043f356..9023110 100755 --- a/Reflections/comp/comp_330.tpa +++ b/Reflections/comp/comp_330.tpa @@ -1,110 +1,998 @@ -DEFINE_ACTION_FUNCTION imoen_can_die BEGIN - /* -Incorporate the Imoen Can Die mod +TO DO: + +***** +- if player skips SoD, add entrance to Coast Way Forest from... SW edge of Umar Hills? + -- and disable Skie scene + --- and remove her two crusaders -Add a dialogue option with Imoen in the Spellhold Dungeon +***** +- if player skips SoD, add entrance to Bloodbark Grove from... SW edge of druid grove? -One option has the ritual being too much for her, and she perishes +***** +- if player skips SoD, add entrance to Forest of Wyrms from... SE edge of Small Teeth Pass? + -- and enable this area on the map + -- remove crusaders from temple of cyric + -- remove dialogue about recruitment or the crusade -This way you can take other party members instead, and not feel bad about it! +***** +- if player skips SoD, move the Coldhearth dungeon to Small Teeth Pass @ 2060x12455 + -- and enable this area on the map + --- OR to Umar's Cave, @ 1405x725 + -- check skip variable, enable entrance on map + -- check initial dialogue for references to crusade + -- disable final recruitment dialogue + -- disable recruit coldhearth dialogue + +***** +- if player skips SoD, move underground river area to...beneath the bridge district? + -- change the crusaders to smugglers + -- remove the northwest exit and its guardians + -- kill the crusaders fighting against the drow + -- remove any druid dialogue relating to the crusade + -- remove crusader patrols */ + + +DEFINE_ACTION_FUNCTION reveal_small_teeth BEGIN + +// enable AR1700 on main map + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR0020.are~) BEGIN +<<<<<<<< d5/ar0020_.baf +IF + Global("D5SkipSoD","GLOBAL",0) + GlobalLT("BD_HAVE_SOD","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5SkipSoD","GLOBAL",1) + SetGlobal("D5_AR1700_Revealed","GLOBAL",1) + RevealAreaOnMap("AR1700") + Continue() +END + +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5_AR1700_Revealed","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5_AR1700_Revealed","GLOBAL",1) + RevealAreaOnMap("AR1700") + Continue() +END +>>>>>>>> + COPY ~d5/ar0020_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar0020_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~ar0020~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar0020_~ END +END + +END // end function + //___________________________________________________________________________________ // -ACTION_IF GAME_IS ~bgt~ THEN BEGIN - OUTER_SPRINT ~ENDOFBG1_2~ ~Global("ENDOFBG1","GLOBAL",2)~ +DEFINE_ACTION_FUNCTION sod_remix_coldhearth_dungeon BEGIN + +<<<<<<<< d5/bdcoldh+.d +ADD_TRANS_TRIGGER BDCOLDH 25 ~Global("D5SkipSoD","GLOBAL",0)~ DO 0 + +ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 1 + +ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 2 + +ADD_TRANS_TRIGGER BDCOLDH 26 ~Global("D5SkipSoD","GLOBAL",0)~ DO 3 + +ADD_TRANS_TRIGGER BDCOLDH 32 ~Global("D5SkipSoD","GLOBAL",0)~ DO 1 +>>>>>>>> +COPY ~d5/bdcoldh+.d~ ~weidu_external/%MOD_FOLDER%/compile/310/bdcoldh+.d~ +COMPILE ~weidu_external/%MOD_FOLDER%/compile/310/bdcoldh+.d~ + +// don't even need to do this for brother deepvein! ...I think + + +// add dungeon entrance to ar1700 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN + COPY_EXISTING ~AR1700.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1940 // x coordinate + fj_box_top = 1225 // y coordinate + fj_box_right = 2075 // x coordinate + fj_box_bottom = 1365 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1940 + (1225 << 16) // start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2075 + (1225 << 16) + fj_vertex_2 = 2075 + (1365 << 16) + fj_vertex_3 = 1940 + (1365 << 16) + STR_VAR + fj_structure_type = region + fj_name = ar1700_bd1100 //name of this travel region so you can address it via script etc. + fj_destination_area = bd1100 //name of the destination area + fj_destination_name = d5ar1700 //name of exitpoint in destination area + END + +/* add exitpoint for backwards travel */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_loc_x = 2120 // x coordinate where the group will spawn + fj_loc_y = 1500 // y coordinate where the group will spawn + fj_orientation = 12 // E face direction in which group is looking after coming through + STR_VAR + fj_structure_type = entrance + fj_name = d5bd1100 // name of this new exitpoint so it can be referenced for the travel region of the other area + END + BUT_ONLY END -ACTION_IF GAME_IS ~eet bg2ee~ THEN BEGIN - OUTER_SPRINT ~ENDOFBG1_2~ ~True()~ + +// modify dungeon exit to point back to BG2 + +ACTION_IF (FILE_EXISTS_IN_GAME ~BD1100.are~) BEGIN + COPY_EXISTING ~BD1100.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 150 // x coordinate + fj_box_top = 1160 // y coordinate + fj_box_right = 370 // x coordinate + fj_box_bottom = 1350 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 150 + (1160 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 370 + (1160 << 16) + fj_vertex_2 = 370 + (1350 << 16) + fj_vertex_3 = 150 + (1350 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd1100_ar1700 //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd1100 //name of exitpoint in destination area + END + +/* add exitpoint for backwards travel */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_loc_x = 375 // x coordinate where the group will spawn + fj_loc_y = 1330 // y coordinate where the group will spawn + fj_orientation = 14 // SE - face direction in which group is looking after coming through + STR_VAR + fj_structure_type = entrance + fj_name = d5ar1700 //name of this new exitpoint so it can be referenced for the travel region of the other area + END + BUT_ONLY +END + + +// set area scripts to allow travel from BG2 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN +<<<<<<<< d5/ar1700a.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5AR1700toBD1100","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5AR1700toBD1100","GLOBAL",1) + TriggerActivation("ar1700_bd1100",TRUE) + Continue() END -ACTION_IF (GAME_IS ~tob~ AND NOT GAME_IS ~bgt~) THEN BEGIN - OUTER_SPRINT ~ENDOFBG1_2~ ~True()~ +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayAR1700a","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayAR1700a","GLOBAL",1) + TriggerActivation("ar1700_bd1100",FALSE) + Continue() +END + +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5HeresDaran","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5HeresDaran","GLOBAL",1) + CreateCreature("bddaran",[2345.1570],6) + CreateCreature("zombie",[2240.1440],14) + CreateCreature("zombie",[2155.1530],12) + Continue() +END +>>>>>>>> + COPY ~d5/ar1700a.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700a.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700a~ END END -// scripted death +ACTION_IF (FILE_EXISTS_IN_GAME ~bd1100.are~) BEGIN +<<<<<<<< d5/bd1100_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5BD1100toAR1700","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5BD1100toAR1700","GLOBAL",1) + TriggerActivation("bd1100_ar1700",TRUE) + TriggerActivation("tranbd1000",FALSE) + Continue() +END -<<<<<<<< d5/c#icd001.baf IF - True() + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayBD1100","GLOBAL",0) THEN RESPONSE #100 - CutSceneID(Player1) - MoveViewObject("IMOEN2",INSTANT) -ActionOverride("IMOEN2",ApplySpell("IMOEN2",WIZARD_FINGER_OF_DEATH_IGNORE_RESISTANCE)) - Wait(1) - CreateVisualEffectObject("SPSTRENH","IMOEN2") - ActionOverride("IMOEN2",DestroySelf()) - Wait(2) - EndCutSceneMode() - ActionOverride(Player1,StartDialog("player1",Player1)) + SetGlobal("D5StayBD1100","GLOBAL",1) + TriggerActivation("bd1100_ar1700",FALSE) + Continue() +END +>>>>>>>> + COPY ~d5/bd1100_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd1100_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~bd1100~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd1100_~ END +END + + +// make Daran talk to us + +<<<<<<<< d5/bddar++.d +REPLACE_SAY BDDARAN 19 @31091 + +APPEND BDDARAN + +IF WEIGHT #-1 ~AreaCheck("AR1700")~ BEGIN d5bddaran_0 + SAY @31092 + IF ~~ GOTO 2 +END + END >>>>>>>> -COPY ~d5/c#icd001.baf~ ~weidu_external/%MOD_FOLDER%/compile/330/c#icd001.baf~ -COMPILE ~weidu_external/%MOD_FOLDER%/compile/330/c#icd001.baf~ - - -// new dialogue and reactions in Spellhold - -<<<<<<<< d5/imoen_maze.d -APPEND IMOEN2 - -IF WEIGHT #-1 -~%ENDOFBG1_2%~ THEN imoen_can_die -SAY @33001 -++ @33002 + 1 //Imoen's original first line -++ @33003 + imoen_dies_01 -END - -IF ~~ THEN imoen_dies_01 -SAY @33004 -IF ~~ THEN DO ~SetGlobal("C#ICD_ImoenIsDead","GLOBAL",1) - ClearAllActions() - StartCutSceneMode() - StartCutScene("c#icd001")~ EXIT -END - -END // end append - -CHAIN -IF WEIGHT #-1 -~Global("C#ICD_ImoenIsDead","GLOBAL",1)~ THEN Player1 imoen_dies_02 -~(You can do nothing but watch, as Imoen's body disintegrates into nothing.)~ -== BAERIE IF ~InParty("aerie") InMyArea("aerie") !StateCheck("aerie",CD_STATE_NOTVALID)~ THEN @33011 -== BJAHEIR IF ~InParty("JAHEIRA") InMyArea("JAHEIRA") !StateCheck("JAHEIRA",CD_STATE_NOTVALID)~ THEN @33012 -== BMINSC IF ~InParty("MINSC") InMyArea("MINSC") !StateCheck("MINSC",CD_STATE_NOTVALID) HasItem("MISC84","MINSC")~ THEN @33013 -== BMINSC IF ~InParty("MINSC") InMyArea("MINSC") !StateCheck("MINSC",CD_STATE_NOTVALID) !HasItem("MISC84","MINSC")~ THEN @33014 -== BKORGAN IF ~InParty("KORGAN") InMyArea("KORGAN") !StateCheck("KORGAN",CD_STATE_NOTVALID)~ THEN @33015 -== BEDWIN IF ~InParty("EDWIN") InMyArea("EDWIN") !StateCheck("EDWIN",CD_STATE_NOTVALID)~ THEN @33016 -== BHAERDA IF ~InParty("HAERDALIS") InMyArea("HAERDALIS") !StateCheck("HAERDALIS",CD_STATE_NOTVALID)~ THEN @33017 -== BNALIA IF ~InParty("nalia") InMyArea("nalia") !StateCheck("nalia",CD_STATE_NOTVALID)~ THEN @33018 -== BVALYGA IF ~InParty("valygar") InMyArea("valygar") !StateCheck("valygar",CD_STATE_NOTVALID)~ THEN @33019 -== BVICONI IF ~InParty("viconia") InMyArea("viconia") !StateCheck("viconia",CD_STATE_NOTVALID)~ THEN @33020 -== BMAZZY IF ~InParty("mazzy") InMyArea("mazzy") !StateCheck("mazzy",CD_STATE_NOTVALID)~ THEN @33021 -== BCERND IF ~InParty("cernd") InMyArea("cernd") !StateCheck("cernd",CD_STATE_NOTVALID)~ THEN @33022 -== BJAN IF ~InParty("jan") InMyArea("jan") !StateCheck("jan",CD_STATE_NOTVALID)~ THEN @33023 -== BANOMEN IF ~InParty("anomen") InMyArea("anomen") !StateCheck("anomen",CD_STATE_NOTVALID) Global("AnomenIsNotknight","GLOBAL",0)~ THEN @33024 -== BANOMEN IF ~InParty("anomen") InMyArea("anomen") !StateCheck("anomen",CD_STATE_NOTVALID) Global("AnomenIsNotknight","GLOBAL",1)~ THEN @33025 -== BKELDOR IF ~InParty("KELDORN") InMyArea("KELDORN") !StateCheck("KELDORN",CD_STATE_NOTVALID)~ THEN @33026 -END -IF ~~ THEN DO ~SetGlobal("C#ICD_ImoenIsDead","GLOBAL",2)~ SOLVED_JOURNAL @33010 EXIT +COMPILE ~d5/bddar++.d~ + + +// robert is now your uncle + +END // end function + + +//___________________________________________________________________________________ +// + +DEFINE_ACTION_FUNCTION sod_remix_coast_way_forest BEGIN + +// rewrite BDISABEL state 50 + +<<<<<<<< d5/bdisab+.d +REPLACE_SAY BDISABEL 50 @31093 >>>>>>>> -COPY ~d5/imoen_maze.d~ ~weidu_external/%MOD_FOLDER%/compile/330/imoen_maze.d~ -COMPILE ~weidu_external/%MOD_FOLDER%/compile/330/imoen_maze.d~ EVALUATE_BUFFER +COPY ~d5/bdisab+.d~ ~weidu_external/%MOD_FOLDER%/compile/310/bdisab+.d~ +COMPILE ~weidu_external/%MOD_FOLDER%/compile/310/bdisab+.d~ + + +// add map travel entrance from AR1300 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1300.are~) BEGIN + COPY_EXISTING ~AR1300.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1 // x coordinate + fj_box_top = 2050 // y coordinate + fj_box_right = 100 // x coordinate + fj_box_bottom = 3839 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1 + (2050 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 100 + (2050 << 16) + fj_vertex_2 = 100 + (3839 << 16) + fj_vertex_3 = 1 + (3839 << 16) + STR_VAR + fj_structure_type = region + fj_name = ar1700_bd7000 //name of this travel region so you can address it via script etc. + fj_destination_area = bd7000 //name of the destination area + fj_destination_name = ExitNE //name of exitpoint in destination area + END + +/* add exitpoint for backwards travel */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_loc_x = 175 // x coordinate where the group will spawn + fj_loc_y = 2795 // y coordinate where the group will spawn + fj_orientation = 12 // E face direction in which group is looking after coming through + STR_VAR + fj_structure_type = entrance + fj_name = d5bd7000 // name of this new exitpoint so it can be referenced for the travel region of the other area + END + BUT_ONLY +END + + +// add travel back to AR1300 - need to cover four map edges + +ACTION_IF (FILE_EXISTS_IN_GAME ~BD7000.are~) BEGIN + COPY_EXISTING ~BD7000.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 2495 // x coordinate + fj_box_top = 165 // y coordinate + fj_box_right = 2559 // x coordinate + fj_box_bottom = 480 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 2495 + (165 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2559 + (165 << 16) + fj_vertex_2 = 2559 + (480 << 16) + fj_vertex_3 = 2495 + (480 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7000_ar1300a //name of this travel region so you can address it via script etc. + fj_destination_area = AR1300 //name of the destination area + fj_destination_name = d5bd7000 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 2495 // x coordinate + fj_box_top = 1640 // y coordinate + fj_box_right = 2559 // x coordinate + fj_box_bottom = 1780 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 2495 + (1640 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2559 + (1640 << 16) + fj_vertex_2 = 2559 + (1780 << 16) + fj_vertex_3 = 2495 + (1780 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7000_ar1300b //name of this travel region so you can address it via script etc. + fj_destination_area = AR1300 //name of the destination area + fj_destination_name = d5bd7000 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 2150 // x coordinate + fj_box_top = 1875 // y coordinate + fj_box_right = 2280 // x coordinate + fj_box_bottom = 1919 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 2150 + (1875 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2280 + (1875 << 16) + fj_vertex_2 = 2280 + (1919 << 16) + fj_vertex_3 = 2150 + (1919 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7000_ar1300c //name of this travel region so you can address it via script etc. + fj_destination_area = AR1300 //name of the destination area + fj_destination_name = d5bd7000 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 410 // x coordinate + fj_box_top = 1875 // y coordinate + fj_box_right = 1155 // x coordinate + fj_box_bottom = 1919 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 410 + (1875 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 1155 + (1875 << 16) + fj_vertex_2 = 1155 + (1919 << 16) + fj_vertex_3 = 410 + (1919 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7000_ar1300d //name of this travel region so you can address it via script etc. + fj_destination_area = AR1300 //name of the destination area + fj_destination_name = d5bd7000 //name of exitpoint in destination area + END + BUT_ONLY +END + + +// set area scripts to allow travel from BG2 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1300.are~) BEGIN +<<<<<<<< d5/ar1300_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5AR1300toBD7000","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5AR1300toBD7000","GLOBAL",1) + TriggerActivation("ar1700_bd7000",TRUE) +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayAR1300","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayAR1300","GLOBAL",1) + TriggerActivation("ar1700_bd7000",FALSE) +END +>>>>>>>> + COPY ~d5/ar1300_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1300_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~ar1300~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1300_~ END +END + +ACTION_IF (FILE_EXISTS_IN_GAME ~bd7000.are~) BEGIN +<<<<<<<< d5/bd7000_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5BD7000toAR1300","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5BD7000toAR1300","GLOBAL",1) + TriggerActivation("bd7000_ar1300a",TRUE) + TriggerActivation("bd7000_ar1300b",TRUE) + TriggerActivation("bd7000_ar1300c",TRUE) + TriggerActivation("bd7000_ar1300d",TRUE) +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayBD7000","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayBD7000","GLOBAL",1) + TriggerActivation("bd7000_ar1300a",FALSE) + TriggerActivation("bd7000_ar1300b",FALSE) + TriggerActivation("bd7000_ar1300c",FALSE) + TriggerActivation("bd7000_ar1300d",FALSE) +END +>>>>>>>> + COPY ~d5/bd7000_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7000_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~bd7000~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7000_~ END +END + + +// that's...it? + +// maybe rewrite Tsolak's combat script? he should be stronger + + +END // end function //___________________________________________________________________________________ // +DEFINE_ACTION_FUNCTION sod_remix_wyrm_forest BEGIN + +// add map travel entrance from AR1700 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN + COPY_EXISTING ~AR1700.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1825 // x coordinate + fj_box_top = 3065 // y coordinate + fj_box_right = 2880 // x coordinate + fj_box_bottom = 3135 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1825 + (3065 << 16) // start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2880 + (3065 << 16) + fj_vertex_2 = 2880 + (3135 << 16) + fj_vertex_3 = 1825 + (3135 << 16) + STR_VAR + fj_structure_type = region + fj_name = ar1700_bd7200 //name of this travel region so you can address it via script etc. + fj_destination_area = bd7200 //name of the destination area + fj_destination_name = ExitNW //name of exitpoint in destination area + END + +/* add exitpoint for backwards travel */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_loc_x = 2515 // x coordinate where the group will spawn + fj_loc_y = 3045 // y coordinate where the group will spawn + fj_orientation = 8 // N face direction in which group is looking after coming through + STR_VAR + fj_structure_type = entrance + fj_name = d5bd7200 // name of this new exitpoint so it can be referenced for the travel region of the other area + END + BUT_ONLY +END + + +// add travel back to AR1700 - need to cover three map areas + +ACTION_IF (FILE_EXISTS_IN_GAME ~BD7200.are~) BEGIN + COPY_EXISTING ~BD7200.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1 // x coordinate + fj_box_top = 1 // y coordinate + fj_box_right = 115 // x coordinate + fj_box_bottom = 315 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1 + (1 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 115 + (1 << 16) + fj_vertex_2 = 115 + (315 << 16) + fj_vertex_3 = 1 + (315 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7200_ar1700a //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7200 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 255 // x coordinate + fj_box_top = 1 // y coordinate + fj_box_right = 385 // x coordinate + fj_box_bottom = 65 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 255 + (1 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 385 + (1 << 16) + fj_vertex_2 = 385 + (65 << 16) + fj_vertex_3 = 255 + (65 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7200_ar1700b //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7200 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 590 // x coordinate + fj_box_top = 1 // y coordinate + fj_box_right = 770 // x coordinate + fj_box_bottom = 65 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 590 + (1 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 770 + (1 << 16) + fj_vertex_2 = 770 + (65 << 16) + fj_vertex_3 = 590 + (65 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7200_ar1700c //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7200 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1 // x coordinate + fj_box_top = 1515 // y coordinate + fj_box_right = 75 // x coordinate + fj_box_bottom = 1755 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1 + (1515 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 75 + (1515 << 16) + fj_vertex_2 = 75 + (1755 << 16) + fj_vertex_3 = 1 + (1755 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7200_ar1700d //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7200 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1230 // x coordinate + fj_box_top = 1865 // y coordinate + fj_box_right = 1875 // x coordinate + fj_box_bottom = 1919 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1230 + (1865 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 1875 + (1865 << 16) + fj_vertex_2 = 1875 + (1919 << 16) + fj_vertex_3 = 1230 + (1919 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7200_ar1700e //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7200 //name of exitpoint in destination area + END + BUT_ONLY +END + + +// set area scripts to allow travel from BG2 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN +<<<<<<<< d5/ar1700b.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5AR1700toBD7200","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5AR1700toBD7200","GLOBAL",1) + TriggerActivation("ar1700_bd7200",TRUE) + Continue() +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayAR1700b","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayAR1700b","GLOBAL",1) + TriggerActivation("ar1700_bd7200",FALSE) + Continue() +END +>>>>>>>> + COPY ~d5/ar1700b.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700b.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700b~ END +END + +ACTION_IF (FILE_EXISTS_IN_GAME ~bd7200.are~) BEGIN +<<<<<<<< d5/bd7200_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5BD7200toAR1700","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5BD7200toAR1700","GLOBAL",1) + TriggerActivation("bd7200_ar1700a",TRUE) + TriggerActivation("bd7200_ar1700b",TRUE) + TriggerActivation("bd7200_ar1700c",TRUE) + TriggerActivation("bd7200_ar1700d",TRUE) + TriggerActivation("bd7200_ar1700e",TRUE) +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayBD7200","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayBD7200","GLOBAL",1) + TriggerActivation("bd7200_ar1700a",FALSE) + TriggerActivation("bd7200_ar1700b",FALSE) + TriggerActivation("bd7200_ar1700c",FALSE) + TriggerActivation("bd7200_ar1700d",FALSE) + TriggerActivation("bd7200_ar1700e",FALSE) +END +>>>>>>>> + COPY ~d5/bd7200_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7200_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~bd7200~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7200_~ END +END + + +// remove crusaders + +/* use the area script +<<<<<<<< d5/bdkher_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + AreaCheck("bd7230") + Global("D5NoKeherrem","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5NoKeherrem","GLOBAL",1) + DestroySelf() +END +>>>>>>>> +COPY ~d5/bdkher_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bdkher_.baf~ +EXTEND_BOTTOM ~bdkher.bcs~ ~weidu_external/%MOD_FOLDER%/compile/310/bdkher_.baf~ END +*/ + +<<<<<<<< d5/bd7230_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + InMyArea("bdkharmy") +THEN + RESPONSE #100 + ActionOverride("bdkharmy",DestroySelf()) +END + +IF + Global("D5SkipSoD","GLOBAL",1) + InMyArea("bdkher1") +THEN + RESPONSE #100 + ActionOverride("bdkher1",DestroySelf()) +END + +IF + Global("D5SkipSoD","GLOBAL",1) + InMyArea("bdkher2") +THEN + RESPONSE #100 + ActionOverride("bdkher2",DestroySelf()) +END +>>>>>>>> +COPY ~d5/bd7230_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7230_.baf~ +LAF cd_extend_bg_area_script STR_VAR area = ~bd7230~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7230_~ END + + +// fix dialogues + + +END // end function + + +//___________________________________________________________________________________ +// + +DEFINE_ACTION_FUNCTION sod_remix_bloodbark_grove BEGIN + +// add map travel entrance from AR1700 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN + COPY_EXISTING ~AR1700.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 3455 // x coordinate + fj_box_top = 1505 // y coordinate + fj_box_right = 3519 // x coordinate + fj_box_bottom = 1595 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 3455 + (1505 << 16) // start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 3519 + (1505 << 16) + fj_vertex_2 = 3519 + (1595 << 16) + fj_vertex_3 = 3455 + (1595 << 16) + STR_VAR + fj_structure_type = region + fj_name = ar1700_bd7400 //name of this travel region so you can address it via script etc. + fj_destination_area = bd7400 //name of the destination area + fj_destination_name = ExitNW //name of exitpoint in destination area + END + +/* add exitpoint for backwards travel */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_loc_x = 3280 // x coordinate where the group will spawn + fj_loc_y = 1580 // y coordinate where the group will spawn + fj_orientation = 4 // W face direction in which group is looking after coming through + STR_VAR + fj_structure_type = entrance + fj_name = d5bd7400 // name of this new exitpoint so it can be referenced for the travel region of the other area + END + BUT_ONLY +END + + +// add travel back to AR1700 - need to cover ___ map areas + +ACTION_IF (FILE_EXISTS_IN_GAME ~BD7400.are~) BEGIN + COPY_EXISTING ~BD7400.are~ ~override~ + /* add travel region that links to other area */ + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1 // x coordinate + fj_box_top = 430 // y coordinate + fj_box_right = 75 // x coordinate + fj_box_bottom = 845 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1 + (430 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 75 + (430 << 16) + fj_vertex_2 = 75 + (845 << 16) + fj_vertex_3 = 1 + (845 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700a //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 1 // x coordinate + fj_box_top = 990 // y coordinate + fj_box_right = 75 // x coordinate + fj_box_bottom = 1135 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 1 + (990 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 75 + (990 << 16) + fj_vertex_2 = 75 + (1135 << 16) + fj_vertex_3 = 1 + (1135 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700b //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 30 // x coordinate + fj_box_top = 1870 // y coordinate + fj_box_right = 755 // x coordinate + fj_box_bottom = 1919 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 30 + (1870 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 755 + (1870 << 16) + fj_vertex_2 = 755 + (1919 << 16) + fj_vertex_3 = 30 + (1919 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700c //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 2500 // x coordinate + fj_box_top = 60 // y coordinate + fj_box_right = 2559 // x coordinate + fj_box_bottom = 415 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 2500 + (60 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2559 + (60 << 16) + fj_vertex_2 = 2559 + (415 << 16) + fj_vertex_3 = 2500 + (415 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700d //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 2300 // x coordinate + fj_box_top = 1 // y coordinate + fj_box_right = 2559 // x coordinate + fj_box_bottom = 60 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 2300 + (1 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 2559 + (1 << 16) + fj_vertex_2 = 2559 + (60 << 16) + fj_vertex_3 = 2300 + (60 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700e //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + + LAUNCH_PATCH_FUNCTION ~fj_are_structure~ + INT_VAR + fj_type = 2 //travel - kind of trigger area + fj_box_left = 540 // x coordinate + fj_box_top = 1 // y coordinate + fj_box_right = 1125 // x coordinate + fj_box_bottom = 65 // y coordinate + fj_cursor_idx = 30 //door - mouse cursor symbol + fj_flags = 4 + fj_vertex_0 = 540 + (1 << 16) //start with the lowest point: x coodinate - y coordinate + fj_vertex_1 = 1125 + (1 << 16) + fj_vertex_2 = 1125 + (65 << 16) + fj_vertex_3 = 540 + (65 << 16) + STR_VAR + fj_structure_type = region + fj_name = bd7400_ar1700f //name of this travel region so you can address it via script etc. + fj_destination_area = AR1700 //name of the destination area + fj_destination_name = d5bd7400 //name of exitpoint in destination area + END + BUT_ONLY +END + + +// set area scripts to allow travel from BG2 + +ACTION_IF (FILE_EXISTS_IN_GAME ~AR1700.are~) BEGIN +<<<<<<<< d5/ar1700c.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5AR1700toBD7400","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5AR1700toBD7400","GLOBAL",1) + TriggerActivation("ar1700_bd7400",TRUE) + Continue() +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayAR1700c","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayAR1700c","GLOBAL",1) + TriggerActivation("ar1700_bd7400",FALSE) + Continue() +END +>>>>>>>> + COPY ~d5/ar1700c.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/ar1700c.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~ar1700~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/ar1700c~ END +END + +ACTION_IF (FILE_EXISTS_IN_GAME ~bd7400.are~) BEGIN +<<<<<<<< d5/bd7400_.baf +IF + Global("D5SkipSoD","GLOBAL",1) + Global("D5BD7400toAR1700","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5BD7400toAR1700","GLOBAL",1) + TriggerActivation("bd7400_ar1700a",TRUE) + TriggerActivation("bd7400_ar1700b",TRUE) + TriggerActivation("bd7400_ar1700c",TRUE) + TriggerActivation("bd7400_ar1700d",TRUE) + TriggerActivation("bd7400_ar1700e",TRUE) + TriggerActivation("bd7400_ar1700f",TRUE) +END + +IF + Global("D5SkipSoD","GLOBAL",0) + Global("D5StayBD7400","GLOBAL",0) +THEN + RESPONSE #100 + SetGlobal("D5StayBD7400","GLOBAL",1) + TriggerActivation("bd7400_ar1700a",FALSE) + TriggerActivation("bd7400_ar1700b",FALSE) + TriggerActivation("bd7400_ar1700c",FALSE) + TriggerActivation("bd7400_ar1700d",FALSE) + TriggerActivation("bd7400_ar1700e",FALSE) + TriggerActivation("bd7400_ar1700f",FALSE) +END +>>>>>>>> + COPY ~d5/bd7400_.baf~ ~weidu_external/%MOD_FOLDER%/compile/310/bd7400_.baf~ + LAF cd_extend_bg_area_script STR_VAR area = ~bd7400~ script = EVAL ~weidu_external/%MOD_FOLDER%/compile/310/bd7400_~ END +END + + +// fix dialogues --> not even necessary! + END // end function + +//___________________________________________________________________________________ +// + +DEFINE_ACTION_FUNCTION sod_remix_random_cave BEGIN + + +END // end function + + +//___________________________________________________________________________________ +// + +/* +DEFINE_ACTION_FUNCTION sod_remix_underground_river BEGIN + + +END // end function +*/ + //////////////////// //////////////////// //////////////////// diff --git a/Reflections/lang/english/setup.tra b/Reflections/lang/english/setup.tra index 2b5e10b..6773e5e 100755 --- a/Reflections/lang/english/setup.tra +++ b/Reflections/lang/english/setup.tra @@ -16,9 +16,9 @@ @260 = ~Reflections of Destiny SoD: Surplus Scarcity~ @290 = ~Reflections of Destiny SoD: The Clone Saga (ALPHA)~ @300 = ~Reflections of Destiny BG2: something something fixing BG2 plot holes~ -@310 = ~Reflections of Destiny BG2: Wherever You Go There You Are~ -@320 = ~Reflections of Destiny BG2: Imoen Is Stone, by Jastey~ -@330 = ~Reflections of Destiny BG2: Imoen Can Die, by Jastey~ +@310 = ~Reflections of Destiny BG2: Imoen Is Stone, by Jastey~ +@320 = ~Reflections of Destiny BG2: Imoen Can Die, by Jastey~ +@330 = ~Reflections of Destiny BG2: Wherever You Go There You Are~ @400 = ~Reflections of Destiny TOB: something something fixing ToB~ // // ***** @@ -421,20 +421,28 @@ Refugees driven from their homes by the servants of Caelar Argent are heading to // use this for the extra quest after killing sarevok but before the big choice @10800 = ~Investigating the Crusade~ @10801 = ~Investigating the Crusade -yadda reports of the crusade making their way south~ + +The dukes told me that Baldur's Gate faces a new potential threat: a warlord is raising an army to the north of the city, styling it as a 'crusade' of some sort. The leader is said to be a knight, Caelar Argent. I have been asked to track down Sir Dauston, who is related to her, to learn what we can of her background and motives. Sir Dauston was last known to be a frequent patron of the taverns in Beregost.~ @10802 = ~~ @10803 = ~Investigating the Crusade -yadda dauston lives by the sea, and likes his liquor~ + +It seems that Sir Dauston has not been seen in Beregost for some time. He apparently moved on to a seaside community. I should check any villages to the west, near the coast.~ @10804 = ~~ @10805 = ~Investigating the Crusade -yadda search by the boats for someone sleeping~ + +I have been informed that Sir Dauston is here in Ulgoth's Beard, but is not presently in the tavern. He is likely to be resting in a shaded spot near the beach, by the boats.~ @10806 = ~~ @10807 = ~Investigating the Crusade -yadda found dauston, what he had to say is troubling~ + +I spoke to Sir Dauston, after we were attacked by fighters from Caelar Argent's crusade who intended to abduct him. I convinced him to go to Baldur's Gate where the dukes can protect him. + +What he had to say about Caelar Argent was troubling. It seems both he and she are aasimar, descended from a solar - one of the most powerful celestial beings. He said his background made him headstrong and overly self-righteous. His current state is the result of using drink to dull the urges of his blood. He suspects Caelar might be driven by similar urges.~ @10808 = ~Investigating the Crusade -yadda going to march north and face Caelar directly~ + +The dukes have asked me to join the Coalition forces traveling north to confront Caelar Argent. Her actions and influence seem to be dangerous, and the Coalition can use the assistance of someone outside the normal chain of command.~ @10809 = ~Investigating the Crusade -yadda staying in the south~ + +I will not be joining the Coalition army that goes north to confront Caelar Argent. I have business here in the south, like finding out what creature seems to have taken my visage when attacking Entar Silvershield.~ @10810 = ~Sir Dauston, yes, I recall the chap. Nice fellow. As for where he is now, I cannot tell you. He has not been in here for a few weeks at least. Ask around the other taverns, someone might know.~ @10811 = ~Yes, I recall good Sir Dauston. "The Knight of Cups," people called him. Liked his drink something fierce, but he was a good fellow. Never violent without cause, and always paid his bill. I heard he took the road north, not sure where to.~ @10812 = ~Thank you.~ @@ -525,10 +533,306 @@ This shard is a piece of an immensely powerful Mirror of Opposition, now broken. ~ // // -@20001 = ~~ -// -// -@22011 = ~You mean your two hundred fighters? Why, my eight hundred fighters, of course.~ +@20000 = ~~ +@20001 = ~The Siege of Dragonspear~ +@20002 = ~The Siege of Dragonspear + +Caelar Argent turned evil!!! But she is dead now. I must take the Dragonspear vault key back to Faerun so that the Coalition can close the portal.~ +@20003 = ~The Siege of Dragonspear + +Caelar Argent resisted temptation and fought against Belhifet~ +@20004 = ~The Siege of Dragonspear + +Caelar Argent is staying on the planes. She gave me the vault key. I must get it back to Faerun at once, so that the Coalition can close the portal.~ +@20005 = ~~ +@20006 = ~~ +@20007 = ~~ +@20008 = ~~ +@20009 = ~~ +@20010 = ~~ +@20011 = ~My goals? Why, only to turn the tide of fate. A time of prophecy is upon us. This land is soon to be riven with chaos and strife. But I can prevent it.~ +@20012 = ~You know my name! You know where I come from. The Argents are a noble family, blessed long ago with an angel as our ancestor. The drive for justice flows in my veins! But, justice requires order.~ +@20013 = ~We live in dangerous times. Prophecy tells us that chaos is about to engulf the Sword Coast! The leaders of Waterdeep, Neverwinter, Baldur's Gate and Amn do not care! They care only for the flow of silver and gold into their coffers.~ +@20014 = ~Corruption has set in to these regimes - and corruption breeds chaos, and chaos brings death! In Baldur's Gate, a child of the dead Lord of Murder, Bhaal himself, was elevated to Grand Duke! He very nearly brought war to the entire region. The rulers of Baldur's Gate let that happen!~ +@20015 = ~Now more of Bhaal's Children are seeking power and death. We cannot let them succeed! Together, we can change the course of history! We can bring order to the land and make it inhospitable for the agents of murder and chaos!~ +@20016 = ~Follow me, and we will make this a land of justice and peace, where those who venerate death will have no place to hide! Follow me in this crusade, and we will fight the future itself!~ +@20017 = ~~ +@20018 = ~~ +@20019 = ~~ +@20020 = ~I'll tell you my story if it means you'll go away. We used to get some... unsavory types here. Everyone was always pretty well-behaved - this is where they get their grog, see? But then this pack of clinking crusaders passed through, and just couldn't leave well enough alone. Acted like they were the law, started a fight - and next thing I know, the whole place is ablaze!~ +@20021 = ~And so comes the hero of Baldur's Gate. Such as is. Many call you hero, but I know what you really are. There are few enough godspawn in Faerun - most are born of Bhaal. Am I right?~ +@20022 = ~Yes, you are. What of it? I am my own person.~ +@20023 = ~What I am is none of your business. What matters is that I am in the employ of the Grand Dukes.~ +@20024 = ~They call you hero but I have looked into your background.~ +@20025 = ~The first reports involve stirring up fights in bars and murdering rivals in the streets. You restored an iron mine for Amn, and destroyed the last functioning mine available to Baldur's Gate - in the process, desecrating an ancient dwarven gravesite. This bankrupted the local chapter of the Iron Throne... just as directors of other trading costers were being assassinated. You weakened the city, even as the drums of war grew louder.~ +@20026 = ~Okay that... is actually a pretty fair description of what happened. But that was Sarevok's doing! I put a stop to his schemes.~ +@20027 = ~~ +@20028 = ~~ +@20029 = ~You are kin to Sarevok. He who almost brought ruin to Baldur's Gate and Amn. I know what you are because unlike many, I have studied Alaundo's prophecy. Sarevok was but one of many Children of Bhaal! Their fate is set; their actions lead to chaos and death whether they mean it or not.~ +@20030 = ~Oh, I assure you, Sarevok knew exactly what he was doing, and it was not just about chaos and death. You have no idea what I really stopped.~ +@20031 = ~Some, perhaps. Maybe even most. But there are plenty of agents of evil out there. Zhents, Red Wizards, Dragon Cultists, Cyricists... what matters is our choice to oppose such people. I have proven myself - you cannot judge me based solely on blood.~ +@20032 = ~~ +@20033 = ~Judgment is immaterial. Sarevok's death is the spark that will ignite a new era of chaos on the Sword Coast. Alaundo did not hand down suppositions or predictions; he gave us prophecy! He saw fate! Hero you may be, but your approach is doomed regardless of intentions.~ +@20034 = ~You are reacting. "Adventuring." But you cannot avert what is to come by playing hero. Do you think fate can be changed so easily? No, it is beyond you. Your blood makes you the subject of prophecy - whereas I will be its master! I will BEND history to my will!~ +@20035 = ~You may know what I am, Caelar, but I know what you are. A zealot driven by the whisperings of your own blood. At least I don't give in to mine.~ +@20036 = ~What makes you think you can do this, where others cannot? This sounds like delusion to me.~ +@20037 = ~~ +@20038 = ~I have the power of the heavens within me. My line was blessed long ago by a Solar - an avenging angel ceaselessly fighting for good. I can bring to bear enough force to change the world. That is the only hope.~ +@20039 = ~What force will you bring to bear? Why are you, of all people, based at Dragonspear with its ill history?~ +@20040 = ~~ +@20041 = ~I will do what I must to subdue chaos. I will do what others cannot, or will not. The Grand Dukes let Sarevok take control of Baldur's Gate, however briefly. And now they send YOU as their champion. They have demonstrated their inability to contain the danger we face.~ +@20042 = ~Peace can only prevail if the Sword Coast is under my righteous authority. Go tell the Grand Dukes to submit to me. This transition can be bloodless. From Baldur's Gate, I will be able to marshal enough strength to bring the entire region under my control. Your Bhaal-kin will have no air to breathe, no chance to flourish. Countless lives will be saved.~ +@20043 = ~You see things in absolutes only. Nobody's path is set in stone.~ +@20044 = ~What, everything thing will be fine if we just crown you queen? Sorry, I've heard this one before.~ +@20045 = ~~ +@20046 = ~Only I see things as they really are! Consider, clerics of gods both good an evil are in both armies. The gods do not know the righteous path any more than most mortals. That is the effect of chaos! The only way through this time is with clarity, and a strong arm. Only I have both.~ +@20047 = ~Sarevok wanted war, and we narrowly averted it. And now, you have brought it upon us anyway! Even after his death, you are giving him what he wanted all along!~ +@20048 = ~~ +@20049 = ~~ +@20050 = ~This crossing is destroyed. My forces are already on the way to take Bridgefort and Boareskyr Bridge. If you truly value peace, stand down your troops and surrender yourself to me there. If not, I will march to Baldur's Gate and root out you and your kin by whatever means necessary. Order WILL prevail. It is the only way.~ +@20061 = ~More letters of condolence, my lady? Surely they can wait. It is time for your treatments.~ +@20062 = ~I will not argue this again, Hephernaan. The condolences are as important as anything else.~ +@20063 = ~Of course. But we have made much progress. Your celestial blood is positively singing out to its origin.~ +@20064 = ~Yes, I can feel it. I am stronger every day. And... you have been able to use it to contact my ancestor?~ +@20065 = ~Oh yes. The link is quite strong. Soon you will as well, and we will forge the alliance that can wipe away your opposition.~ +@20066 = ~Yes... yes. Then we will implement my peace across the land.~ +@20067 = ~~ +@20068 = ~~ +@20069 = ~~ +@20070 = ~~ +@20071 = ~The report about Boareskyr Bridge is troubling. I hoped this Bhaal-child was truly a hero, but the uncontrolled manifestation reinforces all my fears.~ +@20072 = ~The report about Boareskyr Bridge is troubling. I hoped this Bhaal-child was truly a hero, but the uncontrolled manifestation reinforces all my fears.~ +@20073 = ~I am not sure. Sometimes, apparently, blood such as ours calls out to its origin.~ +@20074 =~Caelar... do you really think Zariel will answer you? This is a dangerous gambit. But, if she joins us...~ +@20075 = ~It will shake both the heavens and the earth. Like us she is a crusader against chaos. She must join us. She will answer her kin!~ +@20076 = ~And the godspawn? must answer for what happened to my brother.~ +@20077 = ~You will do what you must. had a chance to be reasonable; now we are beyond that point. Hero or not, must be put down like the rest.~ +@20078 = ~~ +@20079 = ~~ +@20080 = ~~ +@20081 = ~...work proceeds, master. Each time we perform the ritual, we disentangle one of the threads in the knot that makes up the planar barrier. Its design is quite complex. If we move too fast, the feedback could kill Caelar. The perils of working with mortals, I am afraid. They are quite fragile.~ +@20082 = ~Perhaps if we had the Bhaal Child's blood as well...~ +@20083 = ~He escaped my agents, master. We are not sure how. Someone must have known of our approach and intercepted him. I suspect a plot by the Exile...~ +@20084 = ~I do not need help from that snake! I will take care of the Bhaalspawn myself!~ +@20085 = ~Of course, master.~ +@20086 = ~Hello, . I am afraid you have ventured too far. I thought our little supply station might attract you. Impossible for an army to utilize, but irresistible for an adventurer.~ +@20087 = ~I heard you. I know what you are planning. You are just using Caelar!~ +@20088 = ~Well, I'm here now, and soon you won't be!~ +@20089 = ~Yes, yes. And now you will take that knowledge to the next life. There is an army of crusaders above you and below you. You won't escape.~ +@20090 = ~We will see about that. Now I will end you. The horde of crusaders above and below you will ensure it.~ +@20091 = ~Come now, and feel true power! This is your end!~ +@20092 = ~No - the godspawn is useless for this. Bhaal is a memory, dead and mouldering in the Astral backwash. 's blood calls to nothing but the prophecy. You should have obtained the other Argent!~ +@20093 = ~You see plots everywhere. Never mind the Exile. He is a child chasing shadows. No such shadows will remain to sustain him once my fires burn across the land.~ +@20094 = ~Continue the work. Open the door. Subdue the godspawn, but be careful. They are a chaos agent. I am going to send Illaruel to secure the door once it is open.~ +@20095 = ~Youngling, you have much to learn about fighting chaos. If you think to handle the godspawn, then do so now! Turn around and face your task, and do not fail me!~ +@20096 = ~~ +@20097 = ~~ +@20098 = ~~ +@20099 = ~What! Who dares??~ +@20100 = ~~ +@20101 = ~He plays the pious, kindhearted priest, but he's trying to open a gate to the Nine Hells, the snake. I first saw Hephernaan when he came down here with that aasimar, what's her name—Caelar. You know what an aasimar is? Celestial-blooded, you could say. They need particular blood to open the gate, but Caelar's isn't strong enough to do it quickly. He has had to perform rituals with her every day to slowly pry the portal open.~ +@20102 = ~Hephernaan has bee frustrated. I saw him use that altar there to speak with some dark creature - possibly he is afraid of failing his master. I was trying to listen in, but he spotted me and bound me right quick. I've been trapped ever since.~ +@20103 = ~~ +@20104 = ~~ +@20105 = ~~ +@20106 = ~~ +@20107 = ~~ +@20108 = ~~ +@20109 = ~~ +@20110 = ~They are at the gates, Hephernaan. We must perform the summoning now! You said Zariel would answer my call!~ +@20111 = ~Goodbye Caelar, I go to meet my master. Feel free to follow me, if you can.~ +@20112 = ~Good job so far! But I am concerned - Caelar's lieutenants have been leading the fight out here, but she herself has been nowhere to be found. It is unlike her to lead from the rear.~ +@20113 = ~We need to get into the castle.~ +@20114 = ~I agree. Where is Phosse? Someone bring her here!~ +@20115 = ~I’m sorry, I was not entirely clear about the nature of the bridge we have built. We are the ones being summoned - to Avernus. Don’t worry though, we will not stay long. I will shortly reconvene with my true master, and then return to Faerun with every bit the army you hoped for.~ +@20116 = ~Foolish child. The godspawn are nothing. Candles, sputtering in a breeze. My liege is a hurricane! What do we care for Bhaal? We were ancient when Bhaal was a mewling babe, mortal as you. Bhaal seized power briefly, and inspired a few followers to murder. As if they would not have done so anyway! And now he is gone, soon to be forgotten. Pathetic!~ +@20117 = ~You want order? We will give you order. The children of Bhaal will be brought to heel, or exterminated. The chaos in their wake will be stamped out. Your entire world will be enslaved, made to serve our campaign against the old enemies, the TRUE chaos.~ +@20118 = ~It was meant to be, surely. Why else would this door be so conveniently placed here?~ +@20119 = ~They are not my concern. You would do well to convince them to join our cause, lest they be the first ones ground under our feet!~ +@20120 = ~Worms. They would serve better a reanimated shock troops - shame that our little gambit in Kanaglym was interrupted.~ +@20121 = ~Goodbye Caelar, I go to meet my master. Feel free to follow me, if you can.~ +@20122 = ~But, the Bhaal crisis -~ +@20123 = ~How could you? You betray all of the good men and women fighting and dying out there!~ +@20124 = ~~ +@20125 = ~I sense powerful alteration magic, tinged with evil. And... conjuration magic, as well? Gods - Corporal, I think the portal is behind this door!~ +@20126 = ~Well then, pray it has not been opened. What do you say, ? Are you ready for this? Make sure you are equipped with every tool available. What awaits us may be worse than anything we have ever faced.~ +@20127 = ~~ +@20128 = ~~ +@20129 = ~~ +@20130 = ~Hephernaan... I will have your head! Crusaders, with me!~ +@20131 = ~Hold this room open!~ +@20132 = ~No! Stay out! I must see this through!~ +@20133 = ~Crusaders, with me! We must pursue Hephernaan!~ +@20134 = ~Not so fast! Where do you think you're going?~ +@20135 = ~Hephernaan... I will not let him get away with this!~ +@20136 = ~Caelar? What happened here?~ +@20137 = ~Don't you see?? She opened the portal to the Nine Hells! This must have been her plan all along!~ +@20138 = ~We feared this eventuality but we are prepared for it. Stay here and at all costs, hold this vault open! We must bring Torsin to the portal, he has the means to close it again!~ +@20139 = ~~ +@20140 = ~~ +@20141 = ~! Thank the gods you're here! I thought I should follow those crusaders to stop their plan but... they're already dying! The monsters here are really scary!~ +@20142 = ~There are cats that are invisible! I tried to stay hidden too, but I think some of the fiends could see me! A couple chased me. Other ones looked right at me... but didn't chase me? Why would they do that?~ +@20143 = ~I'm so scared! This place isn't natural! I think... I think I'm actually out of my depth.~ +@20144 = ~Okay Skie, calm down. This is bad, but the way to survive is to keep cool. Can you do that?~ +@20145 = ~Oh do you think that? Really? Skie, you've been out of your depth for weeks, it's about time you finally realized it.~ +@20146 = ~Okay. Yes. I think I can do that. I- I want to stay alive. Do you have a plan? What should we do?~ +@20147 = ~I need to follow Caelar. She has the vault key and we need to open the vault to let the Coalition close the portal. But someone needs to keep an eye on the portal. Can you do that for me? Stay hidden if you can. I'll be back and then we'll go home together.~ +@20148 = ~~ +@20149 = ~Hey! Didn't I just say that? Can you please just... help? Just tell me what to do, okay? Please?~ +@20150 = ~Well, I'm following Caelar. I assume she went to that big tower over there? I suggest you stay as close to the portal as you can, and try to avoid the fiends who will kill you and steal your soul. If you'r lucky, I'll be back soon and we'll close the portal from the other side.~ +@20151 = ~~ +@20152 = ~Okay. Yeah. I think I can do that. I'll scout this side of the portal! I'm good at scouting. Just, come back soon, okay?~ +@20153 = ~~ +@20154 = ~~ +@20155 = ~~ +@20156 = ~It has all gone wrong! Caelar has pushed forward, she thinks she can find... redemption, or power, chasing after Hephernaan. We have always been loyal to her, but look around us! How did it come to this? We never expected she would charge into darkness alone and unaided...~ +@20157 = ~I do no think anyone expected this day to turn out as it has.~ +@20158 = ~We should not be set against each other any longer. Please, help us stop Hephernaan and save Caelar. If that portal remains open, none of use will survive!~ +@20159 = ~~ +@20160 = ~You promised a celestial alliance, but now we are in Hell, surrounded by evil and naught but madness in your eyes!~ +@20161 = ~I'll not kill an innocent man. I've not fallen so far as that. But I must keep going. I must know whether there is any hope of finding my ancestor.~ +@20162 = ~Caelar, give me the vault key and come back with me! Hephernaan has lied to you, there is nothing for us here!~ +@20163 = ~What is this obsession of yours? What are you really after?~ +@20164 = ~I don't care about your family drama. I only care about getting the key to the vault. If I need to go through you to get it, so be it.~ +@20165 = ~Long ago, one of my forefathers was blessed by a union with Zariel, one of the most righteous and powerful solars in all the heavens. Since then by family has benefited from that union - we have tended to be strong, vigorous, charismatic. Natural leaders. The Order of the Aster to celebrate our good fortune and spread the blessings of Lathander to others.~ +@20166 = ~The very heavens are in our blood, you see? It does not diminish over generations. It is carried by mortals, but the power itself is beyond mortality. When I told you I could bend the path of fate, I was not being boastful! It is this blessing that makes me uniquely able to save the Sword Coast.~ +@20167 = ~But my ancestor, Zariel... she was lost, long ago. Some sages speculate she was imprisoned, others say fallen. Or maybe traveling the planes in some hidden guise. Wherever she is... inside me is a link to her! Hephernaan told me that certain rituals would penetrate the planar boundaries between us. If imprisoned, I could free her! If fallen, I could redeem her! With every application of his spells, I felt closer to her! The link was real, I tell you!~ +@20168 = ~But... when his work was completed the only path that was opened led here. To Avernus. Where the Dragonspear portal always led! The conduit should have moved! I need to understand why it did not!~ +@20169 = ~It doesn't matter!~ +@20170 = ~Caelar, I will not dissuade you from your mission. But do not put the Sword Coast at risk! Give me the vault key, let us close the portal, and... you can continue on your own path, wherever it leads.~ +@20171 = ~~ +@20172 = ~The Sword Coast may be lost to your chaos. Whatever your intent, you and Hephernaan's betrayal have defeated my plan. But I must go onward! I will pursue Hephernaan and wring the truth from him!~ +@20173 = ~The priority must be to close the portal!~ +@20174 = ~Just give me the key, damn it, I don't care what you do after that!~ +@20175 = ~~ +@20176 = ~If Zariel is here I must find her! The portal must remain open to allow for our return!~ +@20177 = ~You... you are right. My determination must not put any more innocents at risk. Very well, I will give you the vault key. Return to Dragonspear and close the portal! Do not wait for me. I will find my fate here on the planes.~ +@20178 = ~~ +@20179 = ~~ +@20180 = ~~ +@20181 = ~I know who you are, fiend! I have seen your likeness. You are Belhifet! What did you put Hephernaan up to? Where is Zariel?~ +@20182 = ~I am so glad you made it here, aasimar. Zariel is not here. But I may yet grant your desire, after a fashion.~ +@20183 = ~Now, without those bothersome gnats, let us speak.~ +@20184 = ~~ +@20185 = ~~ +@20186 = ~~ +@20187 = ~~ +@20188 = ~~ +@20189 = ~~ +@20190 = ~~ +@20191 = ~~ +@20192 = ~~ +@20193 = ~~ +@20194 = ~~ +@20195 = ~~ +@20196 = ~~ +@20197 = ~~ +@20198 = ~~ +@20199 = ~~ +@20200 = ~~ +@20201 = ~Caelar, enough! Did you really expect to find a solar here?~ +@20202 = ~He really is a treacherous weasel. Then again, he is a devil and his name is Thrix the Profane.~ +@20203 = ~The Profane One is the last thing you should be concerned about, fiend.~ +@20204 = ~I will deal with him in time. But first, let me welcome Caelar Argent. I am pleased that you made it this far. Your combination of arrogance and desperation is... delectable. Marred only by the stench of your celestial blood. But, we can fix that.~ +@20205 = ~Indeed, arrogance and desperation. Quite a delectable combination. Marred only by the stench of your celestial blood. But, we can fix that.~ +@20206 = ~Zariel is not here, child. You will not speak with her. In fact I have taken care to shield our doings from her perception, temporarily. Oh, what cruelty perspective can inflict upon us! Your heritage, stemming from a momentary tryst centuries ago - it is the most important thing in your tiny life. But Zariel? She is as a god. You are less than a speck of dust to her.~ +@20207 = ~On the other hand, some of us can appreciate details lost to such lofty perspective. This little godspawn, for instance, is quite interesting. Now that I see you with my own eyes, I see you are more than the runt of some fecund avatar. You have been... enhanced.~ +@20208 = ~With the right... modifications... you could be quite the weapon against the hated enemies. We could capture and utilize the souls of the generals of chaos, instead of merely discoporating their bodies. Oh, what interesting things occur when up-jumped gods frolic in the Prime!~ +@20209 = ~Hephernaan did what was necessary to open the door to your realm and bring you to me. No more, no less. It was a necessary deception, which we can now dispense with. That said, little Argent, what if I told you your goal is still within reach?~ +@20210 = ~Never mind that, Belhifet. Caelar, we need to g-~ +@20211 = ~~ +@20212 = ~~ +@20213 = ~~ +@20214 = ~~ +@20215 = ~You want to prevent the chaos represented by Bhaal's offspring? You want order? In truth, I want these things too. The forces of Law - MY forces of Law - can stamp out chaos in your Sword Coast. Serve as my lieutenant, and together we will bring order to your realm.~ +@20216 = ~The Bhaalspawn will be found and sent to the Blood War. I cannot enter the Prime - not yet - so I will name you regent of our dominion there. Sure you will be able to moderate my legions' excesses, should you desire. Consider it: everything you have strived for, all this time - will be achieved! It will be the greatest success of any in the Argent line! It might even make you truly worthy of Zariel's notice. You might be surprised at what attracts her notice these days...~ +@20217 = ~Nevertheless, your world is exposed. I will claim it, with or without you. This is not the deal you hoped to make, but it is the deal that is available to you. Success is still within your grasp! What is your alternative? Return in shame, and spend the rest of your days in chains? Rebel with this Bhaal child? I know your blood - failure and rebellion are not in your nature.~ +@20218 = ~The righteousness of Law drives you. And though we express it in different ways, it drives me as well. That flaming sword you wield, so like the one Zariel once bore... swear it to my service, and my army will be at your back when you return to the mortal realm. You will be a true crusader, just like your forebear...~ +@20219 = ~~ +@20220 = ~~ +@20221 = ~Caelar, no! He is evil, and still manipulating you! Maybe your crusade was a mistake, maybe Zariel can never be saved. But YOU can be redeemed! This moment, right now, is what defines heroes! Stand with me against Belhifet, and together we will close the portal and safeguard the residents of the Sword Coast!~ +@20222 = ~Caelar, law and order are not worth your soul. I know it must be difficult four you, but this is the time to rebel! Trust me when I tell you: you are not bound by your lineage. I am my own person and I do not let my father's influence control me!~ +@20223 = ~This is a disaster! Your crusade only led to this: a chance for the fiends of Avernus to overrun the Sword Coast. Whatever you feared from Bhaal's children is nothing compared to the evil you have unleashed today. Every death, every bit of devastation that arises from this - it is laid at your feet!~ +@20224 = ~Fool! You have been so deluded by the ravings of your blood that you could not use common sense! Now you have snared the entire region in a devil's trap! Your folly must end, for good, here and now!~ +@20225 = ~Bah! I should have known things would go awry when one of Bhaal's whelps became involved. "Chaos shall follow in their wake..." Alaundo spoke true. She was on the cusp of giving herself over to me, willingly! An Argent, in the service of Belhifet - do you know how long I have worked for this prize? If only to see the look on Zariel's face!~ +@20226 = ~Well. You have ruined my little game, and there can only be one consequence for that. Your souls will be my playthings for eternity. The argent will be raised as a death knight, but you, little godling, for you there is only oblivion. Come now, meet your doom!~ +@20227 = ~YES! I will grant you the power you need! Swear yourself to my service, and it shall be yours!~ +@20228 = ~What? Caelar, this is not the answer!~ +@20229 = ~~ +@20230 = ~Ha ha ha! Very well, the loss of one agent is worth having Zariel's spawn as my blackguard. Hephernaan, you have served me tolerably well. In the eons hence you may rise back through the ranks, and I will respect you all the more for it.~ +@20231 = ~I am here for Hephernaan! He will tell me where I need to go next. I am not surprised to find him cowering between the legs of a true devil.~ +@20232 = ~Enough, Belhifet! We are not interested in your Blood War! Hephernaan's treatments - the link was real! I FELT it!~ +@20233 = ~Quiet!~ +@20234 = ~What are you talking about, fiend?~ +@20235 = ~I- no- this is not what I wanted. I did not come all this way to lend aid to devils, to expose my world to the cruelty of the Nine Hells!~ +@20236 = ~I don't know what Alaundo's prophecy truly portends, but if you and I can stand firm here against Belhifet, there will be heroes to overcome any crisis sown by Bhaal. We may be mortals, but we lack for neither courage nor power. Are you with me?~ +@20237 = ~~ +@20238 = ~~ +@20239 = ~~ +@20240 = ~You... you are wrong. You must be wrong. You and your ilk are the cause of all of this! All I have endeavored to do was give people justice. You raised an army against me, pushed back time and again, amassed power of the god or murder to use against ME?~ +@20241 = ~I see clearly now: I am a crusader against chaos! That is all I have ever been! The Order of the Aster was founded for it - but has lacked the power to achieve its goals. No longer! with Belhifet behind me, the last remains of Bhaal will finally be extinguished. Then peace - MY peace - will reign!~ +@20242 = ~This has always been the answer. I see that now. I swear myself to you, Belhifet, on one condition: that you destroy Hephernaan for his treachery against me.~ +@20243 = ~~ +@20244 = ~Your arrogance is truly impressive, Caelar. I am pleased that you have made it this far.~ +@20245 = ~Whaaat?? No!~ +@20246 = ~~ +@20247 = ~~ +@20248 = ~~ +@20249 = ~~ +@20250 = ~~ +@20251 = ~Belhifet is gone. In his own place of power, our combined might overcame him. He will be reborn, no doubt, but it will be eons before can rise to a station high enough to bother mortals.~ +@20252 = ~I owe you a debt of gratitude. Not only for fighting by my side - but I almost gave in. I was on the cusp of betraying everything I ever held dear. And it seemed so right! He made it seem like betraying my soul for him was the only way to be true to myself.~ +@20253 = ~That you could believe in me still, could see past our opposition - it gave me the strength to resist his entreaties. Heavens know what evil might have been wrought if I agreed.~ +@20254 = ~So you don't mean to marshal this power for yourself? We were allies a moment ago, but if you still mean to conquer the Sword Coast, I will oppose you.~ +@20255 = ~The words of one who knows she is defeated. I hope you don't think to seize Belhifet's power and march fiends through the gate.~ +@20256 = ~~ +@20257 = ~No. My crusade is finished. But we should not tarry here. The portal remains open, the fiends of Avernus could find it and spill through. It will not happen quickly without Belhifet and Hephernaan to lead them; we should take advantage of this window of opportunity to close the conduit.~ +@20258 = ~Here: take the key to the Dragonspear Vault. I know the forces of Waterdeep have the means to close the portal again.~ +@20259 = ~~ +@20260 = ~~ +@20261 = ~Here we must part ways. I am not going back.~ +@20262 = ~You have been so driven, for so long. Would you really give up your crusade?~ +@20263 = ~~ +@20264 = ~Not really. I still think I had the right of it. The prophecy of Bhaal's children - of you - is incredibly dangerous for the Sword Coast. Many will suffer. You think you can avert that suffering, but you are not equipped to do so.~ +@20265 = ~But, if I succeeded? If I subdued the region and stamped out Bhaal's children, maybe with the help of fiendish power? Maybe it would be worse. There is no way to know - there is no prophecy detailing that future. So, I will let it go. You, on the other hand, are still bound to your fate. I almost feel sorry for you...~ +@20266 = ~Would you really prefer to brave the Hells than return to Dragonspear and face justice?~ +@20267 = ~I cannot allow you to stay here. You thanked me but you owe justice to many more back at Dragonspear Castle.~ +@20268 = ~You think I am going to just let you go? You are coming with me - if I have to drag your corpse with me and raise you to stand trial, so be it!~ +@20269 = ~We were effective fighting together against Belhifet, but you are a fool if you think you can take me against my will!~ +@20270 = ~With respect: what will you do? Chase me? I will simply lead you away, and you would have to leave the portal unguarded against invasion. Your whole world will be lost.~ +@20271 = ~It is your world too! Would you really risk that?~ +@20272 = ~~ +@20273 = ~Faerun is no longer my home. Maybe it never was. You have friends there, comrades, family. You are regarded as a hero. Go there. Close the portal. Be the hero. But I... I must still heed the calling of my blood. You claimed it can be ignored, but I have doubts.~ +@20274 = ~I will guard the portal from this side, while it is open. And then I will find Zariel. Hephernaan's rituals were a way of controlling me - truly fiendish magic - but they exploited a real connection It called me here for a reason. I must find out the truth.~ +@20275 = ~Very well, I guess. Good luck.~ +@20276 = ~After all this, you haven't changed. Good luck finding your way out of this literal hellhole.~ +@20277 = ~I met your cousin once. Dauston? He was like you - sort of. He said the calling of your blood is not real. Just an echo of the past.~ +@20278 = ~Maybe that is so. I do not know. But out here, everything is an echo of the past, a reflection of some story or other. Maybe this is where I belong. Certainly many have become Planewalkers for worse reasons than echoes of the past singing in their blood!~ +@20279 = ~Listen: the other children of Bhaal are awakening, just as you have. Scores of them. No matter your actions, most of them will give in to their dark urges. You averted Sarevok's war but I say again: you cannot avert the war to come. You are not like me - not a crusader.~ +@20280 = ~Bhaal's war will come, but maybe if there are enough heroes, its worst effects can be mitigated. Maybe that is the best we can hope for. Good fortune to you, in any event.~ +@20281 = ~Enter the portal! Go back to Faerun, and let the Waterdeep forces into the vault. They can close the conduit.~ +@20282 = ~~ +@20283 = ~~ +@20284 = ~Can we go home now? Please??~ +@20285 = ~If you have the vault key, we should go at once. We must ensure no more fiends get through.~ +@20286 = ~~ +@20287 = ~~ +@20288 = ~~ +@20289 = ~~ +@20290 = ~~ +@20291 = ~Uses Rod of Disjunction~ +@20292 = ~Now if you'll excuse me, I need to check on Skie. She seems extremely disturbed. Between you and me I will credit her for being brave - brave to the point of foolhardiness. But she was not made for excusions to the Hells.~ +@20293 = ~Caelar Argent is dead. Her advisor, Hephernaan, was secretly working for an archfiend. They have been defeated, but we must close the portal.~ +@20294 = ~The Crusade was secretly inspired and manipulated by an archfiend. They have been defeated. Now we must close the portal to Avernus.~ +@20295 = ~That will bind the portal shut temporarily. We will task a team of magic users to re-weave the seals that Caelar undid, in order to seal the portal permanently. In time, we must devise a way to dislodge the conduit behind the portal from its connection to Toril. But that is a task for another day. For now, we are safe.~ +@20296 = ~~ +@20297 = ~~ +@20298 = ~~ +@20299 = ~~ +@20300 = ~I need to get upstairs, away from this thing! I- I can't talk right now.~ +// +// +@22011 = ~You mean your two hundred soldiers? Why, my eight hundred soldiers, of course.~ // // @23001 = ~Forgive us if we are disturbing you, my . My young colleague seems to be having some difficulty dealing with the stress of the situation. I am not sure how much he has been sleeping. Of course the situation does seem dire. But surely things are not as bad as he fears? Right? I confess, I begin to doubt myself...~ // thirri diff --git a/Reflections/readme-Reflections.html b/Reflections/readme-Reflections.html index 160feae..0ecea0f 100755 --- a/Reflections/readme-Reflections.html +++ b/Reflections/readme-Reflections.html @@ -7,9 +7,9 @@ -

SubtleMods: Reflections of Destiny, an SoD Remix Mod

+

A BG Plot Mod with Main Character Energy!

-

Version 0.6
+

Version 0.8
Languages: English

Author: The Subtle Doctor

Home page

@@ -18,16 +18,15 @@

SubtleMods: Reflections of Destiny, an SoD Remix Mod

Overview

-

This mod is designed to modify, improve, and sometimes move around various parts of the Siege of Dragonspear campaign - and the bits of BG1 just before it and bits of BG2 just after it. The first two components focus on the last chapter of the BG1 campaign, starting with Sarevok's coronation scene. In the base game you get teleported to the final encounter, and that's it - game over. Here, I add more interactions with various end-game NPCs, flesh out more nuanced relationships, and you time to finish up any outstanding quests. The narrative center of gravity for this section of the game becomes Korlasz' dungeon, brought forward from Siege of Dragonspear into BG1, before you fight Sarevok.

-

Supporting that, mostly for giggles and a teeny-tiny hint of foreshadowing, the first component adds a cool new magic item to both BG1 and BG2, which lets you cast Simulacrum on anyone! Even Sarevok or Belhifet!

-

With those two seeds sown, future components will more directly alter parts of SoD itself. At least, that is the current plan.

+

This mod is designed to improve, modify, and sometimes move around various parts of the Baldur's Gate games in places where the main story is either not fully realized or just not well done. This mod contains a number of components, some of which make very large changes and some of which make very tiny changes, but all geared toward making the story of Gorion's Ward flow better from its origin in Candlekeep to its resolution (?) at the Throne of Bhaal.

+

Right now the mod contains two rather large components with major effects on the plots of BG1 and SoD; plus several very small components affecting BG1, SoD, and BG2. Given enough time and inspiration, I may add large component addressing issues with the BG2 and ToB plots as well. We shall see.

+

You will get the most out of this mod if you play with the EET mod putting all of the BG1, SoD, and BG2 campaigns into one game. That allows some of the components here to work, since some of them move content around among the different campaigns.

Installation

Windows:
The mod archive should be extracted into your game folder from the archive (or just unzipped and then copied there). If properly extracted, you should have a "Reflections" folder and "setup-Reflections.exe" in your game folder. To install, simply double-click "setup-Reflections.exe" and follow the instructions on screen.

-

Run setup-might_and_guile.exe in your game folder to reinstall, uninstall or otherwise change components.

-

Mac OS X:
+

MacOS:
This mod is packaged and installed with WeiDU. To install, simply extract the contents of the mod into your game folder. If properly extracted, you should have a folder called "Reflections." I highly recommend using the "Mac Weidu Launcher" utility, made by me (!), which opens a menu of all mods in your game folder and lets you choose which one to install.

Compatibility

@@ -35,50 +34,95 @@

Compatibility

This mod is meant to be installed on BGEE games with the Siege of Dragonspear expansion, or on BG2EE games with EET installed. You will have the best experience in EET.

Reflections aims to be compatible with other popular mods. There are, however, a few compatibility issues of note:

    -
  • EndlessBG1: This mod addresses Imoen's presence in Baldur's Gate at the end of BG1 to explain her presence at the beginning of SoD/BG2, so you should not install EndlessBG1's component "Imoen and Duke Jannath."
  • -
  • EndlessBG1: This mod moves Korlasz' Dungeon from SoD into the BG1 campaign, before you fight Sarevok; EndlessBG1's "Korlasz' Dungeon in BG1" moves the dungeon into BG1 but after you fight Sarevok. These contradictory components may interfere with each other, and in this mod having the dungeon before the Sarevok fight is a plot point. So you should not install that component of EndlessBG1.
  • -
  • EndlessBG1: This mod had dialogue revolving around the fact that the Grand Dukes did not have access to the Undercity Temple of Bhaal and do not fully trust your account of it. So while you can install the EndlessBG1 "Flaming Fist after the Final Fight" component, it will contradict some of the dialogue you read.
  • -
  • Transitions: This mod has not been tested with Transitions, and is almost certainly incompatible in many ways. Do not install them together.
  • +
  • EndlessBG1: Component #100 of Reflections of Destiny addresses Imoen's presence in Baldur's Gate at the end of BG1 to explain her presence at the beginning of SoD/BG2, so you should not install EndlessBG1's component "Imoen and Duke Jannath."
  • +
  • EndlessBG1: "Korlasz' Dungeon in BG1" moves the dungeon into BG1 but keeps it in its normal place after you fight Sarevok. Component #100 of Reflections of Destiny moves Korlasz' Dungeon from SoD into the BG1 campaign, before you fight Sarevok. These components are both technically and conceptually incompatible.
  • +
  • EndlessBG1: "Flaming Fist after the Final Fight" component put Flaming Fist soldiers at the scene of your fight with Sarevok. Component #100 of Reflections of Destiny has dialogue about the fact that the Grand Dukes did not have access to the Undercity Temple of Bhaal and do not fully trust your account of the final fight. There is no technical incompatibility here, but this is a small conceptual incompatibility.
  • +
  • Transitions: Reflections of Destiny has not been tested with Transitions, and Component #100 is almost certainly incompatible with Transitions both technically and conceptually. Do not install them together.
  • +
  • SoD Road to Discovery: tracks various plot points from the unmodded SoD campaign, and is therefore almost certainly conceptually incompatible with Component #200 of Reflections of Destiny (which changes various details about Caelar Argent and her use of and relationship with the Bhaalspawn).
  • +
  • Another Fine Hell: #2 "Get the Hells Out" has specific ideas and dialogue abotu how the portal to Avernus is closed, which contradict Component #200 of Reflections of Destiny. There is no technical incompatibility here, but this is a fairly notable conceptual incompatibility.

Load Order:
This mod should be installed fairly early. It should definitely be installed after EET, EndlessBG1, and The Calling. And it should be installed before EET_end.

Contents

-

Component 50:

+

Component 100:

-

BG2 Bonus Content!

-

This component makes several SoD areas accessible in BG2, as long as you did not play SoD up to that point. So if you play and utilize component 200's option to skip the SoD campaign... or you use another mod to skip the SoD campaign... or you import a character from the end of BG1 into the BG2 campaign... or you simply start a new BG2 campaign - as long as your character has not been through SoD, then you will be able to play through these areas in chapter 2 of BG2.

-

Note, however, that this component will only install on games that have EET installed - your character must not have played SoD, however it is still necessary to have the SoD areas available in the game for the mod to send you there!

-

This is designed as a kind of easter egg, so I do not want to spoil where the SoD areas are on the BG2 map. Most should be fairly obvious when you pass through the Athkatla City Gates; one, however, is in a different place - search west of De'Arnise's Hold.

+

The Future is Now

+

The original Baldur's Gate game has a great story and does not suffer from the pacing problems of its sequel(s). That said, chapter 7 of the BG1 campaign is extremely abbreviated. After sneaking back into the city, you make your way to the Ducal Palace and interrupt Sarevok's coronation as a Grand Duke... and then you are teleported to the maze that takes you to the end-game fight, after which the game fades to black.

+

This component gives a LOT more breathing room after you stop Sarvok's coronation. You are successful mid-level adventurers at this point, and the mod sets you up as agents of the rulers of the city. First you get a very simple quest to track down information about where Sarevok retreated to - which takes you out into the streets of the city, where if you need to, you can handle any other business you have outstanding.

+

Then it moves the 'Korlasz' Crypt' dungeon forward from the Siege of Dragonspear campaign to this chapter, setting it up as a stop between you and your final confrontation with Sarevok. After handling this dungeon you will report back to the Dukes, but you can handle any outstanding quests or business in between.

+

Next you are tasked with finding (finding!) Sarevok and after that you can again take some time and handle other business on your way to report back once again to the Dukes.

+

After Sarevok is handled, you will have a choice: help the Dukes begin to address the threat of the Shining Lady's Crusade to the north, or refuse to do so and, effectively, skip to the BG2 campaign. There is a small 'quest' added to handle the transition to BG2, using some assets from SoD. It is meant to make your capture by Irenicus and escape from his lair feel like it is still occurring in the BG1 campaign. It should add immediacy to the transition to BG2, rather than feeling like you stopped playing one game and started playing another one. (Assuming, of course, that you are playing EET.)

+

If you continue working for the Dukes, you will be sent on another quest to Beregost and other locations outside Baldur's Gate - during which time, again, you may also complete other quests and tasks. (This is a theme here, in case you didn't notice.) This will introduce some hints of what is to come later in the SoD campaign, and notably, it explains how Caelar Argent knows you are a Bhaalspawn. Finally, after this quest is complete, you will again have the choice to continue on into SoD, or skip it and instead continue to BG2.

+

Along the way, this component also handles Imoen's situation: you can take her with you through all these quests, or you can have left her behind way back at the walls of Candlekeep... either way, she will get where she needs to be for her part in what follows in SoD and/or BG2.

+

Through all this added content and time, there are many more dialogues which flesh out what is happening in the city, how you are perceived, and your relationship to the city's rulers. You will have an explicit choice to disclose your heritage to them, or to keep it concealed. This choice does not have any mechanical consequences (yet!) but provides a better sense of agency and more in-depth player interactions in a part of the game that, in its initial release, is shockingly sparse.

-

Component 100:

+

Component 110:

The Mirror Shard

This small component adds a new magic item in Durlag's Tower and in Irenicus' Dungeon in the BG2 campaign. This item is quite powerful: it allows you to cast Simulacrum on anyone - anyone - and create a friendly, 60%-strength clone of them for 10 rounds. The item can only be used a few times, however, so use it wisely!

+

In addition to just being a fun artifact, this is meant to provide a possible explanation for how Irenicus pulls off disgracing and kidnapping you if you choose the 'Skip SoD' option of component 100. (However, both components are independent, neither relis on the other in a technical sense.)

Component 200:

-

Back to the Future

-

This component is much more involved. First, it adds a plot to the end of the BG1 campaign that implicitly involves the Mirror Shard from component 100 and Melicamp's Netherese bracers. Installing component 100 is not required, but if you do you might have an inkling that other entities are making use of the Mirror Shard. You will get a bit more satisfaction out of this plot if you also install "The Calling" quest mod and the "Brandock" NPC mod.

-

Next, you are given a lot more breathing room in the last chapter of BG1. Instead of teleporting you to the Undercity Maze after you interrupt Sarevok's coronation, now the Grand Dukes will ask you to investigate where he may have gone. While you search for Sarevok, you can finish up other quests. This should work well with the excellent Black Hearts mod, which also gives you things to do in the last chapter of BG1.

-

Next, this mod brings Korlasz' Crypt forward from the Siege of Dragonspear campaign into the BG1 campaign. Instead of being a "Sarevok clean-up quest" as Beamdog set it up, this great dungeon now becomes an integral part of your search for Sarevok.

-

Next, once you find Sarevok and fight him, the BG1 campaign will no longer abruptly end. Instead you will report your success to the Grand Dukes - and they may not be as happy about your actions as you might think! This is where the game will finally move on to the Siege of Dragonspear campaign.

-

However, this also presents you with an option to skip Siege of Dragonspear, and stay in Baldur's Gate when the Coalition army marches north to meet Caelar Argent. This choice will proceed to the resolution of the Mirror Shard plot (again, only implicitly) and send you to the beginning of the Shadows of Amn campaign. The goal here is to make your capture by Irenicus and escape from his lair feel like it is still occurring in the BG1 campaign. It should add immediacy to the transition to BG2.

-

Through all this, there are many more dialogues in the end of BG1 which flesh out what is happening in the city, how you are perceived, and your relationship to the city's rulers. You will have an explicit choice to disclose your heritage to them, or to keep it concealed. This doesn't have any mechanical consequences (yet!) but provides a better sense of agency and more in-depth player interactions in a part of the game that, in its initial release, is shockingly sparse.

+

Rewriting History

+

This component modifies a large number of dialogues and cut scenes in SoD to change Caelar Argent's backstory and motivations. Caelar is Lawful Good, and Knight of the Order of the Aster, and in this telling her Crusade is a crusade against chaos - specifically, the chaos that will "follow in [the] wake" of the Bhaalspawn, as prophesied by Alaundo. Caelar is freaked out that a Bhaalspawn rose to the top leadership position in a city as large and influential as Baldur's Gate and almost started a major war. And there are scores of other Bhaalspawn out there. Caelar determines that the only way to prevent the foretold chaos is by raising an army and conquering the entire region, thereafter ruling it with a Lawful Good iron fist.

+

Caelar has a secret weapon in her campaign to avert fate: she is no normal mortal, but the descendent of a solar - basically, a god who dispenses with the need for worshippers. Caelar is therefore an aasimar, but, like an aasimar on steroids. Her solar ancestor was also a crusader against chaos. Caelar has been undergoing daily magical rituals with her trusted advisor, using the connection of her blood to connect the interplanar conduit in Dragonspear Castle to the location of her solar ancestor. Then, she plans to open it and recruit a celestial army to join her own crusade, and wipe away all opposition on the Sword Coast...

+

This component makes several changes that are observable in-game:
+

+

Other than that, the game plays out very much like normal: Caelar is leading an incredibly dangerous force, with a goal that is inimical to the region's power structures, and she is based at the site of an incredibly dangerous interplanar construct. At various places the Coalition must beat back the crusaders, and then attack Dragonspear Castle itself. The end-game required more adjustment, mostly just adapting to the absence of Aun Argent and the fact that the portal has to be closed from the Prime Material side. Actual gameplay changes are minimal - a single minor battle is removed from the game (Belben) in order to make that section a bit more atmospheric. The biggest change is that the Parley scene between Caelar, Ashatiel, Hephernaan, Nederlok, Stonehand, and DeLancie at Deam Man's Pass is removed entirely. There is just no way to make that scene make sense.

-

Component 300:

+

Component 220:

-

The Clone Saga

-

This component uses the Mirror Shard/clone plot that is the basis of the 'Skip SoD' option in component 200, and adds it to the end of SoD. The entire end-of-SoD plot involving the murder of Skie Silvershield and the trial of Charname is removed, and replaced with this version. Skie's death happens off-screen, not in a dream sequence; and there is no trial. Instead the events unfold more quickly and you find yourself outside Baldur's Gate under a cloud of suspicion, which goes unresolved. This should be a bit closer to how Charname's leaving Baldur's Gate was described in BG2.

-

Note: this component should not be installed along with Another Fine Hell component 0. It can cause serious technical problems, and there is no reason to install both since the end of SoD can only play out according to one mod or the other. Choose one.

+

Magical Realism

+

This much smaller component makes several changes across SoD that should improved verisimilitude and convenience. As of now there are four changes:

+

1. Charname is a somewhat famous figure, known to Caelar Argent and her top lieutenants, so the crusaders are more wary about you. You cannot expect to walk around Crusader encampments and fortified positions and just not be recognized. If you want to infiltrate Crusader areas (something the game asks you to do, like, a LOT), then you will need to keep Charname invisible or otherwise hidden. The rest of your party is not as well known and they can walk around asking questions.

+

2. If you played through BG1 and never took on Skie Silvershield as a companion, or if you start a new SoD game directly, it is quite weird that Skie would approach you in the palace in the initial scenes of SoD, even sneaking into your bedroom and waking you up. This component removes those two interactions in the Ducal Palace. It leaves everything else related to Skie just as it already is: you can run into her at the Coast Way Forest, she is tagging along with the Coalition army trying to prove her worth, etc. She has a good storyline; this only changes that very first, very unnecessary, encounter with her.

+

3. During the sequential battles in the Coalition Camp, Dosia the priest of Ilmater has the ability to rejuvenate your party as if you has had a full night's rest. But later, in Dragonspear Castle, after a major battle and when you are about to enter the final, extremely dangerous set of areas, she no longer offers that option. This component fixes that: you can get a free rest from Dosia in Dragonspear Castle before heading into the portal room with Bence.

+

4. The troop numbers that Torsin DeLancie and General Stonehand discuss are a bit ridiculous. We are besieging a magical castle with only 350 soldiers? The dialogues is changed and the troop numbers roughly quadrupled. That's it, it's purely for flavor.

-

Component 400:

+

Component 230:

Nothing to Fear but Feyr Itself

-

This very small component changes the encounter with Elandro at Bridgefort. It is meant to hint at the possibility that Elandro is... special, in a familiar way. But, like the Mirror Shard component above, the mod will give you no more than hints.

+

This very small component changes the encounter with Elandro at Bridgefort. It is meant to hint at the possibility that Elandro is... special, in a familiar way. But, nothing is made explicit, you just get a hint.

This component could make the Elandro encounter a bit more dangerous, depending on how you play things. So beware! Also it should give you a bit of a reward at the end, which you may find useful. This reward, again, is meant to hint at things to come. And is hopefully fun for players!

+

Component 240:

+
+

At the Precipice of Death

+

This small component attempts to add a noticeable acknowledgement that SoD send the child of the god of murder into Kanaglym, where there is an open portal to the Fugue Plane. That should count for something, right?

+

While in the Kanaglym map, Charname will get a passive, automatic Control Undead ability that you can use to help in your assault on Kherriun. But note, the undead will only recognize and obey you for so long - they get a saving throw to overcome your control every two rounds, and the save gets easier each time. Each one can probably be controlled for about one turn... probably...

+
+

Component 320:

+
+

Imoen Can Die, by Jastey

+

One longstanding issue with BG2 is that you run into Imoen at a time when the story really pushes you to take her into your party, but you might already have six people in your party. Or, given how many NPCs there are in the game (and how many mage/thieves, specifically) you just might not want to take Imoen to the end-game this run. It is understandable! But in the base game, the only way to do this is to leave Imoen alone in the depths of Spellhold - which is not only a dangerous dungeon, but is a magical dungeon that does not have stairs leading out! If she doesn't get out with you, she basically can't escape! (I know she can actually make her way to the Copper Coronet, but in the moment that does not seem possible and the whole thing is incredibly awkward.)

+

This component adds a dialogue branch with Imoen that has her die, right there. This absolves you of any implied responsibility to take her along in your party, and adds emotional weight to your drive to pursue Irenicus.

+

The dialogue branch is completely optional, so you can install this component and then continuously play the game the way it was originally designed. It just gives you the possibility of having things play out a different way. +

+

Component 330:

+
+

Wherever You Go, There You Are

+

This component makes several SoD areas accessible in BG2, as long as you did not play SoD up to that point. This is fundamentally meant to complement component 100's option to skip the SoD campaign - if you do, some of the SoD areas and dungeons will appear in BG2 as independent encounters. So you will still get the benefit of those very well-designed areas and battles. + While I designed this to support my own option in this mod, it should work just as well with other methods of skipping SoD as well - like, if you don't install component 100 and instead use another mod to skip the SoD campaign... or if you import a character from the end of BG1 into the BG2 campaign... or even if you just start a new BG2 campaign directly. As long as your character has not been through SoD, then you will be able to play through these areas in chapter 2 of BG2.

+

Note, however, that this component will only install on games that have EET installed - even though your character must not have played SoD, it is still necessary to have the SoD areas available in the game for the mod to send you there!

+

There are currently four areas added this way:
+ – The Coast Way Forest
+ – The Deepvein Dig Site
+ – Bloodbark Grove
+ – The Forest of Wyrms

+

This is designed as a kind of easter egg, so I do not want to spoil where the SoD areas are on the BG2 map. Most should be fairly obvious when you pass through the Athkatla City Gates; one, however, is in a different place - search west of De'Arnise's Hold.

+

NOTE: with this component installed, you can also play through SoD, and then these areas will not be accessible in BG2, and everything will play out completely normally. And of course even if you have these accessible, there is no need to interact with them. Like the 'Imoen Can Die' component, this does not necessarily change anything, it just gives you the option to have things changed.

+

Contact Information