2010-12-02 12:17:54 +11:00
|
|
|
#ifndef __OBJECTS_H
|
|
|
|
#define __OBJECTS_H
|
|
|
|
#include "defs.h"
|
|
|
|
|
2011-03-10 16:47:18 +11:00
|
|
|
brand_t *addbrand(enum BRAND id, char *suffix, enum BODYPART bp);
|
2011-02-01 06:16:13 +11:00
|
|
|
object_t *addemptyob(obpile_t *where, object_t *o);
|
2011-03-10 16:47:18 +11:00
|
|
|
hiddenname_t *addhiddenname(enum OBCLASS obclass, char *text);
|
2010-12-07 18:34:26 +11:00
|
|
|
knowledge_t *addknowledge(enum OBCLASS id, char *hiddenname, int known);
|
2011-02-01 06:16:13 +11:00
|
|
|
material_t *addmaterial(enum MATERIAL id, char *name, float weightrating);
|
2011-04-01 10:54:44 +11:00
|
|
|
objectclass_t *addoc(enum OBCLASS id, char *name, char *desc, char glyph, int glyphcolour);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *addob(obpile_t *where, char *name);
|
|
|
|
object_t *addobject(obpile_t *where, char *name, int canstack);
|
2011-03-25 12:23:15 +11:00
|
|
|
int addobburst(cell_t *where, int range, int dirtype, char *name, lifeform_t *fromlf);
|
2011-03-10 16:47:18 +11:00
|
|
|
obmod_t *addobmod(enum OBMOD id, char *prefix);
|
2010-12-02 12:17:54 +11:00
|
|
|
obpile_t *addobpile(lifeform_t *owner, cell_t *where);
|
2011-04-14 09:44:29 +10:00
|
|
|
void addobsinradius(cell_t *centre, int radius, int dirtype, char *name, int allowdupes);
|
* [+] 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
|
|
|
objecttype_t *addot(enum OBTYPE id, char *name, char *description, int material, float weight, int obclassid);
|
2011-02-01 06:16:13 +11:00
|
|
|
void adjustdammaterial(unsigned int *dam, enum DAMTYPE damtype, enum MATERIAL mat);
|
|
|
|
void adjustdamob(object_t *o, unsigned int *dam, enum DAMTYPE damtype);
|
2011-04-08 13:18:54 +10:00
|
|
|
int adjustarmourpenalty(lifeform_t *lf, float amt);
|
2011-04-06 17:27:55 +10:00
|
|
|
int adjustshieldpenalty(lifeform_t *lf, float amt);
|
2011-02-01 06:16:13 +11:00
|
|
|
//void adjustprice(objecttype_t *ot, float *price );
|
|
|
|
void appendinscription(object_t *o, char *text);
|
2011-03-16 15:45:46 +11:00
|
|
|
void applyobmod(object_t *o, obmod_t *om);
|
2011-02-01 06:16:13 +11:00
|
|
|
int blessob(object_t *o);
|
|
|
|
void brightflash(cell_t *centre, int range, lifeform_t *immunelf);
|
2011-03-22 18:06:28 +11:00
|
|
|
int canbepoisoned(enum OBTYPE oid);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *canstackob(obpile_t *op, object_t *match);
|
|
|
|
object_t *canstacknewot(obpile_t *op, objecttype_t *match);
|
2011-02-01 06:16:13 +11:00
|
|
|
int changemat(object_t *o, enum MATERIAL mat);
|
2011-03-04 12:22:36 +11:00
|
|
|
objecttype_t *checkobnames(char *haystack, char *needle);
|
2011-04-01 10:54:44 +11:00
|
|
|
void colourmatchob(object_t *o, lifeform_t *lf);
|
2010-12-02 12:17:54 +11:00
|
|
|
void copyobprops(object_t *dst, object_t *src);
|
2010-12-07 18:34:26 +11:00
|
|
|
int countnames(char **list);
|
2010-12-02 12:17:54 +11:00
|
|
|
int countobs(obpile_t *op);
|
* [+] always add webs if there are randomly generated spiders on a level
- [+] non-wood doors
- [+] iron
- [+] only interrupt rest for hunger if it's 'starving' or 'vhungry'
- [+] limit the amount of jumping we can do from athletics skill.
- [+] no message when i lockpick with a -6 combat knife.
- [+] make small corpses give much less nutrition!
- [+] high unarmed skill should give you unarmed attacks with a
1-handed weapon.
- [+] dual weild
- [+] if you have twoweapon skill, when you weild a weapon, say
"weild as secondary weapon? y/n"
- [+] in attackcell(), check if we have a weapon in our second hand
AND are skilled in twoweaponing
- [+] if so, get an attack with both, but with an accuracy penalty
(until adept level)
- [+] make sure shiedl code doesn't accept weapons!
- [+] knockback() can now knock back other lfs that you hit on the way
* [+] faster resting obs (only via R)
- [+] replace F_RESTING with F_ASLEEP. v0 = onpurpose. if v0, you wake
up when at full hp/mp/etc
- [+] implement F_TRAINING with traincounter
- [+] don't say 'rest until nearby allies ar eheald' if they aren't
damaged
- [+] make listen dififculty check dependant on distance to noise
- [+] doesn't make sense for druid to be a vegetarian. use "can only
eat meat when hungry"
- [+] @@ - combine acc+dmg. ie. "weapon: mace (63%,2-9dmg)
- [+] @@ - show both weapons if dualweilding.
- [+] porcupine shoudl have F_SHARP corpse. implement F_CORPSEFLAGS
- [+] create monster - "giant ant" making "giant antlion"!
- [+] giant porcupine
- [+] implement
- [+] should attack ants on sight - f_hatesrace
- [+] if race=hatesrace or baserace = hatesrace, will attack it.
- [+] gust of wind - blow obs away!
- [+] thorns (grow spikes, attackers take dmg)
- [+] f_retaliate, v0=ndice,v1=dsides, v2=damype, text=obname
- [+] major healing (new spell)
2011-05-05 13:12:52 +10:00
|
|
|
int countnoncosmeticobs(obpile_t *op);
|
2011-02-01 06:16:13 +11:00
|
|
|
int curseob(object_t *o);
|
|
|
|
void damageallobs(object_t *exception, obpile_t *op, int howmuch, int damtype);
|
2011-03-24 16:09:31 +11:00
|
|
|
void dumprandomobs(int amt);
|
2011-02-01 06:16:13 +11:00
|
|
|
void explodeob(object_t *o, flag_t *f, int bigness);
|
|
|
|
void extinguish(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
material_t *findmaterial(int id);
|
|
|
|
objectclass_t *findoc(int id);
|
2011-02-16 05:21:33 +11:00
|
|
|
object_t *findobbyid(obpile_t *op, long oid);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *findobl(obpile_t *op, char let); // find object by letter
|
2011-03-10 16:47:18 +11:00
|
|
|
brand_t *findbrand(enum BRAND id);
|
2011-02-16 05:21:33 +11:00
|
|
|
obmod_t *findobmod(enum OBMOD id);
|
2010-12-07 18:34:26 +11:00
|
|
|
objecttype_t *findot(enum OBTYPE id);
|
2010-12-02 12:17:54 +11:00
|
|
|
objecttype_t *findotn(char *name); // find objecttype by name
|
* [+] 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 fragments(cell_t *centre, char *what, int speed, int howfar);
|
2010-12-07 18:34:26 +11:00
|
|
|
void genhiddennames(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getcharges(object_t *o);
|
|
|
|
int geteffecttime(int min, int max, enum BLESSTYPE isblessed);
|
2011-02-16 05:21:33 +11:00
|
|
|
objecttype_t *getlinkspell(object_t *o);
|
2011-04-01 10:54:44 +11:00
|
|
|
enum COLOUR getmaterialcolour(enum MATERIAL mat );
|
2011-03-18 12:25:18 +11:00
|
|
|
enum MATSTATE getmaterialstate(enum MATERIAL mat);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getmissileaccuracy(lifeform_t *thrower, cell_t *where, object_t *missile, object_t *firearm, enum ATTRIB whichatt);
|
2011-03-25 12:23:15 +11:00
|
|
|
int getobaccuracy(object_t *wep, lifeform_t *weilder);
|
2011-03-04 12:22:36 +11:00
|
|
|
int getobbonus(object_t *o);
|
2011-03-18 12:25:18 +11:00
|
|
|
skill_t *getobskill(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getobvalue(object_t *o);
|
|
|
|
//int getobtypevalue(objecttype_t *ot);
|
|
|
|
char *getaccuracyname(int accpct);
|
|
|
|
object_t *getammo(lifeform_t *lf);
|
|
|
|
object_t *getrandomammo(lifeform_t *lf);
|
2010-12-07 18:34:26 +11:00
|
|
|
char *getdamname(enum DAMTYPE damtype);
|
2011-02-01 06:16:13 +11:00
|
|
|
char *getdamnamenoun(enum DAMTYPE damtype);
|
|
|
|
char *getfillingname(int nutrition);
|
|
|
|
int getfirearmrange(object_t *o);
|
|
|
|
int getfirearmspeed(object_t *o);
|
2011-04-01 10:54:44 +11:00
|
|
|
glyph_t *getglyph(object_t *o);
|
2010-12-07 18:34:26 +11:00
|
|
|
char *genhiddenname(enum OBCLASS id);
|
|
|
|
char *gethiddenname(object_t *o);
|
2011-02-16 05:21:33 +11:00
|
|
|
int getobattackdelay(object_t *o);
|
2011-03-04 12:22:36 +11:00
|
|
|
float getobhppct(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
int getletindex(char let);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getmaterialvalue(enum MATERIAL mat );
|
|
|
|
int getmaxthrowrange(lifeform_t *lf, object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
char getnextletter(obpile_t *op, char *wantletter);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getnumshards(object_t *o);
|
|
|
|
int getnutritionbase(object_t *o);
|
|
|
|
int getnutrition(object_t *o);
|
|
|
|
char *getobdesc(object_t *o, char *buf);
|
2011-04-06 17:27:55 +10:00
|
|
|
char *getobequipinfo(object_t *o, char *buf);
|
2011-03-04 12:22:36 +11:00
|
|
|
char *getobextrainfo(object_t *o, char *buf);
|
2011-02-01 06:16:13 +11:00
|
|
|
cell_t *getoblocation(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
char *getobname(object_t *o, char *buf, int count);
|
* [+] 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
|
|
|
char *getobnametrue(object_t *o, char *buf, int count);
|
|
|
|
char *real_getobname(object_t *o, char *buf, int count, int wantpremods, int wantcondition, int adjustforblind, int wantblesscurse, int showall);
|
2011-02-01 06:16:13 +11:00
|
|
|
float getobpileweight(obpile_t *op);
|
|
|
|
char *getobconditionname(object_t *o, char *buf);
|
|
|
|
char *getobhurtname(object_t *o, enum DAMTYPE damtype);
|
|
|
|
float getobweight(object_t *o);
|
|
|
|
float getobunitweight(object_t *o);
|
|
|
|
objecttype_t *getoppositestairs(objecttype_t *ot);
|
|
|
|
char *real_getrandomob(map_t *map, char *buf, int cond, int cval, int forcedepth);
|
2010-12-02 12:17:54 +11:00
|
|
|
char *getrandomob(map_t *map, char *buf);
|
2010-12-07 18:34:26 +11:00
|
|
|
char *getrandomobwithdt(map_t *map, enum DAMTYPE damtype, char *buf);
|
2011-02-01 06:16:13 +11:00
|
|
|
char *getrandomobwithclass(map_t *map, enum OBCLASS cid, char *buf);
|
2011-03-16 15:45:46 +11:00
|
|
|
int getobrarity(object_t *o);
|
2011-03-04 12:22:36 +11:00
|
|
|
enum SPELLSCHOOL getschool(enum OBTYPE sid);
|
2011-02-01 06:16:13 +11:00
|
|
|
char *getschoolname(enum SPELLSCHOOL sch);
|
2011-04-14 09:44:29 +10:00
|
|
|
char *getschoolnameshort(enum SPELLSCHOOL sch);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getshatterdam(object_t *o);
|
2011-03-11 12:25:38 +11:00
|
|
|
enum SKILLLEVEL gettechlevel(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getthrowdam(object_t *o);
|
2011-04-11 15:05:45 +10:00
|
|
|
enum BODYPART getweildloc(object_t *o, enum BODYPART *otherloc, int *twohanded);
|
2011-02-01 06:16:13 +11:00
|
|
|
int hasedibleob(obpile_t *op);
|
2010-12-07 18:34:26 +11:00
|
|
|
object_t *hasknownob(obpile_t *op, enum OBTYPE oid);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *hasob(obpile_t *op, enum OBTYPE oid);
|
2011-03-16 15:45:46 +11:00
|
|
|
object_t *hasobletter(obpile_t *op, char letter);
|
2011-02-01 06:16:13 +11:00
|
|
|
object_t *hasobofclass(obpile_t *op, enum OBCLASS cid);
|
|
|
|
object_t *hasobmulti(obpile_t *op, enum OBTYPE *oid, int noids);
|
|
|
|
object_t *hasobwithflag(obpile_t *op, enum FLAG flagid);
|
|
|
|
object_t *hasobwithflagval(obpile_t *op, enum FLAG flagid, int val0, int val1, int val2, char *text);
|
2010-12-07 18:34:26 +11:00
|
|
|
object_t *hasobid(obpile_t *op, int id);
|
2011-02-01 06:16:13 +11:00
|
|
|
void identify(object_t *o);
|
2011-03-04 12:22:36 +11:00
|
|
|
void ignite(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
void initobjects(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
flag_t *isarmour(object_t *o);
|
|
|
|
int isactivated(object_t *o);
|
|
|
|
int isammofor(object_t *ammo, object_t *gun);
|
|
|
|
int isbetterarmourthan(object_t *a, object_t *b);
|
|
|
|
int isbetterwepthan(object_t *a, object_t *b);
|
|
|
|
int isblessed(object_t *o);
|
|
|
|
int isblessknown(object_t *o);
|
|
|
|
int iscorpse(object_t *o);
|
|
|
|
int iscursed(object_t *o);
|
2011-02-16 05:21:33 +11:00
|
|
|
int isdangerousob(object_t *o, lifeform_t *lf, int onlyifknown);
|
* [+] 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
|
|
|
int isdeadob(object_t *o);
|
2010-12-07 18:34:26 +11:00
|
|
|
int isdrinkable(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isedible(object_t *o);
|
|
|
|
flag_t *isequipped(object_t *o);
|
|
|
|
int isequippedon(object_t *o, enum BODYPART bp);
|
|
|
|
int isfirearm(object_t *o);
|
|
|
|
int isflammable(object_t *o);
|
2010-12-07 18:34:26 +11:00
|
|
|
int isknown(object_t *o);
|
2011-03-11 12:25:38 +11:00
|
|
|
int isknownot(objecttype_t *ot);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isidentified(object_t *o);
|
2011-03-04 12:22:36 +11:00
|
|
|
int isimpassableob(object_t *o, lifeform_t *lf);
|
2011-04-11 15:05:45 +10:00
|
|
|
int ismagical(object_t *o);
|
|
|
|
int ismeleeweapon(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int ismetal(enum MATERIAL mat);
|
2011-03-24 16:09:31 +11:00
|
|
|
int isthrowmissile(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isoperable(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
int isplainob(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int ispourable(object_t *o);
|
|
|
|
int ispushable(object_t *o);
|
2010-12-07 18:34:26 +11:00
|
|
|
int isreadable(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isrotting(object_t *o);
|
2011-04-14 09:44:29 +10:00
|
|
|
flag_t *issecretdoor(object_t *o);
|
2011-04-08 13:18:54 +10:00
|
|
|
flag_t *isshield(object_t *o);
|
2011-04-06 17:27:55 +10:00
|
|
|
int isthrownmissile(object_t *o);
|
2011-04-08 13:18:54 +10:00
|
|
|
int istried(object_t *o);
|
|
|
|
int istriedot(objecttype_t *ot);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isweapon(object_t *o);
|
|
|
|
int iswearable(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
void killmaterial(material_t *m);
|
|
|
|
void killob(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
void killobpile(obpile_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
void killoc(objectclass_t *oc);
|
|
|
|
void killot(objecttype_t *ot);
|
2011-03-22 18:06:28 +11:00
|
|
|
int knockbackob(object_t *o, int dir, int howfar, int power, lifeform_t *pusher);
|
2011-02-01 06:16:13 +11:00
|
|
|
lifeform_t *makeanimated(lifeform_t *lf, object_t *o, int level);
|
* [+] always add webs if there are randomly generated spiders on a level
- [+] non-wood doors
- [+] iron
- [+] only interrupt rest for hunger if it's 'starving' or 'vhungry'
- [+] limit the amount of jumping we can do from athletics skill.
- [+] no message when i lockpick with a -6 combat knife.
- [+] make small corpses give much less nutrition!
- [+] high unarmed skill should give you unarmed attacks with a
1-handed weapon.
- [+] dual weild
- [+] if you have twoweapon skill, when you weild a weapon, say
"weild as secondary weapon? y/n"
- [+] in attackcell(), check if we have a weapon in our second hand
AND are skilled in twoweaponing
- [+] if so, get an attack with both, but with an accuracy penalty
(until adept level)
- [+] make sure shiedl code doesn't accept weapons!
- [+] knockback() can now knock back other lfs that you hit on the way
* [+] faster resting obs (only via R)
- [+] replace F_RESTING with F_ASLEEP. v0 = onpurpose. if v0, you wake
up when at full hp/mp/etc
- [+] implement F_TRAINING with traincounter
- [+] don't say 'rest until nearby allies ar eheald' if they aren't
damaged
- [+] make listen dififculty check dependant on distance to noise
- [+] doesn't make sense for druid to be a vegetarian. use "can only
eat meat when hungry"
- [+] @@ - combine acc+dmg. ie. "weapon: mace (63%,2-9dmg)
- [+] @@ - show both weapons if dualweilding.
- [+] porcupine shoudl have F_SHARP corpse. implement F_CORPSEFLAGS
- [+] create monster - "giant ant" making "giant antlion"!
- [+] giant porcupine
- [+] implement
- [+] should attack ants on sight - f_hatesrace
- [+] if race=hatesrace or baserace = hatesrace, will attack it.
- [+] gust of wind - blow obs away!
- [+] thorns (grow spikes, attackers take dmg)
- [+] f_retaliate, v0=ndice,v1=dsides, v2=damype, text=obname
- [+] major healing (new spell)
2011-05-05 13:12:52 +10:00
|
|
|
int makeduller(object_t *o, int howmuch);
|
2010-12-07 18:34:26 +11:00
|
|
|
void makeknown(enum OBTYPE otid);
|
2011-04-08 13:18:54 +10:00
|
|
|
void maketried(enum OBTYPE otid);
|
2011-04-01 10:54:44 +11:00
|
|
|
void makewet(object_t *o, int amt);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *moveob(object_t *src, obpile_t *dst, int howmany);
|
2011-02-16 05:21:33 +11:00
|
|
|
void modbonus(object_t *o, int amt);
|
|
|
|
//object_t *newobeffects(object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
void obaction(object_t *o, char *text);
|
2010-12-07 18:34:26 +11:00
|
|
|
object_t *obexists(enum OBTYPE obid);
|
2011-02-01 06:16:13 +11:00
|
|
|
void obdie(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
int obfits(object_t *o, obpile_t *op);
|
2011-02-01 06:16:13 +11:00
|
|
|
enum DAMTYPE oblastdamtype(object_t *o);
|
2011-03-10 16:47:18 +11:00
|
|
|
int brandappliesto(brand_t *om, objecttype_t *ot);
|
|
|
|
int obmatchescondition(object_t *o, long opts);
|
2011-03-18 12:25:18 +11:00
|
|
|
int obproduceslight(object_t *o);
|
2010-12-02 12:17:54 +11:00
|
|
|
int obpropsmatch(object_t *a, object_t *b);
|
2011-02-01 06:16:13 +11:00
|
|
|
int obotpropsmatch(object_t *a, objecttype_t *b);
|
2011-02-16 05:21:33 +11:00
|
|
|
int operate(lifeform_t *lf, object_t *o, cell_t *where);
|
2010-12-02 12:17:54 +11:00
|
|
|
int pilehasletter(obpile_t *op, char let);
|
2011-04-01 10:54:44 +11:00
|
|
|
void potioneffects(lifeform_t *lf, enum OBTYPE oid, enum BLESSTYPE potlessed, int *seen);
|
2011-02-01 06:16:13 +11:00
|
|
|
int pour(lifeform_t *lf, object_t *o);
|
2010-12-07 18:34:26 +11:00
|
|
|
void quaff(lifeform_t *lf, object_t *o);
|
2011-03-04 12:22:36 +11:00
|
|
|
int readsomething(lifeform_t *lf, object_t *o);
|
2011-02-01 06:16:13 +11:00
|
|
|
void removedeadobs(obpile_t *op);
|
2010-12-07 18:34:26 +11:00
|
|
|
int removeob(object_t *o, int howmany);
|
2010-12-02 12:17:54 +11:00
|
|
|
object_t *relinkob(object_t *src, obpile_t *dst);
|
2011-02-01 06:16:13 +11:00
|
|
|
void setblessed(object_t *o, enum BLESSTYPE wantbless);
|
|
|
|
void setinscription(object_t *o, char *text);
|
2011-03-25 12:23:15 +11:00
|
|
|
void setobcreatedby(object_t *o, lifeform_t *lf);
|
* [+] 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
|
|
|
void shatter(object_t *o, int hitlf, char *damstring, lifeform_t *fromlf);
|
2011-03-11 12:25:38 +11:00
|
|
|
void shufflehiddennames(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
object_t *splitob(object_t *o);
|
|
|
|
int takedamage(object_t *o, unsigned int howmuch, int damtype);
|
* [+] 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
|
|
|
int real_takedamage(object_t *o, unsigned int howmuch, int damtype, int wantannounce);
|
2011-03-22 18:06:28 +11:00
|
|
|
int fireat(lifeform_t *thrower, object_t *o, int amt, cell_t *where, int speed, object_t *firearm);
|
2011-02-01 06:16:13 +11:00
|
|
|
void timeeffectsob(object_t *o);
|
|
|
|
void turnoff(lifeform_t *lf, object_t *o);
|
|
|
|
void turnon(lifeform_t *lf, object_t *o);
|
2011-04-06 17:27:55 +10:00
|
|
|
int uncurseob(object_t *o, int *seen);
|
2011-02-01 06:16:13 +11:00
|
|
|
int usecharge(object_t *o);
|
|
|
|
int validateobs(void);
|
2010-12-07 18:34:26 +11:00
|
|
|
int willshatter(enum MATERIAL mat);
|
2010-12-02 12:17:54 +11:00
|
|
|
#endif
|
2010-12-07 18:34:26 +11:00
|
|
|
|