2010-12-07 18:34:26 +11:00
|
|
|
#ifndef __SPELLS_H
|
|
|
|
#define __SPELLS_H
|
|
|
|
#include "defs.h"
|
|
|
|
|
2011-03-22 18:06:28 +11:00
|
|
|
int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target, flag_t *cwflag);
|
2011-06-09 18:58:35 +10:00
|
|
|
int dospelleffects(lifeform_t *caster, enum OBTYPE spellid, int power, lifeform_t *target, object_t *targob, cell_t *targcell, int blessed, int *seenbyplayer, int frompot);
|
2011-05-20 06:30:58 +10:00
|
|
|
objecttype_t *findspelln(char *buf);
|
2011-10-21 04:15:24 +11:00
|
|
|
enum SPELLSCHOOL findspellschoolbyname(char *buf);
|
2011-02-01 06:16:13 +11:00
|
|
|
void fizzle(lifeform_t *caster);
|
2011-03-16 15:45:46 +11:00
|
|
|
//int getiqreq(enum OBTYPE oid);
|
2011-11-02 07:35:50 +11:00
|
|
|
enum OBTYPE getfirstwizspell(enum SPELLSCHOOL school);
|
- [+] make "fear" be used to flee, not attack
- [+] CRASH in linkexit()
- [+] make most monsters either have sk_perception at least novice.
- [+] show success rate when studying scrolls
- [+] bug: unable to drink from fountains anymore
- [+] always use multidrop - this will free up 'D'
- [+] forest tree cluster maps are not working - only a single tree in
each cluster!
- [+] crash - ghost adding footprint to solid cell!
- [+] amberon's wrath for attacking peaceful should happen once per
ATTACK, not once per HIT
- [+] show cells outside LOS as blue or darkgrey
- [+] Don't place normal rooms next to the edge of the map either!!
- [+] getradiuscells(scatter) needs an option to include density
- [+] then make absolute zero have high density
* [+] summoning spells on pentagram will summon a demon instead
- [+] "confusion" / "baffle" mental spell - l2
- [+] add 'concussion' injury (head bash) - confusion effect.
- [+] iswoozy checks for this.
- [+] severed limbs -"frominjury" so taht you can heal them
- [+] linkexit() needs to be able to handle making THREE turns:
- [+] when looking for turnpos, remember each up/down celll
- [+] if we don't find one ("annot find a way to link up") , go
through each up/down cell and look left/right
- [+] fix is in place.
- [+] tested.
- [+] bug: doors being placed on top of rock walls!!! think this is
related to fix_deadends.
- [+] assert statement added.
* [+] bug: no up stairs generated on first dungeon map! was being
removed by clearcell() for overlapping rooms.
- [+] mass stun spell - l4. stuns all in los ?
* [+] make "stun" / massstun durations be 2-4 depending on power
- [+] "restricted" jobs/races?
- [+] don't put shopkeepers in pubs
- [+] make a per-map maxvisrange. the deeper you go, the lower this
gets (ie . it is darker, less ambientlight)
- [+] limit getvisrange(lf) by getmapmaxvisrange()
- [+] map->habitat->maxvisrange. set this during createhabitat()
- [+] reduce maxvisrange
- [+] reduce it to 6
- [+] why can i still see 1 cell?
- [+] why can i still always see my own cell?
- [+] when in pitch black for a certain amount of time, your vision
adjusts to maxrange=1
- [+] ie. getnightvisrange(lf) should be modified by
lf->eyeadjustment
- [+] reset if you can ever see a lit cell.
- [+] when this happens to the player:
- [+] msgs about this
- [+] also force light recalc
- [+] only recalc light when dirty
- [+] if we call "haslos()" for a lf and they have losdirty,
precalclos first.
- [+] vis range problems
- [+] sunglasses/footballhelm visrangereduce isn't working anymore
- [+] it's reducing maxvisrange(lf).
- [+] BUT - my maxvisrange is 5, which is still higher than the
ambient range.
- [+] need to apply reductions AFTER ambient light
- [+] NOW eyeadjustment isn't working. because cell lit is
l_temp, not l_notlit.
- [+] but if this is the case, why can't i see? anwer: because
my visrange has been reduced to 0 due to no ambient light!
- [+] so.... how do i make lightt sources override this?
- [+] maybe say: if a cell is lit, i can see it, even if it's
outside my ambient light.
- [+] falling over isn't reducing your visrange anymore
- [+] why doesn't eyeadjust make the screen update?
- [+] is regular "haslos" code ever used anymore????
- [+] now i can't see lit cells in the darkness again....fixed
- [+] after you calm something, give it xpval0
- [+] show message when calm animals fails
- [+] check all spell sc_resistmag oskillcheck difficulties
- [+] diff should be 20 + (spelllev*2) + power
- [+] l1 spell should be diff 20
- [+] l2 should be diff 24
- [+] ...
- [+] l7 should be diff 34
- [+] bleeding injuries should make armour "bloodstained" (5% chance
per turn)
- [+] msgs for "the sun is starting to set" and "the sun is starting to
rise"
- [+] make 6am, 18pm be constants
- [+] add crushed windpipe - lower Fitness, cannot sprint
* [+] CRASH when going down stairs! another overlapping room bug i
think.
- [+] cockatrices and chickens should cluck
- [+] canwill param: race:xxx;
- [+] define it
- [+] use this in "createmonster"
- [+] use this in "polymorph" when on self
- [+] then remove f_forcepoly
- [+] TEST
- [+] make playerstart vaults able to appear randomly (just don't place
the the "playerstart" object)
- [+] redo texttospellopts() to make it more friendly
- [+] give a list of what we want as args, rather than passing lots
of nulls
- [+] "pw:", &localpowervar etc
- [+] make "n_lowhp" noisetext happen at END of lf turn - NOT during
losehp.
- [+] rename turneffectslf() to startlfturn()
- [+] show hunger level as a bar in @@
- [+] warn before becoming burdened.
- [+] warn when you ARE burdened. at the end of moveob()
- [+] l6 - absolute zero (turn everyone around you to ice, freeze all
obs, turn ground to ice)
- [+] some monsters leave non-meat food behind?
- [+] cactus -> cactus juice/fruit
- [+] dreamfungus -> sleeping powerder
- [+] silver weapons (5% chance on eligible weapons)
- [+] hurt vampires
- [+] vulnerable to mat??? - then use fromob in losehp()
- [+] f_matvuln mt_xxx multiplier
- [+] add some silver weapons
- [+] f_canbediffmat mt_silver 10%
- [+] if f_canbediffmat is true, sometimes change material to
this on creation
- [+] getobname - if material is differnet, show this
- [+] dagger
- [+] sword
- [+] arrow
- [+] bolt
- [+] dart
- [+] addob should accept 'wantdiffmat'
2011-09-10 09:03:32 +10:00
|
|
|
char *getforcedspellrace(lifeform_t *lf, enum OBTYPE spellid, char *racestr);
|
2011-03-22 18:06:28 +11:00
|
|
|
int getmpcost(lifeform_t *lf, enum OBTYPE oid);
|
- [+] make "fear" be used to flee, not attack
- [+] CRASH in linkexit()
- [+] make most monsters either have sk_perception at least novice.
- [+] show success rate when studying scrolls
- [+] bug: unable to drink from fountains anymore
- [+] always use multidrop - this will free up 'D'
- [+] forest tree cluster maps are not working - only a single tree in
each cluster!
- [+] crash - ghost adding footprint to solid cell!
- [+] amberon's wrath for attacking peaceful should happen once per
ATTACK, not once per HIT
- [+] show cells outside LOS as blue or darkgrey
- [+] Don't place normal rooms next to the edge of the map either!!
- [+] getradiuscells(scatter) needs an option to include density
- [+] then make absolute zero have high density
* [+] summoning spells on pentagram will summon a demon instead
- [+] "confusion" / "baffle" mental spell - l2
- [+] add 'concussion' injury (head bash) - confusion effect.
- [+] iswoozy checks for this.
- [+] severed limbs -"frominjury" so taht you can heal them
- [+] linkexit() needs to be able to handle making THREE turns:
- [+] when looking for turnpos, remember each up/down celll
- [+] if we don't find one ("annot find a way to link up") , go
through each up/down cell and look left/right
- [+] fix is in place.
- [+] tested.
- [+] bug: doors being placed on top of rock walls!!! think this is
related to fix_deadends.
- [+] assert statement added.
* [+] bug: no up stairs generated on first dungeon map! was being
removed by clearcell() for overlapping rooms.
- [+] mass stun spell - l4. stuns all in los ?
* [+] make "stun" / massstun durations be 2-4 depending on power
- [+] "restricted" jobs/races?
- [+] don't put shopkeepers in pubs
- [+] make a per-map maxvisrange. the deeper you go, the lower this
gets (ie . it is darker, less ambientlight)
- [+] limit getvisrange(lf) by getmapmaxvisrange()
- [+] map->habitat->maxvisrange. set this during createhabitat()
- [+] reduce maxvisrange
- [+] reduce it to 6
- [+] why can i still see 1 cell?
- [+] why can i still always see my own cell?
- [+] when in pitch black for a certain amount of time, your vision
adjusts to maxrange=1
- [+] ie. getnightvisrange(lf) should be modified by
lf->eyeadjustment
- [+] reset if you can ever see a lit cell.
- [+] when this happens to the player:
- [+] msgs about this
- [+] also force light recalc
- [+] only recalc light when dirty
- [+] if we call "haslos()" for a lf and they have losdirty,
precalclos first.
- [+] vis range problems
- [+] sunglasses/footballhelm visrangereduce isn't working anymore
- [+] it's reducing maxvisrange(lf).
- [+] BUT - my maxvisrange is 5, which is still higher than the
ambient range.
- [+] need to apply reductions AFTER ambient light
- [+] NOW eyeadjustment isn't working. because cell lit is
l_temp, not l_notlit.
- [+] but if this is the case, why can't i see? anwer: because
my visrange has been reduced to 0 due to no ambient light!
- [+] so.... how do i make lightt sources override this?
- [+] maybe say: if a cell is lit, i can see it, even if it's
outside my ambient light.
- [+] falling over isn't reducing your visrange anymore
- [+] why doesn't eyeadjust make the screen update?
- [+] is regular "haslos" code ever used anymore????
- [+] now i can't see lit cells in the darkness again....fixed
- [+] after you calm something, give it xpval0
- [+] show message when calm animals fails
- [+] check all spell sc_resistmag oskillcheck difficulties
- [+] diff should be 20 + (spelllev*2) + power
- [+] l1 spell should be diff 20
- [+] l2 should be diff 24
- [+] ...
- [+] l7 should be diff 34
- [+] bleeding injuries should make armour "bloodstained" (5% chance
per turn)
- [+] msgs for "the sun is starting to set" and "the sun is starting to
rise"
- [+] make 6am, 18pm be constants
- [+] add crushed windpipe - lower Fitness, cannot sprint
* [+] CRASH when going down stairs! another overlapping room bug i
think.
- [+] cockatrices and chickens should cluck
- [+] canwill param: race:xxx;
- [+] define it
- [+] use this in "createmonster"
- [+] use this in "polymorph" when on self
- [+] then remove f_forcepoly
- [+] TEST
- [+] make playerstart vaults able to appear randomly (just don't place
the the "playerstart" object)
- [+] redo texttospellopts() to make it more friendly
- [+] give a list of what we want as args, rather than passing lots
of nulls
- [+] "pw:", &localpowervar etc
- [+] make "n_lowhp" noisetext happen at END of lf turn - NOT during
losehp.
- [+] rename turneffectslf() to startlfturn()
- [+] show hunger level as a bar in @@
- [+] warn before becoming burdened.
- [+] warn when you ARE burdened. at the end of moveob()
- [+] l6 - absolute zero (turn everyone around you to ice, freeze all
obs, turn ground to ice)
- [+] some monsters leave non-meat food behind?
- [+] cactus -> cactus juice/fruit
- [+] dreamfungus -> sleeping powerder
- [+] silver weapons (5% chance on eligible weapons)
- [+] hurt vampires
- [+] vulnerable to mat??? - then use fromob in losehp()
- [+] f_matvuln mt_xxx multiplier
- [+] add some silver weapons
- [+] f_canbediffmat mt_silver 10%
- [+] if f_canbediffmat is true, sometimes change material to
this on creation
- [+] getobname - if material is differnet, show this
- [+] dagger
- [+] sword
- [+] arrow
- [+] bolt
- [+] dart
- [+] addob should accept 'wantdiffmat'
2011-09-10 09:03:32 +10:00
|
|
|
int getmrdiff(enum OBTYPE spellid, int power);
|
* [+] operate a candlabrum on the ground confers permenant light
producing!
* [+] bug - water appearing in walls.
- [+] make armour less common in forests
- [+] too many --more--s when enhancing stats. use drawmsg() rather
than more().
- [+] when i go up/down stairs, i keep ending up BESIDE them??
* [+] "you hear footstepszzzzzzzzzzzzzzzzzzzzzzz" (random junk)
- [+] when i start training with a spell active, it gets interrupted.
try again, interrupted again! works 3rd time.
- [+] replace lockpicking with "locksmithing"
- [+] replace 'body control' with 'slow metabolism'
- [+] pit traps broken - fixed now.
- [+] doheading issue in @M still.
* [+] how did zombie get 28 hp? bug in rollhitdice.
- [+] blind a skeleton with light. it gets blind, starts fleeing. but
because it can't SEE you, it stops fleeing instantly!
* [+] getflags(flagpile_t *fp, ... )
- [+] stun spell
- [+] only say "x2" etc if msgbuf we are going to draw still contains
the original text.
- [+] when you level up, your psionic skill determines your chance of
learning a new psionic spell?
- [+] when you teleport/use stairs, get all allies in SIGHT, not
adjacent.
* [+] more traps!
* [+] prisoners in cells
- [+] recruitment: instead of outright refusing to join, just up the
price.
* [+] make spellbook contents depend on map difficulty
- [+] cloak of shadows - give invisibility when in darkness
* [+] limited wish:
- [+] casting WISH reduces max hp by 50%!
- [+] monster ai code: if inventory full (or close), put non-eqiupped
stuff into containers
* [+] infinite loop in firedam to lf
- [+] pot of xp isn't working for monsters. they get no more hp!!
- [+] summonmosnter should jsut relocate existing uniques
- [+] 'planeshift' spell for gods - "unsummon"s them.
* [+] diety - greedgod
* [+] more village contents
2011-07-26 12:01:05 +10:00
|
|
|
enum OBTYPE getrandomspell(int maxlev);
|
2011-10-21 04:15:24 +11:00
|
|
|
enum OBTYPE getrandomspellfromschool(enum SPELLSCHOOL school, int wantlev);
|
|
|
|
enum SPELLSCHOOL getrandomspellschool(void);
|
2011-03-18 12:25:18 +11:00
|
|
|
enum SKILL getschoolskill(enum SPELLSCHOOL ss);
|
- [+] prevent 'A' (forceattack) behind you
- [+] replace:
- [+] Something critically savages your body.
Your uncursed suit of ring mail protects you.
Your suit of ring mail is damaged!
- [+] with:
- [+] Something critically savages your suit of ring mail.
- [+] Your suit of ring mail is damaged!
- [+] tremorsense shouldn't see flying creatures
- [+] rename blink to "bamf"
- [+] add F_containsmeat for non-vegetarian foods
- [+] use this in vegetarian checks instead of mt_Flesh
- [+] "what goes up" spell
- [+] "equal and opposite" spell
- [+] why didn't cyborg ninja start with weapon weilded?
- [+] getbestwepon - accuracy was counting for too much. have
changed calculation.
- [+] why is wizard's staff not enchanted???
- [+] elephant race - Pachyon or Mammoan
- [+] bonus
- [+] Leather skin
- [+] str++
- [+] photo mem
- [+] high listen skill
- [+] good smell
- [+] penalty
- [+] slow movement
- [+] no armour on ears
- [+] agi-
- [+] low eyesight
- [+] vuln to sonic
- [+] vegetarian
- [+] other
- [+] large
- [+] throw salt to blind targets
- [+] if you learn a new spell school skill while game is in progress,
gain a 1st level spell too.
- [+] for random roast meat, always use base race
- [+] ie. orc, not "elite orc"
- [+] (ie. human, not 'town guard')
- [+] remove "prepare food" skill.
- [+] use "cook" instead
- [+] startskill should be a modifier, not absolute.
- [+] ie. elf can have sk_ranged, so can hunter. these will now
stack.
- [+] chance for ai to use a firearm is lowered based on firearm
accuracy
- [+] bug: massively high amount of skillxp needed for a point
- [+] firearms should do more damage at pointblank range.
- [+] icicle bugs - getrandomadjcell for knockback failing
- [+] still a bug with firearm accuracy updating
- [+] 2 squares away, move towards enemy - it doesn't update!
- [+] display all valid hits in brown
- [+] wear melted wax in ears to reduce sonic damage
- [+] ranged skillls
- [+] adp
- [+] fast reloading
- [+] exp
- [+] fire through lifeforms! lof_wallstop instead of lof_need
- [+] mas
- [+] extra dam.
- [+] object HP issue:
- [+] head: b - an uncursed helmet [AR:3] [110%]
- [+] body: c - an uncursed suit of ring mail [AR:6] [173%]
- [+] hands: d - an uncursed battered pair of gauntlets
[AR:2] [86%]
- [+] are objects taking negative damage??
- [+] have put an assertion in to check
- [+] wait for it to happen again...
- [+] add hitchance to askcoords when throwing/shooting
- [+] code it
- [+] test for throw
- [+] add for telekeniis too
- [+] add for guns:
- [+] "targetted: something [x%]"
- [+] "bow->Target->xxx [x%]"
- [+] show gun target on botl
- [+] redo throw accuracy:
- [+] 100 to hit yourself
- [+] apply per-cell penalty based on:
- [+] throwing / ranged skill (more)
- [+] AGI (lesser)
- [+] wetsuit description not showing dtresist cold!!
- [+] hunter job
- [+] wetsuit (covers multiple body parts), prot from cold
- [+] announce bleeding damage from injuries
- [+] only mark _weapons_ as 'tried' when weilding them
- [+] change random items:
- [+] fix wantrr bug
- [+] test...
- [+] new function: enum RARITY pickrarity()
- [+] check for all wantrr = xxx and use pickrarity instead.
- [+] give classes a RR_RARITY
- [+] common
- [+] weapon / armour / money / missile
- [+] furniture
- [+] misc
- [+] rock
- [+] uncommon
- [+] potion / scroll / food
- [+] rare
- [+] trap
- [+] tech/tool
- [+] dfeature (pentagram, vending machine, etc)
- [+] vrare
- [+] wand
- [+] ring
- [+] book
* [+] rewrite wrappers
* [+] marge getrandomobofclass and getrandomob
- [+] bug: telling allies to attack something they can't see. need a
msg for this.
- [+] Norman->Attack->A young hawk [flying, facing NE]
- [+] Cancelled.
- [+] bug: allies not regaining hp when asleep! fixed.
- [+] you can now always 'see' your allies if you have LOH
- [+] ie. scannedcell
- [+] ie. cansee
- [+] player luck should cause better random item creation, and easier
monsters
- [+] pickrr() needs arg to say what it is for (vault , ob, lf)
- [+] meals have special effects. eg:
- [+] easy:
- [+] mushroom + water = mushroom soup = restore a little
stamina
- [+] tomato + water = tomato soup = restore a little stamina
- [+] apple + stone = fruit juice (don't kill the stone)
- [+] cheese + bread = cheese sandwich = restore all food and
stamina
- [+] rum + chocolate = rum ball = cure pain, restore some hp
- [+] med:
- [+] corpse + water + salt = jerky
- [+] mushroom + water + beef = beef strogonoff = filling,
temporary Fitness boost
- [+] garlic + bread + clover = garlic bread = produce stench
like a trogolodyte
- [+] bread + meat + tomato = hot dog = temporary strength
- [+] water + sugar + 2 berries = potion of red cordial = speed
boost
- [+] hard
- [+] peanut + stone + salt + bread = peanut butter sandwich =
super filling, restore all stamina, temp fitness boost
- [+] rum + chocolate + sugar + berry = fruit cake = restores
all stamina and hp and mp
- [+] implement recipe_t
- [+] int ningerdients
- [+] enum OBTYPE ingredient[MAXINGREDS]
- [+] int count[MAXINGREDS]
- [+] int cosumeingredient[MAXINGREDS] (boolean)
- [+] makedesc_ob should show the recipe for it, if cooking skill is
high enough
- [+] cooking skill determines how many ingredients you can use
- [+] ie. beginner = you can make recipes which need 2 ingredients
- [+] redo "cook" ability.
- [+] can combine ingredients using recipes to make meals
- [+] ingredients must be known!
- [+] chef job
- [+] attr
- [+] gtaverage agility
- [+] low fitnesss
- [+] objects:
- [+] meat cleaver (slashing, low acc, high crit)
- [+] apron (rubber, low protection)
- [+] chef hat (cloth, low protection)
- [+] butane torch (flambe on adjacent lifeform)
- [+] abilities
- [+] rage at lv3
* [+] skills
- [+] chef job
- [+] attr
- [+] gtaverage agility
- [+] low fitnesss
- [+] objects:
- [+] meat cleaver (slashing, low acc, high crit)
- [+] apron (rubber, low protection)
- [+] chef hat (cloth, low protection)
- [+] butane torch (flambe on adjacent lifeform)
- [+] abilities
- [+] rage at lv3
* [+] skills
2011-11-15 05:21:40 +11:00
|
|
|
enum SPELLSCHOOL getskillschool(enum SKILL skid);
|
2011-04-14 09:44:29 +10:00
|
|
|
char *getspellcosttext(lifeform_t *lf, enum OBTYPE spellid, int power, char *buf);
|
2011-02-16 05:21:33 +11:00
|
|
|
int getspellduration(int min,int max,int blessed);
|
2011-03-04 12:22:36 +11:00
|
|
|
int getspelllevel(enum OBTYPE spellid);
|
2011-03-16 15:45:46 +11:00
|
|
|
int getspellmaxpower(enum OBTYPE spellid);
|
2011-03-18 12:25:18 +11:00
|
|
|
char *getspellname(enum OBTYPE spellid, lifeform_t *lf, char *buf);
|
2011-03-16 15:45:46 +11:00
|
|
|
int getspellpower(lifeform_t *lf, enum OBTYPE spellid);
|
2011-03-04 12:22:36 +11:00
|
|
|
enum SPELLSCHOOL getspellschool(enum OBTYPE spellid);
|
* [+] 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 SPELLSCHOOL getspellschoolknown(lifeform_t *lf, enum OBTYPE spellid);
|
2011-08-31 06:10:43 +10:00
|
|
|
enum SKILLLEVEL getspellskill(lifeform_t *lf, enum OBTYPE spellid);
|
2011-09-01 03:33:35 +10:00
|
|
|
int getspellrange(lifeform_t *lf, enum OBTYPE spellid, int power);
|
* [+] 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
|
|
|
char *getvarpowerspelldesc(enum OBTYPE spellid, int power, char *buf);
|
- [+] shops on a level should make loud sounds every few turns. (onein3)
- [+] inifniite loop in ?k
- [+] add to balaclava: equipconfer -> f_anonymous
- [+] can't get banned from shops with this!
- [+] when randomly increasing skills, don't select maxed ones.
- [+] remove warning for movement while bleeding
- [+] injuries heal too fast.
- [+] bug: The sound of sounds of fighting awakens you!
- [+] shouldnt be able to rest while airborne!
- [+] make drunkenness give more damage resistance!
- [+] "unseen" etc not working on tombstone
- [+] bug: merloch getting infinite attacks!!
- [+] add "a xxx moves out of view"
- [+] why are wizards starting with 2 cold spells? fixed. was getting
an extra one for gaining a "new" spell skill.
- [+] slowwalking shoudl reduce move volume, not eliminate it.
- [+] i noticed a secret iron door forom 6 cells away!
- [+] make SC_SEARCH not autopassable on natural 20.
- [+] armour can have a SIZE
- [+] remove some occurences of "f_noarmouron" for sz_large,
sz_small creatures
- [+] in "canwear", implement size check. if lf's body size isn't
sz_human then armour must have "f_armoursize -> sz_xxx"
- [+] exception for ears / eyes
- [+] f_multisize
- [+] f_armoursize sz_xxx
- [+] can only wear armour whih is your size
- [+] in io.c, show armour size
- [+] assign f_multisize to objects
- [+] when adding objects
- [+] cope with asking for "large armour" etc
- [+] adding to a lf's pack? make sure armour is the correct fit
- [+] somewhere else? 25% chance of different size. if so,
50/50 as to which way.
- [+] in getobname, show "huge armour" etc
- [+] medium ("halfling size pair of gauntlets"), human
("gauntlets"), or large ("huge gauntlets")
- [+] high sewing/metalwork skills will let you modify armour for
custom fit.
- [+] half the hit points of the object
- [+] implement a multi-level menu system for shops
- [+] text on shop exit ("thank you for your business!")
- [+] shops:
- [+] only let you donate if you can takeoff / unweild it first.
- [+] replace "vending machine" with shop
- [+] make shops/buildings their own category
- [+] this will let us say 'random shop'
- [+] enable stealing from shops
- [+] armour
- [+] book
- [+] weapon
- [+] general
- [+] potion
- [+] hardware
- [+] food
- [+] jeweller
- [+] always show full name for shop items
- [+] temple of xxx -
- [+] actions
- [+] donate
- [+] detect curse
- [+] bless(costs more if equipped)
- [+] absolve sins
- [+] special depending on who the temple is to?
- [+] temple of'xxx' - assign in addobject()
- [+] extend CHA/SPEECH mods to all shops
- [+] disable stacking for shop objects
- [+] hotel/inn
- [+] actions
- [+] pay to rest (for 100 turns)
- [+] if you do this, call startresting() before exitting
shop
- [+] and set some kind of flag so monsters will never
approach
- [+] maybe: f_resting_in_hotel
- [+] and so that they will never wake up you up through
sound
- [+] remove these when you stop resting.
- [+] force you to stop resting once your time expires
- [+] buy food/drink
- [+] weapon shop:
- [+] donate weapons
- [+] armour shop:
- [+] buy armour
- [+] donate armour (so that monsters don't pick it up!)
* [+] firearm reload messages
- [+] don't take f_throwmissile into account when using telekinesis
- [+] ranged weapons: auto reload after firing.
- [+] done.
2011-11-16 11:57:21 +11:00
|
|
|
int getworkablematerials(lifeform_t *lf, enum SKILL skid , enum MATERIAL *repairablemats, int *cutoffpct, int *nmats);
|
|
|
|
object_t *getworkhelpob(obpile_t *op, enum MATERIAL mat);
|
2011-02-01 06:16:13 +11:00
|
|
|
void pullobto(object_t *o, lifeform_t *lf);
|
2011-05-20 06:30:58 +10:00
|
|
|
int schoolappearsinbooks(enum SPELLSCHOOL ss);
|
2011-06-09 18:58:35 +10:00
|
|
|
void spellcloud(cell_t *srcloc, int radius, char ch, enum COLOUR col, enum OBTYPE sid, int power, int frompot);
|
2011-09-15 08:42:54 +10:00
|
|
|
int spellisfromschool(int spellid, enum SPELLSCHOOL school);
|
|
|
|
int spellresisted(lifeform_t *target, lifeform_t *caster, int spellid, int power, int *seenbyplayer, int announce);
|
2011-03-22 18:06:28 +11:00
|
|
|
void stopspell(lifeform_t *caster, enum OBTYPE spellid);
|
|
|
|
void stopallspells(lifeform_t *lf);
|
2011-06-20 13:16:30 +10:00
|
|
|
void stopallspellsexcept(lifeform_t *lf, ...);
|
- [+] ob1() macros
- [+] healing potions should heal even "permenant" injuries
- [+] potions/spells
- [+] summon decoy (chicken horde) spell - "friends!"
- [+] potion of spider climb (arachnid adhesion)
- [+] gloves of the spider
- [+] F_startobwepskill sk_shortblades etc
- [+] change mosnter starting weapons to be based on wepsk, not
specific named weapons
- [+] make wrapprint cope properly with 0 length strings
- [+] fix io.c showlfstats layout
- [+] fountains of xp should always dry up after one use!
- [+] plants shouldn't leave footprints!
- [+] fix overcomplicated code in updateknowncells
- [+] you always "see" allies following you down/up stairs, even if
they are behind you.
- [+] remove dtresist slash from skeletons - their bone skin reduces
this already.
- [+] leave dtresist pierce because it's hard to hit them.
- [+] confirm gold amount when donating to shops
- [+] increase piety by half of any gold donated to temples
- [+] move hp, mp, sp to same line as target, and make them into bars
- [+] HP:[ 11 / 11 ]
- [+] makebar(window,min,max, loss,barcol, losscol)
- [+] print the prefix: "HP:["
- [+] construct the bar string to fit into 10 chars: " 11 /
11 "
- [+] print it one char at a time, setting bg as follows:
- [+] background:
- [+] 0 - min is barcol
- [+] min+1 - min+loss is losscol
- [+] rest is black
- [+] print the suffix: "] "
- [+] remember last dam amount for hp.
- [+] show mp and stamina like this too.
- [+] update viewpoint sooner when moving vertically
- [+] if you can't comprehend the contents of a spellbook, don't ID it!
- [+] hpbar: pass textcol and texcolwithbg
- [+] show f_stability in @e
- [+] don't identify tech inside shops if it's beyond your skill level
- [+] bug: "a cursed +-1 ring of dexterity"
- [+] enraged or deaf lfs shouldn't respond to chats
- [+] drawbar: show mp/sp text in orange if it's at 0.
- [+] allow vegetarians to eat frozen corpses.
- [+] anything flying + stunned loses flying.
- [+] chance for monsters to throw missiles is reduced when acc < C
- [+] use same code as firearms
- [+] undead shouldn't lose consciousness - they should jsut die.
2011-12-06 04:03:47 +11:00
|
|
|
int summonlfs(lifeform_t *caster, cell_t *where, enum RACE wantrace, enum RACECLASS wantrc, enum LFSIZE wantsize, enum ALIGNMENT wantalign, int howmany, int lifetime, int friendly);
|
2011-03-22 18:06:28 +11:00
|
|
|
lifeform_t *validateabillf(lifeform_t *user, enum OBTYPE aid, lifeform_t **target);
|
2011-06-09 18:58:35 +10:00
|
|
|
cell_t *validatespellcell(lifeform_t *caster, cell_t **targcell, int targtype, enum OBTYPE spellid, int power, int frompot);
|
Monster AI improvements:
- [+] replace f_target with f_targetlf
- [+] wantrange. for melee fighters (default), it's 0. for
spells/archers, it's higiher.
- [+] if we are further away than bestrange, move towards.
- [+] if we are closer than bestrange, move away
- [+] AND: move to wantrange before doing spells etc
- [+] if we have a ranged attack and wantrange is default, increase
it.
- [+] in movetowards/away, cells in the wrong dir should NEVER be
acceptable!
* [+] mflag_push for monsters
http://roguelikedeveloper.blogspot.com/2007/10/unangband-monst
er-ai-part-three.html
- [+] randomly use ranged attacks when adjacent
* [+] show trail in askcoords
- [+] when throwing, pass range to askcoords
- [+] max monsters per room is depth + 1
* [+] why do humans take ages to appear?
- [+] fireball spell is slow
- [+] why can i throw objects through magic barriers?
- [+] add a bonus for mastery of cartography - magic mapping every 50
turns.
- [+] crash with monsters moving off edge of world map
- [+] make magic barriers be ON stairs, not around them.
- [+] handle DIAGONAL entry to maps
- [+] OR make this impossible.
- [+] druid should get auto nature knoeldge as they levle up (levs 5 10
15).
- [+] CRASH flagpile corrupt
- [+] happening during AI movement.
- [+] make lightning storm only hit enemies
- [+] store last known movement dir in TARGETLF and PETOF.
- [+] limit monsters per room not working?!?!
- [+] make askcoords let you show object piles with .
- [+] make askcoords say "A magical barrier (+xx other objects)"
- [+] combine getlastknownmovedir into getlastknowncell
* [+] BUG: secret doors are showing up as . again!
* [+] implement trails (footprints & scent)
* [+] aimovetowardslf(lf, wantattack)
* [+] make pets use wantdist code?
- [+] what does expert/master tracking give you?
- [+] ex: your tracks don't last as long
- [+] ms: you don't leave tracks.
- [+] change f_reducemovement from multiplier to addition
- [+] comma still showing up scents and footprints incorrectly!!!!!!!!
Initial shallow/deep water:
- [+] restrict movement
- [+] check for drowning in turneffectslf AND movelf
- [+] warn before walking onto dangerous objects.
- [+] change how walkdam works for deepwater.
- [+] don't use walkdam flags.
- [+] don't make splashes of water on top of deepwater.
* [+] deep water will drown you if
- [+] don't leave footprints in either
- [+] create steam on fire damage, but don't CONVERT to it.
- [+] f_waterbreathing
- [+] can't drown in water
- [+] extra damage from cold/elec if in deep/shallow water
Initial swimming implementation
* [+] sacred/cursed ground
- [+] vending machine
- [+] don't transfer f_rarity flag when making objects / lifeforms.
Initial work on adding a goal to the game!
2011-05-25 12:12:00 +10:00
|
|
|
//lifeform_t *validatespelllf(lifeform_t *caster, lifeform_t **lf);
|
2010-12-07 18:34:26 +11:00
|
|
|
#endif
|
|
|
|
|
2011-02-01 06:16:13 +11:00
|
|
|
|