Skip to content

Commit

Permalink
Updated #invoke for Holographic Void Lily.
Browse files Browse the repository at this point in the history
In SpliceHack this would just summon 1-10 monsters. I have updated it to function more in line with the Cartomancer's mechanics, so now when invoked it will summon 4-12 tame spell-being monsters, similar to playing many monster summon cards at once.
  • Loading branch information
elunna committed Nov 15, 2023
1 parent ca3cb78 commit d9b17ec
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
14 changes: 13 additions & 1 deletion src/artifact.c
Original file line number Diff line number Diff line change
Expand Up @@ -4123,7 +4123,19 @@ struct obj *obj;
obj->age += HPasses_walls; /* Time begins after phasing ends */
break;
case SUMMONING: {
create_critters(rnd(10), (struct permonst *) 0, TRUE);
/* Roughly copied from make_sphere */
for (int i = 0; i < rn1(7, 4); i++) {
mtmp = make_helper(NON_PM, u.ux, u.uy);
if (!mtmp) {
pline("But it quickly fades away.");
break;
} else {
mtmp->mtame = 10;
/* Same lifetime as reading a spell-card */
mtmp->msummoned = 15 + u.ulevel * 4;
mtmp->uexp = 1;
}
}
break;
}
case SMOKE_CLOUD: {
Expand Down
11 changes: 7 additions & 4 deletions src/dog.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,14 +220,16 @@ xchar x, y;
int trycnt = 100;

do {
pm = &mons[mnum];
mtmp = makemon(pm, x, y,
MM_EDOG | MM_IGNOREWATER | NO_MINVENT);
if (mnum != NON_PM)
pm = &mons[mnum];
else
pm = rndmonst();
mtmp = makemon(pm, x, y, MM_EDOG | MM_IGNOREWATER | NO_MINVENT);
} while (!mtmp && --trycnt > 0);

if (!mtmp)
return (struct monst *) 0; /* genocided */

initedog(mtmp);
u.uconduct.pets++;
mtmp->msleeping = 0;
Expand All @@ -239,6 +241,7 @@ xchar x, y;
mtmp->weapon_check = NEED_HTH_WEAPON;
(void) mon_wield_item(mtmp);
}

return mtmp;
}

Expand Down

0 comments on commit d9b17ec

Please sign in to comment.