diff --git a/.gitignore b/.gitignore index ba1538e..a5669d8 100644 --- a/.gitignore +++ b/.gitignore @@ -362,3 +362,4 @@ MigrationBackup/ FodyWeavers.xsd AnnouncementDraft.txt +Cutscenes/ diff --git a/Endings/EndingA.cs b/Endings/EndingA.cs new file mode 100644 index 0000000..f6d250c --- /dev/null +++ b/Endings/EndingA.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.Video; + +namespace HKSecondQuest.Endings +{ + internal class CutsceneChanger : MonoBehaviour + { + bool changed = false; + public string Cutscene; + void Update() + { + if (!changed && GetComponent()) + { + changed = true; + string dir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Cutscenes", Cutscene); + GetComponent().Stop(); + GetComponent().url = dir; + GetComponent().aspectRatio = VideoAspectRatio.FitInside; + GetComponent().Play(); + } + } + } + internal class EndingA : Room + { + public EndingA() : base("Cinematic_Ending_A") { } + + public override void OnLoad() + { + GameObject.Find("Cinematic Player").AddComponent().Cutscene = "Ending1.mp4"; + } + } +} diff --git a/Endings/EndingC.cs b/Endings/EndingC.cs new file mode 100644 index 0000000..27eb266 --- /dev/null +++ b/Endings/EndingC.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace HKSecondQuest.Endings +{ + internal class EndingC : Room + { + public EndingC() : base("Cinematic_Ending_C") { } + + public override void OnLoad() + { + GameObject.Find("Cinematic Player").AddComponent().Cutscene = "Ending2.mp4"; + + } + } +} diff --git a/GeneralChanges.cs b/GeneralChanges.cs index cf11979..b6e8d9b 100644 --- a/GeneralChanges.cs +++ b/GeneralChanges.cs @@ -31,6 +31,11 @@ public static void ChangeText() ReplaceText("STAG_CROSSROADS", "Ah, the old village on the road to the Glimmering City! Travelers often stayed here for the night, in one of the Inns.Not sure how many are left, though.I heard there's a little cleptomaniac bug that lives deep within the plantations. Maybe you should pay him a visit. You also seem to like collecting things."); ReplaceText("STAG_NEST", "This is where we stags live. Please don't wake anyone up, being a stag is hard work!", "Stag"); ReplaceText("STAG_HIDDEN", "Ah, the old station at the King's Palace. It does seem to be in quite bad shape, a wonder that it still works.Though I doubt it will see much travel in the future."); + ReplaceText("STAG_DREAM", "I wonder how my brethren are doing? I really can handle all trafic on my own these days..."); + ReplaceText("STAG_TRAM", "Oh, you carry a tram pass! They are beautiful machines, aren't they? Though I always said they should leave out the windows. Travel just isn't the same without the fresh breeze in your mane."); + ReplaceText("STAG_HOPE_1", "The stag nest. Be careful, it's quite crammed. Once dozens of stags were necessary to run the stag network. Now I can easily handle everyone. I'm the youngest, you see? So the burden fell on me."); + ReplaceText("STAG_HOPE_2", "There have been now new stags as well for quite some time. It just isn't necessary these days. So everyone just gets older and older."); + ReplaceText("STAG_REMEMBER_1", "Ah, Cornifer has been busy, hasn't he? At least some of the network is up and running again. I'm sure business will be right back to normal soon."); //inventory text ReplaceText("INV_DESC_WHITEKEY", "A very fancy, glimmering key"); diff --git a/HKSecondQuest.cs b/HKSecondQuest.cs index fd72d45..d347362 100644 --- a/HKSecondQuest.cs +++ b/HKSecondQuest.cs @@ -152,6 +152,8 @@ public void InitializeWorld(On.UIManager.orig_StartNewGame orig, UIManager self, /// public void CorrectGrubfather() { + if (!saveSettings.glimmeringRealmEnabled) return; + Settings set = (Settings)typeof(ItemChangerMod).GetField("SET", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); foreach(var placement in set.GetPlacements()) { @@ -170,6 +172,8 @@ public void CorrectGrubfather() public void OnSaveLoad() { + if (!saveSettings.glimmeringRealmEnabled) return; + if (saveSettings.revision < CurrentRevision) { RevisionManager.OnRevision(saveSettings.revision, CurrentRevision); @@ -354,7 +358,7 @@ public void OnMainMenu(On.MenuStyleTitle.orig_SetTitle orig, global::MenuStyleTi title.GetComponent().sprite = titleSprite; //slightly blue, to make it stand apart from the background title.GetComponent().color = new UnityEngine.Color(193 / 255f, 225 / 255f, 253 / 255f); - title.transform.SetScaleMatching(2.7f); + title.transform.SetScaleMatching(2.7f); } } } diff --git a/HKSecondQuest.csproj b/HKSecondQuest.csproj index ccf7d64..fab0ffc 100644 --- a/HKSecondQuest.csproj +++ b/HKSecondQuest.csproj @@ -6,7 +6,7 @@ - + HKSecondQuest TheGlimmeringRealm net472 @@ -24,13 +24,25 @@ + + + + + + + + + + + + diff --git a/Maps/Layout.png b/Maps/Layout.png index 4e8fa95..710868e 100644 Binary files a/Maps/Layout.png and b/Maps/Layout.png differ diff --git a/Prefabs.cs b/Prefabs.cs index dc5c6df..fe1abe5 100644 --- a/Prefabs.cs +++ b/Prefabs.cs @@ -39,5 +39,7 @@ internal class Prefabs public static Prefab DUSK_KNIGHT = new Prefab("Abyss_05", "Dusk Knight"); public static Prefab WHITE_PALACE_ENTRANCE = new Prefab("White_Palace_11", "door1"); public static Prefab DREAM_ENTRY = new Prefab("White_Palace_11", "Dream Entry"); + public static Prefab WHITE_PALACE_LEVER = new Prefab("White_Palace_14", "White Palace Orb Lever"); + public static Prefab PURE_VESSEL_STATUE = new Prefab("GG_Workshop", "GG_Statue_HollowKnight"); } } diff --git a/ReadMe.md b/ReadMe.md index d13c104..742bdfc 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -14,6 +14,7 @@ ItemChanger\ MenuChanger Made by Toboter +Cutscenes drawn by Gaia - the Dancer On The Sun Available on Scarab diff --git a/Rooms/Area5/FinalBossCore.cs b/Rooms/Area5/FinalBossCore.cs index e3338ce..5c4754f 100644 --- a/Rooms/Area5/FinalBossCore.cs +++ b/Rooms/Area5/FinalBossCore.cs @@ -7,6 +7,18 @@ namespace HKSecondQuest.Rooms.Area5 { + internal class EndingTransitionController : MonoBehaviour + { + bool started = false; + void Update() + { + if (!started && GameObject.Find("Boss Corpse") && GameObject.Find("Boss Corpse").LocateMyFSM("Corpse").ActiveStateName == "Idle") + { + started = true; + GameManager.instance.ChangeToScene("Cinematic_Ending_A", "door1", 0); + } + } + } //Activates the Dream Transition to the Palace Gardens in the last phase internal class DreamTransitionController : MonoBehaviour { @@ -72,6 +84,7 @@ public override void OnBeforeLoad() public override void OnLoad() { GameObject.Find("Boss Control").AddComponent(); + GameObject.Find("Boss Control").AddComponent(); } diff --git a/Rooms/Area7/Edge12.cs b/Rooms/Area7/Edge12.cs new file mode 100644 index 0000000..78f69b1 --- /dev/null +++ b/Rooms/Area7/Edge12.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HKSecondQuest.Rooms.Area7 +{ + internal class Edge12 : Room + { + public Edge12() : base("Deepnest_East_12") { } + public override void OnLoad() + { + DestroyGO("Hornet Encounter Outskirts"); + } + } +} diff --git a/Rooms/Area8/Area8.cs b/Rooms/Area8/Area8.cs new file mode 100644 index 0000000..5184f31 --- /dev/null +++ b/Rooms/Area8/Area8.cs @@ -0,0 +1,37 @@ +using ItemChanger; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class Area8 : Room + { + public Area8() : base("Area 8") { Revision = 2; } + + public override void OnWorldInit() + { + SetTransition("Deepnest_East_03", "right1", "White_Palace_11", "left1"); + SetTransition("White_Palace_11", "door2", "White_Palace_05", "right1"); + SetTransition("White_Palace_05", "left1", "White_Palace_03_hub", "bot1"); + SetTransition("White_Palace_03_hub", "left2", "White_Palace_13", "left2"); + SetTransition("White_Palace_03_hub", "left1", "White_Palace_13", "left1"); + SetTransition("White_Palace_13", "right1", "Room_Mender_House", "left1"); + SetTransition("Room_Mender_House", "left1", "White_Palace_03_hub", "left1", oneWay: true); + SetTransition("White_Palace_03_hub", "right1", "White_Palace_15", "left1"); + SetTransition("White_Palace_15", "right2", "White_Palace_04", "right2"); + SetTransition("White_Palace_04", "top1", "White_Palace_15", "right1"); + //SetTransition("White_Palace_03_hub", "top1", "GG_Hollow_Knight", "door1"); + } + + public override void OnInit() + { + ReplaceText("MENDER_DIARY", "Hi, my name is Toboter. We've probably never talked, but it seems you are enjoying my mod. And I just wanted to thank you with all my heart for playing it.Many people have contributed to this. I couldn't have changed the game's world like I did without the ItemChanger Mod by homothety and Flibber. And Gaia - the Dancer On The Sun did wonderful work on the cutscenes, which truely elevate the story. homothety also made the MenuChanger mod that made it possible for me to make this a seperate game mode.I want to thank Exempt-Medic, DwarfWoot, Rye and all the other playtesters for enduring a less than stellar version of this mod.
And I want to thank everyone in the Hollow Knight Modding Discord who offered guidance and technical help.But the final person I want to thank...Is the one who recommended you the mod.They're the real hero of this story.You want to be thanked for playing? I did that at the very start! Were you even listening?!Okay...fine...Thank you so much for playing. If you want to chat, there's a channel in the Modding Discord. I hope I could temporarily ease some of the burdens on your current path in life. So... Good luck with the rest of the mod, I guess!"); + ReplaceText("WHITE_PALACE", "The Glimmering Palace"); + ReplaceText("WHITE_PALACE_SUPER", "The Glimmering"); + ReplaceText("HK_PRIME_MAIN", "The Glimmering King"); + } + } +} diff --git a/Rooms/Area8/MenderHouse.cs b/Rooms/Area8/MenderHouse.cs new file mode 100644 index 0000000..2b64268 --- /dev/null +++ b/Rooms/Area8/MenderHouse.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class MenderHouse : Room + { + public MenderHouse() : base("Room_Mender_House") { IsFlipped = true; } + } +} diff --git a/Rooms/Area8/PureVessel.cs b/Rooms/Area8/PureVessel.cs new file mode 100644 index 0000000..a766363 --- /dev/null +++ b/Rooms/Area8/PureVessel.cs @@ -0,0 +1,43 @@ +using HutongGames.PlayMaker; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class EndingController : MonoBehaviour + { + bool started = false; + void Update() + { + GameObject pvCorpse = GameObject.Find("Corpse HK Prime(Clone)"); + if (pvCorpse != null) + { + Fsm control = pvCorpse.LocateMyFSM("corpse").Fsm; + if (!started && control.ActiveStateName == "End Scene") + { + started = true; + GameManager.instance.ChangeToScene("Cinematic_Ending_C", "door1", 0); + } + } + } + } + internal class PureVessel : Room + { + public PureVessel() : base("GG_Hollow_Knight") { } + public override void OnBeforeLoad() + { + + } + public override void OnLoad() + { + DestroyGO("Godseeker Crowd"); + GameObject.Find("HK Prime").GetComponent().hp = 1000; + GameObject.Find("Boss Scene Controller").AddComponent(); + } + } +} diff --git a/Rooms/Area8/WhitePalace11.cs b/Rooms/Area8/WhitePalace11.cs new file mode 100644 index 0000000..b463426 --- /dev/null +++ b/Rooms/Area8/WhitePalace11.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class WhitePalace11 : Room + { + public WhitePalace11() : base("White_Palace_11") { } + + public override void OnBeforeLoad() + { + GameObject left1 = PlaceGO(Prefabs.LEFT_TRANSITION.Object, 11, 18, Quaternion.identity); + left1.SetActive(true); + left1.name = "left1"; + left1.transform.GetChild(2).gameObject.SetActive(false); + } + + public override void OnLoad() + { + DestroyGO("dream_nail_base"); + DestroyGO("dream_beam_animation"); + DestroyGO("doorWarp"); + } + } +} diff --git a/Rooms/Area8/WhitePalace13.cs b/Rooms/Area8/WhitePalace13.cs new file mode 100644 index 0000000..63a10fc --- /dev/null +++ b/Rooms/Area8/WhitePalace13.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class WhitePalace13 : Room + { + public WhitePalace13() : base("White_Palace_13") { IsFlipped = true; } + public override void OnLoad() + { + PlaceGO(Prefabs.LARGE_PLATFORM.Object, 105, 212); + } + } +} diff --git a/Rooms/Area8/WhitePalace3Hub.cs b/Rooms/Area8/WhitePalace3Hub.cs new file mode 100644 index 0000000..3b7bfda --- /dev/null +++ b/Rooms/Area8/WhitePalace3Hub.cs @@ -0,0 +1,64 @@ +using GlobalEnums; +using HutongGames.PlayMaker; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class PVGate : MonoBehaviour + { + bool startedTransition = false; + public static GameObject pvStatue; + + + private void OnTriggerEnter2D(Collider2D movingObj) + { + if (!startedTransition && movingObj.gameObject.layer == 9 && GameManager.instance.gameState == GameState.PLAYING) + { + startedTransition = true; + Fsm statueControl = pvStatue.transform.GetChild(0).gameObject.LocateMyFSM("GG Boss UI").Fsm; + + statueControl.GetState("Take Control").Transitions[0].ToFsmState = statueControl.GetState("Impact"); + statueControl.Variables.FindFsmString("Return Scene").Value = "White_Palace_03_hub"; + statueControl.Variables.FindFsmString("To Scene").Value = "GG_Hollow_Knight"; + statueControl.SetState("Take Control"); + + + } + } + } + + internal class WhitePalace3Hub : Room + { + GameObject pvStatue; + public WhitePalace3Hub() : base("White_Palace_03_hub") { } + + public override void OnBeforeLoad() + { + pvStatue = PlaceGO(Prefabs.PURE_VESSEL_STATUE.Object, 56, 46); + pvStatue.transform.GetChild(7).gameObject.name = "door_dreamReturn"; + PlayerData.instance.statueStateHollowKnight = new BossStatue.Completion { isUnlocked = true, hasBeenSeen = true }; + + PVGate.pvStatue = pvStatue; + + } + public override void OnLoad() + { + PlaceGO(Prefabs.WHITE_PALACE_LEVER.Object, 7.9f, 97.4f); + pvStatue.transform.GetChild(0).gameObject.LocateMyFSM("npc_control").enabled = false; + pvStatue.transform.GetChild(0).gameObject.SetActive(true); + pvStatue.transform.GetChild(1).gameObject.LocateMyFSM("inspect_region").enabled = false; + + GameObject gate = GameObject.Find("top1"); + GameObject.Destroy(gate.GetComponent()); + GameObject.Destroy(gate.GetComponent()); + gate.AddComponent(); + + GameObject.Find("top1").transform.position = new Vector3(53, 104, 0); + } + } +} diff --git a/Rooms/Area8/WhitePalace4.cs b/Rooms/Area8/WhitePalace4.cs new file mode 100644 index 0000000..496849d --- /dev/null +++ b/Rooms/Area8/WhitePalace4.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class WhitePalace4 : Room + { + public WhitePalace4() : base("White_Palace_04") { IsFlipped = true; } + + public override void OnLoad() + { + GameObject.Find("wp_saw_side_to_side1").GetComponent().speed = 0.95f; + GameObject.Find("saw_still (2)").transform.SetPositionY(44); + } + } +} diff --git a/Rooms/Area8/WhitePalace5.cs b/Rooms/Area8/WhitePalace5.cs new file mode 100644 index 0000000..54b0f2f --- /dev/null +++ b/Rooms/Area8/WhitePalace5.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HKSecondQuest.Rooms.Area8 +{ + internal class WhitePalace5 : Room + { + public WhitePalace5() : base("White_Palace_05") { IsFlipped = true; } + } +} diff --git a/Rooms/City/BathhouseElevator.cs b/Rooms/City/BathhouseElevator.cs index 1726b16..a99c4df 100644 --- a/Rooms/City/BathhouseElevator.cs +++ b/Rooms/City/BathhouseElevator.cs @@ -13,7 +13,7 @@ public BathhouseElevator() : base("Ruins_Elevator") { } public override void OnLoad() { - PlaceGO(Prefabs.LARGE_PLATFORM.Object, 66, 98, Quaternion.Euler(0, 0, 90)); + //PlaceGO(Prefabs.LARGE_PLATFORM.Object, 66, 98, Quaternion.Euler(0, 0, 90)); } } } diff --git a/Rooms/City/City.cs b/Rooms/City/City.cs index d8cd23e..705febb 100644 --- a/Rooms/City/City.cs +++ b/Rooms/City/City.cs @@ -68,7 +68,7 @@ public override void OnInit() ReplaceText("RELICDEALER_JOURNAL_2", "These aren't actually written by wanderers. Their stories just aren't captivating enough."); ReplaceText("RELICDEALER_JOURNAL_3", "You know, these were quite the rage for a while in Hallownest. No idea what happened with all those journals there."); ReplaceText("RELICDEALER_JOURNAL_4", "Oh, I really liked this one! It's about a slug warrior who carries his son with him in his house. Fantastic lore!"); - ReplaceText("RELICDEALER_JOURNAL_5", "Ah, another journal. Thanks!"); + ReplaceText("RELICDEALER_JOURNAL_5", "Hmm, this is a curious story. It seems to be written by a bug called Elena, about the depths of a derelict kingdom. Strange, I can't remember ever writing this."); ReplaceText("RELICDEALER_JOURNAL_6", "Ah, another journal. Thanks!"); ReplaceText("RELICDEALER_JOURNAL_7", "Ah, another journal. Thanks!"); ReplaceText("RELICDEALER_JOURNAL_8", "Ah, another journal. Thanks!"); @@ -76,19 +76,19 @@ public override void OnInit() ReplaceText("RELICDEALER_SEAL_2", "These little trinkets are in the shape of the Glimmering King's coat of arms. It's even got the little fork at the top!"); ReplaceText("RELICDEALER_SEAL_3", "You may think these look quite similar to the Seal of Hallownest, but you'd be wrong. They are actually a different shade of purple."); ReplaceText("RELICDEALER_SEAL_4", "You know, I heard of a land far away, called the land of storms. Its inhabitants are supposed to have mysterious and arcane powers. Perhaps some will come and visit one day?"); - ReplaceText("RELICDEALER_SEAL_5", "Ah, another seal! Thanks for that!"); + ReplaceText("RELICDEALER_SEAL_5", "These seals are supposedly a charm against evil spirits entering your dreams. That said, they are little more than a small slab of fungiwood, so probably not."); ReplaceText("RELICDEALER_SEAL_6", "Ah, another seal! Thanks for that!"); ReplaceText("RELICDEALER_SEAL_7", "Ah, another seal! Thanks for that!"); ReplaceText("RELICDEALER_IDOL_1", "A king's idol. These are a small effigy of the Glimmering King. The old man sadly isn't around anymore these days, but he was quite the figure. Children loved these. Always kept chewing the heads off."); ReplaceText("RELICDEALER_IDOL_2", "Did you know, with the prongs on the end, these can be used as forks in a pinch!Although that's probably treason."); ReplaceText("RELICDEALER_IDOL_3", "After the coup, the king fled deep into the mountain. No idea what happened to him there. Kingdom has never been the same, though."); - ReplaceText("RELICDEALER_IDOL_4", "Ah, another idol! Thanks for that!"); + ReplaceText("RELICDEALER_IDOL_4", "There was a great battle at the gates of the palace, you know? But in the end, the Mask Maker's forces prevailed, and burned the palace to the ground.A shame really. It was a beautiful piece of architecture."); ReplaceText("RELICDEALER_IDOL_5", "Ah, another idol! Thanks for that!"); ReplaceText("RELICDEALER_IDOL_6", "Ah, another idol! Thanks for that!"); ReplaceText("RELICDEALER_IDOL_7", "Ah, another idol! Thanks for that!"); ReplaceText("RELICDEALER_EGG_1", "Oh, an Arcane Egg! These were very much an upper class thing. I used to talk for hours about the perils of the hunters that collected them.All rubbish, of course. They're made just down the road."); ReplaceText("RELICDEALER_EGG_2", "The guy who made these eggs sadly doesn't work in the business anymore. He's kinda busy being a king these days. I guess it's proof you can still move up in the world."); - ReplaceText("RELICDEALER_EGG_3", "Ah, another egg! Thanks!"); + ReplaceText("RELICDEALER_EGG_3", "I once had a request from a local restaurant that wanted to license these for their arcane omelettes. I sadly had to decline the offer. Professionals have standards!"); ReplaceText("RELICDEALER_EGG_4", "Ah, another egg! Thanks!"); ReplaceText("RELICDEALER_NO_RELICS", "Hmm, looks like you don't have any souvenirs for me? Would you like to buy some? Although you don't really seem the commemorative type."); ReplaceText("RELICDEALER_NAILSMITH", "Oooh, you've got a really wrecked looking sword there! That would sell for a fortune with a good story!The Nailsmith just down the road might be much more interested, though."); @@ -154,6 +154,34 @@ public override void OnInit() ReplaceText("FLUKE_HERMIT_IDLE_5", "Till then, I'm the only one..."); ReplaceText("FLUKE_HERMIT_PEERING", ""); ReplaceText("FLUKE_HERMIT_PEERING_DREAM", "So much money! I'll finally buy that little house in Ditrmouth! Far away from this!"); + + //Zemeer + ReplaceText("XUN_MEET", "Bonjour! May I offer you a beautiful flower? No? Then perhaps you might aid in the delivery of one?Be careful, it is extremely fragile, one of a kind, and ordered by the king himself!I even have a little token of gratitude if you complete the delivery."); + ReplaceText("XUN_ACCEPT", "Fantastic! It needs to be delivered to a grave in the Crystal Depths. Remember, it's extremely fragile and one of a kind!"); + ReplaceText("XUN_REFUSE", "No? Fair enough. I'll ask the next guy who passes through."); + ReplaceText("XUN_REOFFER", "Wanna take a shot at the delivery anyways?"); + ReplaceText("XUN_SUCCESS1", "You did it! Fantastic! I knew I could count on you! Now... what did we agree to again?What? Money? No, you must be mistaken! Here have a random medal!"); + ReplaceText("XUN_FAILED", "Oh, you broke it? No problem. Just between us: I've got dozens of the things. Just don't tell the king, or he'll want a lower price."); + ReplaceText("XUN_REOFFER2", "Would you try the delivery again?"); + ReplaceText("XUN_ACCEPT2", "Fantastic! It needs to be delivered to a grave in the Crystal Depths. Good luck!"); + ReplaceText("XUN_FAILED2", "That one broke as well? No worried, I can use the sticks as supports for my roses."); + ReplaceText("XUN_SUCCESS2", "You did it! Fantastic! I knew I could count on you! Now... what did we agree to again?What? Money? No, you must be mistaken! Here have a random medal!"); + ReplaceText("XUN_HAVE_FLOWER", "Just... take the first turn right... then left ...Something like that. You can't miss it, it's green."); + ReplaceText("XUN_HAVE_FLOWER2", "Just... take the first turn right... then left ...Something like that. You can't miss it, it's green."); + ReplaceText("XUN_GRAVE_INSPECT", "Here rests the masked child"); + ReplaceText("XUN_GRAVE_INSPECT2", "Here rests the masked child"); + ReplaceText("XUN_DREAM", "Flower vendor is such a wonderful and fullfilling job! Now I even get to boss around heavily armed children!"); + ReplaceText("XUN_KING_BRAND", "Oh, you stole the Mask Maker's key? What a delightful story! You'll have to tell me all about your heist at some point!"); + ReplaceText("XUN_GRAVE_FLOWER", "A flower has been placed"); + ReplaceText("XUN_MAIN", "Vendor"); + + ReplaceText("POGGY_TALK", "Ah, welcome to my butcher's shop! I might be a little see through, but I guarantee you, my meat is not!Except the aspic.Can I interest you in a lovely slice of crawling ham?"); + ReplaceText("POGGY_REPEAT", "I can guarantee you, it's fresher than it looks! And you won't get it cheaper anywhere else!"); + + ReplaceText("RUINS_MARISSA_POSTER", "And now on stage, the delightful Sylas and Delilah!
The best hits from last year and the year before that!"); + ReplaceText("MARISSA_TALK", "Oh dear, an audience! Sadly, my dear friend Sylas has departed, so it won't be the same. But an aria should still be possible!"); + ReplaceText("MARISSA_REPEAT", "He truely was a dear friend... Maybe I should follow? ... One day maybe."); + ReplaceText("BATHHOUSE_CORPSE", "...Sylas!...Delilah!..."); } } } diff --git a/Rooms/Village1/Village1.cs b/Rooms/Village1/Village1.cs index 8c6faf2..d352b33 100644 --- a/Rooms/Village1/Village1.cs +++ b/Rooms/Village1/Village1.cs @@ -109,6 +109,10 @@ public override void OnInit() ReplaceText("WITCH_DREAM_FALL", "Dreams... such power..."); ReplaceText("WITCH_DREAM", "Have no dreams... must collect..."); ReplaceText("WITCH_TALK", "Have you met... the old bug? He is not as shiny as you... but smells nice...Have you met... the old caterpillar? He lacks... children..."); + + ReplaceText("GH_GRAVEDIGGER_NC_MAIN", "Gravedigger"); + ReplaceText("GRAVEDIGGER_TALK", "Ah, another warrior! Fantastic, those are always great for business!"); + ReplaceText("GRAVEDIGGER_REPEAT", "Could maybe commit a few murders on your way out? Or at least some light pillaging?"); } public override void OnBeforeLoad()