nexus/spell.h

39 lines
2.1 KiB
C
Raw Normal View History

2010-12-07 18:34:26 +11:00
#ifndef __SPELLS_H
#define __SPELLS_H
#include "defs.h"
int abilityeffects(lifeform_t *user, enum OBTYPE abilid, cell_t *targcell, lifeform_t *target, flag_t *cwflag);
- [+] implement getradiuscells() - [+] evaporate spell - turn water into steam - [+] monster generation bug? even on dlev10 i'm stil getting mostly kobolds - [+] ai infinint eloop again - frost hawk trying to open door - [+] another infinite loop - not falling through after spell failure. * [+] reduce attack delay for most weapons. - [+] letplayer see a tiny bit in the dark (1 cell ?) - [+] beginner tracking not working - fixed. - [+] only show "...but do no damage" if you have good knowledge about their race. - [+] make gold lighter * [+] footprints glyph shouldn't override pudles of water! - [+] only show eviscerate etc if you have good knowledge? - [+] don't start monsters on the stairs/magical barriers!!! - [+] stone should be immune to more damage types * [+] addexits adding way too many exits. - [+] blessed identify should ID everything - [+] blessed mending mends all - [+] don't make noise when slowmoving. - [+] eyebat dispersal big: The eyebat's strong scent leading north disappears! - [+] go over footprint+scent+corpse and pickup:"You can't pick up footprints!" * [+] doors can't do on top of each other!!! * [+] low ground - [+] make sure you can't have more than one "water" object in a cell. * [+] make val2 of rarity be "common/uncommon/rare" etc - [+] more monster types should appear in the forest. - [+] when i go down stairs into a dark area, "it is pitch black!" is being cleared. * [+] helm of the poltergeist - [+] flying creatures get penalties in webs etc - [+] blind things shoudln't follow up/donw stairs - [+] You shout a blood-curdling war cry! The sawgrass turns to flee from you! - [+] potions still worth too much. minor healing was 420!! - [+] AI should only go towards covetted object if it's closer or the same distanec as target. - [+] branded objects should be worth LOTS - at the moment they're worth 1!! * [+] maybe just adjust value of rarity? - [+] don't roll spot checks while training! * [+] replace f_nofeel with: - [+] revenge did too much damage (50) * [+] change how AR works - [+] need to add: "really walk into a falling rock trap" ? - [+] put only ONE staircase going up on dlev 0 - [+] why am i stopping sprinting after 1 move? * [+] somehow make sure mosnters can't see footprints in a cell with mist - [+] bones shouldn't be able to catch on fire. - [+] when you levle up, gainskill BEFORE getting new spells - [+] put out flaming objects after pickup * [+] don't say "really target yourself?" when using a potion of sleep!! - [+] enhance a random skill when levelling up? every 2 levels? - [+] weaken koboldsa little - less change of javelin - [+] don't drown instantly - take a few turns, depending on CON * [+] create vault spell for debugging ??? - [+] doors in the middle of rooms. - [+] highlight selected choice in askstr - [+] flooded_room being created without walls!!!!!! - [+] describe spell from levleup not working * [+] GETROOMEDGE RETURNING NO CELLS for circularroom!!!!! - [+] fire wizard not prompted to get firedart at l2.. Vaults * [+] X corridor - - [+] crosshatch - [+] should water be ~ instead ?? and change whatever is currently a tilde to something else... Initial work on goal: - [+] surround all stairs with barriers - [+] start player NEAR stairs (randomadjcell from stairs, allowexpand) + methods of escape - [+] knock scroll - [+] digging (but it stops the dig from going any further)
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-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);
- [+] 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);
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);
enum SKILL getschoolskill(enum SPELLSCHOOL ss);
- [+] young hawk moving very slowly? was healing. - [+] make monsters heal faster when resting - [+] make pet rest when you do - [+] allow 'R' to heal allies - [+] F_RESTUNTILALLIES - [+] mindless/animal mosnters won't throw things - [+] announceflag for attrset not working * [+] feeblemind spell - reduces intelligence to ANIMAL. - [+] ai: if we are carrying too much, drop something (non-weapons/armour first) - [+] teleport spell should teleport any adjacent allies too. * [+] new 'C'hat commands: * [+] change 'resist elements' potion to 'rum' * [+] notify when pet is low on hp - [+] why could a pirate use a biuckler? * [+] genericise usage of canhaveobmod! - [+] armour mod: blooodstained. adds scary. - [+] CRASH when you have two weapons and catch a glowbug in your flask. * [+] potion of restoration onto frozen axe: - [+] slow spell repeated message: The brown snake looks sluggish. The brown snake is now moving slower. - [+] make you only hear one thing each turn ? - [+] always draw impassable objects on top - [+] special ash - [+] exploding powder - explode in radius 1 around player (including player) - [+] concealing powder - create smoke cloud radius 3 around player - [+] redo levelup logic. - [+] trigger LevUp when you have 'newskillready' - [+] announce when you gain level. - [+] can't gain more experience when LevUp! - [+] only update maxhp/mp from new level after you train - [+] diety can't use abilities. fixed. * [+] when i exit from@S output, statbar isn't redrawn * [+] make SKILLS page show which skills you can learn. - [+] In @s, downline isn't showing the title on the second page of SKILLS... - [+] show POWER in @M spells page - [+] ###--- - [+] show cost RANGE in @M for varpower ones - [+] need getspellcosttext(spellid, power, buf) function - [+] 25-62MP - [+] leftover rubbish chars at end of ---- in doheading() - [+] mosnters should follow you up/down stairs * [+] different poison types - [+] implement tremorsense (like darkvision butrun can't be blinded etc) * [+] implement HIDE ability * [+] Thief job - [+] if you walk into a room and every cell is lit, reveal it all. - [+] auto-learn jump ability with high athletics skill * [+] secret doors - [+] items to spot secret doors - [+] gem of seeing - [+] ENHANCESEARCH - [+] F_SEEINVIS - [+] spell: "reveal hidden" - [+] shows secret doors - [+] removes invisibility - [+] wand of detect hidden - [+] ... casts the spell
2011-04-14 09:44:29 +10:00
char *getspellcosttext(lifeform_t *lf, enum OBTYPE spellid, int power, char *buf);
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);
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);
* [+] bug: map structure being corrupted. - [+] reduce hardness values * [+] problem with skills: as you level up , you learn them less often * [+] throw objects to set off traps - [+] combination strike ability at expert wep level - [+] reduce skill bonus to sc_stealth and sc_search - [+] modify descriptions for all spells to explain the effect of spell power - [+] make chill work more like frostbite (but less powerful) - [+] make beginner skills still only cost 1. above there thye csost more - [+] modify cha check based on remaining hp% (ie. less attractive if you're bleeding everywhere!) - [+] am i getting all level up skill messages? don't think i saw "you can now detect magic" as a wizard. - [+] can use "more()" more often now that it checks strlen(msgbuf) first. - [+] make askchar etc call more() first. - [+] falling over should lower your visrange. - [+] missile size should impact how hard it is to catch it - [+] backstabbing doesn't seem to work..... fixed now ? - [+] all non-movement actions should stop sprinting. Cold spells: - [+] l1 - glaciate (turns water to sheets of ice) - [+] l1 - snowball (minor cold damage in a ball, 1 to all) - [+] l2 - e "train" to train skills or go up a levle, instead of 'R'. - [+] better way to learn spells (without spellbooks) - [+] transcribe from scrolls using "study scroll"ability - [+] sc_learnmagic - [+] (int/2) + yourlevel + sorceryskill + BONUS:(spellskill*2) - [+] difficulty is 20 + spelllevel*3 - [+] you lose the scroll even if it fails - [+] same for learning from a spellbook! - [+] but difficulty is 15 + sorceryskill + spelllevel*3 - [+] make pea soup be targetted. ie. make mist on top of your enemy, not you! - [+] implement maximum level in f_canlearn. - [+] wizards - short blades at novice. - [+] limit spell skills for some other classes? ce shield? creates a shield
2011-08-31 06:10:43 +10:00
enum SKILLLEVEL getspellskill(lifeform_t *lf, enum OBTYPE spellid);
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);
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);
- [+] implement getradiuscells() - [+] evaporate spell - turn water into steam - [+] monster generation bug? even on dlev10 i'm stil getting mostly kobolds - [+] ai infinint eloop again - frost hawk trying to open door - [+] another infinite loop - not falling through after spell failure. * [+] reduce attack delay for most weapons. - [+] letplayer see a tiny bit in the dark (1 cell ?) - [+] beginner tracking not working - fixed. - [+] only show "...but do no damage" if you have good knowledge about their race. - [+] make gold lighter * [+] footprints glyph shouldn't override pudles of water! - [+] only show eviscerate etc if you have good knowledge? - [+] don't start monsters on the stairs/magical barriers!!! - [+] stone should be immune to more damage types * [+] addexits adding way too many exits. - [+] blessed identify should ID everything - [+] blessed mending mends all - [+] don't make noise when slowmoving. - [+] eyebat dispersal big: The eyebat's strong scent leading north disappears! - [+] go over footprint+scent+corpse and pickup:"You can't pick up footprints!" * [+] doors can't do on top of each other!!! * [+] low ground - [+] make sure you can't have more than one "water" object in a cell. * [+] make val2 of rarity be "common/uncommon/rare" etc - [+] more monster types should appear in the forest. - [+] when i go down stairs into a dark area, "it is pitch black!" is being cleared. * [+] helm of the poltergeist - [+] flying creatures get penalties in webs etc - [+] blind things shoudln't follow up/donw stairs - [+] You shout a blood-curdling war cry! The sawgrass turns to flee from you! - [+] potions still worth too much. minor healing was 420!! - [+] AI should only go towards covetted object if it's closer or the same distanec as target. - [+] branded objects should be worth LOTS - at the moment they're worth 1!! * [+] maybe just adjust value of rarity? - [+] don't roll spot checks while training! * [+] replace f_nofeel with: - [+] revenge did too much damage (50) * [+] change how AR works - [+] need to add: "really walk into a falling rock trap" ? - [+] put only ONE staircase going up on dlev 0 - [+] why am i stopping sprinting after 1 move? * [+] somehow make sure mosnters can't see footprints in a cell with mist - [+] bones shouldn't be able to catch on fire. - [+] when you levle up, gainskill BEFORE getting new spells - [+] put out flaming objects after pickup * [+] don't say "really target yourself?" when using a potion of sleep!! - [+] enhance a random skill when levelling up? every 2 levels? - [+] weaken koboldsa little - less change of javelin - [+] don't drown instantly - take a few turns, depending on CON * [+] create vault spell for debugging ??? - [+] doors in the middle of rooms. - [+] highlight selected choice in askstr - [+] flooded_room being created without walls!!!!!! - [+] describe spell from levleup not working * [+] GETROOMEDGE RETURNING NO CELLS for circularroom!!!!! - [+] fire wizard not prompted to get firedart at l2.. Vaults * [+] X corridor - - [+] crosshatch - [+] should water be ~ instead ?? and change whatever is currently a tilde to something else... Initial work on goal: - [+] surround all stairs with barriers - [+] start player NEAR stairs (randomadjcell from stairs, allowexpand) + methods of escape - [+] knock scroll - [+] digging (but it stops the dig from going any further)
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);
void stopspell(lifeform_t *caster, enum OBTYPE spellid);
void stopallspells(lifeform_t *lf);
void stopallspellsexcept(lifeform_t *lf, ...);
- [+] intelligent (ie. more than animal) ai shouldn't move if it will cause damage - [+] move_will_hurt() - [+] ie. if in PAIN, or appropriate injury. - [+] if you're deaf, use "the xx says something" rather than "the xx says yy" - [+] STILL reachability errors in dlev 6 (jimbos' lair not linked) - [+] new forest habitat mechanism - clusters of trees - [+] bashing injury if you are slammed into a wall? - [+] jimbo didn't have a weapon! "+2 halberd" not working - [+] if you don't have knowledge about a creature, still show items (but only equipped ones) - [+] listen skill should take longer to train - [+] candle should last longer - [+] carrot grants temp darkvision - [+] shouldn't be able to eat stuff from floor while levitating - [+] CHANGE f_hitdice to use text - [+] fear spell from dretch always failing even on l1 player. why? * [+] summondemon spell - [+] adjust spell damage - 1d6 per level. ice spells: - [+] l4 - ice armour (higher power means more pieces of ice armour) - [+] (power/3)+1 pieces of armour. ie. 1 - 4 - [+] order: body,helmet, gloves, feet - [+] 4AC each. * [+] l5 - shardshot (higher level ray damage, does less damage the further away it goes) - [+] l5 - snap freeze ? turn one lf to ice? - [+] more things which use light attacks (ie. make glasses useful) - [+] replace bp_righthand with bp_rightfinger - [+] bug in blink spell: "Nothing seems to happen." - [+] make metal resist bite/slash/chop, not be immune. - [+] fix shatter spell on glass wall * [+] bug: in jimbos vault and plaeyrstart2, exits are being added in in appropriate places. * [+] make player's starting point be a "prison_cell" vault. - [+] earplugs - stop all sound. - [+] make f_deaf an intrinsic (ie. announcements) - [+] add the object critical hits: - [+] "you hit xxx" "xxx turns to flee" "xxx's leg is bruised" - [+] need losehp to NOT trigger fightback in this case - we will trigger it ourself after crithit. - [+] pass this as a param? - [+] critical eye hits - [+] scraped eyelid (slash, lower accuracy) - [+] black eye (bash, lower vision range and charisma) - [+] destroyed eye (pierce, permenant lower vision range!) - [+] injuries heal heaps faster when asleep - [+] redo f_injured flag to use an "enum INJURY" IJ_xxx - [+] change how it is applied - [+] change how it is announced (io.c) - [+] change how effects work (search for F_INJURY) - [+] pierce - [+] pierced artery: v.high bleed - [+] stabbed heart (instant death, very unlikely) - [+] slash: - [+] cut flexor tendon (cannot weild ANY weapon) - [+] slashed hamstring (fall. skillcehck every time you move, vslow movement) - [+] severed finger - [+] finger drops to the ground - [+] ring drops to the ground - [+] (get nobodypart bp_rightfinger or bp_leftfinger) - [+] bash: - [+] dislocated arm (cannot weild anything heavy in that hand) - [+] broken rib (reduced carrying capacity) - [+] swelled ankle (cannot remove or put on boots)
2011-09-06 08:04:51 +10:00
int summonlfs(lifeform_t *caster, cell_t *where, enum RACECLASS wantrc, enum LFSIZE wantsize, enum ALIGNMENT wantalign, int howmany, int lifetime, int friendly);
lifeform_t *validateabillf(lifeform_t *user, enum OBTYPE aid, lifeform_t **target);
- [+] implement getradiuscells() - [+] evaporate spell - turn water into steam - [+] monster generation bug? even on dlev10 i'm stil getting mostly kobolds - [+] ai infinint eloop again - frost hawk trying to open door - [+] another infinite loop - not falling through after spell failure. * [+] reduce attack delay for most weapons. - [+] letplayer see a tiny bit in the dark (1 cell ?) - [+] beginner tracking not working - fixed. - [+] only show "...but do no damage" if you have good knowledge about their race. - [+] make gold lighter * [+] footprints glyph shouldn't override pudles of water! - [+] only show eviscerate etc if you have good knowledge? - [+] don't start monsters on the stairs/magical barriers!!! - [+] stone should be immune to more damage types * [+] addexits adding way too many exits. - [+] blessed identify should ID everything - [+] blessed mending mends all - [+] don't make noise when slowmoving. - [+] eyebat dispersal big: The eyebat's strong scent leading north disappears! - [+] go over footprint+scent+corpse and pickup:"You can't pick up footprints!" * [+] doors can't do on top of each other!!! * [+] low ground - [+] make sure you can't have more than one "water" object in a cell. * [+] make val2 of rarity be "common/uncommon/rare" etc - [+] more monster types should appear in the forest. - [+] when i go down stairs into a dark area, "it is pitch black!" is being cleared. * [+] helm of the poltergeist - [+] flying creatures get penalties in webs etc - [+] blind things shoudln't follow up/donw stairs - [+] You shout a blood-curdling war cry! The sawgrass turns to flee from you! - [+] potions still worth too much. minor healing was 420!! - [+] AI should only go towards covetted object if it's closer or the same distanec as target. - [+] branded objects should be worth LOTS - at the moment they're worth 1!! * [+] maybe just adjust value of rarity? - [+] don't roll spot checks while training! * [+] replace f_nofeel with: - [+] revenge did too much damage (50) * [+] change how AR works - [+] need to add: "really walk into a falling rock trap" ? - [+] put only ONE staircase going up on dlev 0 - [+] why am i stopping sprinting after 1 move? * [+] somehow make sure mosnters can't see footprints in a cell with mist - [+] bones shouldn't be able to catch on fire. - [+] when you levle up, gainskill BEFORE getting new spells - [+] put out flaming objects after pickup * [+] don't say "really target yourself?" when using a potion of sleep!! - [+] enhance a random skill when levelling up? every 2 levels? - [+] weaken koboldsa little - less change of javelin - [+] don't drown instantly - take a few turns, depending on CON * [+] create vault spell for debugging ??? - [+] doors in the middle of rooms. - [+] highlight selected choice in askstr - [+] flooded_room being created without walls!!!!!! - [+] describe spell from levleup not working * [+] GETROOMEDGE RETURNING NO CELLS for circularroom!!!!! - [+] fire wizard not prompted to get firedart at l2.. Vaults * [+] X corridor - - [+] crosshatch - [+] should water be ~ instead ?? and change whatever is currently a tilde to something else... Initial work on goal: - [+] surround all stairs with barriers - [+] start player NEAR stairs (randomadjcell from stairs, allowexpand) + methods of escape - [+] knock scroll - [+] digging (but it stops the dig from going any further)
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