move the dialog into centralized files

This commit is contained in:
laochailan 2018-04-29 10:28:21 +02:00
parent fd06ad3026
commit 7a957846fa
No known key found for this signature in database
GPG key ID: 49BE98017AFBC943
12 changed files with 388 additions and 135 deletions

98
src/dialog/marisa.c Normal file
View file

@ -0,0 +1,98 @@
#include "marisa.h"
#define M(side,message) dadd_msg(d,side,message)
void dialog_marisa_stage1(Dialog *d) {
M(Left, "Its gotten pretty cold round here. I wish I brought a sweater.");
M(Right, "Every time theres an incident, we fairies show up to stop weak humans like you from spoiling the fun!");
M(Left, "So, youre callin me weak?");
M(Right, "Weak to cold for sure! Ill turn you into a human-sized popsicle!");
M(Left, "Id like to see ya try.");
}
void dialog_marisa_stage1_post(Dialog *d) {
M(Left, "Ive made the lake a lot warmer now, so ya cant freeze anyone.");
}
void dialog_marisa_stage2(Dialog *d) {
M(Right, "I cant let you pass any further than this. Please go back down the mountain.");
M(Left, "So, is that your misfortune talkin?");
M(Right, "Exploring that tunnel is only going to lead you to ruin. Ill protect you by driving you away!");
M(Left, "I can make dumb decisions on my own, thanks.");
M(Right, "A bad attitude like that is destined to be cursed from the beginning. Ill send you packing home as a favor to you, so you dont get hurt further by your terrible ideas!");
}
void dialog_marisa_stage2_post(Dialog *d) {
M(Left, "Somehow I already feel luckier after beating ya. Fixin the border should be no sweat!");
}
void dialog_marisa_stage3(Dialog *d) {
M(Left, "Huh, didnt expect a bug to make it this far down the tunnel.");
M(Right, "All of this beautiful light, and you didnt expect me to be drawn to it?");
M(Left, "I expected ya to lose, thats all.");
M(Right, "Im nowhere near as weak as you think, human! In fact, being here has made me stronger than ever! Thats because Im the one that made this tunnel and broke the barrier,");
M(Right, "in order to finally show you all the true merit of insect power!");
M(Left, "I cant really say I believe ya on that point, bein that youre just a bug n all.");
M(Right, "Ha! Watch me put on a grand light show that will put your dud fireworks to shame!");
}
void dialog_marisa_stage3_post(Dialog *d) {
M(Left, "Whoops, looks like she burnt herself out on all that light she was all excited about. As I figured, the tunnels still here…");
M(Left, "so she wasnt the culprit at all, just a bug that got caught inside. She shoulda searched for a window instead of flyin right into the fire.");
}
void dialog_marisa_stage4(Dialog *d) {
M(Right, "Halt, intruder!");
M(Left, "Now heres a face I havent seen in a long time. Whats this fancy house all about anyways? Decided to guard Yūka again, or is it somebody new?");
M(Right, "Its none of your business, thats what it is. My friend is busy with some important work and she cant be disturbed by nosy humans poking into where they dont belong.");
M(Left, "Now thats no way to treat an old acquaintance! I know ya from before, so how about just givin me a backstage pass, eh?");
M(Right, "If you know me as well as you think you do, youd know that all youre going to get acquainted with is the taste of your own blood!");
M(Left, "Shoot, so thats a no to my reservation, right?");
}
void dialog_marisa_stage4_post(Dialog *d) {
M(Left, "Seems like the masterminds someone shes close to, huh? Guess I gotta get ready for another blast from the past.");
}
void dialog_marisa_stage5(Dialog *d) {
M(Left, "I finally caught up to ya! I shouldve known that the Dragons messenger would be hard to chase down in the air.");
M(Left, "Are you part of the incident too?");
M(Right, "Werent those earlier bombs enough of a deterrent? As this world is cutting into the space of Heaven, only those authorized are allowed to investigate.");
M(Right, "Youre not a Celestial or anyone else from Heaven. That means you cannot go further.");
M(Left, "Cmon, youre good at readin the atmosphere, right? Then ya should know that Im not gonna back down after comin this far.");
M(Right, "I dont have time to reason with you, unfortunately.");
M(Right, "When it comes to an average human sticking out arrogantly, theres only one reasonable course of action for a bolt of lightning to take.");
M(Right, "Prepare to be struck down from Heavens door!");
}
void dialog_marisa_stage5_mid(Dialog *d) {
// this dialog must contain only one page
M(Left, "Hey, wait! …Did I just see an oarfish?");
}
void dialog_marisa_stage5_post(Dialog *d) {
M(Left, "I can see the top!");
M(Left, "I might not have the proper credentials, but I can definitely solve this incident. Just sit back and leave it to me!");
}
void dialog_marisa_stage6(Dialog *d) {
M(Left, "And so the big bad boss behind it all is…");
M(Left, "Wait, Elly?!");
M(Right, "Thats strange; I thought Kurumi was keeping people from sneaking into my laboratory.");
M(Left, "You have a lab?! Last time we fought, ya were just some random guard. You didnt even know any science!");
M(Right, "After Yūka was defeated and left us for Gensōkyō, Kurumi and I decided we needed to do some soul searching and find another job.");
M(Right, "We stranded ourselves in the Outside World on accident, and I found my true calling as a theoretical physicist.");
M(Right, "This world Ive built… this is a world dictated not by the madness of Gensōkyō, but one of reason, logic, and common sense!");
M(Left, "Yeah, and thats why it broke the barrier, didnt it? You cant have a borin world like this next t Gensōkyō without causin us issues.");
M(Right, "An unenlightened fool like you wouldnt understand… Youre even still using magic, of all things!");
M(Left, "I understand enough to know that youre the problem. And like any good mathematician, Im gonna solve it by blastin it to bits!");
M(Right, "No! Youll never destroy my lifes work! Ill dissect that nonsensical magic of yours, and then Ill tear it apart!");
}
void dialog_marisa_stage6_inter(Dialog *d) {
M(Right, "Youve gotten this far… I cant believe it! But that will not matter once I show you the truth of this world, and every world.");
M(Right, "Space, time, dimensions… it all becomes clear when you understand The Theory of Everything!");
M(Right, "Prepare to see the barrier destroyed!");
}

24
src/dialog/marisa.h Normal file
View file

@ -0,0 +1,24 @@
/*
* This software is licensed under the terms of the MIT-License
* See COPYING for further information.
* ---
* Copyright (c) 2011-2018, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2018, Andrei Alexeyev <akari@alienslab.net>.
*/
#pragma once
#include "dialog.h"
void dialog_marisa_stage1(Dialog *d);
void dialog_marisa_stage1_post(Dialog *d);
void dialog_marisa_stage2(Dialog *d);
void dialog_marisa_stage2_post(Dialog *d);
void dialog_marisa_stage3(Dialog *d);
void dialog_marisa_stage3_post(Dialog *d);
void dialog_marisa_stage4(Dialog *d);
void dialog_marisa_stage4_post(Dialog *d);
void dialog_marisa_stage5(Dialog *d);
void dialog_marisa_stage5_mid(Dialog *d);
void dialog_marisa_stage5_post(Dialog *d);
void dialog_marisa_stage6(Dialog *d);
void dialog_marisa_stage6_inter(Dialog *d);

4
src/dialog/meson.build Normal file
View file

@ -0,0 +1,4 @@
dialog_src = files(
'marisa.c',
'youmu.c',
)

97
src/dialog/youmu.c Normal file
View file

@ -0,0 +1,97 @@
#include "youmu.h"
#include "dialog.h"
#define M(side,message) dadd_msg(d,side,message)
void dialog_youmu_stage1(Dialog *d) {
M(Left, "The temperature of the lake almost resembles the Netherworlds. Good thing I dont get cold easily.");
M(Right, "Whats that? You think you cant get cold?");
M(Left, "I dont just think that, I know that. Im half-phantom, so even my body is cold.");
M(Right, "Ill take that as a challenge! Prepare to be chilled in a way no ghost can match!");
M(Right, "Lets see if phantoms are good as soft-serve ice cream!");
}
void dialog_youmu_stage1_post(Dialog *d) {
M(Left, "Lady Yuyuko would probably like trying such an unusual flavor of ice cream. I hope she never gets that idea.");
}
void dialog_youmu_stage2(Dialog *d) {
M(Right, "I cant let you pass any further than this. Please go back down the mountain.");
M(Left, "Are you a goddess? Its nice of you to be looking out for me, but the Netherworld has been put at risk due to this incident.");
M(Left, "I have to keep going.");
M(Right, "The tunnel leads nowhere but to ruin. If you dont return to the ghostly world where you come from, Ill have to stop you by force!");
M(Left, "My mistress wont like it if I tell her I was stopped by divine intervention. Youll have to come up with another excuse.");
}
void dialog_youmu_stage2_post(Dialog *d) {
M(Left, "Its strange, but fighting a god makes me feel like some of my burdens are lifted. I wonder if she decided to bless me after all?");
}
void dialog_youmu_stage3(Dialog *d) {
M(Left, "Huh, why is it that I feel like Ive fought you before? But when I try to recall anything, my skin crawls and I seem to forget immediately.");
M(Right, "Maybe its because you realized the true power of us insects?");
M(Left, "No, I think its because I was too disgusted.");
M(Right, "How dare you! We make life possible for you humans, and in turn you disrespect us and call us derogatory things!");
M(Right, "Entering this light has given me great power. Ill stomp you out in the same cruel way you humans step on bugs!");
M(Left, "If I cut legs off of an insect, do they squirm all on their own? How gross!");
}
void dialog_youmu_stage3_post(Dialog *d) {
M(Left, "I never see any insect infestations while tending Hakugyokurōs gardens. Thats a convenience of being half-dead.");
}
void dialog_youmu_stage4(Dialog *d) {
M(Right, "Halt, intruder!");
M(Left, "Oh, and who might you be?");
M(Right, "Kuru— Hey, my name isnt important for a nosy person like you to know!");
M(Left, "I only wanted to know so I could refer to you politely. I dont want to call you a “random somebody” in your own house.");
M(Left, "Your house is very nice, by the way. Although I still think Hakugyokurō is bigger. Have you ever been there? Lady Yuyuko loves guests.");
M(Right, "This isnt my house, and youre not allowed to snoop any more than you have! If you keep ignoring me, Ill have to suck you dry right here where we stand!");
M(Left, "Its not your house, and yet youre telling me to leave? You sound just as presumptuous as the other vampire Ive met.");
M(Right, "I can bet you that Im much more frightening.");
}
void dialog_youmu_stage4_post(Dialog *d) {
M(Left, "Youre not as scary as her, or even as good of a host. Maybe you should work on your manners and buy yourself a nice mansion to lord over instead of taking someone elses.");
}
void dialog_youmu_stage5(Dialog *d) {
M(Left, "You were quite difficult to pin down. Dont worry; Ill listen to whatever warning you have before I continue forward.");
M(Right, "Hmm, youre the groundskeeper of the Netherworld, correct?");
M(Left, "Thats right. My mistress sent me here to investigate since the world of spirits has been put in jeopardy by this new world infringing on its boundaries.");
M(Right, "Im afraid I cannot let you pass. This new world is a great issue caused by an incredible new power. Only a Celestial or greater is qualified to handle such a dangerous occurrence.");
M(Left, "That doesnt seem fair considering Ive solved incidents before. I know what I am doing, and Lady Yuyuko entrusted me with this.");
M(Right, "If your confidence will not allow you to back down, then so be it. I will test you using all of Heavens might, and if you are unfit, you shall be cast down from this Tower of Babel!");
M(Left, "I shall pass whatever test necessary if it will allow me to fulfill the wishes of Lady Yuyuko!");
}
void dialog_youmu_stage5_mid(Dialog *d) {
// this dialog must contain only one page
M(Left, "A messenger of Heaven! If I follow her, Ill surely learn something about the incident!");
}
void dialog_youmu_stage5_post(Dialog *d) {
M(Left, "I can see the top!");
M(Left, "As you can see, I have cut through your challenge. You can trust me to get to the heart of the matter and handle it swiftly and carefully.");
}
void dialog_youmu_stage6(Dialog *d) {
M(Left, "Are you the one behind this new world?");
M(Right, "That is correct.");
M(Left, "Considering that scythe of yours, Im really quite surprised that a shikigami would be behind everything.");
M(Right, "That is because you completely misunderstand. I am not a shikigami, and never was. My duty was once to protect a powerful yōkai, but when she left for Gensōkyō, I was left behind.");
M(Right, "Together with my friend, Kurumi, we left for the Outside World and were stranded there. But I gained an incredible new power once I realized my true calling as a theoretical physicist.");
M(Left, "I dont completely follow, but if youre a yōkai, I cant see how you could be a scientist. It goes against your nature.");
M(Right, "An unenlightened fool such as yourself could never comprehend my transcendence.");
M(Right, "I have become more than a simple yōkai, for I alone am now capable of discovering the secrets behind the illusion of reality!");
M(Left, "Well, whatever youre doing here is disintegrating the barrier of common sense and madness keeping Gensōkyō from collapsing into the Outside World.");
M(Left, "Youre also infringing on the Netherworlds space and my mistress is particularly upset about that. That means I have to stop you, no matter what.");
M(Right, "Pitiful servant of the dead. Youll never be able to stop my lifes work from being fulfilled! Ill simply unravel that nonsense behind your half-and-half existence!");
}
void dialog_youmu_stage6_inter(Dialog *d) {
M(Right, "Youve gotten this far… I cant believe it! But that will not matter once I show you the truth of this world, and every world.");
M(Right, "Space, time, dimensions… it all becomes clear when you understand The Theory of Everything!");
M(Right, "Prepare to see the barrier destroyed!");
}

24
src/dialog/youmu.h Normal file
View file

@ -0,0 +1,24 @@
/*
* This software is licensed under the terms of the MIT-License
* See COPYING for further information.
* ---
* Copyright (c) 2011-2018, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2018, Andrei Alexeyev <akari@alienslab.net>.
*/
#pragma once
#include "dialog.h"
void dialog_youmu_stage1(Dialog *d);
void dialog_youmu_stage1_post(Dialog *d);
void dialog_youmu_stage2(Dialog *d);
void dialog_youmu_stage2_post(Dialog *d);
void dialog_youmu_stage3(Dialog *d);
void dialog_youmu_stage3_post(Dialog *d);
void dialog_youmu_stage4(Dialog *d);
void dialog_youmu_stage4_post(Dialog *d);
void dialog_youmu_stage5(Dialog *d);
void dialog_youmu_stage5_mid(Dialog *d);
void dialog_youmu_stage5_post(Dialog *d);
void dialog_youmu_stage6(Dialog *d);
void dialog_youmu_stage6_inter(Dialog *d);

View file

@ -109,6 +109,7 @@ subdir('renderer')
subdir('resource')
subdir('rwops')
subdir('stages')
subdir('dialog')
subdir('vfs')
configure_file(configuration : config, output : 'build_config.h')
@ -121,6 +122,7 @@ taisei_src += [
rwops_src,
stages_src,
vfs_src,
dialog_src,
]
if taisei_deps.contains(dep_sdl2_mixer)

View file

@ -11,25 +11,22 @@
#include "stage1_events.h"
#include "global.h"
#include "stagetext.h"
#include "dialog/youmu.h"
#include "dialog/marisa.h"
Dialog *stage1_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/cirno");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d, Left, "Its gotten pretty cold round here. I wish I brought a sweater.");
dadd_msg(d, Right, "Every time theres an incident, we fairies show up to stop weak humans like you from spoiling the fun!");
dadd_msg(d, Left, "So, youre callin me weak?");
dadd_msg(d, Right, "Weak to cold for sure! Ill turn you into a human-sized popsicle!");
dadd_msg(d, Left, "Id like to see ya try.");
}
if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d, Left, "The temperature of the lake almost resembles the Netherworlds. Good thing I dont get cold easily.");
dadd_msg(d, Right, "Whats that? You think you cant get cold?");
dadd_msg(d, Left, "I dont just think that, I know that. Im half-phantom, so even my body is cold.");
dadd_msg(d, Right, "Ill take that as a challenge! Prepare to be chilled in a way no ghost can match!");
dadd_msg(d, Right, "Lets see if phantoms are good as soft-serve ice cream!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage1(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage1(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage1boss");
@ -41,11 +38,15 @@ static Dialog *stage1_postdialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d, Left, "Ive made the lake a lot warmer now, so ya cant freeze anyone.");
}
if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d, Left, "Lady Yuyuko would probably like trying such an unusual flavor of ice cream. I hope she never gets that idea.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage1_post(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage1_post(d);
break;
default:
log_warn("No dialog available for this character.");
}
return d;

View file

@ -17,18 +17,15 @@ Dialog *stage2_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/hina");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Right, "I cant let you pass any further than this. Please go back down the mountain.");
dadd_msg(d,Left, "So, is that your misfortune talkin?");
dadd_msg(d,Right, "Exploring that tunnel is only going to lead you to ruin. Ill protect you by driving you away!");
dadd_msg(d,Left, "I can make dumb decisions on my own, thanks.");
dadd_msg(d,Right, "A bad attitude like that is destined to be cursed from the beginning. Ill send you packing home as a favor to you, so you dont get hurt further by your terrible ideas!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Right, "I cant let you pass any further than this. Please go back down the mountain.");
dadd_msg(d,Left, "Are you a goddess? Its nice of you to be looking out for me, but the Netherworld has been put at risk due to this incident.");
dadd_msg(d,Left, "I have to keep going.");
dadd_msg(d,Right, "The tunnel leads nowhere but to ruin. If you dont return to the ghostly world where you come from, Ill have to stop you by force!");
dadd_msg(d,Left, "My mistress wont like it if I tell her I was stopped by divine intervention. Youll have to come up with another excuse.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage2(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage2(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage2boss");
@ -39,10 +36,15 @@ Dialog *stage2_post_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d, Left, "Somehow I already feel luckier after beating ya. Fixin the border should be no sweat!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d, Left, "Its strange, but fighting a god makes me feel like some of my burdens are lifted. I wonder if she decided to bless me after all?");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage2_post(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage2_post(d);
break;
default:
log_warn("No dialog available for this character.");
}
return d;

View file

@ -13,25 +13,22 @@
#include "stage.h"
#include "enemy.h"
#include "dialog/youmu.h"
#include "dialog/marisa.h"
static Dialog *stage3_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/wriggle");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Left, "Huh, didnt expect a bug to make it this far down the tunnel.");
dadd_msg(d,Right, "All of this beautiful light, and you didnt expect me to be drawn to it?");
dadd_msg(d,Left, "I expected ya to lose, thats all.");
dadd_msg(d,Right, "Im nowhere near as weak as you think, human! In fact, being here has made me stronger than ever! Thats because Im the one that made this tunnel and broke the barrier,");
dadd_msg(d,Right, "in order to finally show you all the true merit of insect power!");
dadd_msg(d,Left, "I cant really say I believe ya on that point, bein that youre just a bug n all.");
dadd_msg(d,Right, "Ha! Watch me put on a grand light show that will put your dud fireworks to shame!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Left, "Huh, why is it that I feel like Ive fought you before? But when I try to recall anything, my skin crawls and I seem to forget immediately.");
dadd_msg(d,Right, "Maybe its because you realized the true power of us insects?");
dadd_msg(d,Left, "No, I think its because I was too disgusted.");
dadd_msg(d,Right, "How dare you! We make life possible for you humans, and in turn you disrespect us and call us derogatory things!");
dadd_msg(d,Right, "Entering this light has given me great power. Ill stomp you out in the same cruel way you humans step on bugs!");
dadd_msg(d,Left, "If I cut legs off of an insect, do they squirm all on their own? How gross!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage3(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage3(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage3boss");
@ -42,14 +39,17 @@ static Dialog *stage3_post_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d, Left, "Whoops, looks like she burnt herself out on all that light she was all excited about. As I figured, the tunnels still here…");
dadd_msg(d, Left, "so she wasnt the culprit at all, just a bug that got caught inside. She shoulda searched for a window instead of flyin right into the fire.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage3_post(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage3_post(d);
break;
default:
log_warn("No dialog available for this character.");
}
if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d, Left, "I never see any insect infestations while tending Hakugyokurōs gardens. Thats a convenience of being half-dead.");
}
return d;
}

View file

@ -15,6 +15,9 @@
#include "enemy.h"
#include "laser.h"
#include "dialog/youmu.h"
#include "dialog/marisa.h"
void kurumi_spell_bg(Boss*, int);
void kurumi_slaveburst(Boss*, int);
void kurumi_redspike(Boss*, int);
@ -27,22 +30,15 @@ Dialog *stage4_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/kurumi");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Right, "Halt, intruder!");
dadd_msg(d,Left, "Now heres a face I havent seen in a long time. Whats this fancy house all about anyways? Decided to guard Yūka again, or is it somebody new?");
dadd_msg(d,Right, "Its none of your business, thats what it is. My friend is busy with some important work and she cant be disturbed by nosy humans poking into where they dont belong.");
dadd_msg(d,Left, "Now thats no way to treat an old acquaintance! I know ya from before, so how about just givin me a backstage pass, eh?");
dadd_msg(d,Right, "If you know me as well as you think you do, youd know that all youre going to get acquainted with is the taste of your own blood!");
dadd_msg(d,Left, "Shoot, so thats a no to my reservation, right?");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Right, "Halt, intruder!");
dadd_msg(d,Left, "Oh, and who might you be?");
dadd_msg(d,Right, "Kuru— Hey, my name isnt important for a nosy person like you to know!");
dadd_msg(d,Left, "I only wanted to know so I could refer to you politely. I dont want to call you a “random somebody” in your own house.");
dadd_msg(d,Left, "Your house is very nice, by the way. Although I still think Hakugyokurō is bigger. Have you ever been there? Lady Yuyuko loves guests.");
dadd_msg(d,Right, "This isnt my house, and youre not allowed to snoop any more than you have! If you keep ignoring me, Ill have to suck you dry right here where we stand!");
dadd_msg(d,Left, "Its not your house, and yet youre telling me to leave? You sound just as presumptuous as the other vampire Ive met.");
dadd_msg(d,Right, "I can bet you that Im much more frightening.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage4(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage4(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage4boss");
@ -53,13 +49,17 @@ Dialog *stage4_dialog_end(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Left, "Seems like the masterminds someone shes close to, huh? Guess I gotta get ready for another blast from the past.");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Left, "Youre not as scary as her, or even as good of a host. Maybe you should work on your manners and buy yourself a nice mansion to lord over instead of taking someone elses.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage4_post(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage4_post(d);
break;
default:
log_warn("No dialog available for this character.");
}
return d;
}

View file

@ -13,18 +13,29 @@
#include <global.h>
#include <float.h>
#include "dialog/youmu.h"
#include "dialog/marisa.h"
Dialog *stage5_post_mid_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
DialogMessage *m = NULL;
if(pc->id == PLR_CHAR_MARISA) {
m = dadd_msg(d, Left, "Hey, wait! …Did I just see an oarfish?");
} else if(pc->id == PLR_CHAR_YOUMU) {
m = dadd_msg(d, Left, "A messenger of Heaven! If I follow her, Ill surely learn something about the incident!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage5_mid(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage5_mid(d);
break;
default:
log_warn("No dialog available for this character.");
}
assert(m != NULL);
if(d->count != 1) {
log_fatal("The stage 5 midboss dialog can only contain one line");
}
DialogMessage *m = &d->messages[0];
m->timeout = global.frames + 120;
return d;
@ -34,23 +45,15 @@ Dialog *stage5_boss_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/iku");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Left, "I finally caught up to ya! I shouldve known that the Dragons messenger would be hard to chase down in the air.");
dadd_msg(d,Left, "Are you part of the incident too?");
dadd_msg(d,Right, "Werent those earlier bombs enough of a deterrent? As this world is cutting into the space of Heaven, only those authorized are allowed to investigate.");
dadd_msg(d,Right, "Youre not a Celestial or anyone else from Heaven. That means you cannot go further.");
dadd_msg(d,Left, "Cmon, youre good at readin the atmosphere, right? Then ya should know that Im not gonna back down after comin this far.");
dadd_msg(d,Right, "I dont have time to reason with you, unfortunately.");
dadd_msg(d,Right, "When it comes to an average human sticking out arrogantly, theres only one reasonable course of action for a bolt of lightning to take.");
dadd_msg(d,Right, "Prepare to be struck down from Heavens door!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Left, "You were quite difficult to pin down. Dont worry; Ill listen to whatever warning you have before I continue forward.");
dadd_msg(d,Right, "Hmm, youre the groundskeeper of the Netherworld, correct?");
dadd_msg(d,Left, "Thats right. My mistress sent me here to investigate since the world of spirits has been put in jeopardy by this new world infringing on its boundaries.");
dadd_msg(d,Right, "Im afraid I cannot let you pass. This new world is a great issue caused by an incredible new power. Only a Celestial or greater is qualified to handle such a dangerous occurrence.");
dadd_msg(d,Left, "That doesnt seem fair considering Ive solved incidents before. I know what I am doing, and Lady Yuyuko entrusted me with this.");
dadd_msg(d,Right, "If your confidence will not allow you to back down, then so be it. I will test you using all of Heavens might, and if you are unfit, you shall be cast down from this Tower of Babel!");
dadd_msg(d,Left, "I shall pass whatever test necessary if it will allow me to fulfill the wishes of Lady Yuyuko!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage5(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage5(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage5boss");
@ -61,11 +64,15 @@ Dialog *stage5_post_boss_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, NULL);
dadd_msg(d, Left, "I can see the top!");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d, Left, "I might not have the proper credentials, but I can definitely solve this incident. Just sit back and leave it to me!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d, Left, "As you can see, I have cut through your challenge. You can trust me to get to the heart of the matter and handle it swiftly and carefully.");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage5_post(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage5_post(d);
break;
default:
log_warn("No dialog available for this character.");
}
return d;

View file

@ -13,36 +13,23 @@
#include "global.h"
#include "stagetext.h"
#include "dialog/youmu.h"
#include "dialog/marisa.h"
Dialog *stage6_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/elly");
if(pc->id == PLR_CHAR_MARISA) {
dadd_msg(d,Left, "And so the big bad boss behind it all is…");
dadd_msg(d,Left, "Wait, Elly?!");
dadd_msg(d,Right, "Thats strange; I thought Kurumi was keeping people from sneaking into my laboratory.");
dadd_msg(d,Left, "You have a lab?! Last time we fought, ya were just some random guard. You didnt even know any science!");
dadd_msg(d,Right, "After Yūka was defeated and left us for Gensōkyō, Kurumi and I decided we needed to do some soul searching and find another job.");
dadd_msg(d,Right, "We stranded ourselves in the Outside World on accident, and I found my true calling as a theoretical physicist.");
dadd_msg(d,Right, "This world Ive built… this is a world dictated not by the madness of Gensōkyō, but one of reason, logic, and common sense!");
dadd_msg(d,Left, "Yeah, and thats why it broke the barrier, didnt it? You cant have a borin world like this next t Gensōkyō without causin us issues.");
dadd_msg(d,Right, "An unenlightened fool like you wouldnt understand… Youre even still using magic, of all things!");
dadd_msg(d,Left, "I understand enough to know that youre the problem. And like any good mathematician, Im gonna solve it by blastin it to bits!");
dadd_msg(d,Right, "No! Youll never destroy my lifes work! Ill dissect that nonsensical magic of yours, and then Ill tear it apart!");
} else if(pc->id == PLR_CHAR_YOUMU) {
dadd_msg(d,Left, "Are you the one behind this new world?");
dadd_msg(d,Right, "That is correct.");
dadd_msg(d,Left, "Considering that scythe of yours, Im really quite surprised that a shikigami would be behind everything.");
dadd_msg(d,Right, "That is because you completely misunderstand. I am not a shikigami, and never was. My duty was once to protect a powerful yōkai, but when she left for Gensōkyō, I was left behind.");
dadd_msg(d,Right, "Together with my friend, Kurumi, we left for the Outside World and were stranded there. But I gained an incredible new power once I realized my true calling as a theoretical physicist.");
dadd_msg(d,Left, "I dont completely follow, but if youre a yōkai, I cant see how you could be a scientist. It goes against your nature.");
dadd_msg(d,Right, "An unenlightened fool such as yourself could never comprehend my transcendence.");
dadd_msg(d,Right, "I have become more than a simple yōkai, for I alone am now capable of discovering the secrets behind the illusion of reality!");
dadd_msg(d,Left, "Well, whatever youre doing here is disintegrating the barrier of common sense and madness keeping Gensōkyō from collapsing into the Outside World.");
dadd_msg(d,Left, "Youre also infringing on the Netherworlds space and my mistress is particularly upset about that. That means I have to stop you, no matter what.");
dadd_msg(d,Right, "Pitiful servant of the dead. Youll never be able to stop my lifes work from being fulfilled! Ill simply unravel that nonsense behind your half-and-half existence!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage6(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage6(d);
break;
default:
log_warn("No dialog available for this character.");
}
dadd_msg(d, BGM, "stage6boss_phase1");
return d;
}
@ -51,9 +38,16 @@ static Dialog *stage6_interboss_dialog(void) {
PlayerCharacter *pc = global.plr.mode->character;
Dialog *d = create_dialog(pc->dialog_sprite_name, "dialog/elly");
dadd_msg(d, Right, "Youve gotten this far… I cant believe it! But that will not matter once I show you the truth of this world, and every world.");
dadd_msg(d, Right, "Space, time, dimensions… it all becomes clear when you understand The Theory of Everything!");
dadd_msg(d, Right, "Prepare to see the barrier destroyed!");
switch(pc->id) {
case PLR_CHAR_MARISA:
dialog_marisa_stage6_inter(d);
break;
case PLR_CHAR_YOUMU:
dialog_youmu_stage6_inter(d);
break;
default:
log_warn("No dialog available for this character.");
}
return d;
}