Win logic, but doesn't trigger right yet.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Sat, 6 Apr 2013 21:32:16 +0000 (23:32 +0200)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Sat, 6 Apr 2013 21:32:16 +0000 (23:32 +0200)
command.c
rip.c
romance.c

index 52e7e62..eaa3648 100644 (file)
--- a/command.c
+++ b/command.c
@@ -518,7 +518,7 @@ u_level()
        {\r
            level--;\r
            if (level == 0)\r
        {\r
            level--;\r
            if (level == 0)\r
-               total_winner();\r
+               total_loner();\r
            new_level();\r
            msg("You feel a wrenching sensation in your gut.");\r
            return;\r
            new_level();\r
            msg("You feel a wrenching sensation in your gut.");\r
            return;\r
diff --git a/rip.c b/rip.c
index 77bf78d..1e2250d 100644 (file)
--- a/rip.c
+++ b/rip.c
@@ -102,7 +102,9 @@ char monst;
     static char *reason[] = {\r
        "killed",\r
        "quit",\r
     static char *reason[] = {\r
        "killed",\r
        "quit",\r
-       "A total winner",\r
+       "A total loner",\r
+       "left for a date",\r
+       "got the amulet and left"\r
     };\r
     char scoreline[100];\r
     char score_file[PATH_MAX];\r
     };\r
     char scoreline[100];\r
     char score_file[PATH_MAX];\r
@@ -182,7 +184,7 @@ char monst;
            scp->sc_score = amount;\r
            strcpy(scp->sc_name, whoami);\r
            scp->sc_flags = flags;\r
            scp->sc_score = amount;\r
            strcpy(scp->sc_name, whoami);\r
            scp->sc_flags = flags;\r
-           if (flags == 2)\r
+           if (flags >= 2)\r
                scp->sc_level = max_level;\r
            else\r
                scp->sc_level = level;\r
                scp->sc_level = max_level;\r
            else\r
                scp->sc_level = level;\r
@@ -231,6 +233,15 @@ char monst;
                    scp--;\r
                }\r
            }\r
                    scp--;\r
                }\r
            }\r
+           else if (prflags >= 3)\r
+           {\r
+                printf(" with a");\r
+               killer = killname(scp->sc_monster);\r
+               if (*killer == 'a' || *killer == 'e' || *killer == 'i' ||\r
+                   *killer == 'o' || *killer == 'u')\r
+                       putchar('n');\r
+               printf(" %s", killer);\r
+            }\r
            else\r
                printf(".\n");\r
        }\r
            else\r
                printf(".\n");\r
        }\r
@@ -253,30 +264,53 @@ char monst;
     fclose(outf);\r
 }\r
 \r
     fclose(outf);\r
 }\r
 \r
-total_winner()\r
+total_loner(monster)\r
+char monster;\r
 {\r
 {\r
-    register struct linked_list *item;\r
-    register struct object *obj;\r
-    register int worth;\r
-    register char c;\r
-    register int oldpurse;\r
+    clear();\r
+    standout();\r
+    addstr("                                                               \n");\r
+    addstr("           You escaped from the caverns, but alone.            \n");\r
+    standend();\r
+    addstr("\nYou have joined the elite ranks of those who have escaped the\n");\r
+    addstr("Cavern of Cuties alive, but failed to meet anyone while there.\n");\r
+    addstr("You journey home and sell all your loot at a great profit and\n");\r
+    addstr("continue your life alone.\n");\r
+    total_something(2, 0);\r
+}\r
 \r
 \r
+total_winner(monster)\r
+char monster;\r
+{\r
     clear();\r
     standout();\r
     addstr("                                                               \n");\r
     clear();\r
     standout();\r
     addstr("                                                               \n");\r
-    addstr("  @   @               @   @           @          @@@  @     @  \n");\r
-    addstr("  @   @               @@ @@           @           @   @     @  \n");\r
-    addstr("  @   @  @@@  @   @   @ @ @  @@@   @@@@  @@@      @  @@@    @  \n");\r
-    addstr("   @@@@ @   @ @   @   @   @     @ @   @ @   @     @   @     @  \n");\r
-    addstr("      @ @   @ @   @   @   @  @@@@ @   @ @@@@@     @   @     @  \n");\r
-    addstr("  @   @ @   @ @  @@   @   @ @   @ @   @ @         @   @  @     \n");\r
-    addstr("   @@@   @@@   @@ @   @   @  @@@@  @@@@  @@@     @@@   @@   @  \n");\r
+    addstr("             You got the amulet and a hot date.                \n");\r
+    standend();\r
+    total_something(4, monster);\r
+}\r
+\r
+mostly_winner(monster)\r
+char monster;\r
+{\r
+    clear();\r
+    standout();\r
     addstr("                                                               \n");\r
     addstr("                                                               \n");\r
-    addstr("     Congratulations, you have made it to the light of day!    \n");\r
+    addstr("                      You got a hot date.                      \n");\r
     standend();\r
     standend();\r
-    addstr("\nYou have joined the elite ranks of those who have escaped the\n");\r
-    addstr("Dungeons of Doom alive.  You journey home and sell all your loot at\n");\r
-    addstr("a great profit and are admitted to the fighters guild.\n");\r
+    total_something(3, monster);\r
+}\r
+\r
+total_something(flags, monster)\r
+int flags;\r
+char monster;\r
+{\r
+    register struct linked_list *item;\r
+    register struct object *obj;\r
+    register int worth;\r
+    register char c;\r
+    register int oldpurse;\r
+\r
     mvaddstr(LINES - 1, 0, "--Press space to continue--");\r
     refresh();\r
     wait_for(' ');\r
     mvaddstr(LINES - 1, 0, "--Press space to continue--");\r
     refresh();\r
     wait_for(' ');\r
@@ -356,7 +390,7 @@ total_winner()
     }\r
     mvprintw(c - 'a' + 1, 0,"   %5d  Gold Peices          ", oldpurse);\r
     refresh();\r
     }\r
     mvprintw(c - 'a' + 1, 0,"   %5d  Gold Peices          ", oldpurse);\r
     refresh();\r
-    score(purse, 2, 0);\r
+    score(purse, flags, monster);\r
     getch();\r
     endwin();\r
     exit(0);\r
     getch();\r
     endwin();\r
     exit(0);\r
index 7f5da0c..3c5c2e1 100644 (file)
--- a/romance.c
+++ b/romance.c
@@ -166,4 +166,14 @@ int ydelta, xdelta;
 
 embrace()
 {
 
 embrace()
 {
+    // Figure out if the player is near something w/ enough interest.
+    // Otherwise, hug something random, and make things worse.
+    if (amulet)
+    {
+        total_winner('K');
+    }
+    else
+    {
+        mostly_winner('K');
+    }
 }
 }