GASTER特别版——第三部分(完!)
2025-09-13 17:28:38
发布于:上海
Color(7);
print_slow("金币: ");
Color(14);
print_slow(int_to_string(p.Money) + "\n");
Color(7);
print_slow("闪避率: ");
Color(12);
print_slow(int_to_string(p.dodge) + "%\n");
// Gaster显示吸收的怪物
if (is_gaster && !absorbed_monsters.empty()) {
Color(13);
print_slow("吸收的灵魂: ");
for (size_t i = 0; i < absorbed_monsters.size(); ++i) {
if (i > 0) print_slow(", ");
print_slow(absorbed_monsters[i]);
}
print_slow("\n");
Color(7);
}
print_slow("\n输入任意键继续...");
string temp;
cin >> temp;
break;
}
case 4:
use_item_menu(p);
break;
case 5: {
// 区域移动逻辑
if (current_area == UNDERGROUND) {
if (!met_toriel) {
print_slow("Toriel拦住了你: 孩子,外面很危险,不要离开!\n");
Sleep(1000);
return;
}
current_area = SNOWDIN;
print_slow("你离开了废墟,来到了雪町...\n");
}
else if (current_area == SNOWDIN) {
if (!met_papyrus) {
print_slow("道路被一个巨大的谜题挡住了...你需要先解决它...\n");
Sleep(1000);
return;
}
current_area = WATERFALL;
print_slow("你离开了雪町,来到了瀑布...\n");
}
else if (current_area == WATERFALL) {
if (!met_undyne) {
print_slow("Undyne在桥上等着你: 别想跑,人类!\n");
Sleep(1000);
return;
}
current_area = HOTLAND;
print_slow("你离开了瀑布,来到了热域...\n");
}
else if (current_area == HOTLAND) {
if (!met_alphys) {
print_slow("通往核心的门被锁住了...你需要找到钥匙...\n");
Sleep(1000);
return;
}
current_area = CORE;
print_slow("你进入了核心...\n");
}
else if (current_area == CORE) {
if (!met_mtt) {
print_slow("Mettaton挡住了你的去路: 表演还没结束呢,亲爱的观众!\n");
Sleep(1000);
return;
}
current_area = NEW_HOME;
print_slow("你来到了新家...\n");
}
else if (current_area == NEW_HOME) {
print_slow("这里是旅程的终点...你无法继续前进了...\n");
Sleep(1000);
return;
}
else if (current_area == JUDGMENT_HALL) {
current_area = NEW_HOME;
print_slow("你离开了审判长廊...\n");
}
else if (current_area == TRUE_LAB) {
current_area = HOTLAND;
print_slow("你离开了真实验室...\n");
}
else if (current_area == ASRIEL_AREA) {
current_area = NEW_HOME;
print_slow("你回到了新家...\n");
}
Sleep(1000);
break;
}
case 6:
// 已在上面处理
break;
default:
print_slow("无效的选择!\n");
Sleep(1000);
}
}
// 初始化游戏数据
void init_game_data() {
// 初始化技能库
skill_lib.push_back(Skill("基础攻击", ACTIVE, "普通攻击,无特殊效果", 0, 0, 0, 0, 0, 0, true));
skill_lib.push_back(Skill("防御姿态", ACTIVE, "提高闪避率20%,持续1回合", 2, 0, 0, 0, 20, 0, true));
skill_lib.push_back(Skill("强力攻击", ACTIVE, "造成150%的伤害", 1, 0, 50, 0, 0, 0, false));
skill_lib.push_back(Skill("格挡", ACTIVE, "减少50%受到的伤害,持续1回合", 3, 0, 0, 0, 0, 0, false));
skill_lib.push_back(Skill("决心爆发", ACTIVE, "消耗一半HP,造成300%的伤害", 5, 0, 200, 0, 0, 0, false));
skill_lib.push_back(Skill("快速恢复", ACTIVE, "恢复20%的HP", 4, 0, 0, 20, 0, 0, true));
skill_lib.push_back(Skill("精准打击", ACTIVE, "降低敌人闪避率,提高命中率", 3, 0, 0, 0, 0, 0, false));
skill_lib.push_back(Skill("伪善之面", ACTIVE, "造成200%伤害,但降低自身10%闪避率", 2, 0, 100, 0, -10, 0, false));
skill_lib.push_back(Skill("希望", ACTIVE, "恢复50HP并造成200%伤害", 6, 0, 100, 50, 0, 0, false));
// Gaster专属技能
skill_lib.push_back(Skill("吞噬", ACTIVE, "吸取敌人10%的生命和攻击(永久)", 3, 0, 0, 0, 0, 0, false));
skill_lib.push_back(Skill("吸收", ACTIVE, "吸收对方灵魂(最多保存2个)", 5, 0, 0, 0, 0, 0, false));
skill_lib.push_back(Skill("召唤", ACTIVE, "召唤已吸收的怪物协助战斗", 4, 0, 0, 0, 0, 0, false));
skill_lib.push_back(Skill("释放", ACTIVE, "释放一个已吞噬的怪物力量", 6, 0, 0, 0, 0, 0, false));
// 初始化物品库
item_lib.push_back(Item("怪物糖果", "恢复10HP", 10, 0, 5));
item_lib.push_back(Item("雪町汉堡", "恢复30HP", 30, 0, 20));
item_lib.push_back(Item("肉桂兔包", "恢复50HP", 50, 0, 35));
item_lib.push_back(Item("星形糖果", "恢复20%HP", 20, 0, 15));
item_lib.push_back(Item("决心", "在死亡时自动复活", 0, 2, 0));
item_lib.push_back(Item("传说之剑", "提高攻击力20点", 20, 1, 100));
item_lib.push_back(Item("生锈的钥匙", "可以打开某个隐藏的门", 0, 2, 0));
item_lib.push_back(Item("狗剩", "提高闪避率10%", 10, 1, 40));
item_lib.push_back(Item("真刀", "屠杀路线专用武器,大幅提高攻击力", 50, 1, 0));
item_lib.push_back(Item("Undyne的信", "给Alphys的信", 0, 2, 0));
item_lib.push_back(Item("热域辣椒", "恢复40HP", 40, 0, 25));
item_lib.push_back(Item("MTT汉堡", "恢复60HP", 60, 0, 40));
item_lib.push_back(Item("海茶", "提高闪避率5%", 5, 1, 15));
item_lib.push_back(Item("蜘蛛甜甜圈", "恢复15HP", 15, 0, 10));
item_lib.push_back(Item("蜘蛛 cider", "恢复25HP", 25, 0, 18));
item_lib.push_back(Item("高级热狗", "恢复50HP", 50, 0, 30));
item_lib.push_back(Item("回复药", "恢复80%HP", 80, 0, 50));
item_lib.push_back(Item("神圣护甲", "提高闪避率20%", 20, 1, 150));
item_lib.push_back(Item("查拉的日记", "记录着查拉和艾斯利而的回忆", 0, 2, 0));
item_lib.push_back(Item("全家福", "提高所有属性10%", 10, 1, 0));
item_lib.push_back(Item("上锁的日记", "需要钥匙才能打开", 0, 2, 0));
item_lib.push_back(Item("决心提取器", "Gaster的研究成果,可使用特殊技能", 0, 3, 0)); // Gaster专属道具
// 初始化怪物库
all_monsters.push_back(Monster("小幽灵纳普斯特", 20, 3, 10, 5, 10, "嘿,人类...想听我唱歌吗?", false, false, UNDERGROUND, 1));
all_monsters.push_back(Monster("青蛙吉特", 30, 5, 15, 8, 15, "呱!", false, false, UNDERGROUND, 2));
all_monsters.push_back(Monster("Toriel", 120, 8, 50, 0, 5, "孩子,为什么你要这样做...", true, true, UNDERGROUND, 3));
all_monsters.push_back(Monster("冰帽盖", 40, 6, 20, 10, 15, "冷...好冷...", false, false, SNOWDIN, 4));
all_monsters.push_back(Monster("狗夫妇", 60, 7, 25, 12, 20, "汪!汪!", false, false, SNOWDIN, 5));
all_monsters.push_back(Monster("Papyrus", 150, 10, 60, 0, 10, "人类!我,伟大的Papyrus,将抓住你!", true, true, SNOWDIN, 6));
all_monsters.push_back(Monster("忧郁虫虫", 50, 8, 25, 15, 20, "...", false, false, WATERFALL, 7));
all_monsters.push_back(Monster("害羞塞壬", 70, 9, 30, 18, 25, "?...?", false, false, WATERFALL, 8));
all_monsters.push_back(Monster("提米", 30, 5, 15, 5, 30, "提米...提米...", false, false, WATERFALL, 9));
all_monsters.push_back(Monster("Undyne", 200, 12, 70, 0, 15, "我是皇家守卫队长Undyne!我不会让你通过的!", true, true, WATERFALL, 10));
all_monsters.push_back(Monster("决心鱼Undyne", 400, 25, 150, 0, 20, "即使化为尘埃,我的决心也不会动摇!", true, true, WATERFALL, 11));
all_monsters.push_back(Monster("火元素", 60, 10, 30, 15, 15, "燃烧吧!", false, false, HOTLAND, 12));
all_monsters.push_back(Monster("皇家守卫", 90, 14, 40, 20, 20, "为了国王!", false, false, HOTLAND, 13));
all_monsters.push_back(Monster("魔法骑士", 110, 16, 45, 25, 25, "感受魔法的力量!", false, false, HOTLAND, 14));
all_monsters.push_back(Monster("Alphys", 180, 15, 65, 0, 20, "我...我必须阻止你...", false, true, HOTLAND, 15));
all_monsters.push_back(Monster("Mettaton", 300, 15, 80, 50, 20, "准备好了吗,亲爱的观众?", true, true, HOTLAND, 16));
all_monsters.push_back(Monster("Mettaton EX", 500, 20, 120, 70, 25, "我将成为地下世界的超级明星!", true, true, HOTLAND, 17));
all_monsters.push_back(Monster("核心守卫", 120, 18, 50, 30, 25, "警告:未授权人员禁止进入!", false, false, CORE, 18));
all_monsters.push_back(Monster("高级守卫", 150, 20, 60, 35, 30, "为了怪物的未来!", false, false, CORE, 19));
all_monsters.push_back(Monster("Asgore", 500, 25, 0, 0, 10, "对不起,孩子...这是唯一的办法...", true, true, NEW_HOME, 20));
all_monsters.push_back(Monster("Omega Flowey", 1000, 30, 200, 0, 30, "我将成为神!", true, true, NEW_HOME, 21));
all_monsters.push_back(Monster("审判者Sans", 1, 1, 0, 0, 99, "记住我的话,孩子...每个人都要为自己的行为负责。", true, true, JUDGMENT_HALL, 22));
all_monsters.push_back(Monster("融合怪", 150, 10, 0, 0, 15, "它...在痛苦地扭动...", true, false, TRUE_LAB, 23));
all_monsters.push_back(Monster("真神艾斯利而", 9999, 50, 0, 0, 50, "希望与梦想...这就是我所遗忘的东西...", true, true, ASRIEL_AREA, 24));
// 初始化人类灵魂
souls.push_back("耐心");
souls.push_back("勇气");
souls.push_back("正直");
souls.push_back("毅力");
souls.push_back("仁慈");
souls.push_back("诚实");
souls.push_back("决心");
}
// 开始界面
void start_screen() {
system("cls");
Color(14);
print_slow("====================================\n");
print_slow(" UNDERGROUND \n");
print_slow("====================================\n\n");
Color(7);
print_slow("欢迎来到地下世界...\n");
print_slow("很久以前,人类和怪物和平共处...\n");
print_slow("但一场战争爆发了,人类胜利了...\n");
print_slow("他们用魔法将怪物封印在了地下...\n\n");
print_slow("许多年后,一个人类孩子爬上了传说中的伊波特山...\n");
print_slow("并掉进了地下世界...\n\n");
print_slow("请输入你的名字: ");
cin >> player_name;
// Gaster命名彩蛋提示
if (player_name == "GASTER" || player_name == "gaster" || player_name == "Gaster") {
system("cls");
Color(13);
print_slow("* 你听到了来自虚空的低语...\n");
print_slow("* 世界线开始波动...\n\n");
print_slow("* 你获得了特殊的权限...\n");
print_slow("* 真实验室已解锁...\n");
print_slow("* 决心提取器已获得...\n\n");
Color(7);
print_slow("输入任意键开始游戏...");
string temp;
cin >> temp;
}
}
int main() {
srand(time(NULL));
init_game_data();
start_screen();
Player player;
init_player(player, player_name);
while (!game_over) {
navigate_map(player);
}
return 0;
}
这里空空如也
有帮助,赞一个