2010-12-02 12:17:54 +11:00
|
|
|
#include <ncurses.h>
|
|
|
|
#include "defs.h"
|
2011-02-01 06:16:13 +11:00
|
|
|
void addchoice(prompt_t *p, char ch, char *text, char *desc, void *data);
|
|
|
|
void addheading(prompt_t *p, char *text);
|
|
|
|
void addmsghist(char *text);
|
2011-02-16 05:21:33 +11:00
|
|
|
void addpromptq(prompt_t *p, char *q);
|
2011-04-01 10:54:44 +11:00
|
|
|
void anim(cell_t *src, cell_t *dst, char ch, int colour);
|
|
|
|
void animradial(cell_t *src, int radius, char ch, int colour);
|
|
|
|
void animradialorth(cell_t *src, int radius, char ch, int colour);
|
* [+] F_prone if you're knocked down
- [+] make sheilds very good against projectiles
- [+] make smoke just REDUCE vision, not block it.
- [+] noncorporeal should stop grabs!
* [+] don't say 'a javelin is damaged' when you throw it, just apply
the damge
- [+] increase damage bonus with every lore level. +10% each time
(ie. up to 50% at top)
* [+] give accuracy + critical bonus for lore levles too
- [+] typo: Enhance which skill enhance (1 left)? ['=next page,?=toggle]
- [+] Show Pain on botl.
* [+] more staves
- [+] low hitpoint warning for pets (or make them shriek, whine, etc)
- [+] CRITKNOCKDOWN
* [+] FINISH GRIZZLY
- [+] undead should be immune to poison!!
- [+] make code to auto add flags to undead.
- [+] if you ever move a door (ie. airblast), automatically open it.
- [+] young wolf shouldn't be able to open a door!
* [+] You throw a dart at the carpet snake. Your dart misses
you.--More--
- [+] no sprinting while burdneed
- [+] blood should be drawn BELOW stairs
- [+] weilded torch should do 1d4 fire damage (counts as a club)
* [+] The skeleton touches a leather belt then recoils in pain!The
skeleton drops a blessed leather belt.The skeleton puts on a
leather belt.
- [+] don't show "you can cast it at power level xxx" for abilities
* [+] more item randomising
- [+] make grey ooze splatter into acid
- [+] "the vine grabs you" if you walk onto an entangling vine.
- [+] don't start monsters within player's los
- [+] properly randomise sticks to snakes
- [+] stirge
- [+] leech (like stirge but can charge/leap, and slightly more hp /
damage)
- [+] treesnake
- [+] constrictor
- [+] cobra
- [+] stickes to snakes - make caster's weapon revert.
- [+] A something comes into view.
- [+] is invisibility code working properly when you see someone use
the invis spell?
- [+] don't include cosmetic objects in 'you see xxx'
* [+] monsters: don't use spells if you don't have lof.
- [+] pets not following around corners if you move diagonally. fixed a
little.
- [+] summon small animals (2-3 x SZ_SMALL)
* [+] jet of water
- [+] summon medium animals (2-4 x SZ_MEDIUM, wolf etc)
- [+] lightning storm (lightbning everyone within los, and more damage)
- [+] summon large animals (SZ_LARGE, horse, bear etc)
2011-05-03 17:34:07 +10:00
|
|
|
void animsky(cell_t *src, char ch, int colour);
|
2011-02-01 06:16:13 +11:00
|
|
|
//void announceob(enum OBTYPE oid);
|
|
|
|
int announceflaggain(lifeform_t *lf, flag_t *f);
|
2011-03-04 12:22:36 +11:00
|
|
|
int announceflagloss(lifeform_t *lf, flag_t *f);
|
2011-02-01 06:16:13 +11:00
|
|
|
int announceobflaggain(object_t *o, flag_t *f);
|
|
|
|
void announceobflagloss(object_t *o, flag_t *f);
|
2011-03-10 16:47:18 +11:00
|
|
|
object_t *askobject(obpile_t *op, char *title, int *count, long opts);
|
|
|
|
object_t *askobjectwithflag(obpile_t *op, char *title, int *count, long opts, enum FLAG withflag);
|
2011-04-06 17:27:55 +10:00
|
|
|
object_t *doaskobject(obpile_t *op, char *title, int *count, long opts, ...);
|
2011-03-10 16:47:18 +11:00
|
|
|
int askobjectmulti(obpile_t *op, char *prompt, long opts);
|
2011-02-01 06:16:13 +11:00
|
|
|
char askchar(char *prompt, char *validchars, char *def, int showchars);
|
|
|
|
cell_t *askcoords(char *prompt, int targettype);
|
|
|
|
char *askstring(char *prompt, char punc, char *retbuf, int retbuflen, char *def);
|
2010-12-02 12:17:54 +11:00
|
|
|
void centre(WINDOW *win, int y, char *format, ... );
|
|
|
|
int chartodir(char ch);
|
2011-04-06 17:27:55 +10:00
|
|
|
char checkforkey(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
int cleanupgfx(void);
|
2010-12-02 12:17:54 +11:00
|
|
|
void clearmsg(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
void real_clearmsg(int force);
|
|
|
|
void clearretobs(void);
|
|
|
|
void cls(void);
|
2011-02-16 05:21:33 +11:00
|
|
|
int contains(enum OBCLASS *array, int nargs, enum OBCLASS want);
|
2010-12-02 12:17:54 +11:00
|
|
|
void describeob(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
void doattackcell(char dirch);
|
|
|
|
void doclose(void);
|
2011-03-25 12:23:15 +11:00
|
|
|
void docomms(void);
|
|
|
|
void dodrop(obpile_t *op, int wantmulti, obpile_t *dst);
|
2011-02-01 06:16:13 +11:00
|
|
|
void doeat(obpile_t *op);
|
|
|
|
void doenter(lifeform_t *lf);
|
2011-04-06 17:27:55 +10:00
|
|
|
void doexplain(char *question);
|
2011-02-01 06:16:13 +11:00
|
|
|
void dofinaloblist(obpile_t *op);
|
|
|
|
void dofire(void);
|
2011-03-04 12:22:36 +11:00
|
|
|
void dohelp(void);
|
2010-12-02 12:17:54 +11:00
|
|
|
void doinventory(obpile_t *op);
|
2010-12-07 18:34:26 +11:00
|
|
|
void doknowledgelist(void);
|
2011-05-06 10:34:42 +10:00
|
|
|
void dolook(cell_t *where, int onpurpose);
|
2011-02-01 06:16:13 +11:00
|
|
|
void domagic(enum OBTYPE spellid, int cellx, int celly);
|
2011-03-16 15:45:46 +11:00
|
|
|
void domemmagic(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
void domsghist(void);
|
|
|
|
void dooperate(obpile_t *op);
|
2010-12-07 18:34:26 +11:00
|
|
|
int dopickup(obpile_t *op);
|
2011-02-01 06:16:13 +11:00
|
|
|
void dolockpick(obpile_t *op);
|
|
|
|
void donextguntarget(void);
|
|
|
|
void dopour(obpile_t *op);
|
|
|
|
void doquit(void);
|
2010-12-07 18:34:26 +11:00
|
|
|
void doquaff(obpile_t *op);
|
|
|
|
void doread(obpile_t *op);
|
2011-02-01 06:16:13 +11:00
|
|
|
void dorest(void);
|
|
|
|
void doselguntarget(void);
|
|
|
|
void dostairs(int dir);
|
2010-12-07 18:34:26 +11:00
|
|
|
int dotakeoff(obpile_t *op);
|
2010-12-02 12:17:54 +11:00
|
|
|
void dothrow(obpile_t *op);
|
2011-02-01 06:16:13 +11:00
|
|
|
void dovendingmachine(lifeform_t *lf, object_t *vm);
|
2010-12-07 18:34:26 +11:00
|
|
|
int dowear(obpile_t *op);
|
|
|
|
int doweild(obpile_t *op);
|
2011-03-11 12:25:38 +11:00
|
|
|
int downline(int *y, int h, char *heading, char *subheading, char *bottomstring, char *cmdchars, char *retchar);
|
2011-04-01 10:54:44 +11:00
|
|
|
void drawglyph(glyph_t *g, int x, int y);
|
2011-04-06 17:27:55 +10:00
|
|
|
//void drawunviscell(cell_t *cell, int x, int y);
|
|
|
|
//void drawcellwithcontents(cell_t *cell, int x, int y);
|
2010-12-02 12:17:54 +11:00
|
|
|
void drawcursor(void);
|
|
|
|
void drawlevelfor(lifeform_t *lf);
|
|
|
|
void drawmsg(void);
|
|
|
|
void drawscreen(void);
|
|
|
|
void drawstatus(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
int drop(object_t *o, int count);
|
|
|
|
char getchoice(prompt_t *prompt);
|
2011-03-18 12:25:18 +11:00
|
|
|
char getchoicestr(prompt_t *prompt, int useshortcuts, int showlallatstart);
|
2010-12-02 12:17:54 +11:00
|
|
|
int getkey(void);
|
* [+] bug: secret doors revealed when we walk away from them.
- [+] make lamps last heaps longer
* [+] web spell
* [+] spider monstrer
* [+] funnelweb:
* [+] redback:
- [+] if you are wracked with pain, don't clear msg
- [+] check rarity for spiders
* [+] attack/defense mod if there is stickiness in your square
- [+] replace "sticky" with "restrictive"
* [+] make some mosnters start hidden
- [+] adjust spot checks basd on distance
- [+] ensure that attacking stops you hiding
- [+] casting spells stops you from being hidden
- [+] hidden mosnters shouldn't move unless their victim is ADJACENT.
- [+] hidden mosnters shouldn't cast spells, throw missiles, etc unless
their victim is ADJACENT.
- [-] XP CALC
- [+] funnelweb and redback are the same.
- [+] check this is right...... i want funnel web to be worse.
- [+] make hitconfer check in calcxpval take lifetime into account
- [+] ALSO assign an xp rating to each hitconferred flag.
- [+] hardcode this.
* [+] entangle spell
- [+] reveal secret doors if you see them get damaged.
* [+] make askcoords list restrivitce objects
- [+] ACTUALLY make vines not damaged by struggling
* [+] object descriptions, a/an needs to change if showing condition:
"a battered entangling vine"
- [+] wizard levelled up and was prompted for "WISH, GIFT"! shouldn't
happen!
- [+] The human diety reads a blessed scroll of create monster! -- but
nothing happens??
* [+] throw code
- [+] wizard: ask for school specialty at start, from: fire, ice, xxx
? You get this + WILD.
- [+] describe varpower spells
- [+] fix mp cost for varpower spells
- [+] we're not stopping running at staircases anymore for some reason.
- [+] CHARGE ability (like swoop but don't return to original positino)
- [+] need to honor f_canlearn when displaying new skills to learn!
- [+] ai: if we are going to player's last known loc (via targetcell),
abandon if we can SEE the player!
- [+] make shatter() into a function
- [+] oil potion makes oil puddle whan smashed
- [+] make flammable objects be able to convert to others
- [+] replace 'magic item usage' with 'channeling'
- [+] a cloud of darkness descends. this is a *cursed* wand of light.
- [+] spiders shouldn't be able to be stuck in a web!
* [+] spells should be able to have MULTIPLE schools.
- [+] don't bleed into walls
- [+] in @M, use colours to show which spells are too hard so far (ie
cost > maxmp)
* [+] in @M, use schools that you know
* [+] after loading game, barbarian is getting an extra attack?
You miss the eyebat. You punch the eyebat.
- [+] show objects on top of stairs
- [+] stuck mosnters must pass a saving throw to follow you up/down
stairs
- [+] genericise: trytomove(lf)
* [+] add more snakes
- [+] undead can't eat or drink? or MOST undead can't.
* [+] why can MONSTERS shoot webs through things? (but I can't)
- [+] barkskin - doesn't reduce max mp enough?
- [+] The skeleton touches a fuming aqua potion [tried] then recoils in
pain!
The skeleton drops a blessed fuming aqua potion [tried].
The skeleton drinks a fuming aqua potion!
- [+] why can't i use abilites anymore?
- [+] infinite loop bug due to ai only having one ignorecell.
- [+] make sleet storms rust all armour
- [+] make a kind of walkdam that hits armour
- [+] add this as well as walkdam for: acid, fire, water
- [+] Takeoff isn't prompting properly. only showing weapons!
* [+] waterproof obs (ie cloak)
* [+] walkdambp doesn't hurt body if you have a cloak
NATURE SPELLS:
- [+] mending, heals 1d6 damage
- [+] spark
- [+] purify food
- [+] sticks to snakes
- [+] calm animals (power_d4 hd)
* [+] charm animal (works on one animal up to power hit dice, temporary)
- [+] airblast
- [+] barkskin (power +2 AR, firevuln, ongoing)
- [+] soften earth (makes ground into mud)
- [+] warp wood (damages wooden objects)
- [+] repel insects
- [+] reduce poison
- [+] web
- [+] windshield
- [+] call lightning, air
- [+] resist elements, ongoing
- [+] passwall
- [+] poisonbolt
- [+] quench (puts out a fire)
- [+] sleet storm (lowers movement, vision)
- [+] healing
- [+] cure poison
* [+] calming scent
- [+] dig
- [+] entangle
- [+] levitate
- [+] flamepillar
- [+] hailstorm. like sleetstorm but hurts more. power d 6.
- [+] burning wave
- [+] gaseous form
* [+] knowledge skills:
* [+] force makespellchoicelist() to show spells in level order.
* [+] druid
- [+] check OBJECT rarity list (dumplev)
- [+] fix bug where heaps of books suddently appear from dlev 3 onwards
- [+] gain skills on level up for some jobs
- [+] f_levspellschool, v0=lev, v1 = school or ANY - select one
from that school
2011-04-23 14:27:42 +10:00
|
|
|
enum COLOUR getskilllevelcolour(enum SKILLLEVEL slev);
|
2010-12-02 12:17:54 +11:00
|
|
|
void handleinput(void);
|
2011-03-04 12:22:36 +11:00
|
|
|
void doheading(WINDOW *win, int *y, int x, char *what);
|
2011-02-01 06:16:13 +11:00
|
|
|
void initgfx(void);
|
|
|
|
void initprompt(prompt_t *p, char *q1);
|
2010-12-02 12:17:54 +11:00
|
|
|
int keycodetokey(int keycode);
|
2011-04-06 17:27:55 +10:00
|
|
|
void listobs(WINDOW *win, object_t **mylist, int *sellist, int *selcount, int firstob, int *counter, int lastline, int *y, char *myletters);
|
2011-04-14 09:44:29 +10:00
|
|
|
void makespellchoicelist(prompt_t *pr, lifeform_t *lf, char *ques, char *ques2, enum SPELLSCHOOL wantschool, int wantunknown);
|
2010-12-02 12:17:54 +11:00
|
|
|
void more(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
void warn(char *format, ... );
|
2010-12-02 12:17:54 +11:00
|
|
|
void msg(char *format, ... );
|
2011-03-04 12:22:36 +11:00
|
|
|
void msgnocap(char *format, ... );
|
2011-02-01 06:16:13 +11:00
|
|
|
void msg_real(char *format, ... );
|
2011-04-01 10:54:44 +11:00
|
|
|
int needsbold(enum COLOUR col);
|
2011-02-01 06:16:13 +11:00
|
|
|
void nothinghappens(void);
|
2010-12-02 12:17:54 +11:00
|
|
|
void dblog(char *format, ... );
|
|
|
|
void redraw(void);
|
|
|
|
int savequit(void);
|
2011-04-01 10:54:44 +11:00
|
|
|
void setcol(WINDOW *win, enum COLOUR col);
|
|
|
|
void unsetcol(WINDOW *win, enum COLOUR col);
|
2011-04-11 15:05:45 +10:00
|
|
|
void setobcolour(WINDOW *win, object_t *o);
|
|
|
|
void unsetobcolour(WINDOW *win, object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
void showlfarmour(lifeform_t *lf);
|
|
|
|
void showlfstats(lifeform_t *lf, int showall);
|
2010-12-02 12:17:54 +11:00
|
|
|
void tombstone(lifeform_t *lf);
|
2011-02-01 06:16:13 +11:00
|
|
|
void updatestatus(void);
|
2010-12-02 12:17:54 +11:00
|
|
|
void updateviewfor(cell_t *cell);
|