mirror of
https://codeberg.org/noisytoot/notnotdnethack.git
synced 2025-08-06 12:45:25 +01:00
Add ACU role entry, get some ACU special rules set up. Add quest text
and pager text for ACU. Add skills and inventory.
This commit is contained in:
parent
401d91983c
commit
000a03263f
10 changed files with 443 additions and 18 deletions
276
dat/quest.txt
276
dat/quest.txt
|
@ -296,6 +296,242 @@ Amulet on that altar to fulfill your destiny.
|
|||
|
||||
"Remember, your path now should always be upwards."
|
||||
%E
|
||||
|
||||
|
||||
#
|
||||
# Anachronounbinder
|
||||
#
|
||||
%Cc Acu 00001
|
||||
Something is wrong. You cannot feel the Elder Brain as you have in the past.
|
||||
%E
|
||||
%Cp Acu 00002
|
||||
You return to %H.
|
||||
%E
|
||||
%Cp Acu 00003
|
||||
You are back at %H.
|
||||
|
||||
You have an odd feeling this may be the last time you ever come here.
|
||||
%E
|
||||
%Cp Acu 00005
|
||||
"UNITY WAS NEAR"
|
||||
%E
|
||||
%Cp Acu 00006
|
||||
"WE TRIED"
|
||||
%E
|
||||
%Cp Acu 00007
|
||||
"KILL THE LICH"
|
||||
%E
|
||||
%Cp Acu 00008
|
||||
"ILLITHIDS ARE STRONG"
|
||||
%E
|
||||
%Cp Acu 00009
|
||||
"THE ULITHARID IS MIGHTY"
|
||||
%E
|
||||
%Cp Acu 00010
|
||||
"YOU DID IT"
|
||||
%E
|
||||
%Cp Acu 00011
|
||||
"WE WILL BE SAVED"
|
||||
%E
|
||||
%Cp Acu 00012
|
||||
"DEATH TO VESTIGES"
|
||||
%E
|
||||
%Cp Acu 00013
|
||||
"FEAR NO UNDEAD"
|
||||
%E
|
||||
%Cp Acu 00014
|
||||
"THE ELDER GOD WILL RETURN"
|
||||
%E
|
||||
%Cc Acu 00015
|
||||
I see you made it back. The Elder Brain has been attacked.
|
||||
We cannot risk another illithid to %nt and his undead rebels.
|
||||
%d's empire is falling.
|
||||
|
||||
Let me see if you are ready for certain death.
|
||||
%E
|
||||
%Cp Acu 00016
|
||||
"You have returned from farther up the time-stream, I see.
|
||||
Let me check if you are strong enough now."
|
||||
%E
|
||||
%Cp Acu 00017
|
||||
"You have traveled quite far up the time-stream now.
|
||||
Let me check if you are strong enough now."
|
||||
%E
|
||||
%Cc Acu 00018
|
||||
You have betrayed the Elder Brain. Begone. Only %L is pure.
|
||||
%E
|
||||
%Cc Acu 00019
|
||||
"You are weak. You would die.
|
||||
Go now, return to the future, and come back to us from farther up
|
||||
the time-stream."
|
||||
%E
|
||||
%Cc Acu 00020
|
||||
"You disrespect %d.
|
||||
|
||||
What distinguishes you from %n? Return
|
||||
to the future and rededicate yourself to %d."
|
||||
%E
|
||||
%Cc Acu 00021
|
||||
"Illithocyte, you may now be ready to undertake the final preparations
|
||||
for your mission."
|
||||
|
||||
"I know not how we are remembered.
|
||||
No gith slave could possibly overpower the forces of %d.
|
||||
The void fills with the spirits of our slave races.
|
||||
We will fall to the foolish illithids who betray the Elder Brain
|
||||
and attempt to seek their own eternity by meddling with The Gate."
|
||||
|
||||
"%nt and his spirits of our slaves have just begun attacks on Elder Brains.
|
||||
All our knowledge now belongs to %nt and his abominations.
|
||||
You are ready now to travel to %i and recover %o."
|
||||
|
||||
"Should you be successful, you must recover the Amulet of Yendor
|
||||
and use it to recover Ilsensine from The Void and close The Gate."
|
||||
|
||||
%E
|
||||
%Cp Acu 00025
|
||||
"Should you fail, the Illithid Empire will be no more."
|
||||
%E
|
||||
%Cp Acu 00026
|
||||
"%n is an alhoon, a dangerous undead illich. He is mindless."
|
||||
%E
|
||||
%Cp Acu 00027
|
||||
"Villithids will suck your mind and your life. Watch out for those abominations."
|
||||
%E
|
||||
%Cp Acu 00028
|
||||
"With the power of %o you can prevent the fall of the greatest empire ever."
|
||||
%E
|
||||
%Cp Acu 00029
|
||||
"%n's abominations include adversaries, illithids whose host controls them."
|
||||
%E
|
||||
%Cp Acu 00030
|
||||
"Beware of neothelids and their many tentacles. They have committed grave sins."
|
||||
%E
|
||||
%Cp Acu 00031
|
||||
"Be sure to take advantage of the items you have taken from spirits."
|
||||
%E
|
||||
%Cp Acu 00032
|
||||
"The Illithid Cavern is full of abominations. May %d guide your steps."
|
||||
%E
|
||||
%Cp Acu 00033
|
||||
"You will need to name a double lightsaber The Illithid Staff one day."
|
||||
%E
|
||||
%Cp Acu 00034
|
||||
"I hope you found luck in the future, for there is surely
|
||||
none left in this fading world."
|
||||
%E
|
||||
%Cc Acu 00035
|
||||
You stand before the Illithid Cavern.
|
||||
You hear dripping water echo throughout the cavern.
|
||||
A sense of dread hangs over this once great place.
|
||||
The knowledge and memories here have deteriorated
|
||||
and this place lays in waste.
|
||||
%E
|
||||
%Cp Acu 00036
|
||||
Once again, you arrive at the Illithid Cavern.
|
||||
%E
|
||||
%Cc Acu 00040
|
||||
You have reached %i. The air here is heavier.
|
||||
You feel closer to the collective suppressed minds of the
|
||||
slaves of the illithid empire. %n will have hell to pay.
|
||||
%E
|
||||
%Cp Acu 00041
|
||||
You have returned to %i.
|
||||
%E
|
||||
%Cc Acu 00050
|
||||
You will die, %r. %d will never stop the rebellion of civilization.
|
||||
%E
|
||||
%Cc Acu 00051
|
||||
I will bind your spirit when I finish you.
|
||||
%E
|
||||
%Cp Acu 00052
|
||||
You blood will feed my villithids.
|
||||
%E
|
||||
%Cp Acu 00053
|
||||
The knowledge of %o is mine!
|
||||
%E
|
||||
%Cp Acu 00060
|
||||
The Alignment Thing will dismember you!
|
||||
%E
|
||||
%Cp Acu 00061
|
||||
You will never use %o to save %d!
|
||||
%E
|
||||
%Cp Acu 00062
|
||||
I'll bind your spirit to my pet neothelid!
|
||||
%E
|
||||
%Cp Acu 00063
|
||||
Through death I will live forever!
|
||||
%E
|
||||
%Cp Acu 00064
|
||||
The knowledge of %o makes me stronger than you.
|
||||
%E
|
||||
%Cp Acu 00065
|
||||
Defeat is the only end you can meet.
|
||||
%E
|
||||
%Cp Acu 00066
|
||||
Death means nothing to me.
|
||||
%E
|
||||
%Cp Acu 00067
|
||||
I fear no god.
|
||||
%E
|
||||
%Cp Acu 00068
|
||||
You are nothing more than a grunt.
|
||||
%E
|
||||
%Cp Acu 00069
|
||||
How does it feel to be a pawn for %d?
|
||||
%E
|
||||
%Cc Acu 00070
|
||||
The Elder Cerebral Fluid glows briefly. Your mind opens up in new ways to new
|
||||
ideas and you understand the universe differently.
|
||||
|
||||
You must return to %l, to learn
|
||||
the details of the next and final stage of the plan.
|
||||
%E
|
||||
%Cp Acu 00080
|
||||
%n breathes his dying curses. His body blows away into the wind and
|
||||
his spirit cannot survive here.
|
||||
%E
|
||||
%Cc Acu 00081
|
||||
%l looks wonderingly at %o.
|
||||
|
||||
"Well done, %s. You have succeed where
|
||||
all others have failed, and returned hope to
|
||||
our world.
|
||||
|
||||
"You must now travel deep into the earth, and
|
||||
retrieve the Amulet of Yendor, that was stolen by
|
||||
Moloch at the beginning of time.
|
||||
|
||||
"With %o inside The Illithid Staff, a double lightsaber you
|
||||
will have to name as a Keeper of The Gate, you must travel to
|
||||
the Astral Plane and perform the Elder Memory invocation on
|
||||
the altar of the void."
|
||||
|
||||
"From there you must travel through The Gate to The Far Void
|
||||
and use the Amulet of Yendor to free her from banishment."
|
||||
|
||||
"Should you find yourself needing a double lightsaber after getting
|
||||
the amulet you can return here."
|
||||
%E
|
||||
%Cc Acu 00082
|
||||
"%o's power can help you in your fight against the spirits of the
|
||||
near void. Should you lose it this will all be meaningless."
|
||||
%E
|
||||
%Cc Acu 00090
|
||||
"You must return to the future and finish the plan."
|
||||
%E
|
||||
%Cc Acu 00091
|
||||
"You've done it! But there is still nothing you can do for us
|
||||
here in the past."
|
||||
|
||||
"With %o inside The Illithid Staff you must travel to
|
||||
the Astral Plane and perform the Elder Memory invocation on
|
||||
the high altar of the void."
|
||||
|
||||
"From there you must travel through The Gate to The Far Void
|
||||
and use the Amulet of Yendor to free her from banishment."
|
||||
%E
|
||||
|
||||
#
|
||||
# Anachrononaut
|
||||
#
|
||||
|
@ -8445,4 +8681,42 @@ Annulus from wherever it ended up, and use it against
|
|||
Ilsensine in the past.
|
||||
|
||||
"So, you know. Good luck."
|
||||
%E
|
||||
%E
|
||||
#
|
||||
# Legacy text for Illithanachronounbinders
|
||||
#
|
||||
%Cc - 00226
|
||||
Now, there is a story:
|
||||
|
||||
After the Creation, the cruel god Moloch rebelled
|
||||
against the authority of Marduk the Creator.
|
||||
Moloch stole from Marduk the most powerful of all
|
||||
the artifacts of the gods, the Amulet of Yendor,
|
||||
and he hid it in the dark cavities of Gehennom, the
|
||||
Under World, where he now lurks, and bides his time.
|
||||
|
||||
The various gods and heroes of this world struggle
|
||||
mightily to recover the amulet, for the god who reclaims
|
||||
the amulet will be granted ascendance over the other
|
||||
gods of the world.
|
||||
|
||||
It wasn't always this way. In the days from which you
|
||||
traveled there was but one god, Ilsensine. She and her
|
||||
illithid empire ruled over all of the known universe.
|
||||
|
||||
You, a newly empowered %r, have been heralded
|
||||
from birth to travel to the future, now. The mighty
|
||||
plan of Ilsensine will be ready then and the slave
|
||||
races replenished.
|
||||
|
||||
You must travel back on your quest to recover the
|
||||
memories of illithids past and with them inside
|
||||
the mighty Illithid Staff ascend to the Astral Plane with
|
||||
the amulet and use the memories to travel to The Void,
|
||||
where Ilsensine slumbers.
|
||||
|
||||
%d must be recovered and the natural order
|
||||
of power brought back to this forsaken universe.
|
||||
|
||||
Go bravely for Ilsensine!
|
||||
%E
|
||||
|
|
|
@ -211,7 +211,7 @@ extern struct god_details god_list[MAX_GOD]; //defined in decl.c
|
|||
#define GA_FRACTURE 12
|
||||
#define GA_SOTHOTH 13
|
||||
#define GA_VELKA 14
|
||||
#define GA_NUM 15
|
||||
#define GA_NUM 16
|
||||
|
||||
#define GOAT_EAT_PASSIVE 0
|
||||
#define GOAT_EAT_OFFERED 1
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#ifndef QTEXT_H
|
||||
#define QTEXT_H
|
||||
|
||||
#define N_HDR 30 /* Maximum number of categories */
|
||||
#define N_HDR 31 /* Maximum number of categories */
|
||||
/* (i.e., num roles + 1) */
|
||||
#define LEN_HDR 3 /* Maximum length of a category name */
|
||||
|
||||
|
|
|
@ -658,6 +658,7 @@ struct you {
|
|||
|
||||
int sealTimeout[NUMINA-FIRST_SEAL]; //turn on which spirit will be again eligible for binding.
|
||||
|
||||
long spiritSummons;
|
||||
int sealCounts;
|
||||
long sealsActive;
|
||||
long sealsUsed;
|
||||
|
|
|
@ -2554,6 +2554,8 @@ newgame()
|
|||
com_pager(220);
|
||||
com_pager(221);
|
||||
}
|
||||
} else if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
com_pager(226);
|
||||
} else if(Race_if(PM_WORM_THAT_WALKS)){
|
||||
if(Role_if(PM_CONVICT)){
|
||||
com_pager(214);
|
||||
|
@ -2698,6 +2700,12 @@ boolean new_game; /* false => restoring an old game */
|
|||
pline("Use #monster to adjust your clockspeed.");
|
||||
You("do not heal naturally. Use '.' to attempt repairs.");
|
||||
}
|
||||
if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
pline("Use #monster to use your psychic powers.");
|
||||
pline("Press Ctrl^E or type #seal to engrave a seal of binding.");
|
||||
pline("#chat to a fresh seal to contact the spirit beyond.");
|
||||
pline("You must summon spirits to gain xlvl.");
|
||||
}
|
||||
if(Race_if(PM_INCANTIFIER)){
|
||||
pline("Incantifiers eat magic, not food, and do not heal naturally.");
|
||||
}
|
||||
|
|
|
@ -1627,7 +1627,7 @@ domove()
|
|||
*/
|
||||
if (rn2(4)) {
|
||||
You_feel("guilty about losing your pet like this.");
|
||||
u.ugangr[Align2gangr(u.ualign.type)]++;
|
||||
if(!Role_if(PM_ANACHRONOUNBINDER)) u.ugangr[Align2gangr(u.ualign.type)]++;
|
||||
adjalign(-15);
|
||||
}
|
||||
|
||||
|
|
|
@ -6876,6 +6876,14 @@ is a red right hand
|
|||
0 /*MM*/, MT_OMNIVORE|MT_COLLECT /*MT*/, MF_MARTIAL_B /*MF*/,
|
||||
MB_HUMANOID|MB_STRONG /*MB*/, MG_NOWISH|MG_NOPOLY|MG_INFRAVISIBLE /*MG*/,
|
||||
MA_HUMAN /*MA*/, MV_NORMAL /*MV*/, HI_DOMESTIC),
|
||||
MON("anachronounbinder", S_HUMAN,//7 /*Needs encyc entry*/
|
||||
LVL(5, 12, 10, 50, 0), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 4),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, MS_HUMANOID, MZ_HUMAN), 0, 0,
|
||||
0 /*MM*/, MT_OMNIVORE|MT_COLLECT /*MT*/, MF_MARTIAL_B /*MF*/,
|
||||
MB_HUMANOID|MB_STRONG /*MB*/, MG_NOWISH|MG_NOPOLY|MG_INFRAVISIBLE /*MG*/,
|
||||
MA_HUMAN /*MA*/, MV_NORMAL /*MV*/, HI_DOMESTIC),
|
||||
MON("knight", S_HUMAN,//12
|
||||
LVL(10, 12, 10, 1, 3), G_NOGEN,
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 1, 6), ATTK(AT_XWEP, AD_PHYS, 1, 6),
|
||||
|
|
52
src/pray.c
52
src/pray.c
|
@ -60,6 +60,8 @@ const char *BlackMother = "the Black Mother";
|
|||
const char *Nodens = "Nodens";
|
||||
const char *DreadFracture = "the Dread Fracture";
|
||||
const char *AllInOne = "Yog-Sothoth";
|
||||
const char *AcuL= "Ilsensine the Banished One";
|
||||
const char *AcuLL= "Ilsensine";
|
||||
|
||||
static const char *godvoices[] = {
|
||||
"booms out",
|
||||
|
@ -1434,7 +1436,7 @@ godvoice(ga_num, words)
|
|||
else
|
||||
words = "";
|
||||
|
||||
if(ga_num == GA_VOID){
|
||||
if(ga_num == GA_VOID || Role_if(PM_ANACHRONOUNBINDER)){
|
||||
You("think you hear a voice in the distance: %s%s%s", quot, words, quot);
|
||||
} else if(ga_num == GA_SILENCE){
|
||||
You_hear("silence.");
|
||||
|
@ -1824,6 +1826,12 @@ dosacrifice()
|
|||
You("do not give offerings to the God of the future.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(Role_if(PM_ANACHRONOUNBINDER) && otmp->otyp != AMULET_OF_YENDOR){
|
||||
if(In_quest(&u.uz)) You("wouldn't want to change the future.");
|
||||
else You("cannot feel your true god.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define MAXVALUE 24 /* Highest corpse value (besides Wiz) */
|
||||
|
||||
|
@ -1976,12 +1984,36 @@ dosacrifice()
|
|||
|
||||
if (otmp->otyp == AMULET_OF_YENDOR) {
|
||||
if (!Is_astralevel(&u.uz)) {
|
||||
/*
|
||||
if(Role_if(PM_ANACHRONOUNBINDER) && In_void(&u.uz)){
|
||||
if(Is_sacris(&u.uz) || Is_ilsensine(&u.uz)){
|
||||
if(uamul == otmp) Amulet_off();
|
||||
u.uevent.ascended = 1;
|
||||
if(carried(otmp)) useup(otmp);
|
||||
else useupf(otmp, 1L);
|
||||
You("offer the Amulet of Yendor to %s...", a_gname());
|
||||
if(Is_sacris(&u.uz)){
|
||||
adjalign(20);
|
||||
pline("Strange sounds echo around you!");
|
||||
pline("What happens next?");
|
||||
done(ESCAPED);
|
||||
} else {
|
||||
adjalign(10);
|
||||
pline("The Void collapses as you and Ilsensine are launched toward the heavens.");
|
||||
pline("The Gate closes behind you, no longer able to hold the spirits of the enslaved.");
|
||||
pline("With the amulet's power Ilsensine is restored to her former glory.");
|
||||
You("are blessed by Ilsensine's flowing tentacles and dubbed Maanzecorian.");
|
||||
pline("As time moves at the blink of an eye you watch the Illithid Empire return to power.");
|
||||
done(ASCENDED);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
if (Hallucination)
|
||||
You_feel("homesick.");
|
||||
else
|
||||
You_feel("an urge to return to the surface.");
|
||||
return 1;
|
||||
} else {
|
||||
} else if(!Role_if(PM_ANACHRONOUNBINDER)){
|
||||
/* The final Test. Did you win? */
|
||||
if(uamul == otmp) Amulet_off();
|
||||
u.uevent.ascended = 1;
|
||||
|
@ -2050,6 +2082,8 @@ dosacrifice()
|
|||
done(ASCENDED);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
You("do not give the amulet to this %s deity. You must use the Elder Memories invocation on the void altar.",altaralign==A_LAWFUL?"fallen":"false");
|
||||
}
|
||||
} /* real Amulet */
|
||||
|
||||
|
@ -2479,6 +2513,11 @@ dopray()
|
|||
pline("And to It, you do not pray.");
|
||||
return 0;
|
||||
}
|
||||
if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
if(In_quest(&u.uz)) You("wouldn't want to change the future.");
|
||||
else pline("Ilsensine, the Banished One, cannot hear your prayers.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Confirm accidental slips of Alt-P */
|
||||
if (flags.prayconfirm)
|
||||
|
@ -2956,12 +2995,19 @@ int ga_num;
|
|||
case GA_LAWFUL:
|
||||
if(Role_if(PM_ANACHRONONAUT) && In_quest(&u.uz)){
|
||||
gnam = "";
|
||||
} else if(Role_if(PM_ANACHRONOUNBINDER) && !In_quest(&u.uz)){
|
||||
gnam = AcuL; break;
|
||||
} else if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
gnam = AcuLL; break;
|
||||
} else {
|
||||
gnam = urole.lgod; break;
|
||||
}
|
||||
else gnam = urole.lgod;
|
||||
break;
|
||||
case GA_NEUTRAL:
|
||||
if(Role_if(PM_ANACHRONONAUT) && In_quest(&u.uz)){
|
||||
gnam = "";
|
||||
} else if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
gnam = tVoid;
|
||||
}
|
||||
else gnam = urole.ngod;
|
||||
break;
|
||||
|
|
32
src/role.c
32
src/role.c
|
@ -209,6 +209,32 @@ struct Role roles[] = {
|
|||
{ 1, 4, 1, 2, 0, 3 },20, /* Energy */
|
||||
10, 3,-3, 2, 10, A_WIS, SPE_CURE_SICKNESS, -14
|
||||
},
|
||||
{ {"Illithanachronounbinder", 0}, {
|
||||
{"Exorcist", 0},
|
||||
{"Unbinder", 0},
|
||||
{"Vestige Vanquisher", 0},
|
||||
{"Spirit Killer", 0},
|
||||
{"Mind Flayer", 0},
|
||||
{"Psionaut", 0},
|
||||
{"Void Voider", 0},
|
||||
{"Telekinetic", 0},
|
||||
{"Keeper of the Gate", 0} },
|
||||
"_Ilsensine", "Resistance", "Thoon", /* ahahah */
|
||||
"Acu", "The Elder Pool", "The Far Reach",
|
||||
PM_ANACHRONOUNBINDER, NON_PM, PM_BRAIN_GOLEM,
|
||||
PM_ULITHARID, PM_MINDLESS_THRALL, PM_MENZOBERRANZAN,
|
||||
NON_PM, NON_PM, NON_PM, NON_PM,
|
||||
ART_ELDER_CEREBRAL_FLUID,
|
||||
MA_HUMAN|MA_DWARF|MA_GNOME|MA_ELF|MA_ORC|MA_DRAGON|MA_ANIMAL|MA_REPTILIAN, ROLE_MALE|ROLE_FEMALE |
|
||||
ROLE_LAWFUL,
|
||||
/* Str Int Wis Dex Con Cha */
|
||||
{ 12, 10, 7, 12, 12, 7 },
|
||||
{ 24, 20, 15, 20, 24, 15 },
|
||||
/* Init Lower Higher */
|
||||
{ 14, 0, 8, 4, 2, 2 }, /* Hit points */
|
||||
{ 4, 3, 0, 2, 0, 3 },12, /* Energy */
|
||||
10, 5, 0, 2, 10, A_INT, SPE_DETECT_MONSTERS, -9
|
||||
},
|
||||
{ {"Knight", 0}, {
|
||||
{"Gallant", 0},
|
||||
{"Esquire", 0},
|
||||
|
@ -2796,12 +2822,12 @@ int newgame;
|
|||
mons[urole.neminum].mflagsg |= MG_NASTY;
|
||||
}
|
||||
|
||||
if(Role_if(PM_ANACHRONONAUT)){
|
||||
if(Role_if(PM_ANACHRONONAUT) || Role_if(PM_ANACHRONOUNBINDER)){
|
||||
//Drow noble nemesis is regular monster for anachrononauts
|
||||
mons[PM_ELDER_BRAIN].msound = MS_SILENT;
|
||||
mons[PM_ELDER_BRAIN].geno &= ~G_UNIQ;
|
||||
if(flags.questprogress==2) urole.lgod = AnachrononautLgodEnd;
|
||||
else if(flags.questprogress==1) urole.lgod = AnachrononautLgod;
|
||||
if(flags.questprogress==2 && Role_if(PM_ANACHRONONAUT)) urole.lgod = AnachrononautLgodEnd;
|
||||
else if(flags.questprogress==1 && Role_if(PM_ANACHRONONAUT)) urole.lgod = AnachrononautLgod;
|
||||
}
|
||||
|
||||
if(!Role_if(PM_CAVEMAN)){
|
||||
|
|
78
src/u_init.c
78
src/u_init.c
|
@ -41,6 +41,26 @@ static struct trobj Archeologist[] = {
|
|||
{ TORCH, 0, TOOL_CLASS, 3, 0 },
|
||||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static struct trobj Anachronounbinder[] = {
|
||||
{ QUARTERSTAFF, 3, WEAPON_CLASS, 1, 0 },
|
||||
{ DAGGER, 0, WEAPON_CLASS, 1, 0 },
|
||||
{ LEATHER_ARMOR, 1, ARMOR_CLASS, 1, 0 },
|
||||
{ LEATHER_HELM, 0, ARMOR_CLASS, 1, 0 },
|
||||
{ GLOVES, 0, ARMOR_CLASS, 1, 0 },
|
||||
{ FOOD_RATION, 0, FOOD_CLASS, 3, 0 },
|
||||
{ R_LYEHIAN_FACEPLATE,0,TOOL_CLASS,1,0},
|
||||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
static struct trobj AcuBoots[] = {
|
||||
{ HIGH_BOOTS, 0, ARMOR_CLASS, 1, 0 },
|
||||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
static struct trobj AcuRobe[] = {
|
||||
{ ROBE, 0, ARMOR_CLASS, 1, 0 },
|
||||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static struct trobj Anachrononaut_Hu[] = {
|
||||
{ FORCE_PIKE, 0, WEAPON_CLASS, 1, 0 },
|
||||
{ ARM_BLASTER, 0, WEAPON_CLASS, 1, 0 },
|
||||
|
@ -826,6 +846,29 @@ static const struct def_skill Skill_A[] = {
|
|||
{ P_NONE, 0 }
|
||||
};
|
||||
|
||||
|
||||
static const struct def_skill Skill_Acu[] = {
|
||||
{ FFORM_SHII_CHO, P_EXPERT },
|
||||
{ P_DAGGER, P_EXPERT }, { P_KNIFE, P_SKILLED },
|
||||
{ P_SHORT_SWORD, P_SKILLED },{ P_LANCE, P_BASIC },
|
||||
{ P_SABER, P_SKILLED }, { P_LONG_SWORD, P_BASIC },
|
||||
{ P_CLUB, P_SKILLED }, { P_QUARTERSTAFF, P_EXPERT },
|
||||
{ P_BROAD_SWORD, P_EXPERT },{ P_HAMMER, P_BASIC },
|
||||
//#ifdef FIREARMS
|
||||
// { P_FIREARM, P_SKILLED },
|
||||
//#endif
|
||||
{ P_DART, P_BASIC }, { P_PICK_AXE, P_BASIC },
|
||||
{ P_WHIP, P_SKILLED }, { P_BOOMERANG, P_BASIC },
|
||||
{ P_ATTACK_SPELL, P_BASIC }, { P_HEALING_SPELL, P_BASIC },
|
||||
{ P_DIVINATION_SPELL, P_SKILLED}, { P_MATTER_SPELL, P_BASIC},
|
||||
#ifdef STEED
|
||||
{ P_RIDING, P_BASIC },
|
||||
#endif
|
||||
//{ P_TWO_WEAPON_COMBAT, P_EXPERT },
|
||||
{ P_BARE_HANDED_COMBAT, P_EXPERT },{ P_TWO_HANDED_SWORD, P_SKILLED },
|
||||
{ P_NONE, 0 }
|
||||
};
|
||||
|
||||
static const struct def_skill Skill_Ana[] = {
|
||||
{ P_DAGGER, P_SKILLED }, { P_KNIFE, P_SKILLED },
|
||||
{ P_SHORT_SWORD, P_EXPERT },{ P_LANCE, P_EXPERT },
|
||||
|
@ -1581,20 +1624,25 @@ u_init()
|
|||
/*Randomize spirit order*/{
|
||||
int i,j,tmp;
|
||||
for(i=0;i<31;i++) u.sealorder[i]=i;
|
||||
for(i=0;i<31;i++){
|
||||
j=rn2(31);
|
||||
tmp = u.sealorder[i];
|
||||
u.sealorder[i] = u.sealorder[j];
|
||||
u.sealorder[j] = tmp;
|
||||
if(!Role_if(PM_ANACHRONOUNBINDER)){
|
||||
for(i=0;i<31;i++){
|
||||
j=rn2(31);
|
||||
tmp = u.sealorder[i];
|
||||
u.sealorder[i] = u.sealorder[j];
|
||||
u.sealorder[j] = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(Role_if(PM_EXILE)){
|
||||
u.sealsKnown = sealKey[u.sealorder[0]] | sealKey[u.sealorder[1]] | sealKey[u.sealorder[2]];
|
||||
}else if(Role_if(PM_ANACHRONOUNBINDER)){
|
||||
u.sealsKnown |= sealKey[u.sealorder[0]] | sealKey[u.sealorder[1]];
|
||||
}
|
||||
else u.sealsKnown = 0L;
|
||||
|
||||
u.specialSealsKnown = 0L;
|
||||
|
||||
|
||||
u.spiritSummons = 0L;
|
||||
u.sealCounts = 0;
|
||||
u.sealsActive = 0;
|
||||
u.specialSealsActive = 0;
|
||||
|
@ -1741,6 +1789,19 @@ u_init()
|
|||
knows_object(TOUCHSTONE);
|
||||
skill_init(Skill_A);
|
||||
break;
|
||||
case PM_ANACHRONOUNBINDER:
|
||||
ini_inv(Anachronounbinder);
|
||||
if(!slithy(youracedata) && humanoid(youracedata)) ini_inv(AcuBoots);
|
||||
if(!Race_if(PM_DROW) && !Race_if(PM_INCANTIFIER)) ini_inv(AcuRobe);
|
||||
knows_object(KHAKKHARA);
|
||||
knows_object(DOUBLE_LIGHTSABER);
|
||||
knows_object(HIGH_BOOTS);
|
||||
knows_object(SENSOR_PACK);
|
||||
knows_object(R_LYEHIAN_FACEPLATE);
|
||||
knows_object(GLOVES);
|
||||
u.ualignbase[A_CURRENT] = u.ualignbase[A_ORIGINAL] = u.ualign.type = A_LAWFUL;
|
||||
skill_init(Skill_Acu);
|
||||
break;
|
||||
case PM_ANACHRONONAUT:
|
||||
if(Race_if(PM_MYRKALFR) && !flags.female){
|
||||
ini_inv(Anachrononaut_Dro);
|
||||
|
@ -2226,7 +2287,7 @@ u_init()
|
|||
}
|
||||
} else if(!Role_if(PM_EXILE) && !Role_if(PM_CONVICT)){
|
||||
ini_inv(DrovenCloak);
|
||||
if(!flags.female){
|
||||
if(!flags.female && !Role_if(PM_ANACHRONOUNBINDER)){
|
||||
u.ualignbase[A_CURRENT] = u.ualignbase[A_ORIGINAL] =
|
||||
u.ualign.type = A_NEUTRAL; /* Males are neutral */
|
||||
flags.initalign = 1; // 1 == neutral
|
||||
|
@ -2299,7 +2360,7 @@ u_init()
|
|||
|
||||
case PM_GNOME:
|
||||
/* Gnomes can recognize common dwarvish objects */
|
||||
if (!Role_if(PM_ARCHEOLOGIST)){
|
||||
if (!Role_if(PM_ARCHEOLOGIST) && !Role_if(PM_ANACHRONOUNBINDER)){
|
||||
ini_inv(GnomishHat);
|
||||
}
|
||||
skill_add(Skill_G);
|
||||
|
@ -2508,6 +2569,7 @@ int otyp;
|
|||
|
||||
switch (Role_switch) {
|
||||
case PM_ARCHEOLOGIST: skills = Skill_A; break;
|
||||
case PM_ANACHRONOUNBINDER: skills = Skill_Acu; break;
|
||||
case PM_ANACHRONONAUT: skills = Skill_Ana; break;
|
||||
case PM_BARBARIAN: skills = Skill_B; break;
|
||||
#ifdef BARD
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue