2010-12-02 12:17:54 +11:00
|
|
|
#include "defs.h"
|
|
|
|
|
2012-01-06 11:20:57 +11:00
|
|
|
int applyarmourdamage(lifeform_t *lf, object_t *wep, int dam, enum DAMTYPE damtype, lifeform_t *attacker);
|
2011-03-04 12:22:36 +11:00
|
|
|
void applyarmourdamreduction(lifeform_t *lf, object_t *wep, int reduceamt, int *dam, enum DAMTYPE damtype);
|
2011-06-20 13:16:30 +10:00
|
|
|
int attackcell(lifeform_t *lf, cell_t *c, int force);
|
2011-04-08 13:18:54 +10:00
|
|
|
int attacklf(lifeform_t *lf, lifeform_t *victim, object_t *wep, flag_t *damflag);
|
|
|
|
int attackob(lifeform_t *lf, object_t *o, object_t *wep, flag_t *damflag);
|
2012-01-12 12:28:07 +11:00
|
|
|
int attackwall(lifeform_t *lf, cell_t *c, object_t *wep, flag_t *damflag);
|
2011-10-07 07:12:13 +11:00
|
|
|
enum DAMTYPE basedamagetype(enum DAMTYPE dt);
|
2011-12-13 03:40:17 +11:00
|
|
|
int check_for_block(lifeform_t *lf, lifeform_t *victim, int dam, enum DAMTYPE damtype, int difficulty, char *attackname);
|
|
|
|
//void confereffects(flagpile_t *fp, lifeform_t *victim);
|
2012-04-14 08:52:35 +10:00
|
|
|
void criticalhit(lifeform_t *lf, lifeform_t *victim, enum BODYPART hitpos, object_t *wep, int dam, enum DAMTYPE damtype);
|
2012-06-03 08:43:18 +10:00
|
|
|
int damtypecausesbleed(enum DAMTYPE dt, object_t *fromob);
|
2011-08-24 18:15:09 +10:00
|
|
|
int damtypecausescriteffects(enum DAMTYPE dt);
|
2011-03-04 12:22:36 +11:00
|
|
|
int getarmourdamreduction(lifeform_t *lf, object_t *wep, int dam, enum DAMTYPE damtype);
|
2011-07-29 08:45:34 +10:00
|
|
|
void getarrange(int arating, int *min, int *max);
|
2011-04-08 13:18:54 +10:00
|
|
|
//object_t *getattackwep(lifeform_t *lf, obpile_t **unarmedpile, flag_t **unarmedflag);
|
2011-02-01 06:16:13 +11:00
|
|
|
enum DAMTYPE getdamtype(object_t *wep);
|
2012-03-29 07:17:47 +11:00
|
|
|
int getextradamlf(lifeform_t *lf, int *dam, enum DAMTYPE *damtype, int *ndam, int wantmax);
|
2012-06-25 22:49:53 +10:00
|
|
|
int getextradamwep(object_t *wep, int *dam, enum DAMTYPE *damtype, int *ndam, int fordisplay);
|
2011-10-25 03:46:19 +11:00
|
|
|
void getdamrange(object_t *o, flag_t *f, int *min, int *max);
|
|
|
|
//void getdamrange(object_t *o, int *min, int *max);
|
2011-04-08 13:18:54 +10:00
|
|
|
//void getdamrangeunarmed(flag_t *f, int *min, int *max);
|
2011-06-05 19:21:21 +10:00
|
|
|
//float getdamreducepct(float armourrating);
|
2011-04-08 13:18:54 +10:00
|
|
|
int getdamroll(object_t *o, lifeform_t *victim, flag_t *damflag);
|
|
|
|
//int getunarmeddamroll(flag_t *f);
|
2012-01-25 07:38:59 +11:00
|
|
|
int getstrdammod(lifeform_t *lf);
|
2011-04-08 13:18:54 +10:00
|
|
|
//obpile_t *getunarmedweapon(lifeform_t *lf, flag_t **uflag);
|
2011-06-09 18:58:35 +10:00
|
|
|
int ismeleedam(enum DAMTYPE damtype);
|
2011-04-06 17:27:55 +10:00
|
|
|
int isphysicaldam(enum DAMTYPE damtype);
|
2011-06-20 13:16:30 +10:00
|
|
|
void modifyforsize(int *val, lifeform_t *lf, lifeform_t *victim, int howmuch, enum MODTYPE how);
|
2012-08-01 07:19:04 +10:00
|
|
|
int rolltohit(lifeform_t *lf, lifeform_t *victim, object_t *wep, int *critical, int *fumble, int *missby);
|
- [+] press ] then \ - CRASH.
- [+] if sound is behind walls:
- [+] you hear a muffled explosion
- [+] int canhear() needs one more optional argument:
&numwallspassed
- [+] if supplied, fill it in.
- [+] in noise(), check numwallspassed. if there were any, then say
'muffled'. or maybe if more than 2? play around with this.
- [+] listen skill should also give more info about NON monster sounds
- [+] ie. direction, distance.
- [+] set user->changinglev when CHECKING stairs in the same way as
when we use them.
- [+] monk abil - iron fist - use all remaining stamina as damage +
knockback
* [+] HITCONFER - this should only work if you were attacked through a
BITE or CLAW etc.
- [+] bug... werewolves etc not attacking properly after shapehifting
- [+] some tech/tools should be usable with hands (ie. watch).
f_operwithouthands
- [+] werewolves sohuld keep f_hitconfer after shapeshifting
- [+] done
- [+] summoned creatures from ai should never attack their masters!!!
- [+] only the PLAYER can be infected by a werewolf? or only HUMANS ?
- [+] when a werewolf changes to animal form, no longer hide true race
as 'human'
- [+] lycanthropy?
- [+] how to get it:
- [+] drink were-xxx blood (->potion of lycanthropy, never
appears randomly)
- [+] bitten by a lycanthrope (chance) with hitconfer and fail
a con check
- [+] change f_lycanthrope so text = racename.
- [+] effects when you get it:
- [+] right away, add diseased with lycanthropy. incubatino
infinite ?
- [+] if you are incubating lycanthropy, you always change at
the full moon (and get rage, and lose control).
- [+] at this point, complete the incubation and...
- [+] add f_hatesall
- [+] lose control for a while
- [+] after you change back the first time, you can change at
will. (but there is a risk each time of losing control)
- [+] player regains control
- [+] remove aicontrolled, hatesall, rage
- [+] actually add f_lycanthrope, text=xxx, v0=4
- [+] when f_lycanthrope v0 drops to 0 or less...
- [+] canwill shapeshift with race:xxx
- [+] how to remove it
- [+] remove curse scroll
- [+] drink holy water
- [+] these will:
- [+] cure any incubating curse
- [+] cure any f_poisoned curse
- [+] cure lycanthropy, and any flags FROMLYCANTHROPY
- [+] other effect
- [+] wont/cant walk into holy circle?
- [+] holy circle hurts you
- [+] shouldn't be able to get critical hits on you (ie. injuries) if
you ahve heavenly armour
- [+] bug in f_poisoned text. i think i've fixed this now.
Died on level 2 of the dungeon.
Killed by venom poisoning
from 5-10
- [+] donated objects count towards xp!
- [+] -50% of value if not known.
- [+] -25% of value if not id'd
- [+] donating objects will anger felix
2012-07-11 14:10:21 +10:00
|
|
|
void wepeffects(flagpile_t *fp, cell_t *where, flag_t *damflag, int dam, int isunarmed);
|