nexus/ai.c

3864 lines
105 KiB
C
Raw Permalink Normal View History

- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
#include <assert.h>
#include <signal.h>
2010-12-02 12:17:54 +11:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
2010-12-02 12:17:54 +11:00
#include "ai.h"
#include "astar.h"
2011-02-01 06:16:13 +11:00
#include "attack.h"
2010-12-02 12:17:54 +11:00
#include "defs.h"
#include "flag.h"
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
#include "god.h"
2011-02-01 06:16:13 +11:00
#include "io.h"
2010-12-02 12:17:54 +11:00
#include "lf.h"
#include "map.h"
2011-02-01 06:16:13 +11:00
#include "move.h"
#include "nexus.h"
2010-12-02 12:17:54 +11:00
#include "objects.h"
2011-02-01 06:16:13 +11:00
#include "spell.h"
#include "text.h"
2010-12-02 12:17:54 +11:00
extern lifeform_t *player;
2011-02-01 06:16:13 +11:00
extern enum ERROR reason;
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
extern int playerhasmoved;
2010-12-02 12:17:54 +11:00
int wantdb = B_TRUE;
* [+] 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 addignorecell(lifeform_t *lf, cell_t *c) {
//int howmany = 0;
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (!c || !lf) return;
// TEST: just have one ignorecell at once.
killflagsofid(lf->flags, F_IGNORECELL);
addtempflag(lf->flags, F_IGNORECELL, c->x, c->y, NA, NULL, 10);
//if (c && !lfhasflagval(lf, F_IGNORECELL, c->x, c->y, NA, NULL)) {
// addtempflag(lf->flags, F_IGNORECELL, c->x, c->y, NA, NULL, 10);
//}
* [+] 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
}
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
// returns true on failure
int aiattack(lifeform_t *lf, lifeform_t *victim, int timelimit) {
int db = B_FALSE;
//int innocentattack = 0;
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
flag_t *f;
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
- [+] add autopop to playerstart vaults - [+] rename magic skills: Magic:Cold - [+] bug: infinite loop in poison arrow trap - make sure the arrow always dies. - [+] bug: c4 didn't kill iron door - [+] implement stamina (float). max is Fit/2 * [+] in startlfturn: - [+] sprinting drains this. - [+] ...then stop using f_sprinting for exhausted - [+] ...and remove f_tired - [+] if exhausted, stop sprinting. (in modstamina) - [+] change crushed windpipe - [+] f_stamcost for abilities. - [+] modify cancast. - [+] tumbling - [+] jumping - [+] rage - [+] swimming - [+] drains stamina like sprinting - [+] if stamina drops to 0, you start drowning. - [+] new spell: lethargy (sets stamina to 0) - [+] if a sleep spell fails, use lethergy instead. - [+] no attacking while stam = 0 ??? - [+] need to update statbar right away when casting ongoing spells. - [+] bug: reading an awareness scroll counting as an active spell! - [+] genericise magic resistance check into a function - [+] "disorient" - l1 mental spell which randomly turns lf, someitmes makes them dizzy - [+] change stun - just means you can't attack, cast spell, use abils * [+] AI shouldn't look for targets if stunned or no stamina * [+] why do mosnters end up facing -1 (d_none) ?? - [+] turn undead problem. - [+] The skeleton turns to flee from you! The skeleton bites you. - [+] crit which spins you around (bash to body) - [+] say "you attack xxx from behind" when you ar ebehidn them and they can't see you - [+] or "you attack the helpless xxx" when thye just can't see you - [+] genericise sacrifice text - [+] fix up weight of heads (8% of body mass) - [+] make attribss do more: - [+] iq: determine how soon you learn new skills (ie. modify SKILLXPPERPOINT) - [+] fit: determines stamina points. - [+] wisdom >= AT_HIGH - [+] warn before wearing/eating/drinking/weilding unknown bad/cursed objects (low chance) - [+] use isbadobject() - [+] chance: - [+] high = 10% - [+] vhigh = 30% - [+] exhigh = 50% - [-] idea: sacrifice to gods to make them happier - [+] mercy: weapons - [+] death: any corpses - [+] thieves: gold
2011-09-15 08:42:54 +10:00
if (!canattack(lf)) {
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
if (db) dblog(".oO { canattack() is false }");
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
return B_TRUE;
- [+] add autopop to playerstart vaults - [+] rename magic skills: Magic:Cold - [+] bug: infinite loop in poison arrow trap - make sure the arrow always dies. - [+] bug: c4 didn't kill iron door - [+] implement stamina (float). max is Fit/2 * [+] in startlfturn: - [+] sprinting drains this. - [+] ...then stop using f_sprinting for exhausted - [+] ...and remove f_tired - [+] if exhausted, stop sprinting. (in modstamina) - [+] change crushed windpipe - [+] f_stamcost for abilities. - [+] modify cancast. - [+] tumbling - [+] jumping - [+] rage - [+] swimming - [+] drains stamina like sprinting - [+] if stamina drops to 0, you start drowning. - [+] new spell: lethargy (sets stamina to 0) - [+] if a sleep spell fails, use lethergy instead. - [+] no attacking while stam = 0 ??? - [+] need to update statbar right away when casting ongoing spells. - [+] bug: reading an awareness scroll counting as an active spell! - [+] genericise magic resistance check into a function - [+] "disorient" - l1 mental spell which randomly turns lf, someitmes makes them dizzy - [+] change stun - just means you can't attack, cast spell, use abils * [+] AI shouldn't look for targets if stunned or no stamina * [+] why do mosnters end up facing -1 (d_none) ?? - [+] turn undead problem. - [+] The skeleton turns to flee from you! The skeleton bites you. - [+] crit which spins you around (bash to body) - [+] say "you attack xxx from behind" when you ar ebehidn them and they can't see you - [+] or "you attack the helpless xxx" when thye just can't see you - [+] genericise sacrifice text - [+] fix up weight of heads (8% of body mass) - [+] make attribss do more: - [+] iq: determine how soon you learn new skills (ie. modify SKILLXPPERPOINT) - [+] fit: determines stamina points. - [+] wisdom >= AT_HIGH - [+] warn before wearing/eating/drinking/weilding unknown bad/cursed objects (low chance) - [+] use isbadobject() - [+] chance: - [+] high = 10% - [+] vhigh = 30% - [+] exhigh = 50% - [-] idea: sacrifice to gods to make them happier - [+] mercy: weapons - [+] death: any corpses - [+] thieves: gold
2011-09-15 08:42:54 +10:00
}
// mindless?
- [+] BUG: arrows shouldn't be able to trigger arrow traps!!! - [+] king piranhas shouldn't leap out of the water! - [+] don't catch thrown missiles if it will burden us - [+] in @@, show "accuracy" as a seperate line, not with your weapon. - [+] higher chance of learning psionics on level up. - [+] fix up monster hp - too easy to kill most things in one hit with dam = 4-12, 2 attacks (ie. l6 monk) - [+] dump out all mosnters sorted by hit dice (show avg hp) - [+] fix them up - [+] vault->entertext - ie "you enter a dining room" - [+] make random monster generation go by hitdice AND rarity rr_. IGNORE rarity value. - [+] start with hd = level. sometimes incrase - [+] remove all rarity values from monsters - [+] disorient might need to be higher level than stun - [+] make psionic spell mp cost be level, rather than level^2? - [+] ai bug: - [+] .oO { looking for a target . } .oO { found an enemy target - lfid 256 (human) ! } .oO { default - moving randomly } - [+] reduce cost for higher levle spells agian. - [+] prevent player from eating an ice sheid! - [+] bug when eating from the floor with multiple food items there - [+] assassin's blink spell - teleport behind and facing someone. medium level translocation. - [+] make "chunk of roast meat" be "chunk of roast goblin meat" - [+] and base nutrition on corpse type - [+] highlevel sixth sense should let you turn to face it * [+] add prompt text to msg hist: - [+] sixth sense should only pick up hostile monsters - [+] need a good reason that wizards can't wear armour. - [+] if isplayer(), failure chance depends on any arm/shield penalties - [+] show f_impassable in describeob() - [+] no walking backwards/sideways if you're stuck in a web/vine. can only turn. - [+] objects for protection: - [+] eyeglasses (+vision) - [+] safety goggles - [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)', depth 1), but it has no free stairs. - [+] when we restart map regeneration, must first REMOVE referenecs to this map!!! - [+] implemented. - [+] fixed bug with sleep interruption - [+] You attack the helpless the dwarf monk! You flatten the dwarf monk! The dwarf monk loses consciousness. damage's robe protects it. - [+] add stamina cost to other abilities - [+] add descriptions to lore skills - [+] make athletics skill give you more stamina? * [+] monstesr stopping fleeing when they can't see player
2011-09-28 04:56:58 +10:00
/*
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
if (getattrbracket(getattr(lf, A_IQ), A_IQ, NULL) == IQ_MINDLESS) {
- [+] BUG: arrows shouldn't be able to trigger arrow traps!!! - [+] king piranhas shouldn't leap out of the water! - [+] don't catch thrown missiles if it will burden us - [+] in @@, show "accuracy" as a seperate line, not with your weapon. - [+] higher chance of learning psionics on level up. - [+] fix up monster hp - too easy to kill most things in one hit with dam = 4-12, 2 attacks (ie. l6 monk) - [+] dump out all mosnters sorted by hit dice (show avg hp) - [+] fix them up - [+] vault->entertext - ie "you enter a dining room" - [+] make random monster generation go by hitdice AND rarity rr_. IGNORE rarity value. - [+] start with hd = level. sometimes incrase - [+] remove all rarity values from monsters - [+] disorient might need to be higher level than stun - [+] make psionic spell mp cost be level, rather than level^2? - [+] ai bug: - [+] .oO { looking for a target . } .oO { found an enemy target - lfid 256 (human) ! } .oO { default - moving randomly } - [+] reduce cost for higher levle spells agian. - [+] prevent player from eating an ice sheid! - [+] bug when eating from the floor with multiple food items there - [+] assassin's blink spell - teleport behind and facing someone. medium level translocation. - [+] make "chunk of roast meat" be "chunk of roast goblin meat" - [+] and base nutrition on corpse type - [+] highlevel sixth sense should let you turn to face it * [+] add prompt text to msg hist: - [+] sixth sense should only pick up hostile monsters - [+] need a good reason that wizards can't wear armour. - [+] if isplayer(), failure chance depends on any arm/shield penalties - [+] show f_impassable in describeob() - [+] no walking backwards/sideways if you're stuck in a web/vine. can only turn. - [+] objects for protection: - [+] eyeglasses (+vision) - [+] safety goggles - [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)', depth 1), but it has no free stairs. - [+] when we restart map regeneration, must first REMOVE referenecs to this map!!! - [+] implemented. - [+] fixed bug with sleep interruption - [+] You attack the helpless the dwarf monk! You flatten the dwarf monk! The dwarf monk loses consciousness. damage's robe protects it. - [+] add stamina cost to other abilities - [+] add descriptions to lore skills - [+] make athletics skill give you more stamina? * [+] monstesr stopping fleeing when they can't see player
2011-09-28 04:56:58 +10:00
if (!isundead(lf) && (lf->race->raceclass->id != RC_PLANT)) {
dblog(".oO { i am mindless and not undead }");
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
return B_TRUE;
}
}
- [+] BUG: arrows shouldn't be able to trigger arrow traps!!! - [+] king piranhas shouldn't leap out of the water! - [+] don't catch thrown missiles if it will burden us - [+] in @@, show "accuracy" as a seperate line, not with your weapon. - [+] higher chance of learning psionics on level up. - [+] fix up monster hp - too easy to kill most things in one hit with dam = 4-12, 2 attacks (ie. l6 monk) - [+] dump out all mosnters sorted by hit dice (show avg hp) - [+] fix them up - [+] vault->entertext - ie "you enter a dining room" - [+] make random monster generation go by hitdice AND rarity rr_. IGNORE rarity value. - [+] start with hd = level. sometimes incrase - [+] remove all rarity values from monsters - [+] disorient might need to be higher level than stun - [+] make psionic spell mp cost be level, rather than level^2? - [+] ai bug: - [+] .oO { looking for a target . } .oO { found an enemy target - lfid 256 (human) ! } .oO { default - moving randomly } - [+] reduce cost for higher levle spells agian. - [+] prevent player from eating an ice sheid! - [+] bug when eating from the floor with multiple food items there - [+] assassin's blink spell - teleport behind and facing someone. medium level translocation. - [+] make "chunk of roast meat" be "chunk of roast goblin meat" - [+] and base nutrition on corpse type - [+] highlevel sixth sense should let you turn to face it * [+] add prompt text to msg hist: - [+] sixth sense should only pick up hostile monsters - [+] need a good reason that wizards can't wear armour. - [+] if isplayer(), failure chance depends on any arm/shield penalties - [+] show f_impassable in describeob() - [+] no walking backwards/sideways if you're stuck in a web/vine. can only turn. - [+] objects for protection: - [+] eyeglasses (+vision) - [+] safety goggles - [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)', depth 1), but it has no free stairs. - [+] when we restart map regeneration, must first REMOVE referenecs to this map!!! - [+] implemented. - [+] fixed bug with sleep interruption - [+] You attack the helpless the dwarf monk! You flatten the dwarf monk! The dwarf monk loses consciousness. damage's robe protects it. - [+] add stamina cost to other abilities - [+] add descriptions to lore skills - [+] make athletics skill give you more stamina? * [+] monstesr stopping fleeing when they can't see player
2011-09-28 04:56:58 +10:00
*/
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
// already targetting this lf?
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
f = lfhasflagval(lf, F_TARGETLF, victim->id, NA, NA, NULL);
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (f) {
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
if (db) dblog(".oO { i am already targetting this lf }");
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if ((f->lifetime > 0) && (f->lifetime < timelimit)) {
f->lifetime = timelimit;
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
if (db) dblog(".oO { (flag lifetime updated) }");
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
}
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
return B_TRUE;
}
// feigning death?
if (lfhasflag(victim, F_FEIGNINGDEATH)) {
- [+] corpse colours aren't working anymore. - [+] bug: knocking a sleeping lf unconscious fails, they kepe sleeping. need to change the f_sleeping flag! - [+] another secret door bug: can identify them in askcoords!! fixed. - [+] wrong order for text: - [+] You attack the helpless kobold! You kill the kobold! The kobold shouts "This isn't over!". - [+] SOLUTION: say "the dying kobold shouts ...." - [+] only use death text somtimes. random chance. - [+] force player sarting dir to be the one with the most LOS cells. - [+] avian/ashkari monks - [+] at both initial creation and levleup: - [+] need to update hasattack claws, not hasattack fists. - [+] genericise this to just use whatever f_hasattack flag you have? - [+] bug with flying creatures falling: - [+] You miss the giant bat. The giant bat bites you. The giant bat stops flying. The giant bat falls to the ground. The giant bat's ribs are cracked! - [+] was causing ATTACKER to fall, not defender. - [+] fix bug with objects falling through pits. - [+] new sewer map type: - [+] BUG: getting empty map!!! - [+] roomon etc is good. - [+] but map empty - [+] probably an issue with corridor vs section size... - [+] make drains be locked again - [+] grating causes stench - [+] monsters: - [+] aquatic animals (piranha, merloch, etc) - [+] slimes - [+] troglodytes (and anything which causes stench) - [+] rats - [+] water snakes - [+] drains should make sounds ("you hear a drip") - [+] snakes shouldn't get nauseated. - [+] F_NOSMELL. - [+] feigh death shouldn't work on things which are attached to you (leech/mosquitoid) - [+] stores should never sell gold coins!!! - [+] givestartobs() - give a potion of water instead if it's going to a shop - [+] no resting when raged - [+] make MAXIMUM map height higher. bumped from 20 to 30. - [+] grating cell/object? - [+] liquids fall through it. - [+] to unlock it: - [+] loosen with spanner - [+] knock spell - [+] pick the lock - [+] lock hacker
2011-11-30 13:06:16 +11:00
if (!lfhasflagval(lf, F_ATTACHEDTO, victim->id, NA, NA, NULL)) {
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
int checkpassed;
flag_t *alreadyfooled = NULL;
alreadyfooled = lfhasflagval(lf, F_FEIGNFOOLEDBY, victim->id, NA, NA, NULL);
if (alreadyfooled) {
checkpassed = B_FALSE;
} else {
int penalty;
penalty = (getcelldist(lf->cell, victim->cell)-1);
if (penalty < 0) penalty = 0;
penalty *= 15;
checkpassed = skillcheckvs(lf, SC_IQ, -penalty, victim, SC_WILL, 20+(gettr(victim)*2));
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
}
if (!checkpassed) {
if (db) dblog(".oO { attempted target fooled me with feign death. ignoring. }");
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
if (!alreadyfooled) {
addtempflag(lf->flags, F_FEIGNFOOLEDBY, victim->id, NA, NA, NULL, rnd(5,10));
}
- [+] corpse colours aren't working anymore. - [+] bug: knocking a sleeping lf unconscious fails, they kepe sleeping. need to change the f_sleeping flag! - [+] another secret door bug: can identify them in askcoords!! fixed. - [+] wrong order for text: - [+] You attack the helpless kobold! You kill the kobold! The kobold shouts "This isn't over!". - [+] SOLUTION: say "the dying kobold shouts ...." - [+] only use death text somtimes. random chance. - [+] force player sarting dir to be the one with the most LOS cells. - [+] avian/ashkari monks - [+] at both initial creation and levleup: - [+] need to update hasattack claws, not hasattack fists. - [+] genericise this to just use whatever f_hasattack flag you have? - [+] bug with flying creatures falling: - [+] You miss the giant bat. The giant bat bites you. The giant bat stops flying. The giant bat falls to the ground. The giant bat's ribs are cracked! - [+] was causing ATTACKER to fall, not defender. - [+] fix bug with objects falling through pits. - [+] new sewer map type: - [+] BUG: getting empty map!!! - [+] roomon etc is good. - [+] but map empty - [+] probably an issue with corridor vs section size... - [+] make drains be locked again - [+] grating causes stench - [+] monsters: - [+] aquatic animals (piranha, merloch, etc) - [+] slimes - [+] troglodytes (and anything which causes stench) - [+] rats - [+] water snakes - [+] drains should make sounds ("you hear a drip") - [+] snakes shouldn't get nauseated. - [+] F_NOSMELL. - [+] feigh death shouldn't work on things which are attached to you (leech/mosquitoid) - [+] stores should never sell gold coins!!! - [+] givestartobs() - give a potion of water instead if it's going to a shop - [+] no resting when raged - [+] make MAXIMUM map height higher. bumped from 20 to 30. - [+] grating cell/object? - [+] liquids fall through it. - [+] to unlock it: - [+] loosen with spanner - [+] knock spell - [+] pick the lock - [+] lock hacker
2011-11-30 13:06:16 +11:00
return B_TRUE;
}
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
}
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
}
if (db) {
char lfname[BUFLEN],vicname[BUFLEN];
getlfname(lf, lfname);
getlfname(victim, vicname);
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
dblog(".oO { %s setting new target: %s }", lfname, vicname);
}
killflagsofid(lf->flags, F_AIPATH);
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
killflagsofid(lf->flags, F_TARGETLF);
killflagsofid(lf->flags, F_TARGETCELL);
if ((timelimit == PERMENANT) || (timelimit == UNLIMITED)) {
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
addflag(lf->flags, F_TARGETLF, victim->id, victim->cell->x, victim->cell->y, NULL);
} else {
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
addtempflag(lf->flags, F_TARGETLF, victim->id , victim->cell->x , victim->cell->y, NULL,timelimit);
}
// tell the player
- [+] bug: when ally can't see you it goes to sleep - [+] after waking it just goes to sleep again!!! - [+] bug:npc warriors aren't starting with a weapon - [+] shouldn't be able to shieldblock if youre asleep!!! - [+] allies sohuld announce what they are doing - [+] "I'm attacking a goblin" - [+] I just killed a goblin - [+] I need some rest soon... - [+] make sure only HUMANS do this...hu - [+] F_EXTRADESC v0 should be 'order'. - [+] makedesc_skill should honour this - [+] makedesc_spell - [+] same with other makedesc() functions - [+] auto-inc this when adding them. - [+] allies not properly following me downthe stairs - [+] armour that can cover multiple body parts - [+] f_goesonmulti - [+] multiple f_equipped flags. - [+] handle multiple f_equipped in takeoff() - [+] all required bodyparts must both be clear - [+] if not, prompt to remove both things. - [+] check all code for f_equipped copes with multiple occurences... - [+] display as: f - a wetsuit (worn over body and on legs) - [+] update io.c. "it is worn over xxx and yyy)" - [+] heat metal spell - [+] weilded metal burns hands and you drop it (unless immunte to fire/burn) - [+] metal armour damages you (1-4 each) - [+] metal lifeforms take huge damage - [+] all lifeforms should have at least novice level knowledge of their own raceclass - [+] new raceclass - dragons - [+] define it - [+] define skill for it - [+] make jobs know the skill - [+] red dragon - [+] high armourrating - [+] swoop - [+] fly - [+] breath weapon - [+] spells - [+] heat metal - [+] fireball - [+] burning wave - [+] want gold - [+] immune to fire - [+] red dragon hatchling - [+] generally lwoer power, only has heat metal and spark ? - [+] spellcasttext for individual spells - [+] ancient red dragon - [+] higher hp and armourrating - [+] more damage - [+] more spells
2011-11-07 13:12:04 +11:00
if (areallies(player, lf) && cantalk(lf)) {
char text[BUFLEN];
if (cansee(lf, victim)) {
- [+] change real_getlfname(): - [+] take lifeform_t * for usevis instead of boolean - [+] add new option "useorigrace" for shapechangers - [+] whips - [+] F_WHIP - [+] new skill: sk_whips - [+] basic trais: - [+] high accuracy - [+] lowish dam - [+] pierce/slash/bash damage - [+] some will let you cast 'snatch' and suck - [+] no crit chance - [+] examples: - [+] bull whip (lowest damage) - [+] flail (ie. chain whip ,change type from club to whip) - [+] heavy flail - [+] metal-tipped whip (flail with higher acc) - [+] barbed whip (causes piercing damage as well) - [+] io.c @@ should take extradam into account - [+] describbeob() should show F_EXTRADAM - [+] change morale values - this shoudl default to your TR, otherwise f_morale replaces it. - [+] CRASH in doknowledgelist() - [+] hecta bug: fixed! - [+] You bisect the kobold! The dying kobold shouts "Nooooo!". Hecta's voice grates against your mind: "You allowed my sacrifice to escape!" - [+] is this because i'm calling "flee" after the lf takes fatal damage but before die() is called? - [+] NO, because flee() checks isdead(lf) - [+] it's happening when i kill a monster, and another one of the same type sees me! - [+] change: only trigger this is the player has previously attacked the monster - [+] replace fire titan with balrog - [+] You bisect the giant gnat! The dying giant gnat shouts "Nooooo!". - [+] fixed. - [+] boggart -brown 'n' - [+] made of wood - [+] cause things to disappear - [+] cause milk to sour (low power blight) - [+] scared of salt - [+] demandgold - [+] briar thrash (spiky) - yellow 'T' (grab) - [+] bingebark - red 'T'. wants edible, canwill snatch - [+] leshy (human with leaves) - green 'h' - [+] manticore - red 'm'' - [+] lion, bat lings, man head, tail tipped with iron spikes - [+] carnivore - [+] human sized - [+] shoots 1-6 spikes. each spike does 1d6. too much!! - [+] change this to be 5d3 damage per volley. - [+] ie missiledam 4d3 - [+] can do this once every 50 turns. - [+] can fly - [+] claws - 1d3 1d3 - [+] want gold (non covet)
2012-03-29 07:17:47 +11:00
real_getlfname(victim, text, NULL, B_NOSHOWALL, B_CURRACE);
- [+] bug: when ally can't see you it goes to sleep - [+] after waking it just goes to sleep again!!! - [+] bug:npc warriors aren't starting with a weapon - [+] shouldn't be able to shieldblock if youre asleep!!! - [+] allies sohuld announce what they are doing - [+] "I'm attacking a goblin" - [+] I just killed a goblin - [+] I need some rest soon... - [+] make sure only HUMANS do this...hu - [+] F_EXTRADESC v0 should be 'order'. - [+] makedesc_skill should honour this - [+] makedesc_spell - [+] same with other makedesc() functions - [+] auto-inc this when adding them. - [+] allies not properly following me downthe stairs - [+] armour that can cover multiple body parts - [+] f_goesonmulti - [+] multiple f_equipped flags. - [+] handle multiple f_equipped in takeoff() - [+] all required bodyparts must both be clear - [+] if not, prompt to remove both things. - [+] check all code for f_equipped copes with multiple occurences... - [+] display as: f - a wetsuit (worn over body and on legs) - [+] update io.c. "it is worn over xxx and yyy)" - [+] heat metal spell - [+] weilded metal burns hands and you drop it (unless immunte to fire/burn) - [+] metal armour damages you (1-4 each) - [+] metal lifeforms take huge damage - [+] all lifeforms should have at least novice level knowledge of their own raceclass - [+] new raceclass - dragons - [+] define it - [+] define skill for it - [+] make jobs know the skill - [+] red dragon - [+] high armourrating - [+] swoop - [+] fly - [+] breath weapon - [+] spells - [+] heat metal - [+] fireball - [+] burning wave - [+] want gold - [+] immune to fire - [+] red dragon hatchling - [+] generally lwoer power, only has heat metal and spark ? - [+] spellcasttext for individual spells - [+] ancient red dragon - [+] higher hp and armourrating - [+] more damage - [+] more spells
2011-11-07 13:12:04 +11:00
} else {
strcpy(text, "something");
}
if (cansee(player, victim)) {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
sayphrase(lf, SP_ALLY_ATTACK, SV_SHOUT, NA, text, victim);
} else {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
sayphrase(lf, SP_ALLY_ATTACKUNSEEN, SV_SHOUT, NA, text, victim);
}
- [+] bug: when ally can't see you it goes to sleep - [+] after waking it just goes to sleep again!!! - [+] bug:npc warriors aren't starting with a weapon - [+] shouldn't be able to shieldblock if youre asleep!!! - [+] allies sohuld announce what they are doing - [+] "I'm attacking a goblin" - [+] I just killed a goblin - [+] I need some rest soon... - [+] make sure only HUMANS do this...hu - [+] F_EXTRADESC v0 should be 'order'. - [+] makedesc_skill should honour this - [+] makedesc_spell - [+] same with other makedesc() functions - [+] auto-inc this when adding them. - [+] allies not properly following me downthe stairs - [+] armour that can cover multiple body parts - [+] f_goesonmulti - [+] multiple f_equipped flags. - [+] handle multiple f_equipped in takeoff() - [+] all required bodyparts must both be clear - [+] if not, prompt to remove both things. - [+] check all code for f_equipped copes with multiple occurences... - [+] display as: f - a wetsuit (worn over body and on legs) - [+] update io.c. "it is worn over xxx and yyy)" - [+] heat metal spell - [+] weilded metal burns hands and you drop it (unless immunte to fire/burn) - [+] metal armour damages you (1-4 each) - [+] metal lifeforms take huge damage - [+] all lifeforms should have at least novice level knowledge of their own raceclass - [+] new raceclass - dragons - [+] define it - [+] define skill for it - [+] make jobs know the skill - [+] red dragon - [+] high armourrating - [+] swoop - [+] fly - [+] breath weapon - [+] spells - [+] heat metal - [+] fireball - [+] burning wave - [+] want gold - [+] immune to fire - [+] red dragon hatchling - [+] generally lwoer power, only has heat metal and spark ? - [+] spellcasttext for individual spells - [+] ancient red dragon - [+] higher hp and armourrating - [+] more damage - [+] more spells
2011-11-07 13:12:04 +11:00
} else {
if (!lfhasflag(lf, F_HIDING)) makenoise(lf, N_GETANGRY);
}
// become hostile?
2011-08-18 06:57:43 +10:00
if (isplayer(victim) && !hasflag(lf->flags, F_HOSTILE) ) {
addflag(lf->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
2011-08-18 06:57:43 +10:00
//innocentattack = 1;
}
// change allegience ?
if (!areenemies(lf, victim)) {
if (getallegiance(victim) == AL_FRIENDLY) {
killflagsofid(lf->flags, F_FRIENDLY);
//innocentattack = 3;
}
}
* [+] calcxp - [+] more low power rings - [+] don't think book names are being randomized - always 'azure' - [+] charm moidifications - [+] possession modifications - [+] troglodyte being made with 180180108180180 mp!! * [+] gain skills on level up for some jobs - [+] only magic/blessed weapons can hit noncorporeal things. - [+] monsters shouldn't walk into walls to attack things there. - [+] The skeleton slams you with a boulder.--More--Innate Attack: boulder . was a bug in HASATTACK - [+] no polymorphing into undead. - [+] missiles shoudl always miss noncorporeal things! - [+] need OFFMAP as well as WALLINWAY - [+] can't possess undead - [+] less charges in wands - [+] when a thrown potion misses, "xx is destroyed" rather than "xx shatters!" - [+] instead of "act:slow mv: slow", just "slow" - [+] sprinting: "you are exhausted" isn't triggering statdirty - [+] On status, use 'v.fast' 'ex.fast' usbtead if "Very" etc - [+] allies shouldn't attack peaceful things. - [+] make fleeing lfs use stairs - [+] undead can't start with blessed objects. - [+] undead can't touch blessed objects * [+] GHOST * [+] PET code - [+] can't trade items if your ally has NOPACK - [+] make sure shared xp is working * [+] firstaid skill shows extra mosnter hp info * [+] more low power wands - at the moment it's always light or pwoer - [+] pets: say 'your xxx' instead of 'the xxx' * [+] pets: dancing weapons should be pets - [+] need f_allyof as well so that allies will stay close. - [+] difference is that allies aren't called "your" - [+] AND no alignment penalty for attacking allies? - [+] in lfstats, move physical stuff BACK to first page!!! - [+] remove ally/pet flag when you die * [+] pirate job * [+] let firearms go into primary hand. test with PIRATE. - [+] when fighting with a non-weapon: "you whack the xxx with xxx" - [+] add specific attack verbs to weapons - [+] F_ATTACKVERB, dampct between v0 and v1, "stabs" - [+] make showlfarmour() use colours
2011-04-11 15:05:45 +10:00
// no longer a pet
f = lfhasflagval(lf, F_PETOF, victim->id, NA, NA, NULL);
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
if (f) {
//if (isplayer(victim)) innocentattack = 3;
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
killflag(f);
}
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
return B_FALSE;
}
2011-03-04 12:22:36 +11:00
void ailoscheck(lifeform_t *lf) {
int i,ok = B_TRUE;
cell_t *c;
for (i = 0; i < lf->nlos; i++) {
c = lf->los[i];
if (!c->known) {
if (((int)c->known < (int)PR_INEPT) || ((int)c->known > (int)PR_MASTER)) {
ok = B_FALSE; break;
}
}
if ((c->visited != B_FALSE) && (c->visited != B_TRUE)) {
ok = B_FALSE; break;
}
if (c->lf && (c->lf->id == 65432)) { // ie. will crash if c->lf is invalid
ok = B_FALSE; break;
}
}
if (!ok) {
msg("FATAL: corrupt los[] array for %s",lf->race->id);
assert("Corrupt los array" == 0);
}
}
// A* algorithm. Returns F_AIPATH flag.
flag_t *ai_createpathto(lifeform_t *lf, cell_t *targcell) {
char *pathbuf;
cell_t *pathcell[MAX_PATHFIND_STEPS];
int pathlen = 0;
int done = B_FALSE,i,n, first = B_TRUE;
node_t open[MAX_PATHFIND_ADJ];
node_t closed[MAX_PATHFIND_ADJ];
node_t *cur;
int nopen = 0,nclosed = 0;
int db = B_FALSE;
char lfname[BUFLEN];
flag_t *newf;
//checkflagpile(lf->flags); // debug
if (!db && lfhasflag(lf, F_DEBUG)) db = B_TRUE;
real_getlfname(lf, lfname, NULL, B_SHOWALL, B_CURRACE);
if (lf->cell->map != targcell->map) {
if (db) dblog("%s: pathfind destination on different level", lfname);
return NULL;
}
if (db) { dblog("%s pathfind - finding path from %d,%d to %d,%d\n",lfname, lf->cell->x,lf->cell->y, targcell->x,targcell->y); }
// add starting cell to open list
open[0].c = lf->cell;
open[0].fromstart = 0;
open[0].heur = calcheuristic(lf->cell, targcell);
open[0].cost = open[0].fromstart + open[0].cost;
open[0].parent = NULL;
nopen = 1;
// NEED: calccosts(node, parentcell, endcell);
while (!done) {
// if open list empty?
if (!nopen) {
// if so, there is NO path. fail.
if (db) dblog("%s pathfind - open list is empty. FAILED.",lfname);
return NULL;
}
// find lowest COST in open list. this is cur.
// move node[cur] to closed list
closed[nclosed] = open[0];
cur = &closed[nclosed];
nclosed++;
for (i = 0; i < nopen-1; i++) {
open[i] = open[i+1];
}
nopen--;
//if (db) dblog("%s pathfind - lowest cost node on openlist is %d,%d",lfname,cur->c->x, cur->c->y);
// is node[cur] the target cell?
if (cur->c == targcell) {
// if so, we've found a path. now need to populate
//if (db) dblog("%s pathfind - at target cell - success!",lfname);
done = B_TRUE;
} else {
// for "adjcell" in 8 squares around it:
for (i = DC_N; i <= DC_NW; i++) {
cell_t *adjcell;
int walkable,found = B_FALSE, ok = B_FALSE;
enum ERROR whynot;
adjcell = getcellindir(cur->c, i);
if (!adjcell) continue;
//if (db) dblog("%s pathfind - checking %s",lfname, getdirnameshort(i));
// already on closed list?
for (n = 0; n < nclosed; n++) {
if (closed[n].c == adjcell) {
found = B_TRUE;
break;
}
}
if (found) {
// already on closed list. ignore.
//if (db) dblog(" %s (%d,%d): already on closed list. ignore.",getdirnameshort(i),
// adjcell->x, adjcell->y);
continue;
}
walkable = cellwalkable(lf, adjcell, &whynot);
ok = B_FALSE;
if (lfhasflagval(lf, F_IGNORECELL, adjcell->x, adjcell->y, NA, NULL)) {
ok = B_FALSE;
} else if (walkable) {
ok = B_TRUE;
} else if (celldangerous(lf, adjcell, B_TRUE, NULL) && haslos(lf, adjcell)) {
// ignore dangerous cells only if we can see them.
ok = B_FALSE;
} else {
if (whynot == E_LFINWAY) {
if (isadjacent(adjcell, lf->cell)) {
ok = B_FALSE;
} else {
ok = B_TRUE;
}
} else if (whynot == E_DOORINWAY) {
if (canopendoors(lf)) {
ok = B_TRUE;
} else {
ok = B_FALSE;
}
} else {
ok = B_FALSE;
}
}
if (ok) {
int openpos = -1;
// adjcell is walkable.
for (n = 0; n < nopen; n++) {
if (open[n].c == adjcell) {
openpos = n;
break;
}
}
if (openpos != -1) {
int newfromstart;
node_t temp;
// adjcell is already on open list
//if (db) dblog(" %s (%d,%d): on open list (position %d).",getdirnameshort(i),
// adjcell->x, adjcell->y, openpos);
// recalc fromstart of adjcell using node[cur] as a parent.
newfromstart = calcg(lf, open[openpos].c, cur, i);
if (newfromstart < open[openpos].fromstart) {
// path through node[cur] is better.
//if (db) dblog(" %s (%d,%d): better cost - recalcing.",
// getdirnameshort(i),
// adjcell->x, adjcell->y);
// change parent of adjcell to node[cur]
// and recalc new costings (and re-sort list)
temp = open[openpos];
temp.parent = cur;
assert(isadjacent(temp.c, temp.parent->c));
temp.fromstart = calcg(lf, temp.c, temp.parent, i);
temp.heur = calcheuristic(temp.c, targcell);
temp.cost = temp.fromstart + temp.heur;
// remove adjcell from open list.
for (n = openpos; n < nopen; n++) {
open[n] = open[n+1];
}
nopen--;
// re-add adjcell at correct pos;
insert(&temp, open, &nopen);
}
} else {
// not on open list
node_t temp;
//if (db) dblog(" %s (%d,%d): not on openlist. inserting.",
// getdirnameshort(i),
// adjcell->x, adjcell->y);
// calc costs
temp.c = adjcell;
temp.parent = cur;
assert(isadjacent(temp.c, temp.parent->c));
temp.fromstart = calcg(lf, temp.c, temp.parent, i);
temp.heur = calcheuristic(adjcell, targcell);
temp.cost = temp.fromstart + temp.heur;
insert(&temp, open, &nopen);
}
} else {
// !walkable - ignore it.
//if (db) dblog(" %s (%d,%d): not walkable - ignoring.",
// getdirnameshort(i),
// adjcell->x, adjcell->y);
}
}
}
}
//checkflagpile(lf->flags); // debug
// work backwards from node[cur] (ie. targcell) following parents.
// populate path and return
if (db) dblog("%s - found path!\n",lfname);
while (cur) {
pathcell[pathlen++] = cur->c;
if (pathlen >= MAX_PATHFIND_STEPS) {
if (db) dblog("%s pathfind - path too long (> %d). FAILED.",MAX_PATHFIND_STEPS);
return NULL;
}
cur = cur->parent;
}
//checkflagpile(lf->flags); // debug
pathbuf = malloc(pathlen*6*sizeof(char));
strcpy(pathbuf, "");
//checkflagpile(lf->flags); // debug
for (i = pathlen-1; i >= 0 ; i--) {
char smallbuf[BUFLENTINY];
// don't include starting cell
if (pathcell[i] == lf->cell) continue;
sprintf(smallbuf, "%s%d,%d",first ? "" : "-", pathcell[i]->x, pathcell[i]->y);
first = B_FALSE;
strcat(pathbuf, smallbuf);
}
if (db) dblog("* %s - path takes %d steps. ", lfname, pathlen);
if (db) dblog("* %s - pathbuf: [%s] ", lfname, pathbuf);
//checkflagpile(lf->flags); // debug
newf = addflag(lf->flags, F_AIPATH, targcell->x, targcell->y, NA, pathbuf);
free(pathbuf);
//checkflagpile(lf->flags); // debug
return newf;
}
// f is a flag of type F_AIPATH
//
// returns the next cell in the path, and removes next cell
// from the list.
//
// if there are no more cells in the path, remove the path.
cell_t *ai_getnextcellinpath(lifeform_t *lf) {
cell_t *c;
flag_t *f;
char *loctext;
char *p,buf[BUFLEN];
int x,y;
f = lfhasflag(lf, F_AIPATH);
if (!f) return NULL;
loctext = strdup(f->text);
p = loctext;
p = readuntil(buf, loctext,',');
x = atoi(buf);
p = readuntil(buf, p,'-');
y = atoi(buf);
free(loctext);
c = getcellat(lf->cell->map, x,y);
return c;
}
// returns TRUE on error
int ai_popnextcellinpath(lifeform_t *lf) {
flag_t *f;
char *loctext;
char *p,buf[BUFLEN];
f = lfhasflag(lf, F_AIPATH);
if (!f) return B_TRUE;
loctext = strdup(f->text);
p = loctext;
p = readuntil(buf, loctext,',');
p = readuntil(buf, p,'-');
if (strlen(p)) {
free(f->text);
f->text = strdup(p);
} else {
killflag(f);
}
free(loctext);
return B_FALSE;
}
2011-03-04 12:22:36 +11:00
enum OBTYPE aigetattackspell(lifeform_t *lf, lifeform_t *victim) {
flag_t *retflag[MAXCANDIDATES];
int nretflags = 0;
flag_t *f;
enum OBTYPE poss[MAXPILEOBS];
int nposs = 0,i;
int db = B_FALSE;
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
if (db) {
dblog(".oO { looking for attack spells/abils }");
}
- [+] delvers should always want money for info, unless you are a delver too. - [+] mirror image (mental) - [+] varpower - [+] makes power 'clone' lfs who look the same as caster - [+] ie. same race. - [+] also same job/armour/weps? - [+] add f_noxp - [+] add f_nocorpse - [+] add f_summonedby so they vanish when the caster dies - [+] add f_phantasm - [+] vanish after _power_ hits, - [+] attacks do 0 damage - [+] don't announce innefectual attacks - [+] dont cast spells or use abilities - [+] petify() them if made by the player - [+] force them to stay close. - [+] in io.c or getlfname, show "[clone]" if it has f_phantasm and was created by player - [+] mosnters try to attack them. - [+] once one gets hit enough times, it disappears - [+] if the caster dies or changes level, they disappear. - [+] can't talk to them - [+] their obejcts vanish when they die - [+] don't talk - [+] make Yumi more about forgiving silly mistakes and avoiding instakills - [+] remove liking of healing - [+] remove like of healing spells - [+] takes a long time to anger. - [+] aviod traps (bamf you away before they trigger) - [+] prayers: - [+] resist stoning (pray while appropriate creatures around) - [+] resist paralysis (pray while appropriate creatures around) - [+] sleep on enemies - [+] passive powers: - [+] always warn as if wisdom is high (passive) - [+] always save when killed right after using stairs (passive) "well, that seemed unfair." - [+] gift: - [+] auto sixth sense - [+] potions of restoration - [+] ring of miracles - [+] shouldn't be able to Offer while enraged. - [+] don't lose stamina while caffeinated - [+] new vault: pit with walkway around it - [+] bug: when worshipping yumi you get "you kill xxx" but they're still alive - [+] ... but they're still alive! - [+] ... for yumi, move KO chance from losehp() to attacklf(). - [+] do the check BEFORE setting 'fatal' - [+] pass forceko to losehp_real - [+] bug: adjustdamhardness should only trigger when ismeleedam() is true, not isphysicaldam() - [+] greatly reduce motel cost - [+] change order in attack.c: apply damage THEN announce, to deal with KO - [+] do it. - [+] test KO code. - [+] then check that feign death still works - [+] demonskin vest should be flammable or vulnerable to fire. - [+] time to get up should depend on size. - [+] less than human: shortnone - [+] human: normal - [+] larger than human: longer - [+] expert unarmed now gives you 'flip' - [+] reduce damage done by low-level monsters - [+] change resoration into a spell - [+] implement - [+] test - [+] new spell: ressurection - [+] corpses need to remember their lf's level - [+] test - [+] godstone of life - revives/restores all - [+] rename "confiscate" to "yoink", and make it take a random object at power 1, selected at power 2 - [+] gods should attack player if they are Enraged or Furious - [+] is STR calc to see if you can push a boulder still working? - [+] change to wizards: - [+] start at novice in all magic skills (but don't gain initial spells) - [+] killing undead should please glorana LOTS. because it's hard to gain piety with her otherwise. - [+] restoration spells/potion should hurt undead - [+] healing spells/potions should hurt undead - [+] immolate shouldnt work if there is aleady a fire tehre. CODE FOR WINNING THE GAME: - [+] get at least one godstone - [+] exit the dungeon - [+] find the portal to the realm of gods - [+] opposing god should appear once you pick up a godstone, and tell you what to do next. - [+] "come to the realm of gods and use it to destroy (related god)" - [+] "or if you lack the courage, give it to me!" - [+] "you will find a portal on the surface" - [+] use the portal to teleport to realm of gods - [+] implement text for all gods... - [+] god text in wt_god - should say 'but you werent meant to replace them!' - [+] EITHER: - [+] challenge and defeat the god related to this godstone (more points. "Crowned the god of xxx.") - [+] TEST - [+] offer the godstone to the godstone's opposing god (less points, "Ascended to demigod-hood.") - [+] implement - [+] TEST GODSTONES: - [+] klikirak: rage - [+] done - [+] (make this one have fire effects too) - [+] glorana: life - [+] Felix shouldn't be able to yoink the godstone off you! - [+] Write up the rest of the Godstone finding text..... - [+] magic - [+] battle - [+] life - [+] mercy - [+] you can't hurt gods unless you - [+] a) have their godstone - [+] b) are in the realm of gods
2012-02-17 16:16:45 +11:00
if (lfhasflag(lf, F_PHANTASM)) {
if (db) dblog(".oO { no attack spell because i am a phantasm }");
return OT_NONE;
}
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
if (missingspellcastob(lf)) {
if (db) dblog(".oO { Cannot cast spell, I don't have my spellcast object }");
return OT_NONE;
}
* [+] 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
getflags(lf->flags, retflag, &nretflags, F_CANCAST, F_CANWILL, F_NONE);
for (i = 0; i < nretflags; i++) {
f = retflag[i];
if (aispellok(lf, f->val[0], victim, F_AICASTTOATTACK)) {
enum CASTTYPE ctype;
int ok = B_TRUE;
ctype = getcasttype(lf, f->val[0]);
switch (ctype) {
case CT_GAZE: // gaze into victim's eyes: they must be able to see you and vice versa
if (!cansee(victim, lf) || !cansee(lf, victim)) {
if (db) dblog(".oO { Cannot cast spell, no 2way los for gaze attack or victims eyes covered }");
ok = B_FALSE;
}
break;
case CT_EYESPIT: // spit into the victim's eyes. lof is checked in aispellok
if (!cansee(victim, lf) ) {
if (db) dblog(".oO { Cannot cast spell, no 2way los for gaze attack or victims eyes covered }");
ok = B_FALSE;
}
break;
default:
break;
}
if (ok) {
// lycanthropes always change to animal form at midnight.
if (gettimephase() == TP_MIDNIGHT) {
- [+] 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
flag_t *lyf;
lyf = lfhasflag(lf, F_LYCANTHROPE);
if ((f->val[0] == OT_S_SHAPESHIFT) &&
- [+] 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
lyf && (lyf->val[0] != 0)) {
if (ispolymorphed(lf)) {
// never change to human form.
ok = B_FALSE;
} else {
// always change to animal form.
// note: this should have already happened though,
// during donextturn();
return f->val[0];
}
}
}
// still ok?
if (ok) {
poss[nposs] = f->val[0];
nposs++;
}
}
}
}
// select a random one
if (nposs > 0) {
int sel;
* [+] 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
if (db) {
char lfname[BUFLEN];
getlfname(lf,lfname);
dblog(".oO { %s i have %d valid spells/abils. using one. }", lfname, nposs);
}
sel = rnd(0,nposs-1);
return poss[sel];
}
return OT_NONE;
}
2011-03-16 15:45:46 +11:00
enum OBTYPE aigetfleespell(lifeform_t *lf) {
flag_t *f;
enum OBTYPE poss[MAXPILEOBS];
int nposs = 0,i;
2011-03-16 15:45:46 +11:00
int db = B_FALSE;
lifeform_t *fleefrom = NULL;
flag_t *retflag[MAXCANDIDATES];
int nretflags = 0;
2011-03-16 15:45:46 +11:00
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
- [+] delvers should always want money for info, unless you are a delver too. - [+] mirror image (mental) - [+] varpower - [+] makes power 'clone' lfs who look the same as caster - [+] ie. same race. - [+] also same job/armour/weps? - [+] add f_noxp - [+] add f_nocorpse - [+] add f_summonedby so they vanish when the caster dies - [+] add f_phantasm - [+] vanish after _power_ hits, - [+] attacks do 0 damage - [+] don't announce innefectual attacks - [+] dont cast spells or use abilities - [+] petify() them if made by the player - [+] force them to stay close. - [+] in io.c or getlfname, show "[clone]" if it has f_phantasm and was created by player - [+] mosnters try to attack them. - [+] once one gets hit enough times, it disappears - [+] if the caster dies or changes level, they disappear. - [+] can't talk to them - [+] their obejcts vanish when they die - [+] don't talk - [+] make Yumi more about forgiving silly mistakes and avoiding instakills - [+] remove liking of healing - [+] remove like of healing spells - [+] takes a long time to anger. - [+] aviod traps (bamf you away before they trigger) - [+] prayers: - [+] resist stoning (pray while appropriate creatures around) - [+] resist paralysis (pray while appropriate creatures around) - [+] sleep on enemies - [+] passive powers: - [+] always warn as if wisdom is high (passive) - [+] always save when killed right after using stairs (passive) "well, that seemed unfair." - [+] gift: - [+] auto sixth sense - [+] potions of restoration - [+] ring of miracles - [+] shouldn't be able to Offer while enraged. - [+] don't lose stamina while caffeinated - [+] new vault: pit with walkway around it - [+] bug: when worshipping yumi you get "you kill xxx" but they're still alive - [+] ... but they're still alive! - [+] ... for yumi, move KO chance from losehp() to attacklf(). - [+] do the check BEFORE setting 'fatal' - [+] pass forceko to losehp_real - [+] bug: adjustdamhardness should only trigger when ismeleedam() is true, not isphysicaldam() - [+] greatly reduce motel cost - [+] change order in attack.c: apply damage THEN announce, to deal with KO - [+] do it. - [+] test KO code. - [+] then check that feign death still works - [+] demonskin vest should be flammable or vulnerable to fire. - [+] time to get up should depend on size. - [+] less than human: shortnone - [+] human: normal - [+] larger than human: longer - [+] expert unarmed now gives you 'flip' - [+] reduce damage done by low-level monsters - [+] change resoration into a spell - [+] implement - [+] test - [+] new spell: ressurection - [+] corpses need to remember their lf's level - [+] test - [+] godstone of life - revives/restores all - [+] rename "confiscate" to "yoink", and make it take a random object at power 1, selected at power 2 - [+] gods should attack player if they are Enraged or Furious - [+] is STR calc to see if you can push a boulder still working? - [+] change to wizards: - [+] start at novice in all magic skills (but don't gain initial spells) - [+] killing undead should please glorana LOTS. because it's hard to gain piety with her otherwise. - [+] restoration spells/potion should hurt undead - [+] healing spells/potions should hurt undead - [+] immolate shouldnt work if there is aleady a fire tehre. CODE FOR WINNING THE GAME: - [+] get at least one godstone - [+] exit the dungeon - [+] find the portal to the realm of gods - [+] opposing god should appear once you pick up a godstone, and tell you what to do next. - [+] "come to the realm of gods and use it to destroy (related god)" - [+] "or if you lack the courage, give it to me!" - [+] "you will find a portal on the surface" - [+] use the portal to teleport to realm of gods - [+] implement text for all gods... - [+] god text in wt_god - should say 'but you werent meant to replace them!' - [+] EITHER: - [+] challenge and defeat the god related to this godstone (more points. "Crowned the god of xxx.") - [+] TEST - [+] offer the godstone to the godstone's opposing god (less points, "Ascended to demigod-hood.") - [+] implement - [+] TEST GODSTONES: - [+] klikirak: rage - [+] done - [+] (make this one have fire effects too) - [+] glorana: life - [+] Felix shouldn't be able to yoink the godstone off you! - [+] Write up the rest of the Godstone finding text..... - [+] magic - [+] battle - [+] life - [+] mercy - [+] you can't hurt gods unless you - [+] a) have their godstone - [+] b) are in the realm of gods
2012-02-17 16:16:45 +11:00
if (lfhasflag(lf, F_PHANTASM)) {
if (db) dblog(".oO { no flee spell because i am a phantasm }");
return OT_NONE;
}
f = lfhasflag(lf, F_FLEEFROM);
if (f) {
fleefrom = findlf(lf->cell->map, f->val[0]);
}
getflags(lf->flags, retflag, &nretflags, F_CANCAST, F_CANWILL, F_NONE);
for (i = 0; i < nretflags; i++) {
f = retflag[i];
if (aispellok(lf, f->val[0], fleefrom, F_AICASTTOFLEE)) {
poss[nposs] = f->val[0];
nposs++;
2011-03-16 15:45:46 +11:00
}
}
// select a random one
if (nposs > 0) {
int sel;
sel = rnd(0,nposs-1);
return poss[sel];
}
return OT_NONE;
}
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
// how long with this monster chase you for?
int aigetchasetime(lifeform_t *lf) {
flag_t *f;
f = lfhasflag(lf, F_FOLLOWTIME);
if (f) return f->val[0];
return DEF_AIFOLLOWTIME;
}
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
// this function assumes that you can't just SEE the target!
cell_t *aigetlastknownpos(lifeform_t *lf, lifeform_t *target, int *lastx, int *lasty, int *lastdir) {
flag_t *f, *tflag, *bestflag = NULL;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
cell_t *c = NULL,*trailcell = NULL,*finalcell = NULL;
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
int besttime = -1;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
int locallastdir = D_NONE;
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
int i;
// defaults
if (lastx) *lastx = NA;
if (lasty) *lasty = NA;
if (lastdir) *lastdir = D_NONE;
// if within scent range... we 'magically' know their location.
if (getcelldist(lf->cell, target->cell) <= getsmellrange(lf)) {
if (lastx) *lastx = target->cell->x;
if (lasty) *lasty = target->cell->y;
if (lastdir) *lastdir = D_NONE;
return target->cell;
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
// do we remember the player's last known location ?
f = ispetortarget(lf, target);
if (f) {
- [+] chemistry skill lets to mix venom sacs into potions - [+] need a potion and venom sac - [+] make more things drop venom sacs - snakes etc - [+] F_EXTRACORPSE - [+] operate the venom sac ? - [+] can do this with first levle chemistry - [+] different kind of venom - blindness - [+] "blue venom sac" vs "purple venom sac" - [+] combiesn to potion of blindness - [+] more amulets - [+] common - [+] of bravery - [+] of light (common) - [+] of minor protection (common) (=5 AR - [+] energy absorbtion (absorb explosions, then pump them out) - [+] uncommon - [+] injury prvention (instead of ring) - [+] rare - [+] or major protection (not common) +10 AR - [+] had a missing eye. drunk a healing potino. - [+] Your head grows back! Your injured head has healed. - [+] objects with positive F_BONUS should never start cursed - [+] (in addobject) - [+] territorial monsters talk when you are approaching their threshold (but not within it) - [+] put this in ai_talk() - [+] if someone almost at territorial range: - [+] make f_noisetext v2 be SP_xxx. if it's set, just say this instead. - [+] it not, N_TERRITORY_APPROACH - [+] if we can talk, SP_TERRITORY_APPROACH - [+] possibilities: - [+] stay away! - [+] keep back! - [+] get away froma me! - [+] don't come any closer! - [+] that's close enough. - [+] keep your distance, stranger! - [+] out of my way! - [+] test with giant and - [+] test with insane humanoid - [+] make territorial creatures not walk too close to things, unless they are attacking or fleeing - [+] in willmove(), fail if it is too close to something - [+] ...unless we have a target lf - [+] ...or we are fleeing - [+] jumping when woozy will go to a random cell - [+] fix autoshortcuts to include starting spells - [+] still bugs with canreachbp - "The giant rat critically scratches your wizard hat." - [+] zombies shoudln't be able to talk. - [+] allow pets to "cheat" to find player's lcoation. - [+] need some kind of limit on zombie army creation - [+] no stairs - [+] areallies() on two pets returning false - [+] psychic shove - [+] push off something, or push them away - [+] l2 mental - [+] pushback power+1 cells (max power 3) - [+] different god message for first prayer. - [+] fix crash during swapplaces() - [+] sacrifice of masterwork weapons should work better. shoddy should be worse. - [+] bug: shops don't work anymore - [+] change lessen poison - power always goes to 1 - [+] replace description "spell's power is boosted when cast outside" with "boosted when cast in a forested area" - [+] minor healing problem. "at lest 2hp per power" but mxpower 10. should be maxpwer 5 - [+] wish for 'protection' should give something you can wear without penalties. - [+] locate object should give a message when none are found.
2012-11-15 22:39:46 +11:00
if (f->id == F_PETOF) {
// cheat.
finalcell = target->cell;
if (lastx) *lastx = finalcell->x;
if (lasty) *lasty = finalcell->y;
if (lastdir) *lastdir = D_NONE;
return finalcell;
} else {
c = getcellat(lf->cell->map, f->val[1], f->val[2]);
}
//if (c && cellwalkable(lf, c, NULL)) {
if (c) {
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
if (lastx) *lastx = c->x;
if (lasty) *lasty = c->y;
if (strlen(f->text)) {
locallastdir = atoi(f->text);
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
}
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
trailcell = c;
if (lastx) *lastx = c->x;
if (lasty) *lasty = c->y;
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
}
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
// if not, check for the most recent scent/footprints first
if (!trailcell) {
c = NULL;
lf->loslock = B_TRUE;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
for (i = 0; i < lf->nlos; i++) {
if (hastrailof(lf->los[i]->obpile, target, NA, &tflag, lf)) {
if (tflag->lifetime > besttime) {
besttime = tflag->lifetime;
bestflag = tflag;
c = lf->los[i];
}
}
}
lf->loslock = B_FALSE;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
if (bestflag && c) {
if (lastx) *lastx = c->x;
if (lasty) *lasty = c->y;
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
// can only obtain direction from footprints if your
// tracking skill is high enough.
if (bestflag->val[2] == S_SIGHT) {
* [+] 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
if (getskill(lf, SK_PERCEPTION) >= PR_SKILLED) {
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
locallastdir = bestflag->val[1];
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
} else {
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
locallastdir = D_NONE;
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
}
} else {
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
locallastdir = bestflag->val[1];
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
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
trailcell = c;
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
}
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
// if we found somewhere, follow any trails out of there
if (trailcell) {
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
finalcell = trailcell;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
if (locallastdir != D_NONE) {
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
cell_t *c;
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
// follow the trail
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
c = getcellindir(trailcell, locallastdir);
if (c && (getcelldist(c, target->cell) < getcelldist(trailcell, target->cell))) {
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
locallastdir = D_NONE;
finalcell = c;
}
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
}
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
if (lastx) *lastx = finalcell->x;
if (lasty) *lasty = finalcell->y;
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
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
// return last movement direction
if (lastdir) {
*lastdir = locallastdir;
}
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
// just in case...
if (!finalcell) {
if ((*lastx != NA) && (*lasty != NA)) {
finalcell = getcellat(lf->cell->map, *lastx, *lasty);
}
}
- [+] allow user to DISABLE auto dodge fatal attacks ?. enable through "reflexive dodging" ability - [+] first rotation in a turn takes no time - [+] exploit: if you walk diagonally next to a monster, it moves to your previous space! - [+] fix: aigetlastknownpos should return the cell that trails point to, not the cell _with_ the trails. - [+] only recognise weapon quality (masterwork etc) if you are skilled in that weapon or perception - [+] cope with mosnter necromancers, etc - [+] parserace should look for necromancer etc. - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc - [+] move specialty mage code into "givejobspecialty" - [+] Make wizard's job name depend on primary spell school. - [+] "Demonologist", "Firemage", "Icemage", "Necromancer", "Skymage", "Wizard" (wild) - [+] instead of getjob() then j->name, use "getjobname(lf)" - [+] f_jobname - [+] i should never "hear voices chanting" from an abandoned temple - [+] for monsters, show "its bite inflicts poison" in io.c racial knowledge - [+] casting healing on myself pleased Glorana twice! - [+] one from casting a life spell - [+] one from casting healing. - [+] move ones from spell.c to castspell() - [+] new flag: f_pleasesgod v0=godid, v1=howmuch - [+] add to other spell objects: - [+] f_pleasesgod - [+] GODFIRE - spelllevel * 2 - [+] GODDEATH = spelllevel - [+] GODLIFE = spelllevel*2 - [+] GODNATURE: spelllevle*2 - [+] show this in describespell - [+] for god healing effects, use gainhp() so that it says "Your HP is fully restored." - [+] change F_RESISTMAG to be percentage rather than 1-20 - [+] make some gods' pleasure boost power of related spells - [+] 1 per each positive levle of getpietylev() - [+] glorana: life - [+] hecta: death - [+] only apply auto shortcuts for players. - [+] subjob_t - [+] addsubjob() - [+] killsubjob() - [+] show subjobs in job descriptions. - [+] data.c: addsubjob(.... - [+] in job defs: - [+] f_canhavesubjob sj_xxx - [+] use this to determine whether to ask about them - [+] redo getjobname - [+] remove f_job->Text - [+] speak with dead should only work on corpses of races which can talk. - [+] warrior subclasses - [+] "Scourge" - [+] gains magic resistance as you level up - [+] == 5 + (level * 3) % - [+] nospells - [+] no mana - [+] paladin - [+] blessed gear - [+] can will turn undead - [+] healing magic - [+] god = glorana. - [+] cannot use spells if glorana is angry. - [+] battlemage - [+] starts with one spell school (fire/ice/air) - [+] canlearn fire/ice/air spell schools - [+] limited to adept in all schools - [+] slightly less hp - [+] no warrior abilities
2012-02-24 17:45:23 +11:00
return finalcell;
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
}
- [+] 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
object_t *aigetrangedattack(lifeform_t *lf, lifeform_t *target, enum RANGEATTACK *ra, int *range) {
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
int db = B_FALSE;
* [+] fire should set equipped obs on fire too * [+] trapped doors/objcets * [+] make careful walking have less chance of triggering some traps (eg tripwire) - [+] dex penalty when drunk - [+] require dex to put on most shoes - [+] Diety's short sword of pyromania isn't appearing? - [+] make sure i can tumble over traps * [+] able to cut tripwires with slashing/chopping/piercing weapons? - [+] maybe make cmomando have no weapon skill - [+] make armour more common - [+] shouldnt be able to swap place with someone who is sleeping - [+] if you're not in the water, can't see lfs in water (unless they are adjacent) - [+] You break free from the zombie! You reintegrate inside a solid object!--More-- * [+] shopkeepers will charge an extra fee to identify stuff - [+] shouldn't get an empty flask when I dirnk from a fountain! - [+] identify and remove curse scrolls should be COMMON * [+] provide detailed skill descriptions - [+] dumpoutlines() - [+] make minotaurs stay in room - [+] make minotaurs have good smell - [+] don't auotreveal vaults. * [+] should be able to fill flasks from fountains - [+] don't announce corpse decay death while training. * [+] add the initial godstone at the bottom of firstdungeon * [+] make fountains names same as their linked potions - [+] bug: when filling potions from the ground, ground object was never dryaing up Beggars - [+] stealing ability sometimes. run away after using this * [+] various lots of generic f_talktext->"have a coin to spare?" World map - [+] 1-2,1-2: habitat: village - [+] multiple villages - [+] vault: island with treasure (or acid island?) - [+] jump into a water - it splashes small puddles to surrounding cells * [+] let dig spell go up/down. * [+] fountains, random potion effect or water (blue _ or }) - [+] make thingchance and obchance be habitat_t parameters. work on game goal - [+] find a way out of the magical dungeon barriers in the first dungeon - [+] slime - [+] troll = t - [+] lizardman - [+] ogre - [+] kobold - [+] fire sprite - [+] hobgoblin - [+] bugbear - [+] gnoll - [+] giant - [+] zombie - [+] skeleton * [+] ghoul - [+] ghast - [+] can operate spanner to - [+] jam/unjam a door * [+] visibility - [+] initial code for monsters opening doors while giving chase - [+] acid does more damage to armour * [+] implement temporary flags. * [+] implement unknown flags - [+] mana spike - [+] energy bolt - [+] energy blast (hits all in radius) - [+] flash (like flashbang) - [+] telekinesis (open/close doors remotely, grab/throw objects remotely) - [+] mindscan - knoweldge of hp etc * [+] airblast (push obs, push someone very far, AND lose obs. break walls they hit?) - [+] fireball - sets on fire - [+] flamepillar - [+] fire arrow - [+] spark (light a flammable object) - [+] flameburst - 2d8+3 damage in a circle - [+] burning wave - 2d10 damage and set on firea, line towards target - [+] range 3 - [+] freezing touch (turns an object to ice) - [+] knock - opens doors - [+] gas form - [+] polymorph - [+] write on floor - [+] light - [+] weaken (lose str) - [+] poison cloud - change cloudkill to this? - [+] animate dead - [+] posession - [+] minor healing - [+] healing - [+] turn undead - [+] identify - [+] detect magic - [+] detect aura - [+] reveal surroundings - [+] uncontrolled teleport - [+] speed - [+] slow - [+] boost gravity - [+] create monster - [+] divine - [+] wish
2011-07-21 11:43:45 +10:00
enum ATTRBRACKET iqb;
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
object_t *o;
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (lfhasflag(lf, F_STUNNED)) {
if (db) dblog(".oO { no ranged attack because i am stunned }");
if (ra) *ra = RA_NONE;
return NULL;
}
if (lfhasflag(lf, F_RAGE)) {
if (db) dblog(".oO { no ranged attack because i am enraged }");
if (ra) *ra = RA_NONE;
return NULL;
}
- [+] prevent ALL overlapping rooms! - [+] stop running for any non-cosmetic object. - [ ] echoing? - [+] OPTIONS - [+] option_t - [+] id - [+] letter - [+] text - [+] int enabled - [+] int default - [+] next/prev - [+] addoption() - [+] getoption() - [+] dooptions() - [+] list them all (with 'more' for multipages) - [+] pressing a letter toggles it. - [+] "display trails" - [+] make scents be "cosmetic"! - [+] increaes skeleton's vulnerability to falling - [+] missing announcement for bleed() - [+] let rapid ivy cast entangle - [+] caves - [+] new regiontype - [+] new link - [+] new habitat - [+] objectlass rarities - [+] assign obs/mons to habitat - [+] code to dig caves - [+] stairs linking to cave region - [+] when learning random skills: - [+] prefer lower-level skills - [+] onyl learn up to adept level - [+] animate dead crashes if there is no space to place the lifeform! - [+] increase range of charge ability - [+] when you gain techusage, check held objects for conferred flags. - [+] bug: motion scanner working even though i have no tech usage! - [+] warn player before climbing without climb skill (if wisdom is >= average) - [+] regions should have depthmod. - [+] regionthings should be based on DEPTH, not difficulty! - [+] rename firstdungeon to maindungeon - [+] announcearrival broken -always saying 'new area' - [+] don't use ranged attacks when feigning death if target is adjacent - [+] don't say 'argh' if you were beheaded. - [+] The bear cub bites a wooden door with a teeth.--More-- - [+] random levelup skills - only select from skills which we have used? - [+] need to chance f_hasskill to use f->val[2] = used_this_level - [+] when you gain a skill, set f>val[2] = b_false or NA - [+] add setskillused for all skills! - [+] make random levleup only pick from used skills. - [+] TEST - [+] knowledge skills - practice them when you see a new lf of this type. - [+] slithering shoudl hardly ever awaken you - make listen check harder. - [+] don't put fireplaces in corridors. F_ONLYINROOM ? - [+] bug: acid trails from slug disappearing or never appearing? - [+] snails/slugs - [+] killed by salt - [+] vslow - [+] snails have vhigh armourrating - [+] slugs have lots of hp and do more damage - [+] brown/grey 'j' ? - [+] leave slime/acid trails?
2012-01-03 12:21:22 +11:00
if (lfhasflag(lf, F_FEIGNINGDEATH) && target && (getcelldist(lf->cell, target->cell) == 1)) {
if (db) dblog(".oO { no ranged attack because i am feigning death and adj to my target }");
if (ra) *ra = RA_NONE;
return NULL;
}
* [+] fire should set equipped obs on fire too * [+] trapped doors/objcets * [+] make careful walking have less chance of triggering some traps (eg tripwire) - [+] dex penalty when drunk - [+] require dex to put on most shoes - [+] Diety's short sword of pyromania isn't appearing? - [+] make sure i can tumble over traps * [+] able to cut tripwires with slashing/chopping/piercing weapons? - [+] maybe make cmomando have no weapon skill - [+] make armour more common - [+] shouldnt be able to swap place with someone who is sleeping - [+] if you're not in the water, can't see lfs in water (unless they are adjacent) - [+] You break free from the zombie! You reintegrate inside a solid object!--More-- * [+] shopkeepers will charge an extra fee to identify stuff - [+] shouldn't get an empty flask when I dirnk from a fountain! - [+] identify and remove curse scrolls should be COMMON * [+] provide detailed skill descriptions - [+] dumpoutlines() - [+] make minotaurs stay in room - [+] make minotaurs have good smell - [+] don't auotreveal vaults. * [+] should be able to fill flasks from fountains - [+] don't announce corpse decay death while training. * [+] add the initial godstone at the bottom of firstdungeon * [+] make fountains names same as their linked potions - [+] bug: when filling potions from the ground, ground object was never dryaing up Beggars - [+] stealing ability sometimes. run away after using this * [+] various lots of generic f_talktext->"have a coin to spare?" World map - [+] 1-2,1-2: habitat: village - [+] multiple villages - [+] vault: island with treasure (or acid island?) - [+] jump into a water - it splashes small puddles to surrounding cells * [+] let dig spell go up/down. * [+] fountains, random potion effect or water (blue _ or }) - [+] make thingchance and obchance be habitat_t parameters. work on game goal - [+] find a way out of the magical dungeon barriers in the first dungeon - [+] slime - [+] troll = t - [+] lizardman - [+] ogre - [+] kobold - [+] fire sprite - [+] hobgoblin - [+] bugbear - [+] gnoll - [+] giant - [+] zombie - [+] skeleton * [+] ghoul - [+] ghast - [+] can operate spanner to - [+] jam/unjam a door * [+] visibility - [+] initial code for monsters opening doors while giving chase - [+] acid does more damage to armour * [+] implement temporary flags. * [+] implement unknown flags - [+] mana spike - [+] energy bolt - [+] energy blast (hits all in radius) - [+] flash (like flashbang) - [+] telekinesis (open/close doors remotely, grab/throw objects remotely) - [+] mindscan - knoweldge of hp etc * [+] airblast (push obs, push someone very far, AND lose obs. break walls they hit?) - [+] fireball - sets on fire - [+] flamepillar - [+] fire arrow - [+] spark (light a flammable object) - [+] flameburst - 2d8+3 damage in a circle - [+] burning wave - 2d10 damage and set on firea, line towards target - [+] range 3 - [+] freezing touch (turns an object to ice) - [+] knock - opens doors - [+] gas form - [+] polymorph - [+] write on floor - [+] light - [+] weaken (lose str) - [+] poison cloud - change cloudkill to this? - [+] animate dead - [+] posession - [+] minor healing - [+] healing - [+] turn undead - [+] identify - [+] detect magic - [+] detect aura - [+] reveal surroundings - [+] uncontrolled teleport - [+] speed - [+] slow - [+] boost gravity - [+] create monster - [+] divine - [+] wish
2011-07-21 11:43:45 +10:00
iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
if (iqb <= IQ_ANIMAL) {
// animal and lower intelligence won't use ranged
// attacks.
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
if (!lfhasflag(lf, F_WILLTHROW)) {
if (db) dblog(".oO { no ranged attack due to low iq. }");
if (ra) *ra = RA_NONE;
return NULL;
}
* [+] fire should set equipped obs on fire too * [+] trapped doors/objcets * [+] make careful walking have less chance of triggering some traps (eg tripwire) - [+] dex penalty when drunk - [+] require dex to put on most shoes - [+] Diety's short sword of pyromania isn't appearing? - [+] make sure i can tumble over traps * [+] able to cut tripwires with slashing/chopping/piercing weapons? - [+] maybe make cmomando have no weapon skill - [+] make armour more common - [+] shouldnt be able to swap place with someone who is sleeping - [+] if you're not in the water, can't see lfs in water (unless they are adjacent) - [+] You break free from the zombie! You reintegrate inside a solid object!--More-- * [+] shopkeepers will charge an extra fee to identify stuff - [+] shouldn't get an empty flask when I dirnk from a fountain! - [+] identify and remove curse scrolls should be COMMON * [+] provide detailed skill descriptions - [+] dumpoutlines() - [+] make minotaurs stay in room - [+] make minotaurs have good smell - [+] don't auotreveal vaults. * [+] should be able to fill flasks from fountains - [+] don't announce corpse decay death while training. * [+] add the initial godstone at the bottom of firstdungeon * [+] make fountains names same as their linked potions - [+] bug: when filling potions from the ground, ground object was never dryaing up Beggars - [+] stealing ability sometimes. run away after using this * [+] various lots of generic f_talktext->"have a coin to spare?" World map - [+] 1-2,1-2: habitat: village - [+] multiple villages - [+] vault: island with treasure (or acid island?) - [+] jump into a water - it splashes small puddles to surrounding cells * [+] let dig spell go up/down. * [+] fountains, random potion effect or water (blue _ or }) - [+] make thingchance and obchance be habitat_t parameters. work on game goal - [+] find a way out of the magical dungeon barriers in the first dungeon - [+] slime - [+] troll = t - [+] lizardman - [+] ogre - [+] kobold - [+] fire sprite - [+] hobgoblin - [+] bugbear - [+] gnoll - [+] giant - [+] zombie - [+] skeleton * [+] ghoul - [+] ghast - [+] can operate spanner to - [+] jam/unjam a door * [+] visibility - [+] initial code for monsters opening doors while giving chase - [+] acid does more damage to armour * [+] implement temporary flags. * [+] implement unknown flags - [+] mana spike - [+] energy bolt - [+] energy blast (hits all in radius) - [+] flash (like flashbang) - [+] telekinesis (open/close doors remotely, grab/throw objects remotely) - [+] mindscan - knoweldge of hp etc * [+] airblast (push obs, push someone very far, AND lose obs. break walls they hit?) - [+] fireball - sets on fire - [+] flamepillar - [+] fire arrow - [+] spark (light a flammable object) - [+] flameburst - 2d8+3 damage in a circle - [+] burning wave - 2d10 damage and set on firea, line towards target - [+] range 3 - [+] freezing touch (turns an object to ice) - [+] knock - opens doors - [+] gas form - [+] polymorph - [+] write on floor - [+] light - [+] weaken (lose str) - [+] poison cloud - change cloudkill to this? - [+] animate dead - [+] posession - [+] minor healing - [+] healing - [+] turn undead - [+] identify - [+] detect magic - [+] detect aura - [+] reveal surroundings - [+] uncontrolled teleport - [+] speed - [+] slow - [+] boost gravity - [+] create monster - [+] divine - [+] wish
2011-07-21 11:43:45 +10:00
}
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
o = getfirearm(lf);
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (o && getammo(o) && canshoot(lf, NULL)) {
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
if (db) {
char gunname[BUFLEN];
getobname(o, gunname, o->amt);
if (db) dblog(".oO { will fire my gun (%s) at target. }",gunname);
}
- [+] climbing - [+] climb "into"walls - [+] stopclimbing(int onpurpose) - [+] can we move forwards? - [+] if not: - [+] if onpurpose, fail - [+] otherwise fall onto whoever is there??? or they block you from falling?? - [+] move forwards - [+] kill f_climbing flag - [+] startclimbing() - [+] move onto the wall - [+] set your facing to face away from the wall. - [+] add F_CLIMBING - [+] must pass a CLIMB check first or you fail to climb! - [+] can't climb if burdened - [+] once climbing: - [+] can't cast spells - [+] cannot change facing - [+] always strafe if you go sideways - [+] change los functions to let you see out! - [+] different move verb ("climb" instead of move/fly) - [+] different canmove() code - [+] you can only move sideways (along the wall) or forwards (off the wall) - [+] ie. cellindir(lf, lf->facing) == newcell (forwards) - [+] OR - [+] ie. cellindir(lf, lf->facing + 2 (wrapped)) == newcell (right) - [+] OR - [+] ie. cellindir(lf, lf->facing - 2 (wrapped)) == newcell (left) - [+] AND you can only move sidways if: - [+] the new cell is a wall - [+] the cell in (lf->facing) of the new cell is NOT a wall - [+] if you climb off a wall, tell the player that they stopped climbing - [+] moving while climbing: - [+] must pass a sc_climb skill check to move - [+] costs 1 stamina to move - [+] warn before climbing if your stam == 1 - [+] attacking - [+] large penalty to hit the climber (higher for smaller monstesr) - [+] if monsters miss you and you are climbing, chance they'll give up. - [+] attacking FROM a wall gets a big penalty unless you are very skilled at climbing - [+] startlfturn - [+] lose stam each turn. - [+] if stam drops to 0, you fall off or stop climbing - [+] you fall if burdened - [+] don't regen stam while climing - [+] ai: - [+] monsters won't start targeting lfs who are climbing - [+] monsters don't pay stamina to move while climb - [+] make monsters be able to climb when fleeing - [+] let you climb down holes instead of falling
2011-11-03 09:34:15 +11:00
if (ra) *ra = RA_GUN;
if (range) *range = getfirearmrange(o);
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
return o;
}
// do we have a wand we can zap?
if (lfhasflag(lf, F_HUMANOID) || hasbp(lf, BP_HANDS)) {
if (lfhasflag(lf, F_FLEEFROM)) {
o = aigetwand(lf, F_AICASTTOFLEE);
} else {
o = aigetwand(lf, F_AICASTTOATTACK);
}
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (o && canoperate(lf, o, NULL)) {
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
if (db) dblog(".oO { will zap %s instead of moving }", o->type->name);
- [+] climbing - [+] climb "into"walls - [+] stopclimbing(int onpurpose) - [+] can we move forwards? - [+] if not: - [+] if onpurpose, fail - [+] otherwise fall onto whoever is there??? or they block you from falling?? - [+] move forwards - [+] kill f_climbing flag - [+] startclimbing() - [+] move onto the wall - [+] set your facing to face away from the wall. - [+] add F_CLIMBING - [+] must pass a CLIMB check first or you fail to climb! - [+] can't climb if burdened - [+] once climbing: - [+] can't cast spells - [+] cannot change facing - [+] always strafe if you go sideways - [+] change los functions to let you see out! - [+] different move verb ("climb" instead of move/fly) - [+] different canmove() code - [+] you can only move sideways (along the wall) or forwards (off the wall) - [+] ie. cellindir(lf, lf->facing) == newcell (forwards) - [+] OR - [+] ie. cellindir(lf, lf->facing + 2 (wrapped)) == newcell (right) - [+] OR - [+] ie. cellindir(lf, lf->facing - 2 (wrapped)) == newcell (left) - [+] AND you can only move sidways if: - [+] the new cell is a wall - [+] the cell in (lf->facing) of the new cell is NOT a wall - [+] if you climb off a wall, tell the player that they stopped climbing - [+] moving while climbing: - [+] must pass a sc_climb skill check to move - [+] costs 1 stamina to move - [+] warn before climbing if your stam == 1 - [+] attacking - [+] large penalty to hit the climber (higher for smaller monstesr) - [+] if monsters miss you and you are climbing, chance they'll give up. - [+] attacking FROM a wall gets a big penalty unless you are very skilled at climbing - [+] startlfturn - [+] lose stam each turn. - [+] if stam drops to 0, you fall off or stop climbing - [+] you fall if burdened - [+] don't regen stam while climing - [+] ai: - [+] monsters won't start targeting lfs who are climbing - [+] monsters don't pay stamina to move while climb - [+] make monsters be able to climb when fleeing - [+] let you climb down holes instead of falling
2011-11-03 09:34:15 +11:00
if (ra) *ra = RA_WAND;
if (range) *range = getvisrange(lf, B_TRUE); // ie unlimited
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
return o;
}
}
// can we attack by throwing something?
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (hasbp(lf, BP_HANDS) && !lfhasflag(lf, F_STUNNED)) {
- [+] 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
o = getbestthrowmissile(lf, target);
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
if (o) {
if (db) dblog(".oO { will throw %s at my target }", o->type->name);
- [+] climbing - [+] climb "into"walls - [+] stopclimbing(int onpurpose) - [+] can we move forwards? - [+] if not: - [+] if onpurpose, fail - [+] otherwise fall onto whoever is there??? or they block you from falling?? - [+] move forwards - [+] kill f_climbing flag - [+] startclimbing() - [+] move onto the wall - [+] set your facing to face away from the wall. - [+] add F_CLIMBING - [+] must pass a CLIMB check first or you fail to climb! - [+] can't climb if burdened - [+] once climbing: - [+] can't cast spells - [+] cannot change facing - [+] always strafe if you go sideways - [+] change los functions to let you see out! - [+] different move verb ("climb" instead of move/fly) - [+] different canmove() code - [+] you can only move sideways (along the wall) or forwards (off the wall) - [+] ie. cellindir(lf, lf->facing) == newcell (forwards) - [+] OR - [+] ie. cellindir(lf, lf->facing + 2 (wrapped)) == newcell (right) - [+] OR - [+] ie. cellindir(lf, lf->facing - 2 (wrapped)) == newcell (left) - [+] AND you can only move sidways if: - [+] the new cell is a wall - [+] the cell in (lf->facing) of the new cell is NOT a wall - [+] if you climb off a wall, tell the player that they stopped climbing - [+] moving while climbing: - [+] must pass a sc_climb skill check to move - [+] costs 1 stamina to move - [+] warn before climbing if your stam == 1 - [+] attacking - [+] large penalty to hit the climber (higher for smaller monstesr) - [+] if monsters miss you and you are climbing, chance they'll give up. - [+] attacking FROM a wall gets a big penalty unless you are very skilled at climbing - [+] startlfturn - [+] lose stam each turn. - [+] if stam drops to 0, you fall off or stop climbing - [+] you fall if burdened - [+] don't regen stam while climing - [+] ai: - [+] monsters won't start targeting lfs who are climbing - [+] monsters don't pay stamina to move while climb - [+] make monsters be able to climb when fleeing - [+] let you climb down holes instead of falling
2011-11-03 09:34:15 +11:00
if (ra) *ra = RA_THROW;
- [+] 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
if (range) {
if (hasflag(o->flags, F_POWDER)) {
*range = 1;
} else {
*range = getmaxthrowrange(lf, o);
}
}
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
return o;
}
}
if (db) dblog(".oO { found no ranged attack. }");
- [+] climbing - [+] climb "into"walls - [+] stopclimbing(int onpurpose) - [+] can we move forwards? - [+] if not: - [+] if onpurpose, fail - [+] otherwise fall onto whoever is there??? or they block you from falling?? - [+] move forwards - [+] kill f_climbing flag - [+] startclimbing() - [+] move onto the wall - [+] set your facing to face away from the wall. - [+] add F_CLIMBING - [+] must pass a CLIMB check first or you fail to climb! - [+] can't climb if burdened - [+] once climbing: - [+] can't cast spells - [+] cannot change facing - [+] always strafe if you go sideways - [+] change los functions to let you see out! - [+] different move verb ("climb" instead of move/fly) - [+] different canmove() code - [+] you can only move sideways (along the wall) or forwards (off the wall) - [+] ie. cellindir(lf, lf->facing) == newcell (forwards) - [+] OR - [+] ie. cellindir(lf, lf->facing + 2 (wrapped)) == newcell (right) - [+] OR - [+] ie. cellindir(lf, lf->facing - 2 (wrapped)) == newcell (left) - [+] AND you can only move sidways if: - [+] the new cell is a wall - [+] the cell in (lf->facing) of the new cell is NOT a wall - [+] if you climb off a wall, tell the player that they stopped climbing - [+] moving while climbing: - [+] must pass a sc_climb skill check to move - [+] costs 1 stamina to move - [+] warn before climbing if your stam == 1 - [+] attacking - [+] large penalty to hit the climber (higher for smaller monstesr) - [+] if monsters miss you and you are climbing, chance they'll give up. - [+] attacking FROM a wall gets a big penalty unless you are very skilled at climbing - [+] startlfturn - [+] lose stam each turn. - [+] if stam drops to 0, you fall off or stop climbing - [+] you fall if burdened - [+] don't regen stam while climing - [+] ai: - [+] monsters won't start targeting lfs who are climbing - [+] monsters don't pay stamina to move while climb - [+] make monsters be able to climb when fleeing - [+] let you climb down holes instead of falling
2011-11-03 09:34:15 +11:00
if (ra) *ra = RA_NONE;
if (range) *range = 0;
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
return NULL;
}
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
int aigetspelltarget(lifeform_t *lf, objecttype_t *spelltype, lifeform_t *victim, lifeform_t **spelllf, cell_t **spellcell, object_t **spellob, enum FLAG purpose) {
int specialcase = B_FALSE;
flag_t *f;
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
enum SPELLTARGET spelltarg = ST_NONE;
// default - at victim.
if (spelllf) *spelllf = victim;
if (spellcell) *spellcell = victim->cell;
if (spellob) *spellob = NULL;
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
f = lfhasflagval(lf, F_AISPELLTARGETOVERRIDE, spelltype->id, NA, NA, NULL);
if (f) {
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
spelltarg = f->val[1];
} else {
f = hasflag(spelltype->flags, purpose);
if (f) {
spelltarg = f->val[0];
}
}
switch (spelltarg) {
case ST_VICTIM:
// at victim.
if (spelllf) *spelllf = victim;
if (spellcell) *spellcell = victim->cell;
if (spellob) *spellob = NULL;
break;
case ST_ADJSELF: // cast at myself when next to victim
if (getcelldist(lf->cell, victim->cell) <= 1) {
if (spelllf) *spelllf = lf;
if (spellcell) *spellcell = lf->cell;
if (spellob) *spellob = NULL;
}
break;
case ST_ADJVICTIM: // cast at victim when next to victim
if (getcelldist(lf->cell, victim->cell) <= 1) {
if (spelllf) *spelllf = victim;
if (spellcell) *spellcell = victim->cell;
if (spellob) *spellob = NULL;
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
}
break;
case ST_SELF:
if (spelllf) *spelllf = lf;
if (spellcell) *spellcell = lf->cell;
if (spellob) *spellob = NULL;
break;
case ST_ANYWHERE:
if (spelllf) *spelllf = NULL;
if (spellcell) *spellcell = NULL;
if (spellob) *spellob = NULL;
break;
case ST_SPECIAL:
specialcase = B_TRUE;
break;
case ST_NONE:
break;
}
if (specialcase) {
if (spelltype->id == OT_A_CLIMB) {
int i,nposs = 0;
cell_t *poss[MAXCANDIDATES];
// cell in sight and adjacent? aispellok() should have already confirmed
// that there will be at least one of these.
for (i = 1; i < lf->nlos; i++) {
// using getcelldirorth to make sure direction is orthogonal
if (!lf->los[i]->lf && lf->los[i]->type->solid && (getcelldistorth(lf->cell, lf->los[i]) == 1)) {
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
poss[nposs++] = lf->los[i];
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
}
if (!nposs) {
if (spellcell) spellcell = NULL;
if (spelllf) *spelllf = NULL;
if (spellob) *spellob = NULL;
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
return B_TRUE;
}
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
if (spellcell) {
*spellcell = poss[rnd(0,nposs-1)];
}
if (spelllf) *spelllf = NULL;
if (spellob) *spellob = NULL;
} else if ((spelltype->id == OT_S_ANIMATESTATUE) || (spelltype->id == OT_S_ANIMATETREE)) {
cell_t *cell[MAXCANDIDATES],*poss[MAXCANDIDATES];
int ncells,i,nposs = 0;
enum OBTYPE oid;
if (spelltype->id == OT_S_ANIMATESTATUE) {
oid = OT_STATUE;
} else {
oid = OT_TREE;
}
if (spelllf) *spelllf = NULL;
if (spellob) *spellob = NULL;
// adjacent cell with a tree?
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
if (hasob(cell[i]->obpile, oid)) {
poss[nposs++] = cell[i];
}
}
if (!nposs) {
if (spellcell) spellcell = NULL;
return B_TRUE;
}
if (spellcell) {
*spellcell = poss[rnd(0,nposs-1)];
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (spelltype->id == OT_A_JUMP) {
cell_t *cell[MAXCANDIDATES],*c;
cell_t *poss[MAXCANDIDATES];
int ncells,i,bestdist,nposs;
if (purpose == F_AICASTTOATTACK) {
bestdist = 99;
} else {
bestdist = -99;
}
getradiuscells(lf->cell, 2, DT_COMPASS, B_TRUE, LOF_WALLSTOP, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
int disttovictim;
c = cell[i];
if (!cellwalkable(lf, c, NULL) || celldangerous(lf, c, B_TRUE, NULL)) {
continue;
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
disttovictim = getcelldist(victim->cell, c);
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
if (purpose == F_AICASTTOATTACK) {
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
// get closest cell to victim
if (disttovictim < bestdist) {
bestdist = disttovictim;
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else {
// get furthest cell from victim
if (disttovictim > bestdist) {
bestdist = disttovictim;
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
}
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
}
// now get all possible cells...
nposs = 0;
for (i = 0; i < ncells; i++) {
int disttovictim;
c = cell[i];
if (!cellwalkable(lf, c, NULL) || celldangerous(lf, c, B_TRUE, NULL)) {
continue;
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
disttovictim = getcelldist(victim->cell, c);
if (disttovictim == bestdist) {
poss[nposs++] = c;
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
}
// cast spell at one of the cells we found.
// we should ALWAYS have at least one cell, because aispellok()
// will check this.
if (spellcell) *spellcell = poss[rnd(0,nposs-1)];
} else if (spelltype->id == OT_S_DIG) {
cell_t *cell[MAXCANDIDATES],*poss[MAXCANDIDATES];
int ncells,i,nposs = 0;
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
if (cell[i]->type->solid &&
(isdiggable(cell[i], OT_S_DIG) &&
getcelldist(cell[i], victim->cell) == 1)) {
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
poss[nposs++] = cell[i];
break;
}
}
// aim at an adjacent wall cell
if (spellcell) *spellcell = poss[rnd(0,nposs-1)];
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
} else if (spelltype->id == OT_S_PLANTWALK) {
cell_t *cell[MAXCANDIDATES];
int ncells,i;
cell_t *poss[MAX_MAPW*MAX_MAPH];
int nposs = 0;
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_TRUE, cell, &ncells, 0);
// any plants within range 1?
for (i = 0; i < ncells; i++) {
if (hasobofclass(cell[i]->obpile, OC_FLORA)) {
poss[nposs++] = cell[i];
}
}
// should always be true since we check this in aispellok
if (nposs > 0) {
if (spellcell) *spellcell = poss[rnd(0,nposs-1)];
if (spelllf) *spelllf = NULL;
if (spellob) *spellob = NULL;
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (spelltype->id == OT_S_TELEKINESIS) {
float maxweight;
object_t *poss[MAXPILEOBS];
int nposs;
int i;
// find nearest object which can be picked up
// this is copied out of the telekenesis spell code!
maxweight = getlfweight(lf, B_NOOBS) +
(getlfweight(lf, B_NOOBS) * (getstatmod(lf, A_IQ) / 100));
nposs = 0;
for (i = 0; i < lf->nlos; i++) {
if (lf->los[i] != lf->cell) {
object_t *o;
for (o = lf->los[i]->obpile->first ; o ; o = o->next) {
if (!hasflag(o->flags, F_NOPICKUP) &&
getobmass(o) <= maxweight) {
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
poss[nposs] = o;
nposs++;
if (nposs >= MAXPILEOBS) break;
}
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
if (nposs >= MAXPILEOBS) break;
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
}
// should always be true since we check this in aispellok
if (nposs > 0) {
if (spellob) *spellob = poss[rnd(0,nposs-1)];
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
// cast spell at the victim
if (spelllf) *spelllf = victim;
if (spellcell) *spellcell = victim->cell;
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
/*
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (spelltype->id == OT_S_CHARM) {
lifeform_t *l;
l = getnearbypeaceful(lf);
if (l) {
if (spelllf) *spelllf = l;
if (spellcell) *spellcell = l->cell;
if (spellob) *spellob = NULL;
}
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
*/
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
} else if (spelltype->id == OT_S_SUPERHEAT) {
// get all potions
object_t *poss[MAXPILEOBS],*o;
int nposs = 0;
for (o = lf->pack->first ; o ; o = o->next) {
if (hasflag(o->flags, F_DRINKABLE)) {
poss[nposs++] = o;
}
}
assert(nposs); // aispellok should have checked.
if (spelllf) *spelllf = NULL;
if (spellcell) *spellcell = victim->cell;
if (spellob) *spellob = poss[rnd(0,nposs-1)];
2011-03-04 12:22:36 +11:00
}
}
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
return B_FALSE;
}
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
cell_t *aigettargetcell(lifeform_t *lf, flag_t **targflag) {
flag_t *f = NULL;
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
if (targflag) {
*targflag = NULL;
}
f = hasflag(lf->flags, F_TARGETCELL);
if (!f) return NULL;
if (targflag) {
// set this even if the actual cell is invalid.
*targflag = f;
}
return getcellat(lf->cell->map, f->val[0], f->val[1]);
}
object_t *aigetwand(lifeform_t *lf, enum FLAG purpose) {
object_t *o;
object_t *poss[MAXPILEOBS];
int nposs = 0;
for (o = lf->pack->first ; o ; o = o->next) {
// wand with charges left?
if ((o->type->obclass->id == OC_WAND) && (getcharges(o) > 0)) {
// do we know how to use it?
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (canoperate(lf, o, NULL) && hasflag(o->flags, purpose)) {
2011-03-16 15:45:46 +11:00
// TODO: if castatself, check whether we actually need to (ie. healing, invis, etc)
poss[nposs] = o;
nposs++;
}
}
}
if (nposs > 0) {
return poss[rnd(0,nposs-1)];
}
return NULL;
}
// returns targetcell flag on success
* [+] 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
flag_t *aigoto(lifeform_t *lf, cell_t *c, enum MOVEREASON why, void *data, int timelimit) {
int db = B_FALSE;
* [+] 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 whybuf[BUFLEN];
flag_t *f = NULL;
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
if (lfhasflagval(lf, F_DOESNTMOVE, NA, NA, B_TRUE, NULL)) return NULL;
* [+] 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
if (lfhasflagval(lf, F_IGNORECELL, c->x, c->y, NA, NULL)) {
char lfname[BUFLEN];
getlfname(lf, lfname);
if (db) dblog(".oO { %s cannot go to targecell %d,%d due to f_ignorecell flag }", lfname, c->x, c->y);
* [+] 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
return NULL;
}
if (db) {
char lfname[BUFLEN];
getlfname(lf, lfname);
dblog(".oO { %s going to targecell: %d, %d }", lfname, c->x, c->y);
}
// kill previous target flags.
killflagsofid(lf->flags, F_AIPATH);
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
killflagsofid(lf->flags, F_TARGETLF);
killflagsofid(lf->flags, F_TARGETCELL);
* [+] 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
if (why == MR_LF) {
snprintf(whybuf, BUFLEN, "%d", ((lifeform_t *)data)->id);
* [+] 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
} else if (why == MR_OB) {
snprintf(whybuf, BUFLEN, "%ld", ((object_t *)data)->id);
* [+] 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
} else {
strcpy(whybuf, "");
}
if ((timelimit == PERMENANT) || (timelimit == UNLIMITED)) {
* [+] 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
f = addflag(lf->flags, F_TARGETCELL, c->x, c->y, why, whybuf);
} else {
* [+] 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
f = addtempflag(lf->flags, F_TARGETCELL, c->x, c->y, why, whybuf,timelimit);
}
* [+] 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
return f;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_attack_existing_target(lifeform_t *lf) {
lifeform_t *target;
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
int db = B_FALSE;
//enum ATTRBRACKET iqb;
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
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// do we already have a target we are attacking?
target = gettargetlf(lf);
if (!target) return B_FALSE;
//iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { i have a target: lfid %d (%s). }", target->id, target->race->name);
// target dead or unconscious?
if (isdead(target) || isunconscious(target)) {
if (db) dblog(".oO { my target is dead/ko'd }", target->id, target->race->name);
loseaitargets(lf);
if (areallies(lf, player) && cantalk(lf)) {
char text[BUFLEN];
- [+] change real_getlfname(): - [+] take lifeform_t * for usevis instead of boolean - [+] add new option "useorigrace" for shapechangers - [+] whips - [+] F_WHIP - [+] new skill: sk_whips - [+] basic trais: - [+] high accuracy - [+] lowish dam - [+] pierce/slash/bash damage - [+] some will let you cast 'snatch' and suck - [+] no crit chance - [+] examples: - [+] bull whip (lowest damage) - [+] flail (ie. chain whip ,change type from club to whip) - [+] heavy flail - [+] metal-tipped whip (flail with higher acc) - [+] barbed whip (causes piercing damage as well) - [+] io.c @@ should take extradam into account - [+] describbeob() should show F_EXTRADAM - [+] change morale values - this shoudl default to your TR, otherwise f_morale replaces it. - [+] CRASH in doknowledgelist() - [+] hecta bug: fixed! - [+] You bisect the kobold! The dying kobold shouts "Nooooo!". Hecta's voice grates against your mind: "You allowed my sacrifice to escape!" - [+] is this because i'm calling "flee" after the lf takes fatal damage but before die() is called? - [+] NO, because flee() checks isdead(lf) - [+] it's happening when i kill a monster, and another one of the same type sees me! - [+] change: only trigger this is the player has previously attacked the monster - [+] replace fire titan with balrog - [+] You bisect the giant gnat! The dying giant gnat shouts "Nooooo!". - [+] fixed. - [+] boggart -brown 'n' - [+] made of wood - [+] cause things to disappear - [+] cause milk to sour (low power blight) - [+] scared of salt - [+] demandgold - [+] briar thrash (spiky) - yellow 'T' (grab) - [+] bingebark - red 'T'. wants edible, canwill snatch - [+] leshy (human with leaves) - green 'h' - [+] manticore - red 'm'' - [+] lion, bat lings, man head, tail tipped with iron spikes - [+] carnivore - [+] human sized - [+] shoots 1-6 spikes. each spike does 1d6. too much!! - [+] change this to be 5d3 damage per volley. - [+] ie missiledam 4d3 - [+] can do this once every 50 turns. - [+] can fly - [+] claws - 1d3 1d3 - [+] want gold (non covet)
2012-03-29 07:17:47 +11:00
real_getlfname(target, text, NULL, B_NOSHOWALL, B_CURRACE);
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
sayphrase(lf, SP_ALLY_TARGETKILL, SV_SHOUT, NA, text, target);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
return B_FALSE;
}
// aquatic grabbers will try to drag their prey into the water
if (lfhasflagval(lf, F_GRABBING, target->id, NA, NA, NULL) && isaquatic(lf) ) {
if ( hasobwithflag(lf->cell->obpile, F_DEEPWATER) &&
!hasobwithflag(target->cell->obpile, F_DEEPWATER)) {
// move away!
if (!moveawayfrom(lf, target->cell, DT_ORTH, B_FALSE, B_TRUE, B_ONPURPOSE)) {
return B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
}
// try to move towards them.
if (!aimovetolf(lf, target, B_TRUE)) {
// success
return B_TRUE;
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// i am bored - look for something to do!
int ai_bored(lifeform_t *lf, lifeform_t *master, int icanattack) {
int db = B_FALSE,n,i;
lifeform_t *newtarget = NULL;
flag_t *retflag[MAXCANDIDATES];
int nretflags = 0;
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
flag_t *f,*enraged;
enraged = lfhasflag(lf, F_RAGE);
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// not attacking anyone in particular
if (db) dblog(".oO { i do not have a target or can't move towards it. }");
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
// special cases
if (lf->race->id == R_IVYRAPID) {
if (cancast(lf, OT_S_CLONE, NULL)) {
// try to expand
if (!castspell(lf, OT_S_CLONE, lf, NULL, lf->cell, NULL, NULL)) {
// stop reproducing
f = hasflagval(lf->flags, F_CANWILL, OT_S_CLONE, NA, NA, NULL);
if (f) killflag(f);
return B_TRUE;
}
}
}
// monsters will return to their lairs
f = lfhasflag(lf, F_STAYINROOM);
if (f && (f->val[0] != NA)) {
int roomid;
cell_t *where;
roomid = f->val[0];
// find the closest cell of my home room
where = getclosestroomcell(lf, roomid);
// move towards my shop. note that if the player leaves then
// re-enters this map, they will find that we have instantly
// teleported there (see mapentereffects).
if (aigoto(lf, where, MR_OTHER, NULL, PERMENANT)) {
// success
return B_TRUE;
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
}
}
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
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (!lfhasflag(lf, F_STUNNED)) {
lifeform_t *hateposs[MAXCANDIDATES],*poss[MAXCANDIDATES];
int nposs = 0, nhateposs = 0;
if (db) dblog(".oO { looking for a target . }");
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// look for any hated lfs or enemies
newtarget = NULL;
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
for (n = 0; n < lf->nlos; n++) {
lifeform_t *who;
if (lf->los[n] != lf->cell) { // not ourself
who = lf->los[n]->lf;
if (who && !isdead(who) && !isunconscious(who) && cansee(lf, who) && isvalidattacktarget(lf, who)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int chance = 100; // chance that we ('lf') will attack 'who'
int reachpenalty;
// will usually ignore targets who we can't reach
if (!canreach(lf, who, &reachpenalty) && !aigetrangedattack(lf, who, NULL, NULL)) {
// 1 size too small = 53% chance to attack
// 1 size too small = 6% chance to attack
chance = 100 - (reachpenalty*47);
if (db) dblog(".oO { target %d (%s) is %d sizes out of reach. %d%% chance to ignore }",
who->id, who->race->name,
reachpenalty, reachpenalty*47);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else if (isresting(who)) {
// targets sleeping in a tent will probably be ignored
object_t *restob;
restob = getrestob(who);
if (restob) {
switch (restob->type->id) {
case OT_TENT: chance = 5; break;
case OT_MOTEL: chance = 0; break;
default: break;
}
}
}
- [+] announce when a web spell hits you - [+] grammar: xxx "flys" into view. need getmoveverbplural() - [+] make yumi's "well, that seems unfair" only work when killed by a mosnter which didn't chase you up. - [+] no unarmed skill descriptions!! - [+] remove pain ability from stink beetle - [+] cockroach - with just high armour rating (10) - [+] bajeetle - lower armour but bite causes pain - [+] yumi - only allow you to gain piety from letting a monster run away ONCE per mosnter - [+] new monster: petrifungus - [+] give merciful fighting for novoice adanced combat - [+] monsters should lose targets when eating - [+] vault: window in wall - [+] fix werewolf hiding code for Rattus (when medium sized) - [+] "you hear a muffled slithering" - this shouldnt be loud enough to go through walls! - [+] selected Evil Adventurer. alignment ended up as NONE - [+] have added debugging - [+] wait for it to happen again - [+] put in code to check at start of turn whethe r my alignment just changed. - [+] my alignment seems to have changed to NONE - [+] POLYMORPH is causing this. - [+] fixed - [+] commando should have low level version of gunblade - [+] electromachete - low pierce + low electric - [+] gunblade - med slash + low explosive - [+] boomstick - med bash + high explosive - [+] commando should start with a few energy packs (need to add this object) - [+] l2 tech - [+] operate it to recharge tech which has charges. - [+] like a scroll of replenishment, but only for tech. - [+] when monsters follow you up stairs, they should face you - [+] jewelry store should buy watches - [+] when exploding cells, remember who caused it - [+] new arg: lifeform_t *causedby - [+] use this when dealing damage, so that it counts as player kill (etC) - [+] explodeob - [+] monks sohuld be very resistant to being scared - [+] gauntlets (or other hard gloves) should increase unarmed damge by 1 - [+] seems almost impossible to break locks on chests by bashing.... check the calc. - [+] fixed. - [+] ekrub should accept sacrifices of plant matter - [+] sebastian - absorbs physical damage to increase damage. - [+] after first hit: +1dam, knockback - [+] after 2nd: +2 dam - [+] etc - [+] vuln to non-physical (fire, magic, cold, elec, etc) - [+] cockroach, plague rat should taint anything it walks on - [+] fix up morale checks. 30 should be 100. therefore: multiply by 3 and a bit. - [+] CRASH during wish for Power - [+] bug: - [+] You whack the pixie. The pixie turns to face you. The pixie turns to flee from you! Amberon's voice booms out from the heavens: "You dare attack an innocent?" Amberon's voice booms out from the heavens: "You dare attack an innocent?" The pixie gestures at itself. - [+] baba yaga's hut - [+] shoudln't be able todrink potions - [+] shouldn't take criticals - [+] don't annoucne time during combat - [+] bug after giving gold to a bandit: - [+] $ - 0 gold dollars - [+] lore: tech... every level says' no special effects' - [+] bug: Strength: 24 (very weak, +1 dmg)* - [+] bug in getstrdammod() - [+] bug: A brown snake walks into view. - [+] should be 'slithers' - [+] mud shouldnt make shoes wet - [+] refridgerator should only have meat in it - [+] some jobs which have whip skills - [+] scourge should always start with a whip. - [+] fighter should be able to pick it - [+] aligned temples sohuld be half price (or free if god is pleased?) - [+] SM_DETECTCURSE - [+] SM_PURCHASEITEMS - [+] SM_BLESS - [+] SM_MIRACLE - [+] re-introduce monster zoos vault - [+] bullwhip shouldn't be able to dull! - [+] banana skin not slippery anoymore - [+] slightly boost player's starting hp - [+] why can vampire bat reach me to damage by boots/trousers? - [+] check out canreachbp() in lf.c - [+] maybe fixed - [+] commando's starting gun should start with normal bullets, never silver - [+] klikirak should grant fire powers - [+] cast pyromania when you pray - [+] gift: immolate every 20 turns - [+] fix trytokillobs() - this might fix some of the infinite loops i'm getting during level creation. - [+] klikirak should give slightly more xp for sacrifing objects - [+] hawks should swoop more often - [+] book colours are incorrect (ie. "red book" isn't red) - [+] i saw "something burns!" while resting... - [+] make hollow trees be green - [+] blessed amnesia shouldn't do anything bad - [+] armour stores shouldn't get hot! - [+] earthworm should only divide from slash damage - not bash - [+] queen ant shoudl be able to summon lots of soldiers - [+] staircases should be on top of ash piles when draring them!! - [+] in fact, staircases should be on top of _everything_ - [+] sanctuary potion should put out fires under you! (or anything with walkdam) - [+] shouldn't be able to smell by's hut - [+] wood wall should be diggable with pickaxe - [+] does shovel actually work? no, but it does now. - [+] dungeon level name - if it has a swamp vault, level is just called "the swamp" - [+] fire damage to bread = toast - [+] only say "the light here is a bit dim" etc if it's different form your previous level - [+] weapon stores shouldn't appear in baba yaha's hut! - [+] i think i said "weapon" but it turned into weapon store. - [+] works in a wish...... is this only a problem in a vault? - [+] test agian..... - [+] during summon mosnter, don't say 'the xxx starts to fly!' before "the xxx appears" - [+] when i read a create monster scroll, this _doesnt_ happen. - [+] when i cast summon small animals and a brian bat appears, it _doesnt_ happen - [+] only seems to happen whan a mosnter uses a summon spell - [+] maybe to do with finalisemonster() or "autogen" being set in addmonster? - [+] fixed now? - [+] walking on water shouldn't extinguish a flaming weapon! - [+] losehp_real needs a 'bodypart' argument - [+] klikirak should like killing plants - [+] do something to stop kilkirak worhipers from scarificeing the entire forest! - [+] if you attack a plant lf in the sylvan forest - [+] nearby plants attack. - [+] 33% chance of a treant: - [+] same if you destroy a plant object - [+] takedamage() needs a "fromlf" arg - [+] or sacrifice one. - [+] _warning_ if you attack a plant object or plant lf. (but don't kill it) - [+] WISDOM warnings: - [+] if you are about to attack an OC_FLORA object in the woods (and have felt the woods get angry once before) - [+] if you are about to attack a RC_PLANT lf in the woods - [+] if you are about to attack a CT_WALLTREE cell in the woods - [+] remove base 'wizard' class...
2012-08-12 15:04:49 +10:00
// monsters won't hurt things in the sylvan woods after being
// warned once...
if (lfhasflag(lf, F_SYLVANWARN) &&
(lf->cell->map->region->rtype->id == BH_WOODS) &&
(who->race->raceclass->id == RC_PLANT)) {
chance = 0;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (pctchance(chance)) {
- [+] replace "fireplace" with "brazier" - [+] make non-lethal kills (ie. knockouts) display in grey rather than green - [+] ability: merciful fighting? always does bashing damage, always ko. - [+] done - [+] Chatting to gods shouldn't work - [+] bug: when running with shift+dir, i'm running past corridors. - [+] when announcing skill gains, say if they are from a level. - [+] set lifetime to FROMJOB when giving them. - [+] if lifetime = FROMJOB, ""you can now use the ability 'xxx' (warrior skill)" - [+] grenade/c4 explosions should be able to damage cells! - [+] change grenades to have bigger radius (dtorth 1) - [+] automatically call "fireat" for grenades - [+] impement this - [+] make the timer shorter! - [+] add extra checks to stop monsters from attacking allies - [+] replace "insane"monster behaviour with F_TERRITORIAL v0=range. - [+] will atatck anything else visible within range xxx - [+] grave sprite should be able to see in the dark - [+] instead of saying "An orc [drunk]", change getlfname to return "a drunken orc" etc - [+] when you throw an object at someone in a wall, it should fall onto the ground in front, NOT the wall itself! - [+] show how MUCH high/low str/agi will affect weapon damage/accuracy - [+] different shoddy/masterwork text based on weapon types - [+] bug: monsters never bleed from injuries! - [+] another bug in getavgdam - negative accuracy returns negative damage since we modify damage by accuracy! - [+] within this function, limit accuracy to range 0-100 - [+] bug with options - opt->id never being initialised! - [+] don't apply "behaviours" to anythuing other than humanoids. - [+] increase missile accuracy if you are above your target - [+] (ie you are flying higher them them) - [+] getflightsizemod()
2012-01-18 07:46:23 +11:00
flag_t *f;
- [+] delvers should always want money for info, unless you are a delver too. - [+] mirror image (mental) - [+] varpower - [+] makes power 'clone' lfs who look the same as caster - [+] ie. same race. - [+] also same job/armour/weps? - [+] add f_noxp - [+] add f_nocorpse - [+] add f_summonedby so they vanish when the caster dies - [+] add f_phantasm - [+] vanish after _power_ hits, - [+] attacks do 0 damage - [+] don't announce innefectual attacks - [+] dont cast spells or use abilities - [+] petify() them if made by the player - [+] force them to stay close. - [+] in io.c or getlfname, show "[clone]" if it has f_phantasm and was created by player - [+] mosnters try to attack them. - [+] once one gets hit enough times, it disappears - [+] if the caster dies or changes level, they disappear. - [+] can't talk to them - [+] their obejcts vanish when they die - [+] don't talk - [+] make Yumi more about forgiving silly mistakes and avoiding instakills - [+] remove liking of healing - [+] remove like of healing spells - [+] takes a long time to anger. - [+] aviod traps (bamf you away before they trigger) - [+] prayers: - [+] resist stoning (pray while appropriate creatures around) - [+] resist paralysis (pray while appropriate creatures around) - [+] sleep on enemies - [+] passive powers: - [+] always warn as if wisdom is high (passive) - [+] always save when killed right after using stairs (passive) "well, that seemed unfair." - [+] gift: - [+] auto sixth sense - [+] potions of restoration - [+] ring of miracles - [+] shouldn't be able to Offer while enraged. - [+] don't lose stamina while caffeinated - [+] new vault: pit with walkway around it - [+] bug: when worshipping yumi you get "you kill xxx" but they're still alive - [+] ... but they're still alive! - [+] ... for yumi, move KO chance from losehp() to attacklf(). - [+] do the check BEFORE setting 'fatal' - [+] pass forceko to losehp_real - [+] bug: adjustdamhardness should only trigger when ismeleedam() is true, not isphysicaldam() - [+] greatly reduce motel cost - [+] change order in attack.c: apply damage THEN announce, to deal with KO - [+] do it. - [+] test KO code. - [+] then check that feign death still works - [+] demonskin vest should be flammable or vulnerable to fire. - [+] time to get up should depend on size. - [+] less than human: shortnone - [+] human: normal - [+] larger than human: longer - [+] expert unarmed now gives you 'flip' - [+] reduce damage done by low-level monsters - [+] change resoration into a spell - [+] implement - [+] test - [+] new spell: ressurection - [+] corpses need to remember their lf's level - [+] test - [+] godstone of life - revives/restores all - [+] rename "confiscate" to "yoink", and make it take a random object at power 1, selected at power 2 - [+] gods should attack player if they are Enraged or Furious - [+] is STR calc to see if you can push a boulder still working? - [+] change to wizards: - [+] start at novice in all magic skills (but don't gain initial spells) - [+] killing undead should please glorana LOTS. because it's hard to gain piety with her otherwise. - [+] restoration spells/potion should hurt undead - [+] healing spells/potions should hurt undead - [+] immolate shouldnt work if there is aleady a fire tehre. CODE FOR WINNING THE GAME: - [+] get at least one godstone - [+] exit the dungeon - [+] find the portal to the realm of gods - [+] opposing god should appear once you pick up a godstone, and tell you what to do next. - [+] "come to the realm of gods and use it to destroy (related god)" - [+] "or if you lack the courage, give it to me!" - [+] "you will find a portal on the surface" - [+] use the portal to teleport to realm of gods - [+] implement text for all gods... - [+] god text in wt_god - should say 'but you werent meant to replace them!' - [+] EITHER: - [+] challenge and defeat the god related to this godstone (more points. "Crowned the god of xxx.") - [+] TEST - [+] offer the godstone to the godstone's opposing god (less points, "Ascended to demigod-hood.") - [+] implement - [+] TEST GODSTONES: - [+] klikirak: rage - [+] done - [+] (make this one have fire effects too) - [+] glorana: life - [+] Felix shouldn't be able to yoink the godstone off you! - [+] Write up the rest of the Godstone finding text..... - [+] magic - [+] battle - [+] life - [+] mercy - [+] you can't hurt gods unless you - [+] a) have their godstone - [+] b) are in the realm of gods
2012-02-17 16:16:45 +11:00
if ((getraceclass(lf) == RC_GOD) &&
(getpietylev(lf->race->id, NULL, NULL) <= PL_FURIOUS) &&
isplayer(who)) {
if (nhateposs < MAXCANDIDATES) {
if (db) dblog(".oO { i am an angry god - found player lfid %d (%s) ! }",
who->id, who->race->name);
hateposs[nhateposs++] = who;
}
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
} else if (lfhasflag(lf, F_HATESALL) || enraged) {
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
if (nhateposs < MAXCANDIDATES) {
if (db) dblog(".oO { hate everything - found lfid %d (%s) ! }",who->id, who->race->name);
hateposs[nhateposs++] = who;
}
break;
} else if (lfhasflagval(lf, F_HATESRACE, who->race->id, NA, NA, NULL) ||
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
lfhasflagval(lf, F_HATESRACE, who->race->baseid, NA, NA, NULL) ) {
- [+] replace "fireplace" with "brazier" - [+] make non-lethal kills (ie. knockouts) display in grey rather than green - [+] ability: merciful fighting? always does bashing damage, always ko. - [+] done - [+] Chatting to gods shouldn't work - [+] bug: when running with shift+dir, i'm running past corridors. - [+] when announcing skill gains, say if they are from a level. - [+] set lifetime to FROMJOB when giving them. - [+] if lifetime = FROMJOB, ""you can now use the ability 'xxx' (warrior skill)" - [+] grenade/c4 explosions should be able to damage cells! - [+] change grenades to have bigger radius (dtorth 1) - [+] automatically call "fireat" for grenades - [+] impement this - [+] make the timer shorter! - [+] add extra checks to stop monsters from attacking allies - [+] replace "insane"monster behaviour with F_TERRITORIAL v0=range. - [+] will atatck anything else visible within range xxx - [+] grave sprite should be able to see in the dark - [+] instead of saying "An orc [drunk]", change getlfname to return "a drunken orc" etc - [+] when you throw an object at someone in a wall, it should fall onto the ground in front, NOT the wall itself! - [+] show how MUCH high/low str/agi will affect weapon damage/accuracy - [+] different shoddy/masterwork text based on weapon types - [+] bug: monsters never bleed from injuries! - [+] another bug in getavgdam - negative accuracy returns negative damage since we modify damage by accuracy! - [+] within this function, limit accuracy to range 0-100 - [+] bug with options - opt->id never being initialised! - [+] don't apply "behaviours" to anythuing other than humanoids. - [+] increase missile accuracy if you are above your target - [+] (ie you are flying higher them them) - [+] getflightsizemod()
2012-01-18 07:46:23 +11:00
if ((nhateposs < MAXCANDIDATES) && !areallies(lf, who)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { found a hated target - lfid %d (%s) ! }",who->id, who->race->name);
hateposs[nhateposs++] = who;
}
break;
- [+] bug: getobvlue price keeps going up - [+] make food poisoning last longer! - [+] bug: pet starting in water - [+] ability to pay at shops using gems? but no change. - [+] implement - [+] require speech skill at a certain level (novice) - [+] reveal attack location for unseen attacks - [+] bug: poisonbolt spell shouldn't cause fire damage to objects! - [+] return to your original form after dying when polymorphed, but just retain SOME hp - [+] new spell: shapeshift - [+] like polymorph but only affects yourself and always controlled - [+] you have to pick something you can see - [+] spell power determiens hitdice you can copy - [+] purify food now works on all your objects, not just one - [+] Nature god(farming, creation) - [+] Ekrub - [+] doesn't like wyrms because they destroy things? - [+] objects - [+] has a pitchfork vs dragons - [+] longbow of xxx - [+] sun hat - [+] overalls - [+] gloves - [+] effects: - [+] canwill all nature spells - [+] likes - [+] killing animals (but only while hungry) - [+] killing dragons - [+] casting nature spells - [+] creating objects or lfs (wish, monsters, food) - [+] dislikes: - [+] destroying objects - [+] attackob() - [+] throwing a flask which shatters - [+] crush objects underfoot - [+] via non-nature spells...? - [+] poison - [+] attacking plants - [+] casting poison spells (same with other antipoison gods!) - [+] sacrifice: - [+] animal corpses - [+] dragon corpses - [+] pray: - [+] battle: - [+] will come to your aid against wyrms - [+] OTHERWISE: - [+] entangle enemies - [+] lightning - [+] summon plants to help you - [+] nonbattle: - [+] purify food on player - [+] THEN one of the following: - [+] cure poison - [+] fix hunger or give food - [+] heal - [+] give ammo (if ranged weapon equipped and out of ammo) - [+] give it. - [+] make it "of seeking" (ie. always hits) - [+] mend armour - [+] bless armour - [+] gifts - [+] ability: calm animals, power 10 - [+] can shapeshift into a bear - [+] resist poison - [+] resist cold - [+] ranged weapon - [+] magic ammo for ranged weapons - [+] angry (minor) - [+] no nature spells work while god is angry ? - [+] taint your food and any food you touch - [+] summons entangling vines around you - [+] angry (major) - [+] one of: - [+] cloudkill - [+] summon storm - [+] surround you with sawgrass
2012-02-01 12:31:36 +11:00
} else if (lfhasflagval(lf, F_HATESRACECLASS, who->race->raceclass->id, NA, NA, NULL) ) {
if ((nhateposs < MAXCANDIDATES) && !areallies(lf, who)) {
if (db) dblog(".oO { found a hated raceclass target - lfid %d (%s) ! }",who->id, who->race->name);
hateposs[nhateposs++] = who;
}
break;
- [+] replace "fireplace" with "brazier" - [+] make non-lethal kills (ie. knockouts) display in grey rather than green - [+] ability: merciful fighting? always does bashing damage, always ko. - [+] done - [+] Chatting to gods shouldn't work - [+] bug: when running with shift+dir, i'm running past corridors. - [+] when announcing skill gains, say if they are from a level. - [+] set lifetime to FROMJOB when giving them. - [+] if lifetime = FROMJOB, ""you can now use the ability 'xxx' (warrior skill)" - [+] grenade/c4 explosions should be able to damage cells! - [+] change grenades to have bigger radius (dtorth 1) - [+] automatically call "fireat" for grenades - [+] impement this - [+] make the timer shorter! - [+] add extra checks to stop monsters from attacking allies - [+] replace "insane"monster behaviour with F_TERRITORIAL v0=range. - [+] will atatck anything else visible within range xxx - [+] grave sprite should be able to see in the dark - [+] instead of saying "An orc [drunk]", change getlfname to return "a drunken orc" etc - [+] when you throw an object at someone in a wall, it should fall onto the ground in front, NOT the wall itself! - [+] show how MUCH high/low str/agi will affect weapon damage/accuracy - [+] different shoddy/masterwork text based on weapon types - [+] bug: monsters never bleed from injuries! - [+] another bug in getavgdam - negative accuracy returns negative damage since we modify damage by accuracy! - [+] within this function, limit accuracy to range 0-100 - [+] bug with options - opt->id never being initialised! - [+] don't apply "behaviours" to anythuing other than humanoids. - [+] increase missile accuracy if you are above your target - [+] (ie you are flying higher them them) - [+] getflightsizemod()
2012-01-18 07:46:23 +11:00
} else if ( ((f = lfhasflag(lf, F_TERRITORIAL)) != NULL) &&
(getcelldist(who->cell, lf->cell) <= f->val[0]) ) {
if ((nhateposs < MAXCANDIDATES) && !areallies(lf, who)) {
if (db) dblog(".oO { territorial and found target in range - lfid %d (%s) ! }",who->id, who->race->name);
hateposs[nhateposs++] = who;
}
break;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else if (!nhateposs && areenemies(lf, who)) { // dont check if we've already found a hated target
if (nposs < MAXCANDIDATES) {
if (db) dblog(".oO { found an enemy target - lfid %d (%s) ! }",who->id, who->race->name);
poss[nposs++] = who;
}
} else {
getflags(lf->flags, retflag, &nretflags, F_HATESRACEWITHFLAG, F_NONE);
for (i = 0; i < nretflags; i++) {
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
if (lfhasflagval(who, retflag[i]->val[0], retflag[i]->val[1], retflag[i]->val[2], NA, NULL) &&
- [+] replace "fireplace" with "brazier" - [+] make non-lethal kills (ie. knockouts) display in grey rather than green - [+] ability: merciful fighting? always does bashing damage, always ko. - [+] done - [+] Chatting to gods shouldn't work - [+] bug: when running with shift+dir, i'm running past corridors. - [+] when announcing skill gains, say if they are from a level. - [+] set lifetime to FROMJOB when giving them. - [+] if lifetime = FROMJOB, ""you can now use the ability 'xxx' (warrior skill)" - [+] grenade/c4 explosions should be able to damage cells! - [+] change grenades to have bigger radius (dtorth 1) - [+] automatically call "fireat" for grenades - [+] impement this - [+] make the timer shorter! - [+] add extra checks to stop monsters from attacking allies - [+] replace "insane"monster behaviour with F_TERRITORIAL v0=range. - [+] will atatck anything else visible within range xxx - [+] grave sprite should be able to see in the dark - [+] instead of saying "An orc [drunk]", change getlfname to return "a drunken orc" etc - [+] when you throw an object at someone in a wall, it should fall onto the ground in front, NOT the wall itself! - [+] show how MUCH high/low str/agi will affect weapon damage/accuracy - [+] different shoddy/masterwork text based on weapon types - [+] bug: monsters never bleed from injuries! - [+] another bug in getavgdam - negative accuracy returns negative damage since we modify damage by accuracy! - [+] within this function, limit accuracy to range 0-100 - [+] bug with options - opt->id never being initialised! - [+] don't apply "behaviours" to anythuing other than humanoids. - [+] increase missile accuracy if you are above your target - [+] (ie you are flying higher them them) - [+] getflightsizemod()
2012-01-18 07:46:23 +11:00
!areallies(lf, who)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { found a target with hated flags - lfid %d (%s) ! }",who->id, who->race->name);
hateposs[nhateposs++] = who;
}
}
}
}
}
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
}
}
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_FALSE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (nhateposs) {
newtarget = hateposs[rnd(0,nhateposs-1)];
} else if (nposs) {
newtarget = poss[rnd(0,nposs-1)];
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (newtarget) {
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
if (aiattack(lf, newtarget, aigetchasetime(lf))) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// failed for some reason. maybe target was feigning
// death?
if (db) dblog(".oO { setting a new target via aiattack failed! }");
} else {
// then move towards them...
if (db) dblog(".oO { moving towards my new target (%d,%d) -> (%d,%d) }", lf->cell->x, lf->cell->y,
newtarget->cell->x, newtarget->cell->y);
if (icanattack) {
if (!movetowards(lf, newtarget->cell, DT_ORTH, B_FALSE)) {
turntoface(lf, newtarget->cell);
return B_TRUE;
}
} else {
if (db) dblog(".oO { won't move towards target - i have no weapon. }");
}
}
} else {
// god with no targets?
if (lf->race->raceclass->id == RC_GOD) {
- [+] delvers should always want money for info, unless you are a delver too. - [+] mirror image (mental) - [+] varpower - [+] makes power 'clone' lfs who look the same as caster - [+] ie. same race. - [+] also same job/armour/weps? - [+] add f_noxp - [+] add f_nocorpse - [+] add f_summonedby so they vanish when the caster dies - [+] add f_phantasm - [+] vanish after _power_ hits, - [+] attacks do 0 damage - [+] don't announce innefectual attacks - [+] dont cast spells or use abilities - [+] petify() them if made by the player - [+] force them to stay close. - [+] in io.c or getlfname, show "[clone]" if it has f_phantasm and was created by player - [+] mosnters try to attack them. - [+] once one gets hit enough times, it disappears - [+] if the caster dies or changes level, they disappear. - [+] can't talk to them - [+] their obejcts vanish when they die - [+] don't talk - [+] make Yumi more about forgiving silly mistakes and avoiding instakills - [+] remove liking of healing - [+] remove like of healing spells - [+] takes a long time to anger. - [+] aviod traps (bamf you away before they trigger) - [+] prayers: - [+] resist stoning (pray while appropriate creatures around) - [+] resist paralysis (pray while appropriate creatures around) - [+] sleep on enemies - [+] passive powers: - [+] always warn as if wisdom is high (passive) - [+] always save when killed right after using stairs (passive) "well, that seemed unfair." - [+] gift: - [+] auto sixth sense - [+] potions of restoration - [+] ring of miracles - [+] shouldn't be able to Offer while enraged. - [+] don't lose stamina while caffeinated - [+] new vault: pit with walkway around it - [+] bug: when worshipping yumi you get "you kill xxx" but they're still alive - [+] ... but they're still alive! - [+] ... for yumi, move KO chance from losehp() to attacklf(). - [+] do the check BEFORE setting 'fatal' - [+] pass forceko to losehp_real - [+] bug: adjustdamhardness should only trigger when ismeleedam() is true, not isphysicaldam() - [+] greatly reduce motel cost - [+] change order in attack.c: apply damage THEN announce, to deal with KO - [+] do it. - [+] test KO code. - [+] then check that feign death still works - [+] demonskin vest should be flammable or vulnerable to fire. - [+] time to get up should depend on size. - [+] less than human: shortnone - [+] human: normal - [+] larger than human: longer - [+] expert unarmed now gives you 'flip' - [+] reduce damage done by low-level monsters - [+] change resoration into a spell - [+] implement - [+] test - [+] new spell: ressurection - [+] corpses need to remember their lf's level - [+] test - [+] godstone of life - revives/restores all - [+] rename "confiscate" to "yoink", and make it take a random object at power 1, selected at power 2 - [+] gods should attack player if they are Enraged or Furious - [+] is STR calc to see if you can push a boulder still working? - [+] change to wizards: - [+] start at novice in all magic skills (but don't gain initial spells) - [+] killing undead should please glorana LOTS. because it's hard to gain piety with her otherwise. - [+] restoration spells/potion should hurt undead - [+] healing spells/potions should hurt undead - [+] immolate shouldnt work if there is aleady a fire tehre. CODE FOR WINNING THE GAME: - [+] get at least one godstone - [+] exit the dungeon - [+] find the portal to the realm of gods - [+] opposing god should appear once you pick up a godstone, and tell you what to do next. - [+] "come to the realm of gods and use it to destroy (related god)" - [+] "or if you lack the courage, give it to me!" - [+] "you will find a portal on the surface" - [+] use the portal to teleport to realm of gods - [+] implement text for all gods... - [+] god text in wt_god - should say 'but you werent meant to replace them!' - [+] EITHER: - [+] challenge and defeat the god related to this godstone (more points. "Crowned the god of xxx.") - [+] TEST - [+] offer the godstone to the godstone's opposing god (less points, "Ascended to demigod-hood.") - [+] implement - [+] TEST GODSTONES: - [+] klikirak: rage - [+] done - [+] (make this one have fire effects too) - [+] glorana: life - [+] Felix shouldn't be able to yoink the godstone off you! - [+] Write up the rest of the Godstone finding text..... - [+] magic - [+] battle - [+] life - [+] mercy - [+] you can't hurt gods unless you - [+] a) have their godstone - [+] b) are in the realm of gods
2012-02-17 16:16:45 +11:00
if (onein(3) && (lf->cell->map->habitat->id != H_HEAVEN)) {
if (db) dblog(".oO { planeshifting home }");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// gods will planeshift away
if (!castspell(lf, OT_S_PLANESHIFT, lf, NULL, lf->cell, NULL, NULL)) {
return B_TRUE;
}
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// training
///////////////////////////////////////////////
- [+] when throwin gn aobject, warn if you have no LOF (just like spells) - [+] allow dodge/catch of thrown object when there is no thrower (ie. arrow traps) - [+] simplify monster spellcasting - [+] don't use any mp - [+] select power based on monster hit dice only - [+] monsters should cast spells less often - use f_castchance, default of 15% chance - [+] TEST - [+] you keep your own mpdice when polymorphing into a mosnter - [+] fxied: throw a tranq dart, then: - [+] The cockatrice loses consciousness. The cockatrice falls asleep. - [+] bug: can't operate a fridge on the ground cause it's too heavy to lift - [+] monsters generated on dark levels should always have seeindark 3-4 - [+] vending machines not working... fixed. - [+] in getchoicestr: - [+] if !showall, and if it shows a longdesc, then you hit backspace, longdesc should be cleared. - [+] show completion in a different colour - [+] bug: sometimes we seem to have map->room[x], but no cells with cell->room->id == thatid!! - [+] stop vaults from overlapping. - [+] taking too long to walk down levels - enforce max number of monster free turns - [+] inept weapon penalty should be slightly higher - [+] bad feeling check is too easy. - [+] skeletons should have f_noinjuries - [+] shouldn't check for slipping on things while swimming - [+] tweak how traps + perception skill impact search checks - [+] bug: sometimes we have no player start position. - [+] if the vault creation fails, restart map generation. - [+] only give study scroll ability at high spellcasting skill - [+] typo: ring (1 charges left) * [+] god effects when you die: - [+] pea soup should work in the cell in FRONT of you. - [+] bug: ring of control seems to work when you _weild_ it!! - [+] non-lethal weapons - [+] sword of mercy (at <1hp, ko) - [+] tranq dart - [+] add sleeptypes - [+] change all refernces to f_asleep->val[1] (now an enum) - [+] change "stirs in its slumber" if unconscious - [+] change all 'fallasleep' calls - [+] attacking a ko'd enemy with merciful weapon should do nothing. - [+] ai shouldn't target ko'd enemies - [+] ai should stop targetting people once they're dead/ko'd - [+] bashing damage should sometimes just knock unconscious instead of killing? - [+] if their hp would be >= -3, and onein(2) - [+] different body part names? "metal frame" instead of "body" - [+] implement F_BPNAME, v0=enum bodypart, text = name - [+] getbodypartname() needs a lf argument. - [+] once i add this, also make animals have "front legs" instead of "arms", "paws" rather than "hands" etc. - [+] fix calls to getbodypartname to pass in lf or null - [+] cyborg mods: - [+] can't wear most armour? - [+] need f_noarmouron - we HAVE this bp, but can't put armour on it. - [+] large rust damage from water - [+] if you have a bad feeling about an object, mark it as "[bad]" - [+] f_knownbad - [+] killing should anger the god of mercy
2011-09-22 12:00:16 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// need to train skills?
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
if (!enraged) {
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
if (readytotrain(lf) && safetorest(lf, NULL)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// special case - monsters don't need to actually rest to gain
// skills, although they DO still need to wait until the player
// is out of sight.
enhanceskills(lf);
}
- [+] magic map should be magical - [+] crash when generating monster warriors - [+] bug: calling taketime twice when attacks fail? - [+] (once in attackcell(), then again in attacklf() or attackob()) - [+] weapon changes: - [+] in general, lower accuracy for piercing weapons - [+] in general, raise accuracy for slashing / bashing weapons - [+] long piercing weapons (ie. spear) give you a 'thrust' ability (attack 2 cells away) - [+] long slashing weapons cannot be used if < 3 open cells around you (f_needspace) - [+] maybe: you can't "hear" your unseen ally if they are asleep - [+] need to draw after flying things swoop away, in case they block your view. - [+] raceslaying weapons - [+] dragon - dragonslaying - [+] animal - butchering - [+] plant - of blight - [+] undead - of divine power - [+] magic - of antimagic - [+] brand restriction - [+] brands: f_onlygoeson ot_xxx - [+] brands: f_onlygoesondt dt_xxx - [+] check this in brandappliesto - [+] "pyromania" spell - [+] for all fires or burning objects in sight: (implement getflamingobs() ) - [+] "the fire flares!" (fire objects regain full hp, burning flags gain lifetime) - [+] large fire obs:surround it with smaller ones. - [+] small fire obs: make bigger - [+] burning obs: make a small fire - [+] give it to red dragons - [+] ai casting... (if fire in sight) - [+] blue dragon - lightning - [+] ancient has chain lightning - [+] flood ? lowlevel - [+] gust of wind - [+] white dragon - cold - [+] pea soup - [+] hailstorm - [+] ancient: absolute zero ?
2011-11-08 06:39:43 +11:00
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// do we have armour which needs repairing?
if (getskill(lf, SK_ARMOUR) >= PR_SKILLED) {
if (db) dblog(".oO { do i have any armour to repair? }");
// just try to use the ability - it'll fail if we have nothing
// which we can repair.
if (!useability(lf, OT_A_REPAIR, NULL, NULL)) {
if (db) dblog(".oO { yes - done. }");
// success
return B_TRUE;
} else {
if (db) dblog(".oO { no armour to repair. }");
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
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
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// pet movement - note that pets will only rest if their
// master is resting. the normal rest code underneath this section
// will never be called.
if (master) {
//lifeform_t *master;
//master = findlf(lf->cell->map, mf->val[0]);
if (!aimovetolf(lf, master, B_FALSE)) {
// success
return B_TRUE;
}
}
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// resting / healing
///////////////////////////////////////////////
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
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
if (!enraged) {
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
// hide?
if (!ispetof(lf, player) && cancast(lf, OT_A_HIDE, NULL) && aispellok(lf, OT_A_HIDE, lf, F_AICASTTOFLEE)) {
if (db) dblog(".oO { trying to hide. }");
if (!useability(lf, OT_A_HIDE, lf, lf->cell)) {
if (db) dblog(".oO { success! }");
return B_TRUE;
}
}
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// need to heal?
if (needstorest(lf, NULL) && !hasflag(lf->flags, F_RAGE) && !lfhasflag(lf, F_NORESTHEAL)) {
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
enum ERROR why;
if (safetorest(lf, &why) || (why == E_TOOSOON)) {
if (db) dblog(".oO { resting to heal }");
rest(lf, B_TRUE);
return B_TRUE;
}
}
// pretending to be an object? revert.
f = lfhasflag(lf, F_PRETENDSTOBE);
if (f) {
if (safetorest(lf, NULL)) {
object_t *oo;
oo = addobfast(lf->cell->obpile, f->val[0]);
if (oo) {
killflagsofid(oo->flags, F_SIZE);
addflag(oo->flags, F_SIZE, getlfsize(lf), NA, NA, NULL);
// replace contents object
if (oo->contents->first && strlen(f->text)) {
killob(oo->contents->first);
addob(oo->contents, f->text);
}
// kill original monster
addflag(lf->flags, F_NODEATHANNOUNCE, B_TRUE, NA, NA, NULL);
addflag(lf->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
addflag(lf->flags, F_XPVAL, 0, NA, NA, NULL);
lf->hp = 0;
}
}
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
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
* [+] fire should set equipped obs on fire too * [+] trapped doors/objcets * [+] make careful walking have less chance of triggering some traps (eg tripwire) - [+] dex penalty when drunk - [+] require dex to put on most shoes - [+] Diety's short sword of pyromania isn't appearing? - [+] make sure i can tumble over traps * [+] able to cut tripwires with slashing/chopping/piercing weapons? - [+] maybe make cmomando have no weapon skill - [+] make armour more common - [+] shouldnt be able to swap place with someone who is sleeping - [+] if you're not in the water, can't see lfs in water (unless they are adjacent) - [+] You break free from the zombie! You reintegrate inside a solid object!--More-- * [+] shopkeepers will charge an extra fee to identify stuff - [+] shouldn't get an empty flask when I dirnk from a fountain! - [+] identify and remove curse scrolls should be COMMON * [+] provide detailed skill descriptions - [+] dumpoutlines() - [+] make minotaurs stay in room - [+] make minotaurs have good smell - [+] don't auotreveal vaults. * [+] should be able to fill flasks from fountains - [+] don't announce corpse decay death while training. * [+] add the initial godstone at the bottom of firstdungeon * [+] make fountains names same as their linked potions - [+] bug: when filling potions from the ground, ground object was never dryaing up Beggars - [+] stealing ability sometimes. run away after using this * [+] various lots of generic f_talktext->"have a coin to spare?" World map - [+] 1-2,1-2: habitat: village - [+] multiple villages - [+] vault: island with treasure (or acid island?) - [+] jump into a water - it splashes small puddles to surrounding cells * [+] let dig spell go up/down. * [+] fountains, random potion effect or water (blue _ or }) - [+] make thingchance and obchance be habitat_t parameters. work on game goal - [+] find a way out of the magical dungeon barriers in the first dungeon - [+] slime - [+] troll = t - [+] lizardman - [+] ogre - [+] kobold - [+] fire sprite - [+] hobgoblin - [+] bugbear - [+] gnoll - [+] giant - [+] zombie - [+] skeleton * [+] ghoul - [+] ghast - [+] can operate spanner to - [+] jam/unjam a door * [+] visibility - [+] initial code for monsters opening doors while giving chase - [+] acid does more damage to armour * [+] implement temporary flags. * [+] implement unknown flags - [+] mana spike - [+] energy bolt - [+] energy blast (hits all in radius) - [+] flash (like flashbang) - [+] telekinesis (open/close doors remotely, grab/throw objects remotely) - [+] mindscan - knoweldge of hp etc * [+] airblast (push obs, push someone very far, AND lose obs. break walls they hit?) - [+] fireball - sets on fire - [+] flamepillar - [+] fire arrow - [+] spark (light a flammable object) - [+] flameburst - 2d8+3 damage in a circle - [+] burning wave - 2d10 damage and set on firea, line towards target - [+] range 3 - [+] freezing touch (turns an object to ice) - [+] knock - opens doors - [+] gas form - [+] polymorph - [+] write on floor - [+] light - [+] weaken (lose str) - [+] poison cloud - change cloudkill to this? - [+] animate dead - [+] posession - [+] minor healing - [+] healing - [+] turn undead - [+] identify - [+] detect magic - [+] detect aura - [+] reveal surroundings - [+] uncontrolled teleport - [+] speed - [+] slow - [+] boost gravity - [+] create monster - [+] divine - [+] wish
2011-07-21 11:43:45 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// returns true if we did somethign
int ai_handle_emergencies(lifeform_t *lf, enum ATTRBRACKET iqb) {
int db = B_FALSE;
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
int moveawayfromcell = B_FALSE;
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
flag_t *f;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (lfhasflag(lf, F_RAGE)) return B_FALSE;
- [+] 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
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
// if we are not near our life ob, and not moving towards it, do so!
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
f = lfhasflag(lf, F_LIFEOB);
if (f) {
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
if (!findnearbylifeob(lf->cell, NA, f, NULL)) {
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
cell_t *poss[8];
int nposs = 0;
int dir;
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
cell_t *targcell;
// target cell near our life ob? if so, we're okay.
targcell = aigettargetcell(lf, NULL);
if (targcell && findnearbylifeob(targcell, NA, f, NULL)) {
} else {
if (db) dblog(".oO { not near my lifeob! }");
for (dir = DC_N; dir <= DC_NW; dir++) {
cell_t *c;
c = getcellindir(lf->cell, dir);
if (c && findnearbylifeob(c, NA, f, NULL)) {
poss[nposs++] = c;
}
}
if (nposs) {
cell_t *c;
c = poss[rnd(0,nposs-1)];
if (aigoto(lf, c, MR_OTHER, NULL, PERMENANT)) {
if (db) dblog(".oO { moving closer to lifeob }");
// success
return B_TRUE;
} else {
if (db) dblog(".oO { couldnt find an adjacent cell near lifeob }");
// TODO: search all in los
}
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
}
}
}
}
// if our cell is dangerous, move away!
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (iqb >= AT_AVERAGE) {
if (celldangerous(lf, lf->cell, B_TRUE, NULL)) {
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
if (db) dblog("%s o O { there is something dangerous here, moving away } ", lf->race->name);
moveawayfromcell = B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
// hot feet? move somewhere.
if (!moveawayfromcell && lfhasflag(lf, F_HOTFEET) && !isimmuneto(lf->flags, DT_FIRE, B_FALSE)) {
if (db) dblog("%s o O { i have f_hotfeet, moving away } ", lf->race->name);
moveawayfromcell = B_TRUE;
}
if (moveawayfromcell) {
if (!dorandommove(lf, B_NOBADMOVES, B_FALSE, B_TRUE)) {
return B_TRUE;
}
}
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// flying monsters not flying?
if (!isprone(lf)) {
if (hasflag(lf->race->flags, F_NATURALFLIGHT) && !lfhasflag(lf, F_FLYING)) {
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
if (cancast(lf, OT_A_FLY, NULL) && !isburdened(lf)) {
if (lfhasflag(lf, F_NOSTAM) || (getstaminapct(lf) >= 80)) {
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
if (!useability(lf, OT_A_FLY, lf, lf->cell)) {
return B_TRUE;
}
- [+] 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
}
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
if (hasflag(lf->race->flags, F_LEVITATING) && !lfhasflag(lf, F_LEVITATING)) {
copyflag(lf->flags, lf->race->flags, F_LEVITATING);
taketime(lf, getmovespeed(lf));
return B_TRUE;
}
}
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
// flying and out of stamina?
if (isflyingwithwings(lf) && isexhausted(lf)) {
// stop flying.
if (!useability(lf, OT_A_FLY, lf, lf->cell)) {
return B_TRUE;
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_healing(lifeform_t *lf) {
int db = B_FALSE;
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
if (lfhasflag(lf, F_RAGE)) return B_FALSE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
- [+] chemistry skill lets to mix venom sacs into potions - [+] need a potion and venom sac - [+] make more things drop venom sacs - snakes etc - [+] F_EXTRACORPSE - [+] operate the venom sac ? - [+] can do this with first levle chemistry - [+] different kind of venom - blindness - [+] "blue venom sac" vs "purple venom sac" - [+] combiesn to potion of blindness - [+] more amulets - [+] common - [+] of bravery - [+] of light (common) - [+] of minor protection (common) (=5 AR - [+] energy absorbtion (absorb explosions, then pump them out) - [+] uncommon - [+] injury prvention (instead of ring) - [+] rare - [+] or major protection (not common) +10 AR - [+] had a missing eye. drunk a healing potino. - [+] Your head grows back! Your injured head has healed. - [+] objects with positive F_BONUS should never start cursed - [+] (in addobject) - [+] territorial monsters talk when you are approaching their threshold (but not within it) - [+] put this in ai_talk() - [+] if someone almost at territorial range: - [+] make f_noisetext v2 be SP_xxx. if it's set, just say this instead. - [+] it not, N_TERRITORY_APPROACH - [+] if we can talk, SP_TERRITORY_APPROACH - [+] possibilities: - [+] stay away! - [+] keep back! - [+] get away froma me! - [+] don't come any closer! - [+] that's close enough. - [+] keep your distance, stranger! - [+] out of my way! - [+] test with giant and - [+] test with insane humanoid - [+] make territorial creatures not walk too close to things, unless they are attacking or fleeing - [+] in willmove(), fail if it is too close to something - [+] ...unless we have a target lf - [+] ...or we are fleeing - [+] jumping when woozy will go to a random cell - [+] fix autoshortcuts to include starting spells - [+] still bugs with canreachbp - "The giant rat critically scratches your wizard hat." - [+] zombies shoudln't be able to talk. - [+] allow pets to "cheat" to find player's lcoation. - [+] need some kind of limit on zombie army creation - [+] no stairs - [+] areallies() on two pets returning false - [+] psychic shove - [+] push off something, or push them away - [+] l2 mental - [+] pushback power+1 cells (max power 3) - [+] different god message for first prayer. - [+] fix crash during swapplaces() - [+] sacrifice of masterwork weapons should work better. shoddy should be worse. - [+] bug: shops don't work anymore - [+] change lessen poison - power always goes to 1 - [+] replace description "spell's power is boosted when cast outside" with "boosted when cast in a forested area" - [+] minor healing problem. "at lest 2hp per power" but mxpower 10. should be maxpwer 5 - [+] wish for 'protection' should give something you can wear without penalties. - [+] locate object should give a message when none are found.
2012-11-15 22:39:46 +11:00
// special cases
// - mosquitoids and leechs will sleep when satiated.
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if ((lf->race->id == R_STIRGE) || (lf->race->id == R_LEECH)) {
- [+] chemistry skill lets to mix venom sacs into potions - [+] need a potion and venom sac - [+] make more things drop venom sacs - snakes etc - [+] F_EXTRACORPSE - [+] operate the venom sac ? - [+] can do this with first levle chemistry - [+] different kind of venom - blindness - [+] "blue venom sac" vs "purple venom sac" - [+] combiesn to potion of blindness - [+] more amulets - [+] common - [+] of bravery - [+] of light (common) - [+] of minor protection (common) (=5 AR - [+] energy absorbtion (absorb explosions, then pump them out) - [+] uncommon - [+] injury prvention (instead of ring) - [+] rare - [+] or major protection (not common) +10 AR - [+] had a missing eye. drunk a healing potino. - [+] Your head grows back! Your injured head has healed. - [+] objects with positive F_BONUS should never start cursed - [+] (in addobject) - [+] territorial monsters talk when you are approaching their threshold (but not within it) - [+] put this in ai_talk() - [+] if someone almost at territorial range: - [+] make f_noisetext v2 be SP_xxx. if it's set, just say this instead. - [+] it not, N_TERRITORY_APPROACH - [+] if we can talk, SP_TERRITORY_APPROACH - [+] possibilities: - [+] stay away! - [+] keep back! - [+] get away froma me! - [+] don't come any closer! - [+] that's close enough. - [+] keep your distance, stranger! - [+] out of my way! - [+] test with giant and - [+] test with insane humanoid - [+] make territorial creatures not walk too close to things, unless they are attacking or fleeing - [+] in willmove(), fail if it is too close to something - [+] ...unless we have a target lf - [+] ...or we are fleeing - [+] jumping when woozy will go to a random cell - [+] fix autoshortcuts to include starting spells - [+] still bugs with canreachbp - "The giant rat critically scratches your wizard hat." - [+] zombies shoudln't be able to talk. - [+] allow pets to "cheat" to find player's lcoation. - [+] need some kind of limit on zombie army creation - [+] no stairs - [+] areallies() on two pets returning false - [+] psychic shove - [+] push off something, or push them away - [+] l2 mental - [+] pushback power+1 cells (max power 3) - [+] different god message for first prayer. - [+] fix crash during swapplaces() - [+] sacrifice of masterwork weapons should work better. shoddy should be worse. - [+] bug: shops don't work anymore - [+] change lessen poison - power always goes to 1 - [+] replace description "spell's power is boosted when cast outside" with "boosted when cast in a forested area" - [+] minor healing problem. "at lest 2hp per power" but mxpower 10. should be maxpwer 5 - [+] wish for 'protection' should give something you can wear without penalties. - [+] locate object should give a message when none are found.
2012-11-15 22:39:46 +11:00
if (db) dblog(".oO { i am satiated. going to sleep. }");
if (ispeaceful(lf) && !isundead(lf)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int sleepval = 18;
if (modcounter(lf->flags, 1) >= sleepval) {
if (!gotosleep(lf, B_NOWAKEWHENHEALED)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_TRUE; // success
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
- move all definitions into data.c / data.h - [+] monsters should start sprinting if targetlf is sprinting && we can sprint && we aren't sprinting * [+] The kobold throws a potion of sleep at you. A potion of sleep hits you. A potion of sleep shatters! You are showered in glass shards! * [+] in getchoicestr, when there is only one valid choice, show its description below! - [+] in getchoicestr: - [+] remember desc_end_y - [+] if our typed text doesn't match, and desc_end_y is set - [+] blank out those lines - [+] in ], show letters and let you view amrour - [+] Still occasionally have bugs where no up stairs are placed in the first level!!!!! - [+] put in debugging to show if we ever destroy a staircase - [+] test when it happens again..... - [+] for "pentagram pulses black", if you can't see the estination, still say "your xxx flies away" - [+] change listen code: you can only hear one _footstep_ noise per turn, but any number of other things. - [+] instead of jobs replaceing hitdice, make them _modify_ maxhp by a certain %age. ie. f_modmaxhp 80% to get lower. - [+] jobs can no longer have F_HITDICE - [+] instead, they have F_MAXHPMOD - [+] why am i getting wet and drowning while flying?? - [+] show f_canwill SPELLS under abilities, not spells?? - More playable races - [+] need f_playablerace - [+] can pick when you start the game (before you pick job) - [+] human - [+] implement f_jobattrmod - [+] MOST JOBS SHOULD USE F_JOBATTRMOD instead of F_STARTATT. - [+] ALL PLAYABLE RACES must have FULL sets of STARTATT * [+] elf * [+] dwarf - [+] aviad (birdfolk) - [+] can fly - [+] vuln to electric attacks - [+] vuln++ to fire - [+] ---str - [+] cyborg - [+] +str, +int, +dex, +con - [+] ---cha - [+] -wis - [+] vulnerable to lightning, water,cold - [+] cannot use any magic, or med-high chance of spell failure - [+] bleeds oil rather than water - [+] see exact hp damage (f_extrainfo) - [+] tech usage. - [+] remember race in highscores.
2011-09-19 11:47:35 +10:00
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// feigning death with enemies in sight, and hurt?
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
if (lfhasflag(lf, F_FEIGNINGDEATH) && !safetorest(lf, NULL)) {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
if (islowhp(lf)) {
if (db) dblog(".oO { i am feigning death and bleeding (hp=%d/%d), skipping turn. }",lf->hp,lf->maxhp);
// just wait...
rest(lf, B_TRUE);
return B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
}
- move all definitions into data.c / data.h - [+] monsters should start sprinting if targetlf is sprinting && we can sprint && we aren't sprinting * [+] The kobold throws a potion of sleep at you. A potion of sleep hits you. A potion of sleep shatters! You are showered in glass shards! * [+] in getchoicestr, when there is only one valid choice, show its description below! - [+] in getchoicestr: - [+] remember desc_end_y - [+] if our typed text doesn't match, and desc_end_y is set - [+] blank out those lines - [+] in ], show letters and let you view amrour - [+] Still occasionally have bugs where no up stairs are placed in the first level!!!!! - [+] put in debugging to show if we ever destroy a staircase - [+] test when it happens again..... - [+] for "pentagram pulses black", if you can't see the estination, still say "your xxx flies away" - [+] change listen code: you can only hear one _footstep_ noise per turn, but any number of other things. - [+] instead of jobs replaceing hitdice, make them _modify_ maxhp by a certain %age. ie. f_modmaxhp 80% to get lower. - [+] jobs can no longer have F_HITDICE - [+] instead, they have F_MAXHPMOD - [+] why am i getting wet and drowning while flying?? - [+] show f_canwill SPELLS under abilities, not spells?? - More playable races - [+] need f_playablerace - [+] can pick when you start the game (before you pick job) - [+] human - [+] implement f_jobattrmod - [+] MOST JOBS SHOULD USE F_JOBATTRMOD instead of F_STARTATT. - [+] ALL PLAYABLE RACES must have FULL sets of STARTATT * [+] elf * [+] dwarf - [+] aviad (birdfolk) - [+] can fly - [+] vuln to electric attacks - [+] vuln++ to fire - [+] ---str - [+] cyborg - [+] +str, +int, +dex, +con - [+] ---cha - [+] -wis - [+] vulnerable to lightning, water,cold - [+] cannot use any magic, or med-high chance of spell failure - [+] bleeds oil rather than water - [+] see exact hp damage (f_extrainfo) - [+] tech usage. - [+] remember race in highscores.
2011-09-19 11:47:35 +10:00
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// hurt gods planeshift away
if (lf->race->raceclass->id == RC_GOD) {
if (gethppct(lf) <= 10) {
if (!castspell(lf, OT_S_PLANESHIFT, lf, NULL, lf->cell, NULL, NULL)) {
return B_TRUE;
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// need to heal?
if (lf->hp < (lf->maxhp/2)) {
if (!useitemwithflag(lf, F_AIHEALITEM)) {
return B_TRUE;
} else if (cansleep(lf)) {
// don't have or can't use our healing items
// no enemies in sight?
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
if (safetorest(lf, NULL)) {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
// gods will only sleep/meditate if they are in the realm of gods
if (isgod(lf) && (lf->cell->habitat->id != H_HEAVEN)) {
} else {
// if it's "night time" for us, sleep forever.
// otehrwise just sleep until we're healed
if (!gotosleep(lf, issleepingtimefor(lf) ? B_WAKEWHENHEALED : B_NOWAKEWHENHEALED)) {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
return B_TRUE; // success
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
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
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
// no stamina left?
if (isexhausted(lf) && !isinbattle(lf, B_FALSE, B_FALSE)) {
rest(lf, B_TRUE);
return B_TRUE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_housekeeping(lifeform_t *lf, lifeform_t *master) {
int i;
flag_t *f;
int db = B_FALSE;
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (lfhasflag(lf, F_RAGE)) return B_FALSE;
if (lfhasflag(lf, F_ISPRISONER) && master && isplayer(master) &&
(cansee(lf, master) || isadjacent(lf->cell,master->cell))) {
// soon after escaping the dungeon, they'll leave you.
if (isoutdoors(lf->cell->map) && pctchance(85)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
object_t *o;
say(lf, "Thanks for getting me out!", SV_TALK);
o = addobfast(master->pack, OT_MANUAL);
if (o) {
char obname[BUFLEN];
say(lf, "Here, let me teach you something as a reward.", SV_TALK);
getobname(o, obname, o->amt);
msgnocap("%c - %s", o->letter, obname);
}
// no longer an ally
if (db) { dblog(".oO { no longer an ally }"); }
- [+] griddler didnt start with trident? - [+] it DID, but it dropped it cuase it was hot. - [+] griddler should be immune to redhot! (testing shows it currently isn't) - [+] once prisoners give you a reward, they shouldn't be allies anymore (ie shouldn't follow you up/down stairs) - [+] portal to realm of gods hsouldn't work until you have a godstone. - [+] why did potion of oil explode when i threw it? - [+] for unique monsters, instead of "jimbo's armour protects it", use "jimbo's armour protects him" - [+] use f_gender - [+] this replaces F_GODOF. - [+] change gods to use this too. - [+] change cloak of shadows - only work if max vis range is low ? - [+] monsters can't see you if they are >=3 away - [+] F_SHADOWED - [+] more amulets - [+] of the traveller (go to a much deeper level or branch when you put it on. go back when you take it off) - [+] implement - [+] usually start cursed - [+] boost piety gain - [+] soul feasting - [+] acrobatics (tumble/jump) - [+] choking - [+] first add f_nobreath - [+] doesn't work if you don't need to breath - [+] hydra blood poisonous - [+] handle "linkrace:xxx splash of blood" - [+] make bleed() use this. - [+] add f_venomblood to r_hydra (and others?) - [+] make filling potions from blood check for f_linkrace->f_venomousblood - [+] maybe handle this more elegantly. - [+] add f_bloodfillob to blood objects (inherit from lf) - [+] fine, but what about addobsinradius? make it populate retobs!!! - [+] change f_venomblood to f_bloodfillob->ot_pot_poison - [+] remove "linkrace:xxx" code from objects.c and from bleed() - [+] flashbang shouldnt affect user (you would look away) - [+] add F_THROWNBY to objects when you throw them. - [+] stop initial revolvers from starting with 'a rubber bullet' - [+] dry ice grenade - csats "snapfreeze" - [+] needs f_spellcloudondeath - [+] implement - [+] spiked club - [+] The hawk critically claws your hands. Your ! - [+] fixed. - [+] need another way to unlock chests - [+] bash them - [+] if it is trapped, high chance that the trap will go off - [+] if you attack something which is locked, it has a small chance of becoming unlocked - [+] rnd(1,your_str) must be > lockdiff! - [+] different unarmed attack verbs for monk - [+] javelin of lightning - [+] when you throw it: - [+] dothrow() calls spelleffects(LTBOLT) - [+] then uses up one charge - [+] if charges are left: - [+] reforms in your hands - [+] otherwise it turns into a normal javelin - [+] shovel - [+] jackhammer (like pickaxe but faster)
2012-04-14 08:52:35 +10:00
killflagsofid(lf->flags, F_FRIENDLY);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
killflagsofid(lf->flags, F_PETOF);
killflagsofid(lf->flags, F_ISPRISONER);
}
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// too many objects?
i = countobs(lf->pack, B_FALSE);
if (i >= (MAXPILEOBS - 5)) {
object_t *container;
// get largest container with space
container = getbestcontainer(lf->pack);
if (container) {
object_t *o;
// find object which will fit
for (o = lf->pack->first ; o ; o = o->next) {
if ((o != container) && !isequipped(o) && obfits(o, container->contents)) {
// put it in.
moveob(o, container->contents, ALL);
if (cansee(player, lf)) {
char obname[BUFLEN];
char lfname[BUFLEN];
char containername[BUFLEN];
// announce
getobname(o, obname, o->amt);
getobname(container, containername, 1);
getlfname(lf, lfname);
msg("%s puts %s into %s.", lfname, obname, containername);
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// timetime
taketime(lf, getactspeed(lf));
return B_TRUE;
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
}
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// talking
f = lfhasflag(lf, F_RANDOMTALKPCT);
if (f) {
if (pctchance(f->val[0])) {
flag_t *poss[MAXCANDIDATES];
int nposs = 0,i;
flag_t *retflag[MAXCANDIDATES];
int nretflags = 0;
getflags(lf->flags, retflag, &nretflags, F_RANDOMTALK, F_NONE);
for (i = 0; i < nretflags; i++) {
poss[nposs++] = retflag[i];
}
if (nposs) {
int vol;
f = poss[rnd(0,nposs-1)];
vol = rnd(f->val[1], f->val[2]);
if (strlen(f->text)) {
say(lf, f->text, vol);
} else {
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
sayphrase(lf, f->val[0], vol, NA, NULL, NULL);
}
}
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
return B_FALSE;
}
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_inventory_mgt(lifeform_t *lf, int *canattack) {
int db = B_FALSE,i;
object_t *curwep = NULL,*bestwep = NULL, *o = NULL;
object_t *curgun = NULL,*bestgun = NULL;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
enum BODYPART bp;
//int icanattack = B_FALSE;
enum ATTRBRACKET iqb;
iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
if (lfhasflag(lf, F_RAGE)) return B_FALSE;
// burdened?
if (isburdened(lf) && (iqb >= IQ_ANIMAL)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
object_t *o,*heaviest = NULL;
float hevweight = 0;
if (db) dblog(".oO { i am burdened }");
// drop our heaviest non-equipped object
for (o = lf->pack->first ; o ; o = o->next) {
if (!isequipped(o)) {
float thisweight;
thisweight = getobmass(o);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (thisweight > hevweight) {
hevweight = thisweight;
heaviest = o;
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
}
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (heaviest) {
if (db) {
char obname[BUFLEN];
getobname(o, obname, ALL);
dblog(".oO { i will drop %s to lower my burden }", obname);
}
if (!drop(heaviest, ALL)) {
return B_TRUE;
}
if (db) dblog(".oO { drop failed! }");
}
if (db) dblog(".oO { couldn't drop anything }");
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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// do we have a better weapon we could use?
if (iqb >= AT_AVERAGE) {
curwep = getweapon(lf);
bestwep = getbestweapon(lf);
- [+] 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
if ((curwep != bestwep) && !isfirearm(curwep)) {
if (db) dblog(".oO { i have a better weapon than my current one (%s > %s) }",bestwep->type->name, curwep ? curwep->type->name : "nothing");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// weild better one
if (!weild(lf, bestwep)) return B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] 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
// do we have a better firearm ?
curgun = getfirearm(lf);
if (curwep && istwohandedfor(curwep, lf)) {
// we are using a two handed weapon. don't
// check for guns.
} else {
bestgun = getbestfirearm(lf);
if (curgun != bestgun) {
if (db) dblog(".oO { i have a better gun than my current one (%s > %s) }",bestgun->type->name, curgun ? curgun->type->name : "nothing");
// weild better one
if (!weild(lf, bestgun)) return B_TRUE;
- [+] 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
}
}
// do we have ammo for an empty gun?
if (curgun) {
object_t *curammo;
curammo = getammo(curgun);
if (!curammo) {
o = getrandomammo(lf);
if (o && !loadfirearm(lf, curgun, o)) {
// success
return B_TRUE;
}
}
}
}
if (iqb >= AT_GTAVERAGE) {
// do we have better armour?
for (i = 0; i < lf->race->nbodyparts; i++) {
object_t *curarm;
bp = lf->race->bodypart[i].id;
curarm = getarmour(lf, bp);
// is it red hot?
if (curarm && hasflag(curarm->flags, F_HOT) && !isimmuneto(lf->flags, DT_FIRE, B_FALSE)) {
if (db) dblog("%s o O { wearing a red-hot item. will try to remove it. } ", lf->race->name);
if (cantakeoff(lf, curarm, NULL)) {
if (!takeoff(lf, curarm)) {
return B_TRUE;
}
} else {
if (db) dblog("%s o O { cannot remove it. maybe cursed? } ", lf->race->name);
}
}
// do we have a better one?
for (o = lf->pack->first ; o ; o = o->next) {
if (!isdangerousob(o, lf, B_TRUE) && canwear(lf, o, bp) && isbetterarmourthan(o, curarm)) {
// wear this armour instead
if (!wear(lf, o)) return B_TRUE;
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// now check whetehr we have ANY weapon
if (curwep || lfhasflag(lf, F_HASATTACK)) {
if (canattack) *canattack = B_TRUE;
}
// before attacking targets,
// look for any object which we _covet_.
// ie. if we covet something, we will pick it up
// instead of attacking our target.
if (!lfhasflag(lf, F_HIDING) && !lfhasflag(lf, F_FEIGNINGDEATH)) {
if (db) dblog(".oO { looking for covetted objects... }");
if (lookforobs(lf)) {
if (db) dblog(".oO { found covetted object. returning. }");
return B_TRUE;
}
- [+] 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
}
return B_FALSE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_movement(lifeform_t *lf) {
int valid = B_TRUE;
cell_t *c;
//int db = B_FALSE;
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
flag_t *f = NULL;
//if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
* [+] need to set "needredraw" every time we exit: - [+] make eating take longer - depends on lf size and food sizes * [+] stop eating if something attacks you! - [+] change spell code to cope with caster = NULL!! - [+] why are rooms never more than 2 high * [+] traps * [+] eating bug again * [+] disarm trap skill? - [+] lots of needredraw bugs - [+] bug with cursor jumping around lots - [+] draw darkened visible cells in blue * [+] shadow cloak - [+] tree shouldn't prevent resting! - [+] make plants not attack druids * [+] cooking - [+] stop eating if your eating object is no longer with you * [+] FLAG CORRUPTION BUG - [+] pet walking back and forth on rotted objects - [+] purified food shouldn't decay anymore. - [+] plants shouldn't sleep - [+] RESTING on statbar not being cleared. the add of f_interrupted was clearing statdirty before f_asleep got removed in killflag(). - [+] AI: don't eat if in battle - [+] reduce projectile damage - [+] show raceclass in statbars - [+] smoke should make you cough. - [+] when going up levle, only prompt for spells you can cast?? (don't show "NOTCASTABLE") - [+] Your young hawk dies. The stirge releases something! - [+] sleeping thigns shoudn't follow you up/down stairs. - [+] when throw'ng an object, don't let it stack (otherwise we might destroy too much) - [+] don't draw "c - " for nopickup objects. - [+] saving throw for traps if you know about it. - [+] druid - get xp for calming animals - [+] rogue- get xp for picking locks, disarming traps. - [+] metal should be immune to most damage types * [+] make heavy blow need HEAVY weapon, not bashing. - [+] can't rest/train while levitating! - [+] gas traps only go off once. - [+] bug: The goblin throws a boulder at you. A boulder misses you. - [+] don't give short sword skill to wizard. - [+] hearing range based on listen skill * [+] coldness disease: - [+] CRASH when swapping places - [+] bug: i can teleport into an impassable object! - [+] add: "really target (your ally)?" - [+] give wizards school-based skill instead of manaspike + wildmagic - [+] LevUp still not being cleared!!! * [+] why is air wizard being prompted for call lightning at level 2??? * [+] summon weapon (summoning) - [+] hold portal (mod) - [+] reveal hidden - [+] stench (death) - [+] frostbite (minor but direct cold damage. 1dpower. maxpower 3) - [+] grease (modific) creates oil in a circle - [+] fear (death) - [+] seeinvis (div) - [+] locate obejct (div) tells you where a seen objcet is. - [+] swap places (transl) "twiddle" - [+] fire brand (fire, melee attaks deal fire damage) - [+] iceedge - [+] lore (div, temporary knowledge from a particular school?) - [+] icicle (cold, deals cold dam and knocks enemies away) * [+] chill (ice, 1d3 damage per exposed body part) - [+] hail storm (ice, big damage in area) - [+] wall of ice (creates icy wall, hp based on power)
2011-05-12 11:49:35 +10:00
if (lfhasflagval(lf, F_DOESNTMOVE, NA, NA, B_TRUE, NULL)) return B_FALSE;
- [+] griddler didnt start with trident? - [+] it DID, but it dropped it cuase it was hot. - [+] griddler should be immune to redhot! (testing shows it currently isn't) - [+] once prisoners give you a reward, they shouldn't be allies anymore (ie shouldn't follow you up/down stairs) - [+] portal to realm of gods hsouldn't work until you have a godstone. - [+] why did potion of oil explode when i threw it? - [+] for unique monsters, instead of "jimbo's armour protects it", use "jimbo's armour protects him" - [+] use f_gender - [+] this replaces F_GODOF. - [+] change gods to use this too. - [+] change cloak of shadows - only work if max vis range is low ? - [+] monsters can't see you if they are >=3 away - [+] F_SHADOWED - [+] more amulets - [+] of the traveller (go to a much deeper level or branch when you put it on. go back when you take it off) - [+] implement - [+] usually start cursed - [+] boost piety gain - [+] soul feasting - [+] acrobatics (tumble/jump) - [+] choking - [+] first add f_nobreath - [+] doesn't work if you don't need to breath - [+] hydra blood poisonous - [+] handle "linkrace:xxx splash of blood" - [+] make bleed() use this. - [+] add f_venomblood to r_hydra (and others?) - [+] make filling potions from blood check for f_linkrace->f_venomousblood - [+] maybe handle this more elegantly. - [+] add f_bloodfillob to blood objects (inherit from lf) - [+] fine, but what about addobsinradius? make it populate retobs!!! - [+] change f_venomblood to f_bloodfillob->ot_pot_poison - [+] remove "linkrace:xxx" code from objects.c and from bleed() - [+] flashbang shouldnt affect user (you would look away) - [+] add F_THROWNBY to objects when you throw them. - [+] stop initial revolvers from starting with 'a rubber bullet' - [+] dry ice grenade - csats "snapfreeze" - [+] needs f_spellcloudondeath - [+] implement - [+] spiked club - [+] The hawk critically claws your hands. Your ! - [+] fixed. - [+] need another way to unlock chests - [+] bash them - [+] if it is trapped, high chance that the trap will go off - [+] if you attack something which is locked, it has a small chance of becoming unlocked - [+] rnd(1,your_str) must be > lockdiff! - [+] different unarmed attack verbs for monk - [+] javelin of lightning - [+] when you throw it: - [+] dothrow() calls spelleffects(LTBOLT) - [+] then uses up one charge - [+] if charges are left: - [+] reforms in your hands - [+] otherwise it turns into a normal javelin - [+] shovel - [+] jackhammer (like pickaxe but faster)
2012-04-14 08:52:35 +10:00
if (isimmobile(lf)) return B_FALSE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// do we have a target cell?
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
c = aigettargetcell(lf, &f);
if (!f) return B_FALSE; // ooo is f bad here?
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// is it still valid?
if (!c) {
valid = B_FALSE;
} else if (f->val[2] == MR_LF) {
lifeform_t *who;
who = findlf(lf->cell->map, atoi(f->text));
// lf doesn't exist?
if (!who) {
valid = B_FALSE;
} else if (cansee(lf, who) && (lf->cell != c)) {
// can see them and they're not where we are going?
valid = B_FALSE;
}
} else if (f->val[2] == MR_OB) {
object_t *what;
what = findobidinmap(lf->cell->map, atol(f->text));
if (!what) {
valid = B_FALSE;
} else if (haslos(lf, c) && (what->pile->where != c)) {
// if you can see the cell and object isn't there anymore
valid = B_FALSE;
} else if (c->lf && !areenemies(lf, c->lf) && haslos(lf, c) && (getcelldist(lf->cell, c) == 1)) {
// can see a non-enemy on top of the object, and we are adjacent
valid = B_FALSE;
}
} else if (f->val[2] == MR_SOUND) {
// always ok.
} else if (f->val[2] == MR_BACKTOLAIR) {
// always ok.
} else if (f->val[2] == MR_OTHER) {
// always ok.
} else {
// weird ?
raise (SIGINT);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] thrown objects taking no damage due to hardness * [+] DIETY is slow. - [+] map bug - from 0,0, walk NE (off top edge). i end up at 0,0 again!!! * [+] ALLOW ROTATING OF VAULTS - [+] BUG: dig X only goes 1 cell. - [+] add a U shaped turn vault. - [+] change wehre i apply HADRNESS for lfs! - don't use adjustdammaterial cause we inherit there - [+] make obchance/thingchance part of habitat_t - [+] make sense surroundings take cartography skill into account * [+] BUG: rotated at() etc not working. - [+] if you fail stealing, the target should get angry!!! - [+] make sure to redraw stat bar when mind scan finishes. - [+] villages - [+] initial code * [+] town gaurds. stand next to the gate - [+] potion shop vault - [+] implement - [+] potion shop isn't getting potions!! - [+] and getting wrong floor type. * [+] stop shop from always being at the top left. - [+] make sure its x/y arent too close to edge of map (at least 5 away) - [+] vault param. f_mapmargin, 5 - [+] make calcroompos take x/y margin - [+] don't put auto obs inside vaults - [+] town walls - [+] more kinds of shops * [+] signs outside shops - [+] bug with ai swapping between firearms and twohanded weapons. fixed. * [+] make _CELLS_ have habitats! - [+] move vaultchance to a habitat param instead of getvaultchance() * [+] shopkeepers (special race) village things: - [+] barrels, - [+] guards, - [+] statue - [+] thrown objects should still take damage if blocked via a shield * [+] hardness (must do dam >= xx to hurt) * [+] WATER spread mods * [+] very powerful spells have casttime - [+] allow linkstairs() to take a parameter rather than always jsut searching for the other end - [+] when digging holes, only use getrandomadjcell if there is an lf in the way. and then use WE_NOLF. clear out solid cells - [+] show armour EVASION penalty in describeob - [+] teleportation trap. You reintegrate inside a solid object! You die.--More--. - [+] riverroom vault * [+] water: swap { and ~ again?? - [+] make "large puddle of water" evaporate more quickly * [+] special glyph case: for deep water
2011-06-29 18:48:48 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (valid) {
return aimovetotargetcell(lf, f);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
killflag(f);
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int ai_premovement(lifeform_t *lf) {
int db = B_FALSE;
int i;
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
if (lfhasflag(lf, F_RAGE)) return B_FALSE;
- [+] thrown objects taking no damage due to hardness * [+] DIETY is slow. - [+] map bug - from 0,0, walk NE (off top edge). i end up at 0,0 again!!! * [+] ALLOW ROTATING OF VAULTS - [+] BUG: dig X only goes 1 cell. - [+] add a U shaped turn vault. - [+] change wehre i apply HADRNESS for lfs! - don't use adjustdammaterial cause we inherit there - [+] make obchance/thingchance part of habitat_t - [+] make sense surroundings take cartography skill into account * [+] BUG: rotated at() etc not working. - [+] if you fail stealing, the target should get angry!!! - [+] make sure to redraw stat bar when mind scan finishes. - [+] villages - [+] initial code * [+] town gaurds. stand next to the gate - [+] potion shop vault - [+] implement - [+] potion shop isn't getting potions!! - [+] and getting wrong floor type. * [+] stop shop from always being at the top left. - [+] make sure its x/y arent too close to edge of map (at least 5 away) - [+] vault param. f_mapmargin, 5 - [+] make calcroompos take x/y margin - [+] don't put auto obs inside vaults - [+] town walls - [+] more kinds of shops * [+] signs outside shops - [+] bug with ai swapping between firearms and twohanded weapons. fixed. * [+] make _CELLS_ have habitats! - [+] move vaultchance to a habitat param instead of getvaultchance() * [+] shopkeepers (special race) village things: - [+] barrels, - [+] guards, - [+] statue - [+] thrown objects should still take damage if blocked via a shield * [+] hardness (must do dam >= xx to hurt) * [+] WATER spread mods * [+] very powerful spells have casttime - [+] allow linkstairs() to take a parameter rather than always jsut searching for the other end - [+] when digging holes, only use getrandomadjcell if there is an lf in the way. and then use WE_NOLF. clear out solid cells - [+] show armour EVASION penalty in describeob - [+] teleportation trap. You reintegrate inside a solid object! You die.--More--. - [+] riverroom vault * [+] water: swap { and ~ again?? - [+] make "large puddle of water" evaporate more quickly * [+] special glyph case: for deep water
2011-06-29 18:48:48 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// need light?
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
if (lfproduceslight(lf, NULL) && (lf->cell->map->illumination != IL_FULLLIT)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
object_t *lamp;
lamp = hasobwithflagval(lf->pack, F_ACTIVATECONFER, F_PRODUCESLIGHT, NA, NA, NULL);
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
if (lamp && !isactivated(lamp) && canoperate(lf, lamp, NULL)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { it's dark and i have an inactive light source (%s) }", lamp->type->name);
if (!operate(lf, lamp, NULL)) {
if (db) dblog(".oO { successfully turned it on. }");
return B_TRUE;
} else {
if (db) dblog(".oO { failed to turn it on. }");
}
* [+] need to set "needredraw" every time we exit: - [+] make eating take longer - depends on lf size and food sizes * [+] stop eating if something attacks you! - [+] change spell code to cope with caster = NULL!! - [+] why are rooms never more than 2 high * [+] traps * [+] eating bug again * [+] disarm trap skill? - [+] lots of needredraw bugs - [+] bug with cursor jumping around lots - [+] draw darkened visible cells in blue * [+] shadow cloak - [+] tree shouldn't prevent resting! - [+] make plants not attack druids * [+] cooking - [+] stop eating if your eating object is no longer with you * [+] FLAG CORRUPTION BUG - [+] pet walking back and forth on rotted objects - [+] purified food shouldn't decay anymore. - [+] plants shouldn't sleep - [+] RESTING on statbar not being cleared. the add of f_interrupted was clearing statdirty before f_asleep got removed in killflag(). - [+] AI: don't eat if in battle - [+] reduce projectile damage - [+] show raceclass in statbars - [+] smoke should make you cough. - [+] when going up levle, only prompt for spells you can cast?? (don't show "NOTCASTABLE") - [+] Your young hawk dies. The stirge releases something! - [+] sleeping thigns shoudn't follow you up/down stairs. - [+] when throw'ng an object, don't let it stack (otherwise we might destroy too much) - [+] don't draw "c - " for nopickup objects. - [+] saving throw for traps if you know about it. - [+] druid - get xp for calming animals - [+] rogue- get xp for picking locks, disarming traps. - [+] metal should be immune to most damage types * [+] make heavy blow need HEAVY weapon, not bashing. - [+] can't rest/train while levitating! - [+] gas traps only go off once. - [+] bug: The goblin throws a boulder at you. A boulder misses you. - [+] don't give short sword skill to wizard. - [+] hearing range based on listen skill * [+] coldness disease: - [+] CRASH when swapping places - [+] bug: i can teleport into an impassable object! - [+] add: "really target (your ally)?" - [+] give wizards school-based skill instead of manaspike + wildmagic - [+] LevUp still not being cleared!!! * [+] why is air wizard being prompted for call lightning at level 2??? * [+] summon weapon (summoning) - [+] hold portal (mod) - [+] reveal hidden - [+] stench (death) - [+] frostbite (minor but direct cold damage. 1dpower. maxpower 3) - [+] grease (modific) creates oil in a circle - [+] fear (death) - [+] seeinvis (div) - [+] locate obejct (div) tells you where a seen objcet is. - [+] swap places (transl) "twiddle" - [+] fire brand (fire, melee attaks deal fire damage) - [+] iceedge - [+] lore (div, temporary knowledge from a particular school?) - [+] icicle (cold, deals cold dam and knocks enemies away) * [+] chill (ice, 1d3 damage per exposed body part) - [+] hail storm (ice, big damage in area) - [+] wall of ice (creates icy wall, hp based on power)
2011-05-12 11:49:35 +10:00
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// ally needs ammo?
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
for (i = 0; i < lf->nlos; i++) {
cell_t *c;
c = lf->los[i];
if (c->lf && (c->lf != lf) && areallies(lf, c->lf)) {
object_t *gun;
gun = getfirearm(c->lf);
if (gun && !getammo(gun)) {
object_t *o;
for (o = lf->pack->first ; o ; o = o->next) {
if (isammofor(o->type, gun) ) {
if (getcelldist(lf->cell, c) <= getmaxthrowrange(lf, o)) {
// throw it to them!
if (!throwat(lf, o, c)) {
// success
return B_TRUE;
}
}
}
}
}
}
}
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_FALSE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
* [+] need to set "needredraw" every time we exit: - [+] make eating take longer - depends on lf size and food sizes * [+] stop eating if something attacks you! - [+] change spell code to cope with caster = NULL!! - [+] why are rooms never more than 2 high * [+] traps * [+] eating bug again * [+] disarm trap skill? - [+] lots of needredraw bugs - [+] bug with cursor jumping around lots - [+] draw darkened visible cells in blue * [+] shadow cloak - [+] tree shouldn't prevent resting! - [+] make plants not attack druids * [+] cooking - [+] stop eating if your eating object is no longer with you * [+] FLAG CORRUPTION BUG - [+] pet walking back and forth on rotted objects - [+] purified food shouldn't decay anymore. - [+] plants shouldn't sleep - [+] RESTING on statbar not being cleared. the add of f_interrupted was clearing statdirty before f_asleep got removed in killflag(). - [+] AI: don't eat if in battle - [+] reduce projectile damage - [+] show raceclass in statbars - [+] smoke should make you cough. - [+] when going up levle, only prompt for spells you can cast?? (don't show "NOTCASTABLE") - [+] Your young hawk dies. The stirge releases something! - [+] sleeping thigns shoudn't follow you up/down stairs. - [+] when throw'ng an object, don't let it stack (otherwise we might destroy too much) - [+] don't draw "c - " for nopickup objects. - [+] saving throw for traps if you know about it. - [+] druid - get xp for calming animals - [+] rogue- get xp for picking locks, disarming traps. - [+] metal should be immune to most damage types * [+] make heavy blow need HEAVY weapon, not bashing. - [+] can't rest/train while levitating! - [+] gas traps only go off once. - [+] bug: The goblin throws a boulder at you. A boulder misses you. - [+] don't give short sword skill to wizard. - [+] hearing range based on listen skill * [+] coldness disease: - [+] CRASH when swapping places - [+] bug: i can teleport into an impassable object! - [+] add: "really target (your ally)?" - [+] give wizards school-based skill instead of manaspike + wildmagic - [+] LevUp still not being cleared!!! * [+] why is air wizard being prompted for call lightning at level 2??? * [+] summon weapon (summoning) - [+] hold portal (mod) - [+] reveal hidden - [+] stench (death) - [+] frostbite (minor but direct cold damage. 1dpower. maxpower 3) - [+] grease (modific) creates oil in a circle - [+] fear (death) - [+] seeinvis (div) - [+] locate obejct (div) tells you where a seen objcet is. - [+] swap places (transl) "twiddle" - [+] fire brand (fire, melee attaks deal fire damage) - [+] iceedge - [+] lore (div, temporary knowledge from a particular school?) - [+] icicle (cold, deals cold dam and knocks enemies away) * [+] chill (ice, 1d3 damage per exposed body part) - [+] hail storm (ice, big damage in area) - [+] wall of ice (creates icy wall, hp based on power)
2011-05-12 11:49:35 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
flag_t *aihastarget(lifeform_t *lf) {
flag_t *f;
f = lfhasflag(lf, F_TARGETLF);
if (f) return f;
f = lfhasflag(lf, F_TARGETCELL);
if (f) return f;
return NULL;
}
// returns B_FALSE if we did something.
// returns B_TRUE if we failed (ie. did nothing)
int aimovetolf(lifeform_t *lf, lifeform_t *target, int wantattack) {
int db = B_FALSE;
int ismaster = B_FALSE;
flag_t *targetflag = NULL;
if (lfhasflag(lf, F_DEBUG)) db = B_TRUE;
if (db) {
dblog(".oO { starting aimovetolf }");
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
targetflag = lfhasflagval(lf, F_PETOF, target->id, NA, NA, NULL);
if (targetflag) {
ismaster = B_TRUE;
} else {
targetflag = lfhasflagval(lf, F_TARGETLF, target->id, NA, NA, NULL);
}
if (cansee(lf, target)) {
int dist,wantdistmin,wantdistmax;
int attackok;
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
flag_t *f;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
enum OBTYPE spell;
enum RANGEATTACK rangedattack = RA_NONE;
int shootrange = 0;
int movefailed = B_FALSE;
int closethrowok = B_FALSE;
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
object_t *rangedob = NULL;
int spellchance = 0;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { can see my target }");
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
// see if we have a ranged attack. if so, adjust wantdist
// to maintain distance.
rangedob = aigetrangedattack(lf, target, &rangedattack, &shootrange);
// how far away is my target ?
dist = getcelldist(lf->cell, target->cell);
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
// try spells first.
// can we attack with spells (ie. ones which target the victim)?
// if target is adjacent, we will normally just attack rather than try a spell.
// random chance of casting a spell
f = lfhasflag(lf, F_CASTCHANCE);
if (f) spellchance = f->val[0];
else spellchance = 30;
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
// some attacks can always happen
if (cancast(lf, OT_A_THRUST, NULL) && (dist == 2) && haslofknown(lf->cell, target->cell, LOF_NEED, NULL)) {
spellchance = 100;
}
if (pctchance(spellchance)) {
spell = aigetattackspell(lf, target);
} else {
spell = OT_NONE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// pet movement
if (ismaster) {
if (isresting(target)) {
// rest as well.
rest(lf, B_TRUE);
return B_FALSE;
} else if (isadjacent(lf->cell, target->cell)) {
if (db) dblog(".oO { i can see my master adjacent - moving randomly }");
// move randomly. TODO: just return ??
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
dorandommove(lf, B_NOBADMOVES, B_TRUE, B_FALSE);
- [+] 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
return B_FALSE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// otherwise fall through to below movement code.
}
// how far away do i _want_ to be?
getwantdistance(lf,target, &wantdistmin,&wantdistmax, wantattack);
// reset F_TARGET lifetime to full.
if (targetflag) {
if (targetflag->id == F_TARGETLF) {
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
targetflag->lifetime = aigetchasetime(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
if (db) dblog(".oO { i can see my target (at %d,%d). might move towards it. }",target->cell->x,target->cell->y);
// remember their location
targetflag->val[1] = target->cell->x;
targetflag->val[2] = target->cell->y;
}
// is an attack possible?
attackok = B_FALSE;
if (wantattack) {
if (dist == 1) {
attackok = B_TRUE;
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
} else if (!lfhasflag(lf, F_HIDING) || rangedob || (spell != OT_NONE)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
attackok = B_TRUE;
} else if (!lfhasflag(lf, F_FEIGNINGDEATH)) {
attackok = B_TRUE;
}
}
if (attackok) {
objecttype_t *st;
// drink boost potions
if (!useitemwithflag(lf, F_AIBOOSTITEM)) {
- [+] 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
return B_FALSE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
st = findot(spell);
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if ( (spell != OT_NONE) && // found a valid spell/ability to use
// AND one of these:
((dist != 1) || // there is distance between us and target
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
(getspellrange(lf, st->id, 1, NULL) == 1) || // OR this works from adjacent
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
(st->obclass->id == OC_ABILITY) || // OR this is an ability
!countinnateattacks(lf) || // OR we have no melee attack
(rnd(1,3) == 1)) // OR random chance of using anyway...
) {
int spellfailed = B_FALSE;
lifeform_t *spelllf = NULL;
cell_t *spellcell = NULL;
object_t *spellob = NULL;
if (db) {
dblog(".oO { will cast attack spell: %s }", st->name);
}
2010-12-07 18:34:26 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// special cases: eg. spells like telekenesis
if (spell == OT_S_TELEKINESIS) {
float maxweight;
object_t *poss[MAXPILEOBS];
int nposs;
int i;
// find nearest object which can be picked up
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// this is copied out of the telekenesis spell code!
maxweight = getlfweight(lf, B_NOOBS) +
(getlfweight(lf, B_NOOBS) * (getstatmod(lf, A_IQ) / 100));
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
nposs = 0;
for (i = 0; i < lf->nlos; i++) {
if (lf->los[i] != lf->cell) {
object_t *o;
for (o = lf->los[i]->obpile->first ; o ; o = o->next) {
if (!hasflag(o->flags, F_NOPICKUP) &&
getobmass(o) <= maxweight) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
poss[nposs] = o;
nposs++;
if (nposs >= MAXPILEOBS) break;
}
}
if (nposs >= MAXPILEOBS) break;
}
}
if (nposs > 0) {
spellob = poss[rnd(0,nposs-1)];
} else {
spellfailed = B_TRUE;
}
2010-12-07 18:34:26 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// cast spell at the player
spelllf = target;
spellcell = target->cell;
} else {
// pick targets based on spell flags
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
if (aigetspelltarget(lf, st, target, &spelllf, &spellcell, &spellob, F_AICASTTOATTACK)) {
spellfailed = B_TRUE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
2010-12-07 18:34:26 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (spellfailed) {
if (db) dblog(".oO { cast spell/ability failed (1)! }");
} else {
if (getschool(spell) == SS_ABILITY) {
spellfailed = useability(lf, spell, spelllf, spellcell);
} else {
spellfailed = castspell(lf, spell, spelllf, spellob, spellcell, NULL, NULL);
}
}
if (spellfailed) {
if (db) dblog(".oO { cast spell/ability tried but failed (2)! reason = %d }", reason);
// spell failed. we will keep going through aiturn.
} else {
// spell succesful
if ((spell == OT_A_STEAL) && !lfhasflag(lf, F_NOFLEE)) {
if (!isgod(lf)) {
// run away for a while
fleefrom(lf, spelllf, rnd(10,20), B_TRUE);
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
- [+] CRASH in killflag() - [+] symptoms - [+] often happens right after creating a new map (ie. trigger it through a gate spell) - [+] bug in createriver(). fixed. - [+] somehow casting GATE is causing object flagpiles on the PLAYER's map to become corrupted. - [+] "the young hawk wakes up" CRASH, flagpile corrupt on stone. - [+] object itself seems okay. - [+] o->flags is becoming corrupt!!! - [+] so all its flags are becoming corrupt (id = massive number, next = fffff) - [+] traceback: - [+] #0 0x0000000100081188 in killflag (f=0x103321090) at flag.c:815 #1 0x0000000100081b3a in timeeffectsflag (f=0x103321090, howlong=1) at flag.c:1075 #2 0x00000001000825f8 in timeeffectsflags (fp=0x1038e0600) at flag.c:1302 #3 0x0000000100129b01 in timeeffectsob (o=0x1036e2460) at objects.c:11877 #4 0x0000000100005114 in timeeffectsworld (map=0x102aa1a00, updategametime=-1) at nexus.c:1685 #5 0x0000000100003a28 in donextturn (map=0x102aa1a00) at nexus.c:952 #6 0x00000001000029b1 in main (argc=1, argv=0x7fff5fbff848) at nexus.c:525 - [+] try this: in timeeffectsflags on objects, check PREVIOUS object's flagpile. - [+] try this: add checkflagS() after updatefpindex - [+] NOT happening during timeeffectsob(). - [+] compile with optimisation................. - [+] hapepning in createmap. but objects on the PLAYER's map are being corrupted, not the new one. - [+] happening in addrandomthing() - [+] happening in addmonster(). - [+] lf = addmonster(c, R_RANDOM, NULL, B_TRUE, 1, B_TRUE, nadded); - [+] (glowbug was created) - [+] happening in addlf() - [+] glowbug again!! to do with light recalc ?? - [+] happening in setrace() - [+] happening while inheriting F_AWARENESS. have double checked to confirm this! - [+] in HASLOS????!! - [+] addflag->flagcausesloscalc, so haslos for all on the map. problem happens when we call haslos() for the lf getting F_AWARENESS added. - [+] is the problem that doing a los recalc breaks when we are still missing half our racial flags ? - [+] QUICK FIX: - [+] dont recalc los for any lf where born = 0. just set nlos to 0 - [+] and manually recalc los just before returning from addlf - [+] put sawgrsaas back to being common, not frequent - [+] is this finally fixed now? i think so!! - [+] if so, remove calls to "checkallflags" and most calls to checkflags() - [+] remove agility bonuses for weapon acc. now comes just from skill and from agi scaling on weapons. - [+] maybe difference in hit dice is a bad way to determine shieldblock difficulty. - [+] ...because the player rapidly gets higher than all other monsters on their dungeonlev. - [+] maybe just use monster's hitdice, ignore players. - [+] bug: abilities costing no stamina? - [+] in addmap, i am not initialising enough nextmap[]s - [+] flag.c bug: don't need to set player->losdirty when recalcing light on a different map - [+] lfs with F_DOESNTMOVE weren't attacking - [+] manuals are starting off known. why?? - [+] they don't appear in knowledge, so don't appear to have a hiddenname at all. - [+] make magical barriers block view. - [+] when describing armour / shield penalty, say - [+] "will lower your accuracy by 1" - [+] instead of - [+] "will lower your accuracy by 5%" - [+] make firstaid skill incrase your hp per level - [+] high agility seems to be giving a MASSIVE accuracy increase when higher than weapon's stat. - [+] maybe remove or reduce AGI acc bonuses. - [+] sack started off containing a FOOD VENDOR!@# - [+] size check obviously isn't working. - [+] need "obfits" in givestartobs!! - [+] hitting ESC when firing with F doesn't cancel.f - [+] hunter should start with fur cloak - [+] spellbooks are too cheap ($12) - [+] remove'p' for lockpick- just operate the lockpickobject. - [+] removed, - [+] ...but now tha tI've removed 'p' for picklocks, can i still use 'o' on a dagger or similar? - [+] NO - [+] maybe turn "pick lock" into a still - [+] how do you gain this? level 1 lockpicking - [+] then make lockpicks etc non-operable - [+] fix crash when drunk lfs take damage - [+] sleeping powder costs nothing - [+] memleaks??? 700mb usage!! - [+] valgrind - [+] found a memleak problem: definitely lost: 10,719,039 bytes in 11,420 blocks - [+] not killing flags when we kill an object!!!!! fixed now. - [+] memory usage is now ticking up heaps more slowly. - [+] investigate further with valgrind again..... - [+] when summoning, prefer cells for which the player has los. - [+] make jammed doors harder to open. - [+] no forcing a door open on your first go. should be: - [+] the door is jammed! - [+] you force it open. - [+] used f_jammed v1 = known
2011-12-17 06:54:08 +11:00
if ((spell == OT_A_DRAGUNDERGROUND) && (lf->race->id == R_HECTASSERVANT)) {
lf->hp = 0;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
}
}
- [+] 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
- [+] 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
// for firearms/projectiles, chance to fire/throw depends on accuracy.
if ((rangedattack == RA_GUN) || (rangedattack == RA_THROW)) {
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
int chance;
if (lfhasflag(lf, F_WILLTHROW)) {
chance = 100;
} else {
int acc;
acc = getmissileaccuracy(lf, target->cell, getammo(rangedob), rangedob, NULL);
switch (getpctletter(acc,100)) {
case 'S':
case 'A':
chance = 100; break;
case 'B':
chance = 75; break;
case 'C':
chance = 50; break;
default:
chance = 25; break;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
if (!pctchance(chance)) {
rangedattack = RA_NONE;
rangedob = NULL;
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (rangedattack != RA_NONE) { // ie if we found a ranged attack
if ((rangedattack == RA_THROW) && rangedob && hasflag(rangedob->flags, F_POWDER)) {
// don't have to maintain distance to throw powder
closethrowok = B_TRUE;
if (wantdistmin < 1) wantdistmin = 1;
if (wantdistmax < wantdistmin) wantdistmax = shootrange;
} else {
// stay out of target's attack range
if (wantdistmin < 2) wantdistmin = 2;
// and stay within range for our ranged attack
if (wantdistmax < wantdistmin) wantdistmax = shootrange;
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} // end if attackok
// move towards the target lf.
// try to get to our ideal range from them.
if (db) dblog(".oO { i am at distance %d, want to be at %d-%d }", dist, wantdistmin, wantdistmax);
if (dist > wantdistmax) {
- [+] CRASH in killflag() - [+] symptoms - [+] often happens right after creating a new map (ie. trigger it through a gate spell) - [+] bug in createriver(). fixed. - [+] somehow casting GATE is causing object flagpiles on the PLAYER's map to become corrupted. - [+] "the young hawk wakes up" CRASH, flagpile corrupt on stone. - [+] object itself seems okay. - [+] o->flags is becoming corrupt!!! - [+] so all its flags are becoming corrupt (id = massive number, next = fffff) - [+] traceback: - [+] #0 0x0000000100081188 in killflag (f=0x103321090) at flag.c:815 #1 0x0000000100081b3a in timeeffectsflag (f=0x103321090, howlong=1) at flag.c:1075 #2 0x00000001000825f8 in timeeffectsflags (fp=0x1038e0600) at flag.c:1302 #3 0x0000000100129b01 in timeeffectsob (o=0x1036e2460) at objects.c:11877 #4 0x0000000100005114 in timeeffectsworld (map=0x102aa1a00, updategametime=-1) at nexus.c:1685 #5 0x0000000100003a28 in donextturn (map=0x102aa1a00) at nexus.c:952 #6 0x00000001000029b1 in main (argc=1, argv=0x7fff5fbff848) at nexus.c:525 - [+] try this: in timeeffectsflags on objects, check PREVIOUS object's flagpile. - [+] try this: add checkflagS() after updatefpindex - [+] NOT happening during timeeffectsob(). - [+] compile with optimisation................. - [+] hapepning in createmap. but objects on the PLAYER's map are being corrupted, not the new one. - [+] happening in addrandomthing() - [+] happening in addmonster(). - [+] lf = addmonster(c, R_RANDOM, NULL, B_TRUE, 1, B_TRUE, nadded); - [+] (glowbug was created) - [+] happening in addlf() - [+] glowbug again!! to do with light recalc ?? - [+] happening in setrace() - [+] happening while inheriting F_AWARENESS. have double checked to confirm this! - [+] in HASLOS????!! - [+] addflag->flagcausesloscalc, so haslos for all on the map. problem happens when we call haslos() for the lf getting F_AWARENESS added. - [+] is the problem that doing a los recalc breaks when we are still missing half our racial flags ? - [+] QUICK FIX: - [+] dont recalc los for any lf where born = 0. just set nlos to 0 - [+] and manually recalc los just before returning from addlf - [+] put sawgrsaas back to being common, not frequent - [+] is this finally fixed now? i think so!! - [+] if so, remove calls to "checkallflags" and most calls to checkflags() - [+] remove agility bonuses for weapon acc. now comes just from skill and from agi scaling on weapons. - [+] maybe difference in hit dice is a bad way to determine shieldblock difficulty. - [+] ...because the player rapidly gets higher than all other monsters on their dungeonlev. - [+] maybe just use monster's hitdice, ignore players. - [+] bug: abilities costing no stamina? - [+] in addmap, i am not initialising enough nextmap[]s - [+] flag.c bug: don't need to set player->losdirty when recalcing light on a different map - [+] lfs with F_DOESNTMOVE weren't attacking - [+] manuals are starting off known. why?? - [+] they don't appear in knowledge, so don't appear to have a hiddenname at all. - [+] make magical barriers block view. - [+] when describing armour / shield penalty, say - [+] "will lower your accuracy by 1" - [+] instead of - [+] "will lower your accuracy by 5%" - [+] make firstaid skill incrase your hp per level - [+] high agility seems to be giving a MASSIVE accuracy increase when higher than weapon's stat. - [+] maybe remove or reduce AGI acc bonuses. - [+] sack started off containing a FOOD VENDOR!@# - [+] size check obviously isn't working. - [+] need "obfits" in givestartobs!! - [+] hitting ESC when firing with F doesn't cancel.f - [+] hunter should start with fur cloak - [+] spellbooks are too cheap ($12) - [+] remove'p' for lockpick- just operate the lockpickobject. - [+] removed, - [+] ...but now tha tI've removed 'p' for picklocks, can i still use 'o' on a dagger or similar? - [+] NO - [+] maybe turn "pick lock" into a still - [+] how do you gain this? level 1 lockpicking - [+] then make lockpicks etc non-operable - [+] fix crash when drunk lfs take damage - [+] sleeping powder costs nothing - [+] memleaks??? 700mb usage!! - [+] valgrind - [+] found a memleak problem: definitely lost: 10,719,039 bytes in 11,420 blocks - [+] not killing flags when we kill an object!!!!! fixed now. - [+] memory usage is now ticking up heaps more slowly. - [+] investigate further with valgrind again..... - [+] when summoning, prefer cells for which the player has los. - [+] make jammed doors harder to open. - [+] no forcing a door open on your first go. should be: - [+] the door is jammed! - [+] you force it open. - [+] used f_jammed v1 = known
2011-12-17 06:54:08 +11:00
// want to move but our race doesn't move?
if (lfhasflag(lf, F_DOESNTMOVE)) {
if (db) dblog(".oO { want to move towards target but have f_doesntmove - abandoning target. }");
- [+] CRASH in killflag() - [+] symptoms - [+] often happens right after creating a new map (ie. trigger it through a gate spell) - [+] bug in createriver(). fixed. - [+] somehow casting GATE is causing object flagpiles on the PLAYER's map to become corrupted. - [+] "the young hawk wakes up" CRASH, flagpile corrupt on stone. - [+] object itself seems okay. - [+] o->flags is becoming corrupt!!! - [+] so all its flags are becoming corrupt (id = massive number, next = fffff) - [+] traceback: - [+] #0 0x0000000100081188 in killflag (f=0x103321090) at flag.c:815 #1 0x0000000100081b3a in timeeffectsflag (f=0x103321090, howlong=1) at flag.c:1075 #2 0x00000001000825f8 in timeeffectsflags (fp=0x1038e0600) at flag.c:1302 #3 0x0000000100129b01 in timeeffectsob (o=0x1036e2460) at objects.c:11877 #4 0x0000000100005114 in timeeffectsworld (map=0x102aa1a00, updategametime=-1) at nexus.c:1685 #5 0x0000000100003a28 in donextturn (map=0x102aa1a00) at nexus.c:952 #6 0x00000001000029b1 in main (argc=1, argv=0x7fff5fbff848) at nexus.c:525 - [+] try this: in timeeffectsflags on objects, check PREVIOUS object's flagpile. - [+] try this: add checkflagS() after updatefpindex - [+] NOT happening during timeeffectsob(). - [+] compile with optimisation................. - [+] hapepning in createmap. but objects on the PLAYER's map are being corrupted, not the new one. - [+] happening in addrandomthing() - [+] happening in addmonster(). - [+] lf = addmonster(c, R_RANDOM, NULL, B_TRUE, 1, B_TRUE, nadded); - [+] (glowbug was created) - [+] happening in addlf() - [+] glowbug again!! to do with light recalc ?? - [+] happening in setrace() - [+] happening while inheriting F_AWARENESS. have double checked to confirm this! - [+] in HASLOS????!! - [+] addflag->flagcausesloscalc, so haslos for all on the map. problem happens when we call haslos() for the lf getting F_AWARENESS added. - [+] is the problem that doing a los recalc breaks when we are still missing half our racial flags ? - [+] QUICK FIX: - [+] dont recalc los for any lf where born = 0. just set nlos to 0 - [+] and manually recalc los just before returning from addlf - [+] put sawgrsaas back to being common, not frequent - [+] is this finally fixed now? i think so!! - [+] if so, remove calls to "checkallflags" and most calls to checkflags() - [+] remove agility bonuses for weapon acc. now comes just from skill and from agi scaling on weapons. - [+] maybe difference in hit dice is a bad way to determine shieldblock difficulty. - [+] ...because the player rapidly gets higher than all other monsters on their dungeonlev. - [+] maybe just use monster's hitdice, ignore players. - [+] bug: abilities costing no stamina? - [+] in addmap, i am not initialising enough nextmap[]s - [+] flag.c bug: don't need to set player->losdirty when recalcing light on a different map - [+] lfs with F_DOESNTMOVE weren't attacking - [+] manuals are starting off known. why?? - [+] they don't appear in knowledge, so don't appear to have a hiddenname at all. - [+] make magical barriers block view. - [+] when describing armour / shield penalty, say - [+] "will lower your accuracy by 1" - [+] instead of - [+] "will lower your accuracy by 5%" - [+] make firstaid skill incrase your hp per level - [+] high agility seems to be giving a MASSIVE accuracy increase when higher than weapon's stat. - [+] maybe remove or reduce AGI acc bonuses. - [+] sack started off containing a FOOD VENDOR!@# - [+] size check obviously isn't working. - [+] need "obfits" in givestartobs!! - [+] hitting ESC when firing with F doesn't cancel.f - [+] hunter should start with fur cloak - [+] spellbooks are too cheap ($12) - [+] remove'p' for lockpick- just operate the lockpickobject. - [+] removed, - [+] ...but now tha tI've removed 'p' for picklocks, can i still use 'o' on a dagger or similar? - [+] NO - [+] maybe turn "pick lock" into a still - [+] how do you gain this? level 1 lockpicking - [+] then make lockpicks etc non-operable - [+] fix crash when drunk lfs take damage - [+] sleeping powder costs nothing - [+] memleaks??? 700mb usage!! - [+] valgrind - [+] found a memleak problem: definitely lost: 10,719,039 bytes in 11,420 blocks - [+] not killing flags when we kill an object!!!!! fixed now. - [+] memory usage is now ticking up heaps more slowly. - [+] investigate further with valgrind again..... - [+] when summoning, prefer cells for which the player has los. - [+] make jammed doors harder to open. - [+] no forcing a door open on your first go. should be: - [+] the door is jammed! - [+] you force it open. - [+] used f_jammed v1 = known
2011-12-17 06:54:08 +11:00
loseaitargets(lf);
return B_TRUE;
}
if (db) dblog(".oO { moving towards target. }");
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// do we need to sprint got catch up?
if (lfhasflag(target, F_SPRINTING) && !lfhasflag(lf, F_SPRINTING) && cancast(lf, OT_A_SPRINT, NULL)) {
useability(lf, OT_A_SPRINT, NULL,NULL); // doesn't matter if it fails
}
if (!movetowards(lf, target->cell, DT_ORTH, B_FALSE)) {
if (db) dblog(".oO { successfully moved towards target. }");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
turntoface(lf, target->cell);
// success
return B_FALSE;
} else {
if (db) dblog(".oO { move towards failed! - reason = %d }",reason);
movefailed = B_TRUE;
}
} else if (dist < wantdistmin) {
if (db) dblog(".oO { moving away from target to maintain mindist %d. }", wantdistmin);
- [+] if you cancel a limited wish, don't age you. - [+] sourges shouldn't learn spells from books - [+] MR doesn't affect canwill spells? - [+] innate MR (ie. fromrace or from scource) doesn't affect spells either. - [+] too many potions of water! made it common rather than frequent. now NO frequent potions. - [+] getting 'wake t someone runmmaging through your pack' when noone nearby - [+] maybe this flag isn't gettginre removed properly? - [+] polymorph should fix injuries first * [+] for missing hand injuries, select the hand AFTER main switch() * [+] shouldn't be able to weild 2-handed weapons if you only have 1 hand!!! - [+] "travel" spell should let you go to RT_HABITAT things. - [+] fix crash validating f_spotted flag - [+] don't always put "The " on unique objects. - [+] use F_THE for this instead. - [+] godstones should still have F_THE - [+] don't place staircases inside MAINTAINEDGE vaults!! - [+] burning a wood floor only makes a hole in the ground if there are more levels underneath! - [+] end of caves: - [+] both bossrooms should have goblin king and red wyrmling - [+] stone key. - [+] need a vault flag which say s: add f_stayinroom to everyone who is created in this room - [+] done: "keepmonsinroom" - [+] cope with a branch's entry stairs coming from a vault - [+] killing unique monsters with necrotic damage should still leave a corpse. - [+] make "ornate chest" which has rare objects - [+] put it in branch endings and make it a rare object - [+] f_extrainfo in fireat() should show damage _after_ adjustment - [+] BUG: swamp rooms aren't connected!!!! - [+] end of forest branch: - [+] vault containing baba yaga's hut - [+] bone fence around it - [+] skeletons - [+] the hut. - [+] baba yaga's hut - [+] cabin on chicken legs - [+] f_timid! - [+] jump - [+] claw attacks - [+] walks around - [+] corpsetype = link to inside the hut - [+] made of dragonwood (ie. hardness 5) - [+] Don't say "You kill the walking hut". - [+] text when it dies: "Exhausted, the hut slumps to the ground." - [+] inside the hut = small level with baba yaga - [+] new regiontype: babayaga's hut - [+] new habitat: byhut - [+] making the habitat: only has a single vault. (one with tag 'byhut') - [+] diff layouts - [+] circular - [+] square - [+] baba yaga herself - [+] baba yaga - [+] weighs 50kg - [+] obs: - [+] key! - [+] hp: 135 = 22 hitdice (d6) - [+] 75% magic resistance - [+] attribs - [+] str: exhigh - [+] iq: exhigh - [+] wis: exhigh - [+] agi: average - [+] con: high - [+] cha: exlow - [+] fire, cold, magic, poison resist - [+] immune to necrotic - [+] abilities - [+] seeinvis - [+] awareness - [+] claw/teeth attacks. - [+] claw = 8 DR - [+] teeth = 6 DR - [+] maxattacks = 2 - [+] grab ability - [+] spells?????? - [+] fear - [+] weaken - [+] summon insects/animals - [+] entangle - [+] blink - [+] when she dies, unlock the hut door. - [+] delving code. - [+] new digging code: - [+] delve() - [+] delve_pullcell - [+] etc - [+] h_antnest - [+] creaetantnest calls delve() functions. - [+] insert this in the main dungeon somewhere - [+] populate with monsters (set rarity) - [+] place queen ant on the map. - [+] via new regionthing type RT_LF - [+] branch ends should have a boss with a key! - [+] jimbo - [+] babayaga - [+] cave boss (dragon ?)
2012-04-04 19:59:48 +10:00
if (!moveawayfrom(lf, target->cell, DT_ORTH, B_KEEPLOF, B_TRUE, B_ONPURPOSE)) { // maintain LOF, and keep facing the target
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// success
return B_FALSE;
} else {
if (db) dblog(".oO { move towards failed! - reason = %d }",reason);
movefailed = B_TRUE;
* [+] 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
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// if we got here, we're either at the correct distance or couldn't
// move.
if (attackok) {
// if not adjacent, check for guns, wands, throwing
if ( (rangedattack != RA_NONE) && // we have a ranged attack
haslofknown(lf->cell, target->cell, LOF_NEED, NULL) && // and we have line of fire to them
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
(closethrowok || onein(2) || (getcelldist(lf->cell, target->cell) > 1) )) { // and we're not adjacent to target OR random
if (rangedattack == RA_GUN) {
setguntarget(lf, target);
if (!shoot(lf)) {
// succesful
return B_FALSE;
} else {
if (db) dblog(".oO { shoot gun failed! reason = %d }", reason);
}
} else if (rangedattack == RA_THROW) {
// try to throw it!
if (!throwat(lf, rangedob, target->cell)) {
// succesful
return B_FALSE;
} else {
if (db) dblog(".oO { throw failed! }");
}
} else if (rangedattack == RA_WAND) {
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
int wandfailed = B_FALSE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
objecttype_t *st;
cell_t *zapcell = NULL;
st = getlinkspell(rangedob);
if (st) {
enum FLAG purpose;
if (lfhasflag(lf, F_FLEEFROM)) {
purpose = F_AICASTTOFLEE;
} else {
purpose = F_AICASTTOATTACK;
}
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
if (aigetspelltarget(lf, st, target, NULL, &zapcell, NULL, purpose)) {
wandfailed = B_TRUE;
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
// no linkspell - just zap it.
zapcell = NULL;
* [+] 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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// zap it
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
if (!wandfailed) {
if (!operate(lf, rangedob, zapcell)) {
// succesful
return B_FALSE;
} else {
if (db) dblog(".oO { zap failed! }");
}
}
- [+] job abilities can now generally happen as often as you like, since they're ilmited by stamina. - [+] rename dexterity to agility - [+] The leprechaun steals an uncursed ring of miracles from you! The leprechaun cowers away from you! - [+] should FLEE , not cower! - [+] should set blessknown after reading a scroll - [+] cursed mending scroll not working on non-damaged objects - [+] spanner helps metal repair - [+] needle boosts sewing ability - [+] when resting in a tent, monstesr have very low chance of noticing you (5%) - [+] move display of resistances to 'effects' section. - [+] show what a mosnter wants in effects (if you have >= beginner knowledge) - [+] prevent running into monsters with shift+dir - [+] infinite loop when creating a map, constant getrandomroomcell() calls failing - [+] monstesr will steal objects they WANT rather than always random - [+] monster: - [+] leprechaun - [+] lucky - [+] covets gold - [+] shillelagh ? or just a club? - [+] blink - [+] steal - [+] dodge - [+] at the moment attack doesn't seem to be draining stamina... - [+] it is, but i'm getting it right back due to attack speed. - [+] make stamina take longer to regen. - 1 per 3 turns rather than 1 per 2. - [+] stamina loss must be MORE than basic regen rate (0.3) - [+] make stamina loss for attack depend on atatck speed! - [+] instead of "you feel sick", say "you have contracted weakening poison" or "you have been infected with xxx" - [+] store stamina as a float, but getstamina() should return an int. - [+] sprinting - use 1.5 stamina per cell instead of 1? - [+] modify accuracy text - [+] fork - [+] showing f_entertext should set didmsg - [+] instead of printing 100% accuracy, show "Acc:0" (ie 100), "Acc:-1" (ie -10) etc - [+] do this in @@ - [+] do this in describeob - [+] nocturnal monsters - [+] base monsters initially being asleep on time and whether mosnter is nocturnal - [+] also during aiturn(), if they have nothing to do and it's their sleeping time, goto sleep - [+] add flags - [+] flies should always move towards corpses if possible - [+] maybe F_WANTSOB corpse, covet? - [+] but thye can't pick it up so they'll just hover nearby? - [+] now they can be hostile too - [+] when we're picking a random corpse, try again if we get something with nocorpse like a ghost - [+] getrandomcorpserace() - [+] lower stamina max - currently at lv1+ft:11 i have 7 stam. should be more like 5 - [+] severed finger shoudn't count as making you bleed when you attack - [+] in askcoords, always show cell name - [+] monsters with no melee attacks can always cast spells while adjacent - [+] resting issues - [+] having a temporary injury means oyu need to rest, so don't say "you don't need to rest"! - [+] also don't stop resting until all temporary injuries are healed - [+] show comparative weights / armour ratings - [+] make price for npcs to join be lower - [+] assertion failure with who->timespent == 0 when a mosnter falls through a hole - [+] (after I follow by falling down the pit) - [+] make taketime() not work when not on the player's map - [+] bug - monsters never waking up - [+] "tailwind" spell (fast movement speed but forwards only) - [+] now that i have Hardness, _all_ reduced damage should go towards armour. - [+] earthquake - pits open up around you (but not under you) - [+] force sphere - radial blast outwards, knocks back lfs + obs + doors etc
2011-10-04 14:24:53 +11:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} // end if rangedattackok
} // end if attackok
* [+] 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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// if we could see our traget, but everything we tried failed (spells, moving and ranged attack),
// either rest or move randomly.
if (movefailed) {
makenoise(lf, N_FRUSTRATED);
if (onein(2)) {
rest(lf, B_TRUE);
} else {
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
if (dorandommove(lf, B_NOBADMOVES, B_FALSE, B_FALSE)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
rest(lf, B_TRUE);
- [+] 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
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
- [+] 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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
// can't see target.
// move towards their last known location instead
cell_t *targcell;
int lastx,lasty;
int lastdir = D_NONE;
if (db) dblog(".oO { CANNOT see my target }");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
targcell = aigetlastknownpos(lf, target, &lastx, &lasty, &lastdir);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (targcell) {
// are we already AT their last known location?
if (targcell == lf->cell) {
if (db) dblog(".oO { cannot see target. i am already at their last known loc %d/%d }",lastx, lasty);
// go in their last known direction.
if (lastdir == D_NONE) {
if (db) dblog(".oO { i don't know my target's last known movement dir. }");
} else {
// try going in last known dir
if (db) dblog(".oO { trying target's last known move dir (%s) }",getdirname(lastdir));
if (!trymove(lf, lastdir, B_TRUE, B_FALSE)) {
if (db) dblog(".oO { ...successfully }");
// we now don't know their last known dir.
if (targetflag) {
- [+] CRASH in killflag() - [+] symptoms - [+] often happens right after creating a new map (ie. trigger it through a gate spell) - [+] bug in createriver(). fixed. - [+] somehow casting GATE is causing object flagpiles on the PLAYER's map to become corrupted. - [+] "the young hawk wakes up" CRASH, flagpile corrupt on stone. - [+] object itself seems okay. - [+] o->flags is becoming corrupt!!! - [+] so all its flags are becoming corrupt (id = massive number, next = fffff) - [+] traceback: - [+] #0 0x0000000100081188 in killflag (f=0x103321090) at flag.c:815 #1 0x0000000100081b3a in timeeffectsflag (f=0x103321090, howlong=1) at flag.c:1075 #2 0x00000001000825f8 in timeeffectsflags (fp=0x1038e0600) at flag.c:1302 #3 0x0000000100129b01 in timeeffectsob (o=0x1036e2460) at objects.c:11877 #4 0x0000000100005114 in timeeffectsworld (map=0x102aa1a00, updategametime=-1) at nexus.c:1685 #5 0x0000000100003a28 in donextturn (map=0x102aa1a00) at nexus.c:952 #6 0x00000001000029b1 in main (argc=1, argv=0x7fff5fbff848) at nexus.c:525 - [+] try this: in timeeffectsflags on objects, check PREVIOUS object's flagpile. - [+] try this: add checkflagS() after updatefpindex - [+] NOT happening during timeeffectsob(). - [+] compile with optimisation................. - [+] hapepning in createmap. but objects on the PLAYER's map are being corrupted, not the new one. - [+] happening in addrandomthing() - [+] happening in addmonster(). - [+] lf = addmonster(c, R_RANDOM, NULL, B_TRUE, 1, B_TRUE, nadded); - [+] (glowbug was created) - [+] happening in addlf() - [+] glowbug again!! to do with light recalc ?? - [+] happening in setrace() - [+] happening while inheriting F_AWARENESS. have double checked to confirm this! - [+] in HASLOS????!! - [+] addflag->flagcausesloscalc, so haslos for all on the map. problem happens when we call haslos() for the lf getting F_AWARENESS added. - [+] is the problem that doing a los recalc breaks when we are still missing half our racial flags ? - [+] QUICK FIX: - [+] dont recalc los for any lf where born = 0. just set nlos to 0 - [+] and manually recalc los just before returning from addlf - [+] put sawgrsaas back to being common, not frequent - [+] is this finally fixed now? i think so!! - [+] if so, remove calls to "checkallflags" and most calls to checkflags() - [+] remove agility bonuses for weapon acc. now comes just from skill and from agi scaling on weapons. - [+] maybe difference in hit dice is a bad way to determine shieldblock difficulty. - [+] ...because the player rapidly gets higher than all other monsters on their dungeonlev. - [+] maybe just use monster's hitdice, ignore players. - [+] bug: abilities costing no stamina? - [+] in addmap, i am not initialising enough nextmap[]s - [+] flag.c bug: don't need to set player->losdirty when recalcing light on a different map - [+] lfs with F_DOESNTMOVE weren't attacking - [+] manuals are starting off known. why?? - [+] they don't appear in knowledge, so don't appear to have a hiddenname at all. - [+] make magical barriers block view. - [+] when describing armour / shield penalty, say - [+] "will lower your accuracy by 1" - [+] instead of - [+] "will lower your accuracy by 5%" - [+] make firstaid skill incrase your hp per level - [+] high agility seems to be giving a MASSIVE accuracy increase when higher than weapon's stat. - [+] maybe remove or reduce AGI acc bonuses. - [+] sack started off containing a FOOD VENDOR!@# - [+] size check obviously isn't working. - [+] need "obfits" in givestartobs!! - [+] hitting ESC when firing with F doesn't cancel.f - [+] hunter should start with fur cloak - [+] spellbooks are too cheap ($12) - [+] remove'p' for lockpick- just operate the lockpickobject. - [+] removed, - [+] ...but now tha tI've removed 'p' for picklocks, can i still use 'o' on a dagger or similar? - [+] NO - [+] maybe turn "pick lock" into a still - [+] how do you gain this? level 1 lockpicking - [+] then make lockpicks etc non-operable - [+] fix crash when drunk lfs take damage - [+] sleeping powder costs nothing - [+] memleaks??? 700mb usage!! - [+] valgrind - [+] found a memleak problem: definitely lost: 10,719,039 bytes in 11,420 blocks - [+] not killing flags when we kill an object!!!!! fixed now. - [+] memory usage is now ticking up heaps more slowly. - [+] investigate further with valgrind again..... - [+] when summoning, prefer cells for which the player has los. - [+] make jammed doors harder to open. - [+] no forcing a door open on your first go. should be: - [+] the door is jammed! - [+] you force it open. - [+] used f_jammed v1 = known
2011-12-17 06:54:08 +11:00
changeflagtext(targetflag, "");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
return B_FALSE;
}
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
// not already at their last known cell. try to go there.
if (db) dblog(".oO { i cannot see my target. moving to last known loc %d/%d }",lastx,lasty);
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
assert(targcell->x == lastx);
assert(targcell->y == lasty);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (aigoto(lf, targcell, MR_LF, target, PERMENANT)) {
- [+] vaults - [+] oval - [+] chasm - [+] room split in 4 by glass - [+] concentricroom - [+] Crash when a vault uses the object 'hole in the ground' - [+] better method of giving spells to monsters - [+] f_randomspellcount v0=amt - [+] f_randomspellschool v0=ss_xxx v1=minlevel v2=maxlevle, text = pw:xxx or null - [+] if power not given: - [+] castig power is (starting depth / 2) - [+] limited by spell's max level. - [+] OR - [+] f_randomspellcount v0=amt - [+] f_randomspellposs v0=spellid, optional text = power. - [+] include these in validateraces - [+] populate monsters... - [+] TEST! (with fire sprite, check if it casts a spell other then fire dart) - [+] if monster is randomly given the job "j_wizard", you MUST pick a subjob too! - [+] go back to using CANCAST for monster spells, so that they show up properly in a mind scan. - [+] druid should start with sickle as secondary weapon. - [+] healing not hurting undead - should be fixed now. - [+] add description of spell powe calculation to spell skills - [+] increase obhp of armour - [+] i was a druid, levelled up to l4, and didn't get a new spell! FIXED. wasn't refreshing LEVSPELLSCHOOLFROMX. - [+] make it a lot harder to get "beheaded" etc. - [+] show real object name in "killed by a thrown xxx" even if you didn't see it - [+] short blades shouldn't be able to behead. - [+] monster threat calc should take #attacks into account! - [+] CTRL-DIR to turn isn't working agian. fixed. - [+] make peasoup have range 1, rather than just going straight in front of you. - [+] power 1 glyph of wardning useless. fixed. - [+] reduce zombie maxattacks to 1. - [+] bug: Are alcohol no longer covered in (null).--More-- - [+] make merlochs much more rare. - [+] light recalc is MASSIVELY slow on some levels. - [+] for now: remove dark levels completely? - [+] "You see 2 sheet of ices here." - [+] remove F_FROZEN when you cook something. - [+] frostbite should do a little more damage. d4 instead of d3.
2012-02-29 17:05:14 +11:00
if (db) dblog(".oO { set target cell for LKL. }");
// success
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
} else {
if (db) dblog(".oO { aigoto target's last known loc failed! }");
}
2011-03-04 12:22:36 +11:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
// we don't know their last known location....
if (db) dblog(".oO { go to target's last known loc failed! }");
2011-03-04 12:22:36 +11:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
2011-03-04 12:22:36 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) dblog(".oO { aimovetolf failed. }");
// FAILED.
return B_TRUE;
}
2011-02-01 06:16:13 +11:00
// f is the F_TARGETCELL flag we're using
int aimovetotargetcell(lifeform_t *lf, flag_t *f) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int x,y;
cell_t *c = NULL,*origc,*targetc;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int db = B_FALSE;
enum ATTRBRACKET iqb;
assert(f->id <= F_LAST);
iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
2011-02-01 06:16:13 +11:00
//checkflagpile_maplfs(lf->cell->map);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
- [+] 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
//checkflagpile(lf->flags); // debug
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
x = f->val[0];
y = f->val[1];
if (db) dblog(".oO { walking from %d,%d towards f_targetcell (%d,%d) ... }", lf->cell->x, lf->cell->y, x, y);
origc = lf->cell;
targetc = getcellat(lf->cell->map, x, y);
if (targetc) {
flag_t *pathf = NULL;
if (!haslof(lf->cell, targetc, LOF_WALLSTOP, NULL)) {
// if we DONT have LOF to the target cell, use
// a pathfinding algorithm.
// do we ahv an existing path?
pathf = lfhasflag(lf, F_AIPATH);
if (!pathf) {
if (iqb >= IQ_ANIMAL) {
// if we DONT have a direct path, then pathfind.
pathf = ai_createpathto(lf, targetc);
}
}
if (pathf) {
c = ai_getnextcellinpath(lf);
} else {
// couldn't find a path there...
// just try to move directly towards it.
}
} else {
// if we _DO_ have lof to the cell, we'll just walk direclty towards it.
c = targetc;
}
if (c) {
int failed = B_FALSE;
// try to move towards the cell
if (movetowards(lf, c, DT_ORTH, B_FALSE )) {
failed = B_TRUE;
} else {
// check that our movement didn't make us lose our target cell
// in a less obvious way eg. unopenable door in the way.
cell_t *newc;
flag_t *newflag;
newc = aigettargetcell(lf, &newflag);
if (!newc || !newflag || (newc != c) || (newflag != f)) {
failed = B_TRUE;
}
}
if (failed) {
// couldn't move towards it for some reason.
// so stop trying.
if (db) dblog(".oO { couldn't walk towards f_targetcell. abandoning it. }");
loseaitargets(lf);
// remember NOT to target this one.
addignorecell(lf, c);
c = NULL;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else {
// move successful
int turned = B_FALSE;
if (lf->cell == origc) {
if (db) dblog(".oO { turned to face f_targetcell. (still at %d,%d) }",lf->cell->x, lf->cell->y);
turned = B_TRUE;
} else {
if (db) dblog(".oO { successfully walked towards f_targetcell. arrived at %d,%d }",lf->cell->x, lf->cell->y);
}
assert(f->id <= F_LAST);
if (pathf && (lf->cell == c)) {
ai_popnextcellinpath(lf);
}
assert(f->id <= F_LAST);
// moved towards it.
// reset lifetime
f->lifetime = aigetchasetime(lf);
assert(f->id <= F_LAST);
// are we there yet?
if (lf->cell == targetc) {
enum MOVEREASON mr;
// yes. remove target cell
if (db) dblog(".oO { arrived at f_targetcell. removing. }");
assert(f->id <= F_LAST);
mr = f->val[2];
if ((mr == MR_LF) && f->text) {
lifeform_t *targlf;
// if we were chasing someone, keep looking
// for them.
targlf = findlf(lf->cell->map, atoi(f->text));
if (targlf) {
if (db) dblog(".oO { resuming pursuit of %s }", targlf->race->name);
addflag(lf->flags, F_TARGETLF, targlf->id, NA, NA, NULL);
}
}
killflag(f);
} else {
if (!turned && (c != lf->cell)) {
turntoface(lf, c);
}
}
- [+] when throwin gn aobject, warn if you have no LOF (just like spells) - [+] allow dodge/catch of thrown object when there is no thrower (ie. arrow traps) - [+] simplify monster spellcasting - [+] don't use any mp - [+] select power based on monster hit dice only - [+] monsters should cast spells less often - use f_castchance, default of 15% chance - [+] TEST - [+] you keep your own mpdice when polymorphing into a mosnter - [+] fxied: throw a tranq dart, then: - [+] The cockatrice loses consciousness. The cockatrice falls asleep. - [+] bug: can't operate a fridge on the ground cause it's too heavy to lift - [+] monsters generated on dark levels should always have seeindark 3-4 - [+] vending machines not working... fixed. - [+] in getchoicestr: - [+] if !showall, and if it shows a longdesc, then you hit backspace, longdesc should be cleared. - [+] show completion in a different colour - [+] bug: sometimes we seem to have map->room[x], but no cells with cell->room->id == thatid!! - [+] stop vaults from overlapping. - [+] taking too long to walk down levels - enforce max number of monster free turns - [+] inept weapon penalty should be slightly higher - [+] bad feeling check is too easy. - [+] skeletons should have f_noinjuries - [+] shouldn't check for slipping on things while swimming - [+] tweak how traps + perception skill impact search checks - [+] bug: sometimes we have no player start position. - [+] if the vault creation fails, restart map generation. - [+] only give study scroll ability at high spellcasting skill - [+] typo: ring (1 charges left) * [+] god effects when you die: - [+] pea soup should work in the cell in FRONT of you. - [+] bug: ring of control seems to work when you _weild_ it!! - [+] non-lethal weapons - [+] sword of mercy (at <1hp, ko) - [+] tranq dart - [+] add sleeptypes - [+] change all refernces to f_asleep->val[1] (now an enum) - [+] change "stirs in its slumber" if unconscious - [+] change all 'fallasleep' calls - [+] attacking a ko'd enemy with merciful weapon should do nothing. - [+] ai shouldn't target ko'd enemies - [+] ai should stop targetting people once they're dead/ko'd - [+] bashing damage should sometimes just knock unconscious instead of killing? - [+] if their hp would be >= -3, and onein(2) - [+] different body part names? "metal frame" instead of "body" - [+] implement F_BPNAME, v0=enum bodypart, text = name - [+] getbodypartname() needs a lf argument. - [+] once i add this, also make animals have "front legs" instead of "arms", "paws" rather than "hands" etc. - [+] fix calls to getbodypartname to pass in lf or null - [+] cyborg mods: - [+] can't wear most armour? - [+] need f_noarmouron - we HAVE this bp, but can't put armour on it. - [+] large rust damage from water - [+] if you have a bad feeling about an object, mark it as "[bad]" - [+] f_knownbad - [+] killing should anger the god of mercy
2011-09-22 12:00:16 +10:00
}
} else {
// !c
2010-12-02 12:17:54 +11:00
}
}
if (!c) {
if (db) dblog(".oO { f_targetcell doesn't exist anymore. moving randomly. }");
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// destination doesn't exist!
loseaitargets(lf);
// move randomly now.
dorandommove(lf, B_NOBADMOVES, B_TRUE, B_FALSE); // this function will call rest() if we cant move
2011-02-01 06:16:13 +11:00
}
//checkflagpile(lf->flags); // debug
//checkflagpile_maplfs(lf->cell->map);
// success
return B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
2011-02-01 06:16:13 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int aipickup(lifeform_t *lf, object_t *o) {
// special case
if ((o->type->id == OT_COFFIN) && (lf->race->id == R_GASCLOUD) && lfhasflagval(lf, F_ORIGRACE, R_VAMPIRE, NA, NA, NULL)) {
return rest(lf, B_TRUE);
}
// if (isedible(o)) {
if (caneat(lf, o)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return eat(lf, o);
} else {
return pickup(lf, o, o->amt, B_TRUE, B_TRUE);
}
return B_FALSE;
}
2011-05-20 06:30:58 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int aipickupok(lifeform_t *lf, object_t *o) {
int ok = B_FALSE;
// special case
if ((o->type->id == OT_COFFIN) && (lf->race->id == R_GASCLOUD) && lfhasflagval(lf, F_ORIGRACE, R_VAMPIRE, NA, NA, NULL)) {
return B_TRUE;
2011-05-20 06:30:58 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
/*
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (hasflag(o->flags, F_SHOPITEM)) {
return B_FALSE;
}
*/
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
//if (isedible(o) && caneat(lf, o) && !isinbattle(lf, B_NODISTANT, B_FALSE)) {
if (isedible(o) && caneat(lf, o)) {
ok = B_TRUE;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
} else if (canpickup(lf, o, 1)) {
ok = B_TRUE;
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return ok;
}
2011-05-20 06:30:58 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
int aiobok(lifeform_t *lf, object_t *o, lifeform_t *target) {
// non-humanoids can only use food.
if (!lfhasflag(lf, F_HUMANOID)) {
if (o->type->obclass->id != OC_FOOD) {
return B_FALSE;
}
}
switch (o->type->id) {
case OT_POT_INVIS:
case OT_WAND_INVIS:
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
if (target && lfhasflag(target, F_INVISIBLE)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
* [+] 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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
break;
case OT_POT_INVULN:
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
if (target && lfhasflag(target, F_INVULNERABLE)) {
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_FALSE;
* [+] 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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
break;
default:
break;
2011-02-01 06:16:13 +11:00
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return B_TRUE;
}
2011-02-01 06:16:13 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
void aiturn(lifeform_t *lf) {
int db = B_FALSE;
int icanattack = B_FALSE;
flag_t *f;
lifeform_t *master = NULL;
enum ATTRBRACKET iqb;
//checkflagpile_maplfs(lf->cell->map);
- [+] CRASH in killflag() - [+] symptoms - [+] often happens right after creating a new map (ie. trigger it through a gate spell) - [+] bug in createriver(). fixed. - [+] somehow casting GATE is causing object flagpiles on the PLAYER's map to become corrupted. - [+] "the young hawk wakes up" CRASH, flagpile corrupt on stone. - [+] object itself seems okay. - [+] o->flags is becoming corrupt!!! - [+] so all its flags are becoming corrupt (id = massive number, next = fffff) - [+] traceback: - [+] #0 0x0000000100081188 in killflag (f=0x103321090) at flag.c:815 #1 0x0000000100081b3a in timeeffectsflag (f=0x103321090, howlong=1) at flag.c:1075 #2 0x00000001000825f8 in timeeffectsflags (fp=0x1038e0600) at flag.c:1302 #3 0x0000000100129b01 in timeeffectsob (o=0x1036e2460) at objects.c:11877 #4 0x0000000100005114 in timeeffectsworld (map=0x102aa1a00, updategametime=-1) at nexus.c:1685 #5 0x0000000100003a28 in donextturn (map=0x102aa1a00) at nexus.c:952 #6 0x00000001000029b1 in main (argc=1, argv=0x7fff5fbff848) at nexus.c:525 - [+] try this: in timeeffectsflags on objects, check PREVIOUS object's flagpile. - [+] try this: add checkflagS() after updatefpindex - [+] NOT happening during timeeffectsob(). - [+] compile with optimisation................. - [+] hapepning in createmap. but objects on the PLAYER's map are being corrupted, not the new one. - [+] happening in addrandomthing() - [+] happening in addmonster(). - [+] lf = addmonster(c, R_RANDOM, NULL, B_TRUE, 1, B_TRUE, nadded); - [+] (glowbug was created) - [+] happening in addlf() - [+] glowbug again!! to do with light recalc ?? - [+] happening in setrace() - [+] happening while inheriting F_AWARENESS. have double checked to confirm this! - [+] in HASLOS????!! - [+] addflag->flagcausesloscalc, so haslos for all on the map. problem happens when we call haslos() for the lf getting F_AWARENESS added. - [+] is the problem that doing a los recalc breaks when we are still missing half our racial flags ? - [+] QUICK FIX: - [+] dont recalc los for any lf where born = 0. just set nlos to 0 - [+] and manually recalc los just before returning from addlf - [+] put sawgrsaas back to being common, not frequent - [+] is this finally fixed now? i think so!! - [+] if so, remove calls to "checkallflags" and most calls to checkflags() - [+] remove agility bonuses for weapon acc. now comes just from skill and from agi scaling on weapons. - [+] maybe difference in hit dice is a bad way to determine shieldblock difficulty. - [+] ...because the player rapidly gets higher than all other monsters on their dungeonlev. - [+] maybe just use monster's hitdice, ignore players. - [+] bug: abilities costing no stamina? - [+] in addmap, i am not initialising enough nextmap[]s - [+] flag.c bug: don't need to set player->losdirty when recalcing light on a different map - [+] lfs with F_DOESNTMOVE weren't attacking - [+] manuals are starting off known. why?? - [+] they don't appear in knowledge, so don't appear to have a hiddenname at all. - [+] make magical barriers block view. - [+] when describing armour / shield penalty, say - [+] "will lower your accuracy by 1" - [+] instead of - [+] "will lower your accuracy by 5%" - [+] make firstaid skill incrase your hp per level - [+] high agility seems to be giving a MASSIVE accuracy increase when higher than weapon's stat. - [+] maybe remove or reduce AGI acc bonuses. - [+] sack started off containing a FOOD VENDOR!@# - [+] size check obviously isn't working. - [+] need "obfits" in givestartobs!! - [+] hitting ESC when firing with F doesn't cancel.f - [+] hunter should start with fur cloak - [+] spellbooks are too cheap ($12) - [+] remove'p' for lockpick- just operate the lockpickobject. - [+] removed, - [+] ...but now tha tI've removed 'p' for picklocks, can i still use 'o' on a dagger or similar? - [+] NO - [+] maybe turn "pick lock" into a still - [+] how do you gain this? level 1 lockpicking - [+] then make lockpicks etc non-operable - [+] fix crash when drunk lfs take damage - [+] sleeping powder costs nothing - [+] memleaks??? 700mb usage!! - [+] valgrind - [+] found a memleak problem: definitely lost: 10,719,039 bytes in 11,420 blocks - [+] not killing flags when we kill an object!!!!! fixed now. - [+] memory usage is now ticking up heaps more slowly. - [+] investigate further with valgrind again..... - [+] when summoning, prefer cells for which the player has los. - [+] make jammed doors harder to open. - [+] no forcing a door open on your first go. should be: - [+] the door is jammed! - [+] you force it open. - [+] used f_jammed v1 = known
2011-12-17 06:54:08 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
/*
if (wantdb && haslos(player, lf->cell)) {
db = B_TRUE;
} else {
db = B_FALSE;
}
*/
* [+] 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
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (wantdb && lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
} else {
db = B_FALSE;
}
- [+] job abilities can now generally happen as often as you like, since they're ilmited by stamina. - [+] rename dexterity to agility - [+] The leprechaun steals an uncursed ring of miracles from you! The leprechaun cowers away from you! - [+] should FLEE , not cower! - [+] should set blessknown after reading a scroll - [+] cursed mending scroll not working on non-damaged objects - [+] spanner helps metal repair - [+] needle boosts sewing ability - [+] when resting in a tent, monstesr have very low chance of noticing you (5%) - [+] move display of resistances to 'effects' section. - [+] show what a mosnter wants in effects (if you have >= beginner knowledge) - [+] prevent running into monsters with shift+dir - [+] infinite loop when creating a map, constant getrandomroomcell() calls failing - [+] monstesr will steal objects they WANT rather than always random - [+] monster: - [+] leprechaun - [+] lucky - [+] covets gold - [+] shillelagh ? or just a club? - [+] blink - [+] steal - [+] dodge - [+] at the moment attack doesn't seem to be draining stamina... - [+] it is, but i'm getting it right back due to attack speed. - [+] make stamina take longer to regen. - 1 per 3 turns rather than 1 per 2. - [+] stamina loss must be MORE than basic regen rate (0.3) - [+] make stamina loss for attack depend on atatck speed! - [+] instead of "you feel sick", say "you have contracted weakening poison" or "you have been infected with xxx" - [+] store stamina as a float, but getstamina() should return an int. - [+] sprinting - use 1.5 stamina per cell instead of 1? - [+] modify accuracy text - [+] fork - [+] showing f_entertext should set didmsg - [+] instead of printing 100% accuracy, show "Acc:0" (ie 100), "Acc:-1" (ie -10) etc - [+] do this in @@ - [+] do this in describeob - [+] nocturnal monsters - [+] base monsters initially being asleep on time and whether mosnter is nocturnal - [+] also during aiturn(), if they have nothing to do and it's their sleeping time, goto sleep - [+] add flags - [+] flies should always move towards corpses if possible - [+] maybe F_WANTSOB corpse, covet? - [+] but thye can't pick it up so they'll just hover nearby? - [+] now they can be hostile too - [+] when we're picking a random corpse, try again if we get something with nocorpse like a ghost - [+] getrandomcorpserace() - [+] lower stamina max - currently at lv1+ft:11 i have 7 stam. should be more like 5 - [+] severed finger shoudn't count as making you bleed when you attack - [+] in askcoords, always show cell name - [+] monsters with no melee attacks can always cast spells while adjacent - [+] resting issues - [+] having a temporary injury means oyu need to rest, so don't say "you don't need to rest"! - [+] also don't stop resting until all temporary injuries are healed - [+] show comparative weights / armour ratings - [+] make price for npcs to join be lower - [+] assertion failure with who->timespent == 0 when a mosnter falls through a hole - [+] (after I follow by falling down the pit) - [+] make taketime() not work when not on the player's map - [+] bug - monsters never waking up - [+] "tailwind" spell (fast movement speed but forwards only) - [+] now that i have Hardness, _all_ reduced damage should go towards armour. - [+] earthquake - pits open up around you (but not under you) - [+] force sphere - radial blast outwards, knocks back lfs + obs + doors etc
2011-10-04 14:24:53 +11:00
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (db) {
char lfname[BUFLEN];
- [+] change real_getlfname(): - [+] take lifeform_t * for usevis instead of boolean - [+] add new option "useorigrace" for shapechangers - [+] whips - [+] F_WHIP - [+] new skill: sk_whips - [+] basic trais: - [+] high accuracy - [+] lowish dam - [+] pierce/slash/bash damage - [+] some will let you cast 'snatch' and suck - [+] no crit chance - [+] examples: - [+] bull whip (lowest damage) - [+] flail (ie. chain whip ,change type from club to whip) - [+] heavy flail - [+] metal-tipped whip (flail with higher acc) - [+] barbed whip (causes piercing damage as well) - [+] io.c @@ should take extradam into account - [+] describbeob() should show F_EXTRADAM - [+] change morale values - this shoudl default to your TR, otherwise f_morale replaces it. - [+] CRASH in doknowledgelist() - [+] hecta bug: fixed! - [+] You bisect the kobold! The dying kobold shouts "Nooooo!". Hecta's voice grates against your mind: "You allowed my sacrifice to escape!" - [+] is this because i'm calling "flee" after the lf takes fatal damage but before die() is called? - [+] NO, because flee() checks isdead(lf) - [+] it's happening when i kill a monster, and another one of the same type sees me! - [+] change: only trigger this is the player has previously attacked the monster - [+] replace fire titan with balrog - [+] You bisect the giant gnat! The dying giant gnat shouts "Nooooo!". - [+] fixed. - [+] boggart -brown 'n' - [+] made of wood - [+] cause things to disappear - [+] cause milk to sour (low power blight) - [+] scared of salt - [+] demandgold - [+] briar thrash (spiky) - yellow 'T' (grab) - [+] bingebark - red 'T'. wants edible, canwill snatch - [+] leshy (human with leaves) - green 'h' - [+] manticore - red 'm'' - [+] lion, bat lings, man head, tail tipped with iron spikes - [+] carnivore - [+] human sized - [+] shoots 1-6 spikes. each spike does 1d6. too much!! - [+] change this to be 5d3 damage per volley. - [+] ie missiledam 4d3 - [+] can do this once every 50 turns. - [+] can fly - [+] claws - 1d3 1d3 - [+] want gold (non covet)
2012-03-29 07:17:47 +11:00
real_getlfname(lf, lfname, NULL, B_SHOWALL, B_CURRACE);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
dblog("AIMOVE: %s, facing %s", lfname, getdirnameshort(lf->facing));
* [+] 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
}
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// if lifeform isn't alive, skip turn
if (isdead(lf)) {
if (db) dblog(".oO { i am not alive, skipping turn. }");
taketime(lf, SPEED_DEAD);
//checkflagpile_maplfs(lf->cell->map);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
return;
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
}
// if game has just started and player hasn't had their turn yet,
// skip turn
if (!playerhasmoved) {
if (db) dblog(".oO { player hasn't had their initial turn yet, skipping turn. }");
taketime(lf, SPEED_DEAD);
//checkflagpile_maplfs(lf->cell->map);
- [+] glorana doesn't like you attacking during Glorana's Peace - [+] make more shops let you donate - [+] bookstore - [+] jewellery store - [+] rename blood hawk to hunting hawk - [+] offering a bribe to creatures should make them move likely to helkp you, AND reset the "auto don't help' flag - [+] change "get lost " message to "get lost, <racename>" if your race is different. - [+] sayphrase() needs a new arg: lifeform_t *talkingto - [+] colours for spell effect. - [+] eg. "the flame dart hits xxx" should use CC_BAD - [+] muddy room - mud should be immutable. - [+] maybe change rage - you lose control totally and just attack anything in sight? - [+] do it. - [+] don't train when enraged - [+] don't hear sounds when enraged - [+] RAGE effects: strength bonus, accuracy bonus, infinite stamina, never flee, - [+] fix bug in skill point calculation - [+] CRASH - someone got their turn BEFORE the player! - [+] new poisontype field - contracttext - [+] hecta's pray effect not working. - [+] adjust food poisioning check difficulty based on food age - [+] check OBHP percentage of max. - [+] >= 80% obhp means -30% difficulty check - [+] ring of unholiness should confer dtvuln holy. - [+] fix colour on spellclouds - [+] fix bug with spellclouds not affecting centre cell. - [+] if you are frozen, heat does extra damage and cold does none. - [+] when frozen, lessen chance of melting. - [+] reduce bite damage of snakes - [+] balaclava should protect from gas - [+] make some floor types (like carpet) be multicoloured - [+] celltype->altcolour - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is true. - [+] don't regain stamina while training - [+] random text in shops - sayphrase needs to cope with lf == null - [+] done - [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with staves! - [+] BUG: in vault.vlt. - [+] "30% chance of door" really means "otherwise empty cell" - [+] need to be able to say "else put a wall here" - [+] so change: - [+] c:type:what[:pct] - [+] to this: - [+] c:type:what[:pct][:alttype:altwhat] - [+] vlegend_t needs - [+] enum VAULTTHING tt2 - [+] char *what2 - [+] they default to VT_NONE, NULL - [+] secret doors should take their fake wall type from the vault spec - [+] vaults need f_celltypeempty/solid flags - [+] add via: solid:xxx in vault def - [+] recycler - [+] donate anything
2012-07-15 15:01:58 +10:00
return;
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
}
* [+] 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
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////
// info gathering
///////////////////////////////////////////
// remember our intelligence
iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
// are we a pet?
f = lfhasflagval(lf, F_PETOF, NA, NA, NA, NULL);
if (f && (getallegiance(lf) == AL_FRIENDLY)) {
master = findlf(lf->cell->map, f->val[0]);
2011-02-01 06:16:13 +11:00
}
2010-12-02 12:17:54 +11:00
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
//checkflagpile_maplfs(lf->cell->map);
- [+] 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
///////////////////////////////////////////////
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// emergencies / fixing up
- [+] 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
///////////////////////////////////////////////
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (ai_handle_emergencies(lf, iqb)) return;
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// housekeeping - weapon changes, drop/pickup,
// use items, talk,etc
///////////////////////////////////////////////
if (ai_housekeeping(lf, master)) return;
2011-03-16 15:45:46 +11:00
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// healing
///////////////////////////////////////////////
if (ai_healing(lf)) return;
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// inventory management
///////////////////////////////////////////////
if (ai_inventory_mgt(lf, &icanattack)) return;
- [+] 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
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] 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
///////////////////////////////////////////////
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
// attacking existing targets
- [+] 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
///////////////////////////////////////////////
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
if (ai_attack_existing_target(lf)) return;
- [+] 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
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// generic pre-movement actions.
///////////////////////////////////////////////
if (ai_premovement(lf)) return;
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// movement
///////////////////////////////////////////////
if (ai_movement(lf)) return;
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
- [+] when something grabs you, show an 'X' in its location so you know SOMETHING is there. - [+] do this in getscannedthing . glyph = 'X' - [+] make grabbing force a redraw if the target is the player!! - [+] fix crash for fountain of ambrosia (because potion name starts with 'vial' not 'potion') - [+] show X for latched on monsters too - [+] and make latching onto the player force a redraw too - [+] chnage f_rage flag redraw to be done in flagcausesredraw() - [+] shop bugs - [+] bug: food vendor only had 3 pieces of food - [+] bg: jewellery store had no items!! - [+] getrandomobject bug - [+] bug - wantrr too low!!! - [+] if wantrr gets to 0 and still nothing, start ticking up from original value. - [+] bug: rings cost $0 - [+] need a warning before invisibility runs out - [+] make most recipe food heal you a bit - [+] if interrupted halfway through training, remember where we were up to - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0] (v1 is the goal) - [+] when you start resting, if you don't already have it, add it: - [+] v1 = 50; v1 = modifybystat(traincounter, player, A_IQ); - [+] v0 = 0 - [+] if you DO have it, drop v0 by 25 modified by IQ. minimum of 0. - [+] when you train, INC the counter, don't dec it. - [+] when v0 = v1, your'e done. - [+] when you finish training, kill the flag. - [+] shadowcat meat - produce and see through smoke - [+] split aimove up into sections - [+] emergencies - [+] healing - [+] housekeeping - [+] inventory mgt urgent - [+] attacks - [+] pre-movement - [+] movement along existing paths - [+] boredom - [+] go back to my shop - [+] look for something to attack - [+] gods go home - [+] training - [+] inventory_mgt_nonurgent - [+] repairing armour - move this to inventory mgt?? - [+] snakes "slither into a wall", not walk. use F_WALKVERB - [+] animate stone spell - turn statues to pets. - [+] can't be both a vegetarian and carnivore! race overrides job.
2011-11-24 09:10:08 +11:00
///////////////////////////////////////////////
// look for something to do (objects, things
// to attack, etc)
///////////////////////////////////////////////
if (ai_bored(lf, master, icanattack)) return;
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
2010-12-02 12:17:54 +11:00
- [+] 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
// DEFAULT - try to move in a random direction
if (db) dblog(".oO { default - moving randomly }");
//checkflagpile_maplfs(lf->cell->map);
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
dorandommove(lf, B_NOBADMOVES, B_TRUE, B_FALSE); // this function will call rest() if we cant move
//checkflagpile_maplfs(lf->cell->map);
ailoscheck(lf);
// somehow still here?
if (!lf->timespent) {
taketime(lf, getmovespeed(lf));
}
//checkflagpile_maplfs(lf->cell->map);
2011-02-01 06:16:13 +11:00
}
// is the spell 'spellid' okay for AI lifeform 'lf' to cast at 'victim', for given purpose.
// purpose could be F_AICASTTOFLEE or F_ATCASTTOATTACK
int aispellok(lifeform_t *lf, enum OBTYPE spellid, lifeform_t *victim, enum FLAG purpose) {
objecttype_t *ot;
flag_t *f;
int db = B_FALSE;
int ok = B_FALSE;
int specialcase = B_FALSE;
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
int specificcheckok = B_FALSE;
* [+] 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 needlos = B_TRUE;
enum LOFTYPE needlof = LOF_NEED;
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
int castchance = 0;
enum SPELLTARGET targettype = TT_NONE;
if (lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
}
if (lfhasflag(lf, F_RAGE)) {
if (db) dblog(".oO { can't cast spells, i am enraged }");
return B_FALSE;
}
- [+] fixed CRASH when energy blade vanishes - [+] gods of opposing alignments should never make offers. - [+] new armour flag: - [+] f_underclothing - [+] getequippedob() - get the outer one. - [+] if you have f_underclothing, can wear other armour on top of it. - [+] can't remove underclothes without removing outer first. - [+] TEST with cotton shirt - [+] make sure autoequip handles undercltohing - [+] fix other objects - [+] adjust ']' output - [+] make armour help against some magical damage too - [+] move armour check and reduction into losehpeffects(). - [+] pass damreducedbyarmour to losehpeffects - [+] psionic spells: - [+] dampen missiles - lots of extra evasion vs missiles only * [+] soul link (l4, share damage) - [+] mind sheidl (l4, like the amulet) - [+] delay death (l5, don't die if hp <= 0 and this spell is active) - [+] remote ko (l6) - [+] Silence spell / effect - air. - [+] f_silenced. - [+] announce in io.c - [+] prevents spellcasting - [+] prevents docomms() - [+] prevents reading scrolls - [+] prevents speech-based abilities like warcry and sonic bolt - [+] say() will fail - [+] sayphrase() wil fail - [+] test the spell....... - [+] CRASH when adjusting glyph on edge of map - [+] non-humanoids can't climb without climb skill. - [+] player sohuld be able to swap with unconscious/asleep lfs <= same size - [+] too easy to knock things unconscious??? bug. fixed. - [+] reusable cells being set to empty! think this was a vault definition problem. - [+] demon chameleon / deech - [+] low-level mosnter which can hide
2012-12-06 15:57:13 +11:00
if (lfhasflag(lf, F_SILENCED)) {
if (db) dblog(".oO { can't cast spells, i am silenced }");
return B_FALSE;
}
ot = findot(spellid);
* [+] 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
if (ot) {
flag_t *f;
f = hasflag(ot->flags, F_LOSLOF);
if (f) {
needlos = f->val[0];
needlof = f->val[1];
}
}
// override needlos/lof based on cast type
f = lfhasflag(lf, F_CASTTYPE);
if (f) {
switch (f->val[0]) {
case CT_GAZE:
needlos = B_TRUE;
break;
case CT_EYESPIT:
needlof = LOF_NEED;
break;
}
}
* [+] 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
// enough mp etc?
if (!cancast(lf, spellid, NULL)) {
if (db) {
char why[BUFLEN];
if (reason == E_NOMP) {
strcpy(why, "not enough mp");
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (reason == E_CLIMBING) {
strcpy(why, "climbing");
- [+] add autopop to playerstart vaults - [+] rename magic skills: Magic:Cold - [+] bug: infinite loop in poison arrow trap - make sure the arrow always dies. - [+] bug: c4 didn't kill iron door - [+] implement stamina (float). max is Fit/2 * [+] in startlfturn: - [+] sprinting drains this. - [+] ...then stop using f_sprinting for exhausted - [+] ...and remove f_tired - [+] if exhausted, stop sprinting. (in modstamina) - [+] change crushed windpipe - [+] f_stamcost for abilities. - [+] modify cancast. - [+] tumbling - [+] jumping - [+] rage - [+] swimming - [+] drains stamina like sprinting - [+] if stamina drops to 0, you start drowning. - [+] new spell: lethargy (sets stamina to 0) - [+] if a sleep spell fails, use lethergy instead. - [+] no attacking while stam = 0 ??? - [+] need to update statbar right away when casting ongoing spells. - [+] bug: reading an awareness scroll counting as an active spell! - [+] genericise magic resistance check into a function - [+] "disorient" - l1 mental spell which randomly turns lf, someitmes makes them dizzy - [+] change stun - just means you can't attack, cast spell, use abils * [+] AI shouldn't look for targets if stunned or no stamina * [+] why do mosnters end up facing -1 (d_none) ?? - [+] turn undead problem. - [+] The skeleton turns to flee from you! The skeleton bites you. - [+] crit which spins you around (bash to body) - [+] say "you attack xxx from behind" when you ar ebehidn them and they can't see you - [+] or "you attack the helpless xxx" when thye just can't see you - [+] genericise sacrifice text - [+] fix up weight of heads (8% of body mass) - [+] make attribss do more: - [+] iq: determine how soon you learn new skills (ie. modify SKILLXPPERPOINT) - [+] fit: determines stamina points. - [+] wisdom >= AT_HIGH - [+] warn before wearing/eating/drinking/weilding unknown bad/cursed objects (low chance) - [+] use isbadobject() - [+] chance: - [+] high = 10% - [+] vhigh = 30% - [+] exhigh = 50% - [-] idea: sacrifice to gods to make them happier - [+] mercy: weapons - [+] death: any corpses - [+] thieves: gold
2011-09-15 08:42:54 +10:00
} else if (reason == E_NOSTAM) {
strcpy(why, "not enough stamina");
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (reason == E_LOWIQ) {
strcpy(why, "lowiq");
} else if (reason == E_PRONE) {
strcpy(why, "prone");
} else if (reason == E_SWIMMING) {
strcpy(why, "swimming");
} else if (reason == E_TOOPOWERFUL) {
strcpy(why, "spell too powerful");
} else if (reason == E_NOTREADY) {
strcpy(why, "abil not ready");
} else if (reason == E_NEEDGRAB) {
strcpy(why, "needs grab");
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
} else if (reason == E_INJURED) {
strcpy(why, "injured");
} else {
strcpy(why, "unknown reason");
}
if (db) {
if (ot) {
dblog(".oO { can't cast %s right now (%s) (mpcost=%d, i have %d) }",
ot ? ot->name : "?unkownspell?", why,
getmpcost(lf, ot->id), lf->mp);
} else {
dblog(".oO { can't cast ?unknownspell? right now }");
}
}
}
return B_FALSE;
}
// boost spell already active?
if (hasflag(ot->flags, F_ONGOING)) {
if (lfhasflagval(lf, F_BOOSTSPELL, ot->id, NA, NA, NULL)) {
if (db) {
dblog(".oO { can't cast %s - it is already active.", ot ? ot->name : "?unkownspell?");
}
return B_FALSE;
}
}
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
f = lfhasflagval(lf, F_AISPELLTARGETOVERRIDE, ot->id, purpose, NA, NULL);
if (f) {
if (strlen(f->text)) {
castchance = atoi(f->text);
} else {
castchance = 100;
}
targettype = f->val[2];
} else {
f = hasflag(ot->flags, purpose);
if (f) {
if (f->val[1] == NA) {
castchance = 100;
} else {
castchance = f->val[1];
}
targettype = f->val[0];
}
}
if (f) {
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
if (pctchance(castchance)) {
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
int range, minrange,dist;
dist = getcelldist(lf->cell, victim->cell);
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
switch (targettype) {
case ST_VICTIM:
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
range = getspellrange(lf, spellid, getspellpower(lf, spellid), &minrange);
if (((range == UNLIMITED) || (dist <= range)) && (dist >= minrange)) {
if (db) {
dblog(".oO { spell possibility: %s }", ot ? ot->name : "?unkownspell?");
}
ok = B_TRUE;
}
break;
case ST_SELF:
case ST_ANYWHERE:
if (db) {
dblog(".oO { spell possibility: %s }", ot ? ot->name : "?unkownspell?");
}
ok = B_TRUE;
break;
case ST_ADJVICTIM:
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
if (dist == 1) {
if (ot->id == OT_A_GRAB) {
if (lfhasflag(lf, F_GRABBING) || lfhasflag(lf, F_GRABBEDBY) ||
lfhasflag(victim, F_GRABBING) || lfhasflag(victim, F_GRABBEDBY)) {
} else {
ok = B_TRUE;
}
} else if (ot->id == OT_A_CRUSH) {
// can only crush if you first grab something
if (lfhasflag(lf, F_GRABBING)) {
ok = B_TRUE;
}
} else if (ot->id == OT_A_SUCKBLOOD) {
// must attach first
if (lfhasflag(lf, F_ATTACHEDTO)) {
ok = B_TRUE;
}
} else {
ok = B_TRUE;
}
}
break;
case ST_ADJSELF:
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
if (dist == 1) {
ok = B_TRUE;
}
break;
case ST_SPECIAL:
specialcase = B_TRUE;
break;
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
case ST_NONE:
ok = B_FALSE;
break;
}
* [+] 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
// now check for line of sight / fire
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
switch (targettype) {
case ST_VICTIM:
case ST_ADJVICTIM:
if (needlos && (!victim || !cansee(lf, victim)) ) {
if (db) dblog(".oO { cant cast %s - no LOS to victim }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
}
if (needlof && !haslofknown(lf->cell, victim->cell, needlof, NULL) ) {
if (db) dblog(".oO { cant cast %s - no LOF to victim }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
}
break;
default:
break;
}
} else { // failed pctchance for spell
if (db) dblog(".oO { failed pct check for casting %s }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
* [+] 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
}
} else {
// invalid spell for this purpose
* [+] 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
if (db) dblog(".oO { cant cast %s - not valid for given purpose }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
}
if (specialcase) {
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
if (ot->id == OT_A_CLIMB) {
int possible = B_TRUE,i;
enum ERROR reason;
// can't climb for a reason other than that there isn't
// a climbabnle cell in front of us?
if (!canclimb(lf, &reason)) {
if (reason != E_BADCLIMBDIR) {
possible = B_FALSE;
}
}
if (possible) {
// cell in sight and adjacent?
for (i = 1; i < lf->nlos; i++) {
if (!lf->los[i]->lf && lf->los[i]->type->solid && (getcelldist(lf->cell, lf->los[i]) == 1)) {
ok = B_TRUE;
break;
}
}
}
} else if (ot->id == OT_S_ANIMATESTATUE) {
cell_t *cell[MAXCANDIDATES];
int ncells,i;
// adjacent cell with a tree?
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
if (hasob(cell[i]->obpile, OT_STATUE)) {
ok = B_TRUE;
break;
}
}
} else if (ot->id == OT_S_ANIMATETREE) {
cell_t *cell[MAXCANDIDATES];
int ncells,i;
// adjacent cell with a tree?
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
if (hasob(cell[i]->obpile, OT_TREE)) {
ok = B_TRUE;
break;
}
}
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
} else if (ot->id == OT_S_DIG) {
cell_t *cell[MAXCANDIDATES];
int ncells,i;
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
if (cell[i]->type->solid &&
isdiggable(cell[i], OT_S_DIG) &&
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
getcelldist(cell[i], victim->cell) == 1) {
ok = B_TRUE;
break;
}
}
} else if (ot->id == OT_A_FULLSHIELD) {
object_t *targun,*sh;
int dist;
if (lfhasflag(lf, F_FULLSHIELD)) {
// turn off fullshield if:
// - i have no target
// - i have an adjacent target
if (!lfhasflag(lf, F_AIHITBYRANGED)) {
if (!victim || isinbattle(lf, B_FALSE, B_FALSE) ||
!isinbattle(lf, B_TRUE, B_FALSE)) {
ok = B_TRUE;
}
}
} else {
// turn on fullshield if:
//
// - I've recently been hit by a ranged attack.
// - I'm quite intelligent
// AND
// My target has a ranged weapon AND i'm not adjacent AND i'm in range.
sh = getshield(lf, DT_ALL);
if (sh) {
if (lfhasflag(lf, F_AIHITBYRANGED)) {
ok = B_TRUE;
} else {
enum ATTRBRACKET iqb;
iqb = getattrbracket(getattr(lf, A_IQ), A_IQ, NULL);
if (iqb >= AT_GTAVERAGE) {
targun = getfirearm(victim);
dist = getcelldist(lf->cell, victim->cell);
if (targun && getammo(targun) &&
haslof(victim->cell, lf->cell, LOF_NEED, NULL) &&
(dist > 1) && (dist <= getfirearmrange(targun)) ) {
ok = B_TRUE;
}
}
}
}
}
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
} else if (ot->id == OT_A_JUMP) {
cell_t *cell[MAXCANDIDATES],*c;
int ncells,i;
getradiuscells(lf->cell, 2, DT_COMPASS, B_TRUE, LOF_WALLSTOP, B_FALSE, cell, &ncells, 0);
for (i = 0; i < ncells; i++) {
c = cell[i];
if (!cellwalkable(lf, c, NULL) || celldangerous(lf, c, B_TRUE, NULL)) {
continue;
}
if (purpose == F_AICASTTOATTACK) {
// is this cell closer to the victim?
if (getcelldist(victim->cell, c) < getcelldist(victim->cell, lf->cell)) {
ok = B_TRUE;
break;
}
} else {
// is this cell further away from the victim?
if (getcelldist(victim->cell, c) > getcelldist(victim->cell, lf->cell)) {
ok = B_TRUE;
break;
}
}
}
- [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!! - [+] air spells: - [+] create whirlwind - make a single whirlwind - [+] implement - [+] ethereal steed - move very fast and levitate - [+] f_autocreateob whirlwind behind you - [+] whirlwind object throws any lfs/objects around randomly - [+] tornado - creates a single tornado at a given location (more powerful). it moves around randomly, kills adjacent walls. - [+] F_OBMOVESRANDOMLY - [+] find an adjacent cell (walls ok) - [+] kill any walls there - [+] move there - [+] hurricane - creates a cross cloud of whirlwinds (very powerful!). these move around randomly and kills adjacent walls. - [+] implement - [+] make them all move TOGETHER. - [+] djinni / genie - [+] invisibility - [+] gaseous form - [+] illusion? mirror image ? - [+] permenant ethereal steed effects - [+] airblast - [+] gust of wind - [+] efreeti - [+] wall of fire (new spell) - [+] gas form - [+] enlarge - [+] flame pillar - [+] when summoning a monster with a lifeob, place it under them? - [+] druid should learn canwill plantwalk at some point... level 7 - [+] allow f_cancast to have a timer too, like canwill. (so that monsters only cast certain spells sometimes) - [+] is ai plantwalk working? - [+] seems to... - [+] but then i get "something casts a spell at you!" - [+] aigetspelltarget is setting targlf to player. FIXED. - [+] ai keeps on casting plantwalk after doing it once. - [+] ai needs to sto fleeing after casting plantwalk successfully! - [+] this is because after stealing, we are fleeing for a time limit, rather than PERMENANT - [+] once this is fixed, add spellcasttext plantwalk = null for dryad. - [+] NEw code: if you teleport, and you were fleeing, and you can no longer have LOF to the one uou're fleeing from, STOP. - [+] The dryad vanishes! A dryad moves out of view.--More-- - [+] don't say both! - [+] change CHARMEDBY code for player: - [+] walk towards charmer, then give them your stuff! - [+] dryad brown 'T' (tree creature) - [+] knife - [+] must stay near oak tree - [+] can "plantwalk" between oak trees (or other plants). - [+] cast spell at cell with plant, warps you to a random one - [+] for player: reveal all cells with trees, then ask you which one. - [+] range 1 - [+] maxpower 1 - [+] ai casting: must be a plant in range. - [+] emergency code: if not within lifeob range, move back! - [+] can cast sleep - [+] wants gold/gems/weapons - [+] home oak tree contains gems - [+] steal - [+] stayinroom - [+] charm - [+] AI shouldn't ever walk away from life ob! - [+] ai homeob gems aren't appearing
2012-03-07 22:46:55 +11:00
} else if (ot->id == OT_S_PLANTWALK) {
cell_t *cell[MAXCANDIDATES];
int ncells,i;
getradiuscells(lf->cell, 1, DT_COMPASS, B_TRUE, LOF_DONTNEED, B_TRUE, cell, &ncells, 0);
// any plants within range 1?
for (i = 0; i < ncells; i++) {
if (hasobofclass(cell[i]->obpile, OC_FLORA)) {
ok = B_TRUE;
}
}
- [+] chemistry skill lets to mix venom sacs into potions - [+] need a potion and venom sac - [+] make more things drop venom sacs - snakes etc - [+] F_EXTRACORPSE - [+] operate the venom sac ? - [+] can do this with first levle chemistry - [+] different kind of venom - blindness - [+] "blue venom sac" vs "purple venom sac" - [+] combiesn to potion of blindness - [+] more amulets - [+] common - [+] of bravery - [+] of light (common) - [+] of minor protection (common) (=5 AR - [+] energy absorbtion (absorb explosions, then pump them out) - [+] uncommon - [+] injury prvention (instead of ring) - [+] rare - [+] or major protection (not common) +10 AR - [+] had a missing eye. drunk a healing potino. - [+] Your head grows back! Your injured head has healed. - [+] objects with positive F_BONUS should never start cursed - [+] (in addobject) - [+] territorial monsters talk when you are approaching their threshold (but not within it) - [+] put this in ai_talk() - [+] if someone almost at territorial range: - [+] make f_noisetext v2 be SP_xxx. if it's set, just say this instead. - [+] it not, N_TERRITORY_APPROACH - [+] if we can talk, SP_TERRITORY_APPROACH - [+] possibilities: - [+] stay away! - [+] keep back! - [+] get away froma me! - [+] don't come any closer! - [+] that's close enough. - [+] keep your distance, stranger! - [+] out of my way! - [+] test with giant and - [+] test with insane humanoid - [+] make territorial creatures not walk too close to things, unless they are attacking or fleeing - [+] in willmove(), fail if it is too close to something - [+] ...unless we have a target lf - [+] ...or we are fleeing - [+] jumping when woozy will go to a random cell - [+] fix autoshortcuts to include starting spells - [+] still bugs with canreachbp - "The giant rat critically scratches your wizard hat." - [+] zombies shoudln't be able to talk. - [+] allow pets to "cheat" to find player's lcoation. - [+] need some kind of limit on zombie army creation - [+] no stairs - [+] areallies() on two pets returning false - [+] psychic shove - [+] push off something, or push them away - [+] l2 mental - [+] pushback power+1 cells (max power 3) - [+] different god message for first prayer. - [+] fix crash during swapplaces() - [+] sacrifice of masterwork weapons should work better. shoddy should be worse. - [+] bug: shops don't work anymore - [+] change lessen poison - power always goes to 1 - [+] replace description "spell's power is boosted when cast outside" with "boosted when cast in a forested area" - [+] minor healing problem. "at lest 2hp per power" but mxpower 10. should be maxpwer 5 - [+] wish for 'protection' should give something you can wear without penalties. - [+] locate object should give a message when none are found.
2012-11-15 22:39:46 +11:00
} else if (ot->id == OT_S_PSYSHOVE) {
if (purpose == F_AICASTTOATTACK) {
if (getlfweight(lf, B_WITHOBS) >= getlfweight(victim, B_WITHOBS)) {
ok = B_TRUE;
}
} else if (purpose == F_AICASTTOFLEE) {
if (getlfweight(lf, B_WITHOBS) < getlfweight(victim, B_WITHOBS)) {
ok = B_TRUE;
}
}
* [+] let credit cards be used at some shops? * [+] bug with adding obejcts to shops - [+] issue with objects dying and killing their flagpiles - [+] A medium fire dies down a little. A medium fire is no longer glowing. - [+] shouldn't say "is no longer glowing" when we're changing the type... ? - [+] put a breakpoint on "is no longer glowing" * [+] let you bless objects using a holy circle somehow (but it might make the circle disappear?). - [+] darness bug - need to recalc light for anyone who sees a cell's lightlevel change. - [+] call more() after showing vaultentertext() - [+] remove "inspected" when you ident or makeknown an object. - [+] BUG - no objects in inventory!!!! - [+] listobs failing? mylist[0] = null. MEMLEAK - [+] finish implementing CLEANUP() - [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing STACKABLE flag from cactus fruit??? - [+] better now? - [+] now a crash freeing hiddennames! - [+] forgot to free obmods - [+] leaking approx. 1 meg per turn! - [+] where am i leaking?! maybe try valgrind or findleak.c - [+] findleak.c now finds nothing. - [+] but i am sitll leaking????? - [+] related to lifeform count. killing all but player dramatically slows it. - [+] check calclos()... looks okay. - [+] setcellknown() ?no. - [+] startlfturn?? no. - [+] remove unused "lf->viscell" - [+] when there are 2 things in a cell, say "you see x and x here." - [+] restore original stast when polymorphing back to original form!!! - [+] when making shops, pick new ones more often. - [+] change to maps: don't let vaults overlap. - [+] HARDCODE object values - [+] potions - [+] tech - [+] tools - [+] rings - [+] increase evasion skill effects - [+] changes to animradial... and animradialorth - [+] combine into one function - [+] move msg into here - [+] refs to spellcloud() - [+] refs to animradial() - [+] fire should spread onto flammable lifeforms - [+] bug: attack flurry doesn't work for monk - [+] let monsters climb even when not facing a wall? - [+] set their facing first. - [+] CRASH when you die while climbing (or on a solid cell) - [+] rings - [+] stench - [+] breath water - [+] detect life - [+] deceleration - [+] meditation - [+] reflection - [+] boost magic power - [+] education - gain xpskills more quickly - [+] crit protection - [+] greed - detect obs - [+] ivy - grows! - [+] ragefungus - bezerk spores - [+] nutter - drops peanuts - [+] dish which slightly increases maxhp (beginner level) - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 13:55:14 +11:00
} else if (ot->id == OT_S_PYROMANIA) {
- [+] magic map should be magical - [+] crash when generating monster warriors - [+] bug: calling taketime twice when attacks fail? - [+] (once in attackcell(), then again in attacklf() or attackob()) - [+] weapon changes: - [+] in general, lower accuracy for piercing weapons - [+] in general, raise accuracy for slashing / bashing weapons - [+] long piercing weapons (ie. spear) give you a 'thrust' ability (attack 2 cells away) - [+] long slashing weapons cannot be used if < 3 open cells around you (f_needspace) - [+] maybe: you can't "hear" your unseen ally if they are asleep - [+] need to draw after flying things swoop away, in case they block your view. - [+] raceslaying weapons - [+] dragon - dragonslaying - [+] animal - butchering - [+] plant - of blight - [+] undead - of divine power - [+] magic - of antimagic - [+] brand restriction - [+] brands: f_onlygoeson ot_xxx - [+] brands: f_onlygoesondt dt_xxx - [+] check this in brandappliesto - [+] "pyromania" spell - [+] for all fires or burning objects in sight: (implement getflamingobs() ) - [+] "the fire flares!" (fire objects regain full hp, burning flags gain lifetime) - [+] large fire obs:surround it with smaller ones. - [+] small fire obs: make bigger - [+] burning obs: make a small fire - [+] give it to red dragons - [+] ai casting... (if fire in sight) - [+] blue dragon - lightning - [+] ancient has chain lightning - [+] flood ? lowlevel - [+] gust of wind - [+] white dragon - cold - [+] pea soup - [+] hailstorm - [+] ancient: absolute zero ?
2011-11-08 06:39:43 +11:00
int i;
for (i = 0; i < lf->nlos; i++) {
if ((lf->los[i] != lf->cell) && getflamingobs(lf->los[i]->obpile, NULL, NULL)) {
ok = B_TRUE;
}
}
} else if (ot->id == OT_S_TELEKINESIS) {
int i;
float maxweight;
maxweight = getlfweight(lf, B_NOOBS) +
(getlfweight(lf, B_NOOBS) * (getstatmod(lf, A_IQ) / 100));
for (i = 0; i < lf->nlos; i++) {
if (lf->los[i] != lf->cell) {
object_t *o;
for (o = lf->los[i]->obpile->first ; o ; o = o->next) {
if (!hasflag(o->flags, F_NOPICKUP) &&
getobmass(o) <= maxweight) {
ok = B_TRUE;
break;
}
if (ok) break;
}
}
}
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
} else if (ot->id == OT_S_SUPERHEAT) {
// got a potion?
if (victim && hasobwithflag(lf->pack, F_DRINKABLE) &&
haslofknown(lf->cell, victim->cell, LOF_NEED, NULL)) {
- [+] rename dragon to wyrm - [+] cooked food shouldn't "completely rot away" - [+] fire l6: meteor - large version of fireball - [+] burning feet - [+] evaporate should be a fire spell too. - [+] more gods should remove curse for you. - [+] eyebats shouldn't sleep - [+] make hecta's prayers even more powerful. - [+] fix bug in bjorn's truestrike effect - [+] bjorn should un-dull weapons - [+] fix buggy supply closet definitions - was getting 1-5 of same object rather than 1-5 different ones - [+] restrict potion of growth to lower levels. - [+] change method of determining how much you can carry. - [+] change initial modification spell to 'enlarge object' - [+] enlarge object - [+] door -> seals with surroundings - [+] rock -> boulder - [+] sword -> greatsword - [+] buckler -> next size shield - [+] bag -> next size bag - [+] or should this be a different spell? - [+] immolate - [+] if a successful unarmed attack, lf catches on fire. - [+] wizard isn't weilding staff. are fists better? - [+] freezing touch shouldn't work on dragonwood - [+] fix bug preventing vision when meditating - [+] auto shortcuts - [+] wizards: pri/sec spells are 1/2 - [+] cook: lowest shortcut left. - [+] statbar not being updated when i drink potion of magic. - [+] warn that flying will stop mapping. - [+] bjorn gifts should only be ones which you are skilled in! - [+] add 'appropriate' - [+] then apply to god.c - [+] warn if you pick up poison stuff and you god doesn't like it - [+] "I hope you're not planning on using that/those...." - [+] superheat - throw potion like a grenade
2012-01-30 09:47:43 +11:00
ok = B_TRUE;
}
} else {
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
if (db) dblog(".oO { cant cast %s - specialcase conditions not yet coded }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
}
}
if (!ok) {
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
if (db) dblog(".oO { cant cast %s - targetting conditions cannot be met }", ot ? ot->name : "?unkownspell?");
return B_FALSE;
}
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
// now check whether it meets specific spell conditions
specificcheckok = B_TRUE;
* [+] 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
if (ot->id == OT_S_AIRBLAST) {
// target must be in a straight compass dir from us
if ((victim->cell->x != lf->cell->x) ||
(victim->cell->y != lf->cell->y) ||
(abs(victim->cell->x - lf->cell->x) != abs(victim->cell->y - lf->cell->y)) ) {
* [+] 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
} else {
specificcheckok = B_FALSE;
}
}
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
if (ot->id == OT_S_ANIMATEDEAD) {
int found = B_FALSE,i;
// must be a corpse in sight
for (i = 0; i < lf->nlos; i++) {
if (hasob(lf->los[i]->obpile, OT_CORPSE)) {
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
found = B_TRUE;
break;
}
}
if (!found) {
specificcheckok = B_FALSE;
}
}
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
if (ot->id == OT_S_ANIMATEMETAL) {
object_t *wep;
wep = getweapon(lf);
if (!wep || !ismetal(wep->material->id)) {
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
specificcheckok = B_FALSE;
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
}
}
if ((ot->id == OT_S_BLINDNESS) && isblind(victim)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
}
- [+] add f_nostam to undead. - [+] add nonausea rather than nosmell sometimes. - [+] rats should eb able to smell, but not get nauseated. - [+] fix triumph pleasure for bjorn. must be no monsters within LOF... or within radius ? - [+] and make it very low piety gain. - [+] remember which level we got flags form - [+] flag_t -> fromlev - [+] announce this in getflagcourse - [+] undead qualities - [+] no criticals - [+] don't naturally heal - [+] don't breath - [+] drainlevel(fromlf) - [+] check for dtresist necrotic - [+] fitness saving throw (difficulty is 100 + fromlf's level*6) - [+] call loselevel() - [+] loselevel() - [+] announce. - [+] drop maxhp. - [+] adjust hp appropriately - [+] lose any flags where >fromlev is too high. - [+] handle monk f_hasattack specially. - [+] getmonkdr(level) - [+] getmonkattacks(level) - [+] keep track of what stats we gained and lose them again. - [+] TEST level drain with cursed xp pot - [+] TEST level drain with stats... - [+] prevent drinking when wearing full-face masks like gas mask/football helmet - [+] implement f_COVERSFACE. - [+] add it to objects. - [+] check it when doing caneat() candrink() - [+] up their AC bonus too - [+] large scorpion - [+] hellhound - [+] large primalities - [+] new vault flag: usehabitat:xxx - [+] means "set the habitat of all vault cells to xxx" - [+] real_getrandomob() should be given a CELL, not MAP. - [+] getrandomobofclass() should be given a CELL, not MAP. - [+] use CELL habitat to determine random obs - [+] apply to caves - [+] vault scatter: ignore locked cells (ie. reusable ones) new vaults - [+] dualroom - [+] sauna - vhot! - [+] pentagram and demons new pionic spells - [+] chi bolt - low dam ranged attack 1d4 - [+] chi strike (l4) - add 1d4 explosive damage to melee hits
2012-12-03 16:12:29 +11:00
if (ot->id == OT_S_BLINKASS) {
cell_t *targcell;
targcell = getcellindir(victim->cell, diropposite(victim->facing));
- [+] add f_nostam to undead. - [+] add nonausea rather than nosmell sometimes. - [+] rats should eb able to smell, but not get nauseated. - [+] fix triumph pleasure for bjorn. must be no monsters within LOF... or within radius ? - [+] and make it very low piety gain. - [+] remember which level we got flags form - [+] flag_t -> fromlev - [+] announce this in getflagcourse - [+] undead qualities - [+] no criticals - [+] don't naturally heal - [+] don't breath - [+] drainlevel(fromlf) - [+] check for dtresist necrotic - [+] fitness saving throw (difficulty is 100 + fromlf's level*6) - [+] call loselevel() - [+] loselevel() - [+] announce. - [+] drop maxhp. - [+] adjust hp appropriately - [+] lose any flags where >fromlev is too high. - [+] handle monk f_hasattack specially. - [+] getmonkdr(level) - [+] getmonkattacks(level) - [+] keep track of what stats we gained and lose them again. - [+] TEST level drain with cursed xp pot - [+] TEST level drain with stats... - [+] prevent drinking when wearing full-face masks like gas mask/football helmet - [+] implement f_COVERSFACE. - [+] add it to objects. - [+] check it when doing caneat() candrink() - [+] up their AC bonus too - [+] large scorpion - [+] hellhound - [+] large primalities - [+] new vault flag: usehabitat:xxx - [+] means "set the habitat of all vault cells to xxx" - [+] real_getrandomob() should be given a CELL, not MAP. - [+] getrandomobofclass() should be given a CELL, not MAP. - [+] use CELL habitat to determine random obs - [+] apply to caves - [+] vault scatter: ignore locked cells (ie. reusable ones) new vaults - [+] dualroom - [+] sauna - vhot! - [+] pentagram and demons new pionic spells - [+] chi bolt - low dam ranged attack 1d4 - [+] chi strike (l4) - add 1d4 explosive damage to melee hits
2012-12-03 16:12:29 +11:00
if (!cellwalkable(lf, targcell, NULL)) {
specificcheckok = B_FALSE;
}
}
if (ot->id == OT_S_BLOODBOIL) {
if (lfhasflag(victim, F_BLOODBOIL)) {
specificcheckok = B_FALSE;
}
}
if (ot->id == OT_S_DEATHKEEN) {
if (!isnighttime()) specificcheckok = B_FALSE;
}
- [+] battlemage spellbook - [+] make it grimoire. - [+] don't learn the first spell automatically - [+] only start with 3 spell schools, and they must be from: - [+] wizards with no subjob: - [+] get a grimoire rather than a spellbook. but first spell is always mana spike? - [+] need some frequent forest vaults - [+] tree passage: - [+] tree circle - [+] more enlarge/shrink object effects - [+] wooden door = wood wall - [+] wooden barrel - wooden dor - [+] i turned into a cloud of gas. why was i not flying? - [+] when you polymorph to creautre with natural flight, start flying right away - [+] show %age chance when studying a scroll - [+] redo skillcheck code so we can calculate % chance beforehand. - [+] automatically unlock all doors in starting room - [+] reduce accuracy for innate attakcs- at the moment they always hit! - [+] based on agility. - [+] test with monk...... - [+] You have the following spells active: 3 damage reduction, vuln to fire - [+] grimoire - why could druid see 'knock' ? think this is fixed now. - [+] new killverbs: "murdered" "slain" - [+] superheat not working if you miss. fixed. - [+] skillchecks for NC_SPELLEFFECT noises should always succeed. - [+] modifydamage dealt now that monsters have more hp: - [+] initial wizard spells - [+] chill - [+] spark - [+] manaspike - [+] later wiz spells - [+] fire on ground - [+] new type of spellbook: - [+] general - one spell from each school "spell tome" ? "xxx's grimoire"/ - [+] another flagpile corruption bug. - [+] asked a mammoan hunter to join me. - [+] Marcus shouts "Beware a mosquitoid!". You hear heavy footsteps. - [+] Assertion failed: ("flagpile is corrupt!" == 0), function checkflagpile, file flag.c, line 456. - [+] (timeeffects on footprints) - [-] when you "vomit then wake up", need to recalc los - [+] killflag() is meant to fix this! - [ ] why isnt it working? - [+] bug: wasn't identify()ing starting weapons when you selected them. - [+] allow temples to try to belss unknown objects. - [+] allow describing obs from askobmulti() - [+] warrior read a grimoire, why did it get identified? fixed. - [+] reduce cost to repair stuff - [+] dancing flame -l1: fires spread to adjacent lfs - [+] cleansing fire = l2: use nearby fire to heal -heal (power*20)% from each one. - [+] maxpower 5 - [+] quicken fire - l4: make flame primarliry - [+] magic barriers should vanish if you walk into your own one - [+] implement - [+] fleeing from something with F_NOMOVE shouldn't be cowardice - [+] fix crash in check_for_block() - [+] new branch: sylvan forest - [+] entrance to this branch: hollow tree? * [+] add some forest vaults - [+] get rid of 'the sun is coming up" messages - [+] nature spells which work better outside need to change... make it 'when in sylvan woods' instead - [+] need a spell to teleport to entrance of a branch! - [+] done. TRAVEL.
2012-03-27 07:21:43 +11:00
if ((ot->id == OT_S_DANCINGFLAME) || (ot->id == OT_S_CLEANSINGFIRE)) {
int i;
int found = B_FALSE;
// any fire in sight?
for (i = 0; i < lf->nlos; i++) {
if (hasobofmaterial(lf->los[i]->obpile, MT_FIRE) ||
(hasobwithflag(lf->los[i]->obpile, F_ONFIRE))) {
found = B_TRUE;
break;
}
}
if (!found) {
specificcheckok = B_FALSE;
}
}
if (ot->id == OT_A_DISARM) {
if (purpose == F_AICASTTOFLEE) {
// check our own cell
if (!isdiggable(lf->cell, OT_S_DIG)) {
specificcheckok = B_FALSE;
}
}
}
- [+] bug: wrapprint() needs to cope with long lines which wrap!!! - [+] in progress... - [+] currently hanging - fixed. - [+] once done, make it not add spaces - [+] add spaces manually in showlfstats. - [+] once done, change all code to use wrapprint instead of textwithcol - [+] still an issue - everything in my inventory is coming up bold! - [+] missing the last word again.... - [+] remove requirement that you have to be able to pick up an object to eat it * [+] make ninja weapons be "exotic" or ninjitsu - [+] ghost missing melee attacks - [+] make oil lamps last HEAPS longer too - [+] @ should include weapon bonuses for skill/str - [+] "headless bones" when you kill a skeleton?? - [+] allow for change of verb instead of always using "Killed by xxx" - [+] only call maketried() for the player - [+] don't show 'really attack the peaceful something' if you can't see it! - [+] vault: suply closet - [+] 1 sq room with tools - [+] why is hecta's pain hitting the player? - [+] make it so you can only Offer to gods you ahve prayeed to? - [+] recalc light on: - [+] darkness/light spells - [+] eye destroyed - [+] prevent tumble/jump while grabbed - [+] prompt to drop when wearing new armour - [+] canine tracking should be a potion, not a scroll - [+] some '?' help commands not working. - [+] add f_critprotection to armour - [+] crash when tumbling into an lf - [+] incrase cellknown time when no cartography skill - [+] change disarm and trip into abilities: - [+] disarm - [+] trip - [+] ninja - [+] skills: - [+] athletics (enouhg to tumble) - [+] throwing - [+] unarmed - [+] long blades - [+] stealth - [+] objects: - [+] smoke bombs - [+] shuriken - another missle. higher dam than darts. - [+] how will this be different from the rogue class??? - [+] disarm - [+] trip. maybe make trip polearms confer this ability? - [+] flip .
2011-10-19 10:08:14 +11:00
if (ot->id == OT_A_DISARM) {
if (!getweapon(victim)) {
specificcheckok = B_FALSE;
}
}
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
if ((ot->id == OT_S_DISPERSAL) && (lf->race->raceclass->id == RC_GOD)) {
specificcheckok = B_FALSE;
}
2012-12-01 16:26:23 +11:00
if ((ot->id == OT_S_DISRUPTUNDEAD) && !isundead(victim)) {
specificcheckok = B_FALSE;
}
- [+] add more vrare vaults to reduce likelihood of cockatrice lair! - [+] bazaar - [+] money vault hsould be vrare - [+] so should traproom - [+] rename giant rat to "dire rat" - [+] don't show anything other than object description and throwing for unknown tech - [+] shouldn't be able to rest in a tent if it's not known! - [+] eyebat corpse increase maxmp? - [+] blessed missiles should nearly always hit undead * [+] too easy to dodge thrown missiles? - [+] spell and wand of culinary abundance - [+] if a carnivorous animal kills you: "Eaten by a xxx" * [+] bug: stairsperlev is only ever used in making DUNGEONS. generecise this ?? - [+] safetorest - should ignore monsters feigning death - [+] broken nose should reduce smell range - [+] fresh and stale bread should be interchangable in cooking - [+] make scroll of permenance act on you, not your objects - [+] tweak object rarity yet agian... - [+] bug: hole in roof above player start pos is immediately destroyed. - [+] change pickaxe to be like resting - [+] wait first, then if not interrupted, do the dig. - [+] add cell->hp, celltype->hp. around 100. - [+] f_digging, x, y, digperturn - [+] interrupt() will stop this. - [+] each turn, lower hp of cell by 1. - [+] make wlaking bakwards take less time based on athletics skill!!! - [+] at adept, takes no extra time? - [+] better racial display - [+] ? for extra info. - [+] hitdice - [+] general attribs (str etc) - [+] don't show description until you press '?' - [+] addbonustext(flagpile, f_BONDESC, "asdffas") - to avoid index issues - [+] remove VULNS from "effects" unless temporary - [+] isresistantto() etc need to have "int onlytemp" - [+] remove VULNS from manual BONTEXT flags - [+] CRASH IN DTVULN CODE!! - [+] limit '?r' display ?? - [+] what to show - [+] show races you have encountered - [+] show races you know about through Lore (adept level) - [+] show playable races????? - [+] structs - [+] race->encountered - [+] need to save this. - [+] make EFFECTS only show TEMPORARY effects or ones which don't come from race? - [+] automate bondesc/pendesc based on flags! - [+] vulnarabilities / resist / immun - [+] vision range!! (visrangemod) - [+] size? restricted armour. - [+] stayinroom - [+] f_humanoid (can use weapons) - [+] tamable - [+] seeindark - [+] caneatraw - [+] enhancesmell - [+] caneatraw - [+] vegeatrian - [+] cernivore - [+] fastmetab - [+] startskill - [+] tremorsense - [+] silentmove - [+] deaf - [+] flying / levitating - [+] awareness - [+] nocturnal / diurnal - [+] heavyblow - [+] packattack - [+] dodges - [+] autocreateob - [+] MPMOD - [+] HPMOD - [+] MEDITATES - [+] PHOOTMEM - [+] canwill "Spells: xx, x, x, x" - [+] spells: - [+] animate stone - "power" walls turn into stone golems - [+] implement spell - [+] golem - [+] r_golemstone - [+] knockback attack - [+] high str - [+] fists - [+] corpsetype and iunsummonob = boulder - [+] spell power modification - subtract spell level. - [+] when i go down a drain, make sure the new map links to THE DRAIN I WENT DOWN. not some otehr one. - [+] some monsters shouldn't sleep! add new flag: f_nosleep - [+] make spanner help disarm traps!
2011-12-04 09:33:37 +11:00
if ((ot->id == OT_S_DRAINLIFE) && isimmuneto(victim->flags, DT_NECROTIC, B_FALSE)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
specificcheckok = B_FALSE;
}
if (ot->id == OT_S_GATHERFLAME) {
int i,found=B_FALSE;
// don't cast if we're made of fire!
if ((lf->material->id == MT_FIRE) && (getattrbracket(getattr(lf, A_WIS), A_WIS, NULL) >= AT_AVERAGE)) {
specificcheckok = B_FALSE;
} else {
// must be fire nearby
for (i = 0; i < lf->nlos; i++) {
if (lf->los[i]->lf && (lf->los[i]->lf->material->id == MT_FIRE)) {
found = B_TRUE;
break;
}
if (hasobofmaterial(lf->los[i]->obpile, MT_FIRE)) {
found = B_TRUE;
break;
}
}
if (!found) {
specificcheckok = B_FALSE;
}
}
}
if (ot->id == OT_A_FLIP) {
if (getlfsize(victim) > getlfsize(lf)) {
specificcheckok = B_FALSE;
}
}
* [+] 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
if (ot->id == OT_A_FLURRY) {
if (!isdualweilding(lf)) {
* [+] 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
specificcheckok = B_FALSE;
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
}
}
if ((ot->id == OT_S_FREEZEOB) && lfhasflag(lf, F_FREEZINGTOUCH)) {
specificcheckok = B_FALSE;
}
- [+] 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
if ((ot->id == OT_S_HASTE) && (lfhasflag(victim, F_FASTACT) || lfhasflag(victim, F_FASTACTMOVE)) ) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
}
- [+] redo heaven vault to cater for 10 gods - [+] Klikirak- male,fire and destruction - [+] appears as a fire elemental? - [+] abilities - [+] create fire underneath - [+] retaliate with fire - [+] burning touch - [+] canwill all fire spells - [+] sacrifice - [+] anything flammable - [+] added effect: cast flame burst - [+] pray: - [+] set all nearby objects on fire - [+] unfreeze weapons - [+] hurt monsters with fire spells - [+] gift: - [+] fire resist / immunity - [+] pyromania on weapon - [+] fire magic - [+] angry (minor): - [+] blast with small fire - [+] angry (major) - [+] blast you with fire (and surround you) - [+] likes - [+] burning objects (sparking flammable, throwing objects onto fire) - [+] casting fire spells - [+] killing with fire - [+] dislikes - [+] casting cold spells - [+] causing cold damage - [+] creating anything (create monster / wish / create food) - [+] what is the difference between "purity" and "life" ? - [+] purity: get rid of curses, bad objects, bad food, remove bad statuses - [+] mercy: "undo" mistakes, avoid instakills - [+] life: healing, raise from dead, protection - [+] life goddess - glorana - [+] appearance: - [+] glowing white light - [+] abilities - [+] cast all life spells - [+] regenerates hp very fast - [+] objects - [+] none - [+] likes - [+] destroying undead - [+] using life magic - [+] healing (as per yumi) - [+] dislikes - [+] necromancy spells - [+] attacking peaceful lfs - [+] pray - [+] healing - [+] restore mp - [+] protection spell - [+] gift - [+] regeneration - [+] firstaid skill - [+] life magic skill / spellbooks - [+] increase max hp - [+] angry(minor) - [+] life magic fails - [+] slow natural healing rate - [+] angry(major) - [+] no healing - [+] reduce max hp! - [+] sacrifice - [+] healing potions - [+] restoration potions - [+] bandages - [+] food - [+] protection spell: - [+] divine armour - [+] blocks on a certain amount of damage. - [+] all damage goes to it! (NOT like psychic armour which just increases AR) - [+] NOT an ongoing spell. - [+] ai: if you have a weapon of xxx slaying, use it when appropriate. (getbestweapon) - [+] amberon - change abilities to be more focused on removing bad status effects - [+] amberon gifts you with potions of restoration - [+] felix is now god of thievery and vengeance. - [+] felix now gives your weapon f_revenge.
2012-02-02 15:33:24 +11:00
if (ot->id == OT_S_HEAVENARM) {
if (lfhasflag(lf, F_HEAVENARM)) {
specificcheckok = B_FALSE;
}
}
* [+] 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
if (ot->id == OT_A_HEAVYBLOW) {
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
object_t *w;
w = getweapon(lf);
if (!w || !isheavyweapon(w)) {
* [+] 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
specificcheckok = B_FALSE;
}
}
- [+] 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
if (ot->id == OT_A_HIDE) {
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
enum ERROR why;
- [+] corpse colours aren't working anymore. - [+] bug: knocking a sleeping lf unconscious fails, they kepe sleeping. need to change the f_sleeping flag! - [+] another secret door bug: can identify them in askcoords!! fixed. - [+] wrong order for text: - [+] You attack the helpless kobold! You kill the kobold! The kobold shouts "This isn't over!". - [+] SOLUTION: say "the dying kobold shouts ...." - [+] only use death text somtimes. random chance. - [+] force player sarting dir to be the one with the most LOS cells. - [+] avian/ashkari monks - [+] at both initial creation and levleup: - [+] need to update hasattack claws, not hasattack fists. - [+] genericise this to just use whatever f_hasattack flag you have? - [+] bug with flying creatures falling: - [+] You miss the giant bat. The giant bat bites you. The giant bat stops flying. The giant bat falls to the ground. The giant bat's ribs are cracked! - [+] was causing ATTACKER to fall, not defender. - [+] fix bug with objects falling through pits. - [+] new sewer map type: - [+] BUG: getting empty map!!! - [+] roomon etc is good. - [+] but map empty - [+] probably an issue with corridor vs section size... - [+] make drains be locked again - [+] grating causes stench - [+] monsters: - [+] aquatic animals (piranha, merloch, etc) - [+] slimes - [+] troglodytes (and anything which causes stench) - [+] rats - [+] water snakes - [+] drains should make sounds ("you hear a drip") - [+] snakes shouldn't get nauseated. - [+] F_NOSMELL. - [+] feigh death shouldn't work on things which are attached to you (leech/mosquitoid) - [+] stores should never sell gold coins!!! - [+] givestartobs() - give a potion of water instead if it's going to a shop - [+] no resting when raged - [+] make MAXIMUM map height higher. bumped from 20 to 30. - [+] grating cell/object? - [+] liquids fall through it. - [+] to unlock it: - [+] loosen with spanner - [+] knock spell - [+] pick the lock - [+] lock hacker
2011-11-30 13:06:16 +11:00
if (lfhasflag(lf, F_HIDING)) {
- [+] 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
specificcheckok = B_FALSE;
- [+] corpse colours aren't working anymore. - [+] bug: knocking a sleeping lf unconscious fails, they kepe sleeping. need to change the f_sleeping flag! - [+] another secret door bug: can identify them in askcoords!! fixed. - [+] wrong order for text: - [+] You attack the helpless kobold! You kill the kobold! The kobold shouts "This isn't over!". - [+] SOLUTION: say "the dying kobold shouts ...." - [+] only use death text somtimes. random chance. - [+] force player sarting dir to be the one with the most LOS cells. - [+] avian/ashkari monks - [+] at both initial creation and levleup: - [+] need to update hasattack claws, not hasattack fists. - [+] genericise this to just use whatever f_hasattack flag you have? - [+] bug with flying creatures falling: - [+] You miss the giant bat. The giant bat bites you. The giant bat stops flying. The giant bat falls to the ground. The giant bat's ribs are cracked! - [+] was causing ATTACKER to fall, not defender. - [+] fix bug with objects falling through pits. - [+] new sewer map type: - [+] BUG: getting empty map!!! - [+] roomon etc is good. - [+] but map empty - [+] probably an issue with corridor vs section size... - [+] make drains be locked again - [+] grating causes stench - [+] monsters: - [+] aquatic animals (piranha, merloch, etc) - [+] slimes - [+] troglodytes (and anything which causes stench) - [+] rats - [+] water snakes - [+] drains should make sounds ("you hear a drip") - [+] snakes shouldn't get nauseated. - [+] F_NOSMELL. - [+] feigh death shouldn't work on things which are attached to you (leech/mosquitoid) - [+] stores should never sell gold coins!!! - [+] givestartobs() - give a potion of water instead if it's going to a shop - [+] no resting when raged - [+] make MAXIMUM map height higher. bumped from 20 to 30. - [+] grating cell/object? - [+] liquids fall through it. - [+] to unlock it: - [+] loosen with spanner - [+] knock spell - [+] pick the lock - [+] lock hacker
2011-11-30 13:06:16 +11:00
} else if (lfhasflag(lf, F_FEIGNINGDEATH)) {
* [+] make vending machines use this container code instead. - [+] don't say "you see a few things" if one of them is footsteps * [+] IFMONSTER code failing....because flags are now SORTED!!! - [+] tumble - askcoords is letting us pick a cell we don't have lof to. * [+] assign a name to lfs once you hire them * [+] coloured msgtext - [+] make min dam reduction from AR be AR/5. - [+] safebox - [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with no getsweaker (val1) * [+] make fire / ice damage mor elike netheck - [+] towns should have gates on EVERY side - [+] forest cells outside town gates need to be CLEARED. (maybe turn to dirt) - [+] fix up knock targetting to include magical barriers - [+] say "open a bag?" not "operate a bag?" * [+] implement immunetodisease - [+] sort known skills in @s. - [+] better damage bonus when attacking someone who is asleep - [+] practive firearms/throwing * [+] need objecttype->size * [+] containers * [+] change guns so you have to reload them. ("operate") - [+] crash when loading map with water - [+] SAVE OBJECT CONTENTSk - [+] monsters with jobs aren't getting start items - [+] shopkeeper has shotgun - [+] bug: monster keeps swapping between shotgun and flail - [+] when hiring, remember failure. * [+] Inn - [+] bug: pets fighting!!! then they all turn on you. never make allies get angry unless the attacker is the player * [+] hiring npcs - [+] chat to pet: "stay close" or "keep your distance" - [+] new 'furniture' obclass - [+] allow for 'randomshop' regiontype * [+] add enchantment school - [+] cast a scroll of mending on itself. CRASH. * [+] lessengravity should make you jump better and get knocked back further - [+] boostgrav/lessengrav cancel out each other. * [+] CRASH when you fall down a hole and die. - [+] problem: master gravitation doesn't let us cast levitat. getspellschoolknown() should return the HIGHEST known skill, not the first. * [+] bug: dregion is null?!??! * [+] dig a pit, if you cleared out land below, you just stay down there. - [+] potion of leveitation - [+] warning msg when levitate is about to expire * [+] if you fall upwards to the surface... * [+] if you are ever on the surface while levitating.... - [+] BUG: cna't go up stairs to surface anymore!!!!! - [+] get hungry LOTS more quickly when you start sprinting * [+] monk slow metabolism psionic pell. - [+] fix buf with lore giving LESS accuracy instead of more. - [+] food shop - [+] wand of digging not identified if you dig upwards * [+] when you make ah ole in the roof, objects above should fall through right away * [+] all towns should have: - [+] give monks more psionics spells. - [+] sk_throwing skill - [+] make calm animals use spellpower * [+] add wisdom * [+] need to save region data along with maps * [+] COMBINE armour evasion and accuracy penalty!!! * [+] make armour reduce accuracy as well (unless you have 'armour' skill) - [+] landmine trap * [+] make friendly monsters of same raceclass swap ammo - [+] rename 'pull' to 'suck' to avoid confusion with pull metal * [+] food to fix blindness - [+] potion of coffee * [+] genericise statbrackets * [+] tumble ability * [+] simplify spell power * [+] shopkeeprs should be allowed to pursue targets outside of the shop. - [+] give shopkeepers a shotgun * [+] make F_RNDHOSTILE be able to ahve a random chance. * [+] if you randomly generate food in a shop, still give it a price. - [+] if peaceful humanoid walks into you, "sorry!" - [+] sayphrase(lf, SP_SORRY, vol) - [+] only let you recruit jobs with j_recruitable - [+] CRASH - summon "monk" - [+] dogs, - [+] chickens, - [+] drunks, * [+] village objects - [+] change armourrating AGAIN. instead of a percentage, make it a number. - [+] rename inn to "pub", since you can't sleep there. * [+] random speech code * [+] genericise sayphrase text based on lf's job * [+] monks - add rest of abliities - [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
specificcheckok = B_FALSE;
- [+] chat->all allies command. - [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE - [+] 's' = 'shut door' (replace 'c') - [+] 'c' = 'chat to single' - [+] rewrite docomms() to use other funcs - [+] 'C' = 'command all allies' - [+] only possible for single person: - [+] 'o' donate - [+] 'i' tell me about this area - [+] 'j' join me - [+] 'k' trade knowledge - [+] 'm' mercy - [+] 't' trade - [+] 'x' dangers nearby? - [+] make a list of all commands which are valid for EVERYONE - [+] send command to everyone. - [+] docommslf() - [+] test with single target - [+] test with multiple targets - [+] hitconfer lifetime for wight/contagion zombie should only happen on fatal hits - [+] makezombie() should be able to call petify() - [+] bug: mosnters never using HIDE ability. - [+] monsters which pretend to be objects (ie. gargoyle) - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty - [+] when generating, add contents->first as objectid v1 - [+] getobname -> if you have f_mosnters, use contents->first - [+] getobdesc -> if you have f_mosnters, use contents->first - [+] mosnters won't walk onto it - [+] if you are next to them and can't see them... reveal then attack! - [+] F_ISMONSTER - must always be impassable to everyone!!! - [+] if you try to walk onto it: - [+] "the xxx starts to move!" - [+] kill ob - [+] add lf - [+] they get a free attack - [+] if it takes damage - [+] ... convert. - [+] spot checks to see them. - [+] ...convert. - [+] F_PRETENDSTOBE - mosnters will revert if unseen. - [+] reveal hidden should show them. - [+] gargoyle - [+] stone statues - [+] winged - [+] large - [+] ~37hp - [+] start off as an obejct - [+] wight - [+] rare. - [+] ~26 hp ...TR5 - [+] silent move - [+] dr4 attack (low damage) but.... - [+] any humans killed rise as a wight . - [+] (hitconfer revive). how can i limit hitconfer to a race? maybe f_hitconferrace - [+] bones file - [+] tested ok. - [+] 1 leveldrain per hit - [+] skillcheck to avoid - [+] wight gains +5 hp
2012-12-04 16:15:27 +11:00
} else if (!safetorest(lf, &why) && (why != E_TOOSOON)) {
- [+] 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
specificcheckok = B_FALSE;
- [+] walking on glowing moss sohuld damage it. - [+] make dagger stronger than combat knife (but combat knife is faster) - [+] optimise makefile. - [+] swapplaces message not appearing. - [+] fix exploit for dizziness with 'A' - [+] every time we ask for a direction, use askdirection(prompt). make this do dizziness check. - [+] no shieldblocking or dodging if you have no stamina. - [+] object rarity bugs - [+] i'm finding way too many books! might be fixed now... ? - [+] never finding wands - [+] added debugging to see if there is a problem with wands.... - [+] adjust footstep sound based on material - [+] carpet = soft - [+] stone = normal - [+] tiles = loud - [+] in @e, "you ar etipsy" should also talk about damage resistance. - [+] don't show starting abilities if you are a diety. - [+] don't say 'xx walks out of view' if they didn't move on purpose - [+] CRASH - summon weapon then drop the energy blade. * [+] CRASH when fumbling attack using energy blade. - [+] fighter with wisdom 31. novice perception skill. noticied teleport trap right in front of me. chances? - [+] maybe make it you can never detect anything further away than your perception skill. - [+] fix bug in geteffecttime() - [+] announce starting spells at beginning of game - [+] in skill help, highlight your current level. Maybe: "At Novice level>>> Unskilled weapons etc..." - [+] inept level lore shouldn't show "Adept Stealth" as a strength - [+] when you / then move over a cell with footprints short "Dirt (with human footprints)" - [+] or "Dirt (with xxx foorprints leading east) - [+] typo in killer text - an vs a - [+] get over here! should give you enough time to attack ? - [+] felix prayer should remove impassable objects. - [+] robots shoudl have big penalties to getting up checks. slip, fall, etc. - [+] fix bug when falling off a fence. - [+] BUG: no los when i climb on top of a wooden fence. why? - [+] F_BLOCKSVIEW needs new option: v1 = true means dont block if you are standing on it * [+] engineering / construction skill - replaces 'traps' - [+] fixed bug where you couldn't rest when you pet was visible. - [+] bug: aigetlastknownpos populating lastx & lasty with different info from the the cell returned. - [+] this has happening when following the direction of a scent. - [+] remove display of "xx throws xxx towards you" if you can't see the source and something is in the way. - [+] druid should alway sbe able to swap with plants. - [+] peaceful check should do this - [+] try agian... * [+] problem- create water can be used instead of soften earth ??? - [+] detect life should help with checking stairs. - [+] pentagrams should heal the undead. - [+] ekrub - don't et you sacrifice the flower that appears. * [+] when doing check for piety on eating animals - [+] don't auto give druid short blade skill due to sickle - [+] soften earth on boulder... turn it to mud - [+] adept psychology - receive change for gems. - [+] BUG: announceflagloss is never happening. - [+] new nature spell - absorb wood - [+] clank - robot, chomp to steal health, self destruct - [+] new tech - [+] l0 - [+] chewing gum (jam doors with it) - this should be food though. - [+] plants shoudl HELP druid from level 4 onwards - [+] clean up skill ability code - [+] automate skill descriptions based on skillwills "you gain the 'xxx' ability" - [+] auto-learn spells from initial spellbook, rather than having to read it manually - [+] finding rings of unholiness everywhere. - [+] because it's the only rare ring! - [+] fixed by making ALL rings be uncommon - [+] first time you slip on something, suggest using 's' - [+] sewing / metalwork: get resize and enhance earlier. - [+] bug with engineering seeing through one wall!s - [+] rogue/knifedancer / blademaster - throwing, extra skill with small blades. starts with extra knives. - [+] replace all SUBJOBS with plain regular JOBs - [+] fix "needobforstaff" for wizards! - [+] sewer should have mossy rock floor. slippery. - [+] new specialist classes: - [+] rogue/assassin (no stealing, no traps, lockpicking, better stealth+backstab, poison knives) - [+] minor healing spell is too powerful. should do 5-10hp max. - [+] reveal hidden is not powerful enough for l4. move to l2. - [+] reduce effects of stench as TR gets higher - [+] lumara should accept sacrifice of anything magic. - [+] oil lamp not making my viison longer! (on dlev11) - [+] just describe f_produceslight in io.c - [+] with no evasion skill, agi does way less for EV. - [+] fungus clouds should be in 1 radius, non orthogonal - [+] try putting monster zoo back in? - [+] STILL bugs detecting trapped doors ages away! - [+] detected one 8 away, perception novice! - [+] when a monster necromancer is made, i'm prompted for spell school!!! - [+] new mushroom: greycap. looks like a miniature snowy mountain. grants cold resistance - [+] shop opening hours - [+] F_OPENHOURS - [+] v0 = start (inclusive) - [+] v1 = end (inclusive) - [+] v2 = sayphrase - [+] SP_CLOSEDTILMORN (come back in the morning) - [+] SP_CLOSEDTILNIGHT (come back tonight) - [+] SP_CLOSEDTILHOUR (come back after x oclock!) - [+] make shops only be open during the day. - [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
} else if (lfproduceslight(lf, NULL)) {
- [+] dual wield, then weild -, say "y" to "weild nothing in your left hand", CRASH. - [+] rogue should start with novice speed and throwing - [+] better method of sneaking - just hiding in one spot isn't effective. - [+] get "hide" at novice level - [+] at beginner level, you can move while hiding. ( but if someone hears you, they spot you) - [+] if you can't see an object (ie in inventory it just comes up as "a potion"), make the description be generic. - [+] stealth shouldn't affect movement noise uless you are hiding - [+] move slower when hiding. - [+] trying to hide while already hiding will cancel it. - [+] rename f_sneak to f_movecarefully - [+] move "you attack the helpless xxx" into construct_hit_string. - [+] light level should affect stealth checks. - [+] flying should only impact stealth checks to make noise, not to hide. - [+] sprint should stop hiding! - [+] weapon brand: of protection. gives AR. - [+] make sure i show this in showlfarmour ] - [+] shouldn't be able to backstab plants - [+] no hiding while producing light. - [+] changing armour should stop you from hiding. - [+] let you hide when you can see monsters, but they instantly get F_SPOTTED. - [+] different verbs for god voices - [+] remove "enhanced smell" from xat and dire rat. - [+] make guns usually start with ammo - [+] gain attrib point on _every_ levelup, but 2 each time not 5. - [+] this means that we now gain 6 stat points every 3 levels rather than 5, but they can be spread out. - [+] rogue modifications - [+] change starting backstab level from beginner -> novice - [+] generated monsters: "It is sleeping. It is flying." - [+] should be sleeping AND flying! - [+] remove duplicate tanglemissile code. - [+] change F_ATTREQ - split up penalty cutoff and bonus cutoff - [+] needs a "boostafter" param. - [+] ie. - [+] needs at least ATTREQ agility to USE it. - [+] if you are less than this, start applying penalty. - [+] v2 = BOOSTAFTER level. (CHANGE) - [+] if you are above this amount, start applying bonus. - [+] text = scalepercent. (CHANGE) - [+] adjust code - [+] adjust defs - [+] explain in io.c - [+] test - [+] new felix pray effect: invisibiltity
2012-01-23 18:16:18 +11:00
specificcheckok = B_FALSE;
- [+] 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
}
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
if (ot->id == OT_S_ICECRUST) {
object_t *wep;
wep = getweapon(lf);
if (!wep) {
specificcheckok = B_FALSE;
} else if (hasflag(wep->flags, F_FROZEN)) {
specificcheckok = B_FALSE;
}
}
if ((ot->id == OT_S_PAIN) && lfhasflag(victim, F_PAIN)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
}
if (ot->id == OT_S_PETRIFY) {
if (lfhasflag(victim, F_BEINGSTONED) || (victim->material->id == MT_STONE) ) {
specificcheckok = B_FALSE;
}
}
if ((ot->id == OT_S_HEALING) && (lf->hp >= lf->maxhp)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
2011-03-04 12:22:36 +11:00
}
if ((ot->id == OT_S_HEALINGMIN) && (lf->hp >= lf->maxhp)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
2011-03-16 15:45:46 +11:00
}
- [+] 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
if ((ot->id == OT_S_INVISIBILITY) && lfhasflag(victim, F_INVISIBLE)) {
specificcheckok = B_FALSE;
}
if ((ot->id == OT_A_IRONFIST) && getweapon(lf)) {
specificcheckok = B_FALSE;
}
if (ot->id == OT_S_LETHARGY) {
if (getstamina(victim) <= 0) {
specificcheckok = B_FALSE;
}
}
if ((ot->id == OT_S_PARALYZE) && lfhasflag(victim, F_PARALYZED)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
}
- [+] dancing weapons should injerit object's size. - [+] animals shouldn't be smart enough to avoid sharp objects on the grond. - [+] make all animals have wisdom = LOW - [+] make most undead have wisdom = VLOW - [+] make most undead have CHA = EXLOW - [+] warn if races are missing any STARTATTs - [+] warn if races have duplice sTARTATTS - [+] reduce unyon hit points - [+] drop monster hitdice sides to 6 - [+] change goblin colours - [+] replace quickblade with uchigatana. dael 7-8 damage. very rare. - [ ] apply correct rarity to weapons - [+] balance katana now that i've modified blades! - [+] and add wakazashi. - [+] add altdam bash to most swords - [+] add f->text to altdam - [+] add "noobstext" to askobject() - [+] why did ninja start with 0 mp ? - [+] if you read a manual for a skill yo ucan't learn, have some kind of message to say it didnt work - [+] map shouldn't be magical - [+] cloth should 'heat up' (it just catches on fire) - [+] give A_FIT to all mosnters, for stamina when we polymorph into them! - [+] fix bug where celldangerous() fails on a lifeform's own cell - [+] reflexive dodging should also dodge dangerous objects which appear on top of you! - [+] do this in startlfturn(), before other effects! - [+] air spell - refraction - boosts EV - [+] move jolt to L2 - [+] don't announce initial damage taking object from perfect to battered. - [+] propel missile - [+] doesnt anger lumara - [+] for monsters: aispellok true if we have an OC_MISISLE which we're strong enough to able to throw. - [+] minrange 2
2012-03-20 21:26:33 +11:00
if (ot->id == OT_S_PROPELMISSILE) {
if (!getbestthrowmissile(lf, victim)) {
specificcheckok = B_FALSE;
}
}
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
if (ot->id == OT_A_SHIELDBASH) {
- [+] weapon skill of sk_skilled or high gives you a chance to block some damtypes - [+] BUT each weapon can only block certain damtypes (whereas shields can block all melee damtypes) - [+] add f_canblock to some weapons - [+] add f_canblock to shields - [+] check_for_block() should be a function - [+] getallshields() - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). calculate the bonus beforehand instead?? - [+] update descriptions for weapon skills - [+] can only block if you have full attrib requirements for this weapon - [+] update io.c to show what weapons/shields can block. "it can block xx, xx and xx damage" - [+] weapons can't ever block projectiles - [+] make pickup/drop actions heaps faster - [+] better description of agi/str affecting weapon accuracy/dam - [+] stinkbeetle should be hostile, and should have bite attack ,not zapper - [+] don't recover stamina while training - [+] add seetext for "a blaring siren" - [+] draw up a matrix for weapon types - [+] draw it up for: - [+] accuracy - [+] damage - [+] attack speed - [+] crit chance - [+] then adjust weapon stats - [+] in shops, "?" now lets you examine an object - [+] add canwill option for abilities: "stamcost:" (to override stamina cost) - [+] add it. - [+] bug: pickaxe not working - [+] "you start digging". but nothign more. - [+] salt kills: - [+] frog - [+] impaler frog - [+] canwill jump - [+] ranged tongue attack - [+] killed by salt - [+] BUG; getting manuals with no contents - [+] odd-sized armour should cost more. - [+] need to set statdirty when we change armour. - [+] when we say "you see x and y here", don't include obs we can't see
2011-12-13 03:40:17 +11:00
if (!getshield(lf, DT_ALL)) {
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
specificcheckok = B_FALSE;
}
}
if ((ot->id == OT_S_SLEEP) && lfhasflag(victim, F_ASLEEP)) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
}
- [+] 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
if ((ot->id == OT_S_SLOW) && (lfhasflag(victim, F_SLOWACT) || lfhasflag(victim, F_SLOWACTMOVE)) ) {
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
specificcheckok = B_FALSE;
2011-03-04 12:22:36 +11:00
}
if ((ot->id == OT_S_SMITEGOOD) && (getalignment(victim) != AL_GOOD)) {
specificcheckok = B_FALSE;
}
if ((ot->id == OT_S_SMITEEVIL) && (getalignment(victim) != AL_EVIL)) {
specificcheckok = B_FALSE;
}
- [+] fixed CRASH when energy blade vanishes - [+] gods of opposing alignments should never make offers. - [+] new armour flag: - [+] f_underclothing - [+] getequippedob() - get the outer one. - [+] if you have f_underclothing, can wear other armour on top of it. - [+] can't remove underclothes without removing outer first. - [+] TEST with cotton shirt - [+] make sure autoequip handles undercltohing - [+] fix other objects - [+] adjust ']' output - [+] make armour help against some magical damage too - [+] move armour check and reduction into losehpeffects(). - [+] pass damreducedbyarmour to losehpeffects - [+] psionic spells: - [+] dampen missiles - lots of extra evasion vs missiles only * [+] soul link (l4, share damage) - [+] mind sheidl (l4, like the amulet) - [+] delay death (l5, don't die if hp <= 0 and this spell is active) - [+] remote ko (l6) - [+] Silence spell / effect - air. - [+] f_silenced. - [+] announce in io.c - [+] prevents spellcasting - [+] prevents docomms() - [+] prevents reading scrolls - [+] prevents speech-based abilities like warcry and sonic bolt - [+] say() will fail - [+] sayphrase() wil fail - [+] test the spell....... - [+] CRASH when adjusting glyph on edge of map - [+] non-humanoids can't climb without climb skill. - [+] player sohuld be able to swap with unconscious/asleep lfs <= same size - [+] too easy to knock things unconscious??? bug. fixed. - [+] reusable cells being set to empty! think this was a vault definition problem. - [+] demon chameleon / deech - [+] low-level mosnter which can hide
2012-12-06 15:57:13 +11:00
if ((ot->id == OT_A_SONICBOLT) && lfhasflag(lf, F_SILENCED)) {
specificcheckok = B_FALSE;
}
- [+] change real_getlfname(): - [+] take lifeform_t * for usevis instead of boolean - [+] add new option "useorigrace" for shapechangers - [+] whips - [+] F_WHIP - [+] new skill: sk_whips - [+] basic trais: - [+] high accuracy - [+] lowish dam - [+] pierce/slash/bash damage - [+] some will let you cast 'snatch' and suck - [+] no crit chance - [+] examples: - [+] bull whip (lowest damage) - [+] flail (ie. chain whip ,change type from club to whip) - [+] heavy flail - [+] metal-tipped whip (flail with higher acc) - [+] barbed whip (causes piercing damage as well) - [+] io.c @@ should take extradam into account - [+] describbeob() should show F_EXTRADAM - [+] change morale values - this shoudl default to your TR, otherwise f_morale replaces it. - [+] CRASH in doknowledgelist() - [+] hecta bug: fixed! - [+] You bisect the kobold! The dying kobold shouts "Nooooo!". Hecta's voice grates against your mind: "You allowed my sacrifice to escape!" - [+] is this because i'm calling "flee" after the lf takes fatal damage but before die() is called? - [+] NO, because flee() checks isdead(lf) - [+] it's happening when i kill a monster, and another one of the same type sees me! - [+] change: only trigger this is the player has previously attacked the monster - [+] replace fire titan with balrog - [+] You bisect the giant gnat! The dying giant gnat shouts "Nooooo!". - [+] fixed. - [+] boggart -brown 'n' - [+] made of wood - [+] cause things to disappear - [+] cause milk to sour (low power blight) - [+] scared of salt - [+] demandgold - [+] briar thrash (spiky) - yellow 'T' (grab) - [+] bingebark - red 'T'. wants edible, canwill snatch - [+] leshy (human with leaves) - green 'h' - [+] manticore - red 'm'' - [+] lion, bat lings, man head, tail tipped with iron spikes - [+] carnivore - [+] human sized - [+] shoots 1-6 spikes. each spike does 1d6. too much!! - [+] change this to be 5d3 damage per volley. - [+] ie missiledam 4d3 - [+] can do this once every 50 turns. - [+] can fly - [+] claws - 1d3 1d3 - [+] want gold (non covet)
2012-03-29 07:17:47 +11:00
if (ot->id == OT_S_SPIKEVOLLEY) {
if ((lf->race->id == R_MANTICORE) && lfhasflagval(lf, F_INJURY, IJ_TAILBROKEN, NA, NA, NULL)) {
specificcheckok = B_FALSE;
}
}
- [+] if you put a water object onto dirt, it should become a mud object instead. - [+] dynamic morale - [+] whenever you fail a moral check, your moral gets a bit lower - [+] opposite if you pass it. - [+] make morale checks depend more on morale - [+] after you flee, become timid - [+] in io.c, show current morale if lorelev is high enough. "looks scared/timid/confident" - [+] implement f_timid: - [+] (will only move into melee range if it is behind you) * [+] checks: - [+] monsters can't attack while prone. always jsut stand up. - [+] call initiatemove even when atatcking - [+] bug: monsters not gaining abilities frmo skills - [+] bug when creating monsters with jobs: "xx looks foolish" etc - [+] tohit penalty for small monster hitting flying or levitating things (lower penalty for levitating) * [+] if you are flying and get hit, you drop to the ground? - [+] make feign death code better for mosnters - [+] moving should cose STAMREGEN points (ie don't regenerate stamina if you move) - [+] maybe: when you finish sprinting, drop stamina to -2 - [+] until it gets back, you can't move at all - [+] bug: stuck in moveto(), after walking up stairs to a new levle - [+] happened again right after "The young wolf starts sprinting! The young wolf flees down the staircase." - [+] was getting stuck in donextturn because we weren't on the plaeyr's map - taketime was returning. - [+] shield bash skill - [+] gain it at shieldlev beginner - [+] costs stamina - [+] pass a skill check based on shield skill and shield value to stun enemy - [+] only works if shield has hardness - [+] only works if you're the same size or larger than the opponent - [+] damages your shield (1d3 hp ?)
2011-10-06 09:08:13 +11:00
if (ot->id == OT_A_SPRINT) {
if (lfhasflag(lf, F_SPRINTING) || !getstamina(lf) || (getstamina(lf) <= (getmaxstamina(lf)/2))) {
specificcheckok = B_FALSE;
}
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
if (isairborne(lf, NULL)) {
specificcheckok = B_FALSE;
}
2011-03-04 12:22:36 +11:00
}
* [+] 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
if ((ot->id == OT_A_STEAL) || (ot->id == OT_S_CONFISCATE)) {
if (!countobs(victim->pack, B_FALSE)) {
specificcheckok = B_FALSE;
}
}
if (ot->id == OT_S_SUCK) {
if (getcelldist(lf->cell, victim->cell) <= 1) {
specificcheckok = B_FALSE;
}
}
- [+] increase damage for missiles - [+] retain items on polymorph if new race has f_nopack or nobodypart for equipped stuff - [+] move obs to lf->polypack - [+] save this! - [+] fix bugs with remembering/restoring stats on polyrevert. - [+] scroll of permenance should make conferred attribute changes permenant - [+] change strength damage mod to be range -2 to 2 (instead of a percentage) - [+] corrected poison/methane gas difference. - [+] hecta gift: necromancy books - [+] damagecell() - [+] make rock walls turn to rubble ("50-100 stones") - [+] change to lore skill: incrase damage by a fixed amount, not a percentage. - [+] felix effect: evaulation (identify obs) - [+] god piety should never change once thy are ignoring you. - [+] shields should protect against crit hits - [+] hecta no longer gives unholy water? - [+] I'm able to use OT_A_SHIELDBASH with 0 stamina. - [+] CRASH during loading - [+] fixed - [+] ...but check for more.... - [+] quaff potion of fury - "you're too tired to do that right now" - [+] player was being prompted for locaiton when monster tried to wear a bandage. - [+] closing iron gates is making them opaque. - [+] only add blocksview if the objectTYPE has it. - [+] fountains of experience not drying up. - [+] looking for tracks on stairs. never finding any!! - [+] shop descriptions not working anymore. - [+] left hand got destroyed by explosion. - [+] i then wore a ring... and it went on "left finger"! - [+] all spell effects should cease just before death. - [+] crystal shield/armour shouldn't call wear() but rather just set f_equipped directly. - [+] bedrooms/kitchens should have tiled or carpet floors? - [+] tiled = less stability (especially with water!!) - [+] carpet = more stability - [+] fire skeleton - [+] firebug - [+] ice wraith - [+] winter wolf - [+] skoob (snowman) - [+] crymidia can cast crystal spells - [+] blastbug - [+] bilco - casts flood at itself. - [+] rubber-like things - [+] slug - [+] snail
2012-01-25 07:38:59 +11:00
if (ot->id == OT_S_SUMMONWEAPON) {
if (getweapon(lf)) {
specificcheckok = B_FALSE;
}
}
* [+] 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
if ((ot->id == OT_A_SWOOP) || (ot->id == OT_A_CHARGE)) {
- [+] BUG: arrows shouldn't be able to trigger arrow traps!!! - [+] king piranhas shouldn't leap out of the water! - [+] don't catch thrown missiles if it will burden us - [+] in @@, show "accuracy" as a seperate line, not with your weapon. - [+] higher chance of learning psionics on level up. - [+] fix up monster hp - too easy to kill most things in one hit with dam = 4-12, 2 attacks (ie. l6 monk) - [+] dump out all mosnters sorted by hit dice (show avg hp) - [+] fix them up - [+] vault->entertext - ie "you enter a dining room" - [+] make random monster generation go by hitdice AND rarity rr_. IGNORE rarity value. - [+] start with hd = level. sometimes incrase - [+] remove all rarity values from monsters - [+] disorient might need to be higher level than stun - [+] make psionic spell mp cost be level, rather than level^2? - [+] ai bug: - [+] .oO { looking for a target . } .oO { found an enemy target - lfid 256 (human) ! } .oO { default - moving randomly } - [+] reduce cost for higher levle spells agian. - [+] prevent player from eating an ice sheid! - [+] bug when eating from the floor with multiple food items there - [+] assassin's blink spell - teleport behind and facing someone. medium level translocation. - [+] make "chunk of roast meat" be "chunk of roast goblin meat" - [+] and base nutrition on corpse type - [+] highlevel sixth sense should let you turn to face it * [+] add prompt text to msg hist: - [+] sixth sense should only pick up hostile monsters - [+] need a good reason that wizards can't wear armour. - [+] if isplayer(), failure chance depends on any arm/shield penalties - [+] show f_impassable in describeob() - [+] no walking backwards/sideways if you're stuck in a web/vine. can only turn. - [+] objects for protection: - [+] eyeglasses (+vision) - [+] safety goggles - [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)', depth 1), but it has no free stairs. - [+] when we restart map regeneration, must first REMOVE referenecs to this map!!! - [+] implemented. - [+] fixed bug with sleep interruption - [+] You attack the helpless the dwarf monk! You flatten the dwarf monk! The dwarf monk loses consciousness. damage's robe protects it. - [+] add stamina cost to other abilities - [+] add descriptions to lore skills - [+] make athletics skill give you more stamina? * [+] monstesr stopping fleeing when they can't see player
2011-09-28 04:56:58 +10:00
cell_t *adjcell;
flag_t *willflag, *srflag;
* [+] 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 srange = 5;
willflag = lfhasflagval(lf, F_CANWILL, ot->id, NA, NA, NULL);
if (willflag) {
- [+] 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
texttospellopts(f->text, "range:", &srange, NULL);
* [+] 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
if (!srange) srange = 5;
}
// override...
srflag = lfhasflag(lf, F_SWOOPRANGE);
if (srflag) {
srange = srflag->val[0];
}
* [+] 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
- [+] BUG: arrows shouldn't be able to trigger arrow traps!!! - [+] king piranhas shouldn't leap out of the water! - [+] don't catch thrown missiles if it will burden us - [+] in @@, show "accuracy" as a seperate line, not with your weapon. - [+] higher chance of learning psionics on level up. - [+] fix up monster hp - too easy to kill most things in one hit with dam = 4-12, 2 attacks (ie. l6 monk) - [+] dump out all mosnters sorted by hit dice (show avg hp) - [+] fix them up - [+] vault->entertext - ie "you enter a dining room" - [+] make random monster generation go by hitdice AND rarity rr_. IGNORE rarity value. - [+] start with hd = level. sometimes incrase - [+] remove all rarity values from monsters - [+] disorient might need to be higher level than stun - [+] make psionic spell mp cost be level, rather than level^2? - [+] ai bug: - [+] .oO { looking for a target . } .oO { found an enemy target - lfid 256 (human) ! } .oO { default - moving randomly } - [+] reduce cost for higher levle spells agian. - [+] prevent player from eating an ice sheid! - [+] bug when eating from the floor with multiple food items there - [+] assassin's blink spell - teleport behind and facing someone. medium level translocation. - [+] make "chunk of roast meat" be "chunk of roast goblin meat" - [+] and base nutrition on corpse type - [+] highlevel sixth sense should let you turn to face it * [+] add prompt text to msg hist: - [+] sixth sense should only pick up hostile monsters - [+] need a good reason that wizards can't wear armour. - [+] if isplayer(), failure chance depends on any arm/shield penalties - [+] show f_impassable in describeob() - [+] no walking backwards/sideways if you're stuck in a web/vine. can only turn. - [+] objects for protection: - [+] eyeglasses (+vision) - [+] safety goggles - [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)', depth 1), but it has no free stairs. - [+] when we restart map regeneration, must first REMOVE referenecs to this map!!! - [+] implemented. - [+] fixed bug with sleep interruption - [+] You attack the helpless the dwarf monk! You flatten the dwarf monk! The dwarf monk loses consciousness. damage's robe protects it. - [+] add stamina cost to other abilities - [+] add descriptions to lore skills - [+] make athletics skill give you more stamina? * [+] monstesr stopping fleeing when they can't see player
2011-09-28 04:56:58 +10:00
adjcell = get_closest_adjcell(lf->cell, victim->cell);
if (!adjcell || celldangerous(lf, adjcell, B_TRUE, NULL)) { // don't charge into dangerous cells
specificcheckok = B_FALSE;
} else if (adjcell && adjcell->lf) {
specificcheckok = B_FALSE;
} else if (!haslofknown(lf->cell, victim->cell, LOF_NEED,NULL)) {
* [+] 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
specificcheckok = B_FALSE;
} else if (isimmobile(lf)) {
specificcheckok = B_FALSE;
} else if ((ot->id == OT_A_SWOOP) && !lfhasflag(lf, F_FLYING)) {
specificcheckok = B_FALSE;
- [+] move pctchance for individual spells from F_AICASTTOxxx to F_AISPELLTARGETOVERRIDE v2. - [+] change code: - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx v2=TT_xxx text=pctchance or NULL. - [+] aispellok(xx, purpose) : check this _before_ checking spell->f_aicasttoxxx - [+] add spelltargetoverride for vampire - [+] add spelltargetoverride for werewolf - [+] retain F_FLEEFROM on polymorph. - [+] lycanthropes - [+] show up as "human" unless your animal/magic lore is high enough - [+] vulnerable to silver weapons - [+] Wererat (3hd, weapon damage) - [+] uses short blades - [+] stench - [+] want alcohol? - [+] transform into fast version of rat. plague rat? - [+] summon small animals. summon # override? "count:" - [+] Werewolf (4hd, 6 dam) - [+] summon wolves ? - [+] shapeshift to dire wolf - [+] regenerates - [+] firstaid skill (fast healing when resting) - [+] Werebear - [+] 6 hd - [+] shapeshift to grizzly bear - [+] summon 2-3 black bears - [+] firstaid skill (fast healing) - [+] shapeshifting monsters sometimes start as animal form - [+] if you are good/evil different alignments, mosnters should flat out refuse to join you. - [+] more different sayphrases for recruitment. - [+] when placing homelevobs, try to stick to rooms, not corridors - [+] getrandomroomcell() needs WE_xxx argument. - [+] implement cellmatchescondition(c, cond) - [+] real_getrandomadjcell() should use this too - [+] swoop ability should only work with claw attacks - [+] F_FORCEATTACKOB - [+] getweapons() needs to honour this. - [+] spell.c: check if you have the right attack type - [+] aispellok: only if you have the right attack yype - [+] horse - 2hd, brown u - [+] Hippogriff (3hd , horse/eagle, 'u') - yellow - [+] centaur (4hd, u) - grey - [+] make pegasus be cyan - [+] CATs - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow 'f'
2012-03-15 20:19:05 +11:00
} else if ((ot->id == OT_A_SWOOP) && !lfhasflagval(lf, F_HASATTACK, OT_CLAWS, NA, NA, NULL)) {
specificcheckok = B_FALSE;
* [+] 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
} else if (getcelldist(lf->cell, victim->cell) > srange) {
specificcheckok = B_FALSE;
} else if (getcelldist(lf->cell, victim->cell) < 2) { // ie too close
* [+] 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
specificcheckok = B_FALSE;
}
- [+] remove "inscribe" spell for now. - [+] beginner perception should let you see next to you. - [+] fix trail directions when checking stairs - [+] make labyrinth vault be a proper labyrinth shape - [+] 'spark' should affect floor obs even if there is a lf there. - [+] cursed scroll of awareness should blind you for 10-20 turns. - [+] bug: monsters trying to flee through locked drainage grate.s - [+] new god: Bjorn the battlelord - [+] Pray effects: - [+] bless weapon - [+] bezerk - [+] true strike - [+] haste - [+] Likes: battles (ie. kill last enemy in lof) - [+] Dislike: - [+] calming - [+] poison - [+] magic (wands, spells etc) - [+] retreat (moving away with back turned) "Coward!" - [+] gifts: - [+] weapons, armour - [+] sacrifice: - [+] untouched battle spoils - [+] after dropping objects, add f_battlespoils if YOU killed the ownert. - [+] remove this if/when the object gets moved again - [+] splatter blood - [+] minor anger: - [+] rust your armour / weapon - [+] major anger: - [+] destroy your armour - [+] destroy your weapon - [+] summon lots of enemies - [+] new god: Lumara - fem, magic - [+] likes: - [+] most things which train magic skills - [+] ie. casting spells - [+] using wands - [+] reading scrolls - [+] dislikes: - [+] missile weapons - [+] pray: - [+] restore mp if low - [+] identify books/scrolls - [+] remove curses - [+] gift: - [+] spellbooks - [+] manuals of spell schools - [+] extra mp - [+] angry minor: - [+] lose mp - [+] forget a spell - [+] angry: - [+] spells stop working (100% failure chance) - [+] forget all spells - [+] polymorph you into something bad - [+] sacrifice - [+] weapons / armour
2012-01-25 20:20:15 +11:00
}
if (ot->id == OT_A_TRIPLF) {
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
if (isairborne(victim, NULL)) {
- [+] remove "inscribe" spell for now. - [+] beginner perception should let you see next to you. - [+] fix trail directions when checking stairs - [+] make labyrinth vault be a proper labyrinth shape - [+] 'spark' should affect floor obs even if there is a lf there. - [+] cursed scroll of awareness should blind you for 10-20 turns. - [+] bug: monsters trying to flee through locked drainage grate.s - [+] new god: Bjorn the battlelord - [+] Pray effects: - [+] bless weapon - [+] bezerk - [+] true strike - [+] haste - [+] Likes: battles (ie. kill last enemy in lof) - [+] Dislike: - [+] calming - [+] poison - [+] magic (wands, spells etc) - [+] retreat (moving away with back turned) "Coward!" - [+] gifts: - [+] weapons, armour - [+] sacrifice: - [+] untouched battle spoils - [+] after dropping objects, add f_battlespoils if YOU killed the ownert. - [+] remove this if/when the object gets moved again - [+] splatter blood - [+] minor anger: - [+] rust your armour / weapon - [+] major anger: - [+] destroy your armour - [+] destroy your weapon - [+] summon lots of enemies - [+] new god: Lumara - fem, magic - [+] likes: - [+] most things which train magic skills - [+] ie. casting spells - [+] using wands - [+] reading scrolls - [+] dislikes: - [+] missile weapons - [+] pray: - [+] restore mp if low - [+] identify books/scrolls - [+] remove curses - [+] gift: - [+] spellbooks - [+] manuals of spell schools - [+] extra mp - [+] angry minor: - [+] lose mp - [+] forget a spell - [+] angry: - [+] spells stop working (100% failure chance) - [+] forget all spells - [+] polymorph you into something bad - [+] sacrifice - [+] weapons / armour
2012-01-25 20:20:15 +11:00
specificcheckok = B_FALSE;
}
* [+] 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
}
- [+] bug: wrapprint() needs to cope with long lines which wrap!!! - [+] in progress... - [+] currently hanging - fixed. - [+] once done, make it not add spaces - [+] add spaces manually in showlfstats. - [+] once done, change all code to use wrapprint instead of textwithcol - [+] still an issue - everything in my inventory is coming up bold! - [+] missing the last word again.... - [+] remove requirement that you have to be able to pick up an object to eat it * [+] make ninja weapons be "exotic" or ninjitsu - [+] ghost missing melee attacks - [+] make oil lamps last HEAPS longer too - [+] @ should include weapon bonuses for skill/str - [+] "headless bones" when you kill a skeleton?? - [+] allow for change of verb instead of always using "Killed by xxx" - [+] only call maketried() for the player - [+] don't show 'really attack the peaceful something' if you can't see it! - [+] vault: suply closet - [+] 1 sq room with tools - [+] why is hecta's pain hitting the player? - [+] make it so you can only Offer to gods you ahve prayeed to? - [+] recalc light on: - [+] darkness/light spells - [+] eye destroyed - [+] prevent tumble/jump while grabbed - [+] prompt to drop when wearing new armour - [+] canine tracking should be a potion, not a scroll - [+] some '?' help commands not working. - [+] add f_critprotection to armour - [+] crash when tumbling into an lf - [+] incrase cellknown time when no cartography skill - [+] change disarm and trip into abilities: - [+] disarm - [+] trip - [+] ninja - [+] skills: - [+] athletics (enouhg to tumble) - [+] throwing - [+] unarmed - [+] long blades - [+] stealth - [+] objects: - [+] smoke bombs - [+] shuriken - another missle. higher dam than darts. - [+] how will this be different from the rogue class??? - [+] disarm - [+] trip. maybe make trip polearms confer this ability? - [+] flip .
2011-10-19 10:08:14 +11:00
if ((ot->id == OT_A_TUMBLE) || (ot->id == OT_A_JUMP)) {
- [+] djin and efreeti should hate each other - [+] 'G' isn't remembering direction anymore - [+] beginner athletics: give skill where misisng in a melee attack doesn't cost stamina - [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire. - [+] insects shoudl ahve infinite stamina - [+] replace DIECONVERT planks of wood type code - [+] instead, materials have dieconvert values based on damage. - [+] getsmallbreakob(material,damtype) - [+] getlargebreakob(material, damtype) - [+] when an object dies, lookup its material and obejct size - [+] ie. large wooden objects turn into "x planks of wood" - [+] small ones turn into "x shards of wood" - [+] then remove TODO: code from changemat() in objects.c - [+] allow for hardcoded getsmallbrekaob, getbigbreakob - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what - [+] remove specific code, like fire damage = pile of ash. ice+bash = shards, etc. - [+] can use shards/planks of wood as (poor) weapons. - [+] jackhammer shoudl be tech, not tool./ - [+] digging tools should make noise - [+] remove freezing touch spell/scroll - [+] better listen check when asleep - slithering should very rarely wake you up - [+] use adjusted volume value based on sleeping etc. - [+] breaking locks by bashing should now work. - [+] I'm often getting "The hollow tree seems to be blocked." when going to the sylvan woods. - [+] there is a tree in the way! - [+] fixed. - [+] bug: evil players not getting xp for killing helpless. fixed. - [+] bug: pullobto() not doing correct impassable check. - [+] another bug: insylvan woods, stairs were on top of water!!! - [+] ERROR - couldnt find pos for down stairs while making habitat forest.--More-- - [+] repairing should make noise too - [+] new flag - USENOISE - [+] EATCONFER on clove of garlic isn't working - [+] it's because i'm only checking this if we have MUTABLE. - [+] use EATMUTATE instead for mutations. then eatconfer works with everything. - [+] more crush bugs - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] You crush some pieces of broken glass underfoot. You see 28 pieces of broken glass here. - [+] anything with natural flight sohuld still make noise when flying. otherwise it's too powerful. - [+] "wing flapping" . NV FLY - [+] NOISETEXT NV_FLY - [+] magical flight can still be silent. - [+] make how high you can fly depend on the "Flight" or "Natural Flight" skill. - [+] F_FLYING v0 = height. - [+] without this skill, flight is dependant on spell power. - [+] assign sk_flying to races. - [+] remove F_FLIGHTEVASION from races. skill now does this instead. - [+] validaterace: - [+] canwill ot_a_flight = need flight skill - [+] each rank = +1 size level of height. - [+] if you get the skill while already flying, adjust the flag - [+] fall from flying if burduned. - [+] skill also affacts how much your evasion while flying is boosted. - [+] this extra EV bonus from flight sohuld only work against NON flying creatures! - [+] 5 EV per rank - [+] have a differnet fly ability - [+] ability = flight or fly (use flying skill for height) - [+] implement - [+] replace monster flight with ability. - [+] spell = enchanted flight (use spell power for ehgiht) - [+] check all occurences of FROMSPELL, cope with FROMABIL too. - [+] don't regenerate stamina when doing natural flight. - [+] ai: if flying and no stamina left, stop flying. - [+] ai: only start flying if we have >= 80% stamina. - [+] how did a nutter miss a mammoan from point blank range? - [+] the nutter is throwing a peanut - acc = 64, speed = 2 - [+] maybe fixed now. - [+] felix should like using poison. - [+] when asking whether you accept a god's offer, give a '?' option, to give help on that god. - [+] also have F_GODDECLINE text. - [+] pipes of peace - calms everyone around you. charges.
2012-11-22 14:13:27 +11:00
if (lfhasflag(lf, F_GRABBING) || lfhasflag(lf, F_GRABBEDBY) || isairborne(lf, NULL)) {
- [+] bug: wrapprint() needs to cope with long lines which wrap!!! - [+] in progress... - [+] currently hanging - fixed. - [+] once done, make it not add spaces - [+] add spaces manually in showlfstats. - [+] once done, change all code to use wrapprint instead of textwithcol - [+] still an issue - everything in my inventory is coming up bold! - [+] missing the last word again.... - [+] remove requirement that you have to be able to pick up an object to eat it * [+] make ninja weapons be "exotic" or ninjitsu - [+] ghost missing melee attacks - [+] make oil lamps last HEAPS longer too - [+] @ should include weapon bonuses for skill/str - [+] "headless bones" when you kill a skeleton?? - [+] allow for change of verb instead of always using "Killed by xxx" - [+] only call maketried() for the player - [+] don't show 'really attack the peaceful something' if you can't see it! - [+] vault: suply closet - [+] 1 sq room with tools - [+] why is hecta's pain hitting the player? - [+] make it so you can only Offer to gods you ahve prayeed to? - [+] recalc light on: - [+] darkness/light spells - [+] eye destroyed - [+] prevent tumble/jump while grabbed - [+] prompt to drop when wearing new armour - [+] canine tracking should be a potion, not a scroll - [+] some '?' help commands not working. - [+] add f_critprotection to armour - [+] crash when tumbling into an lf - [+] incrase cellknown time when no cartography skill - [+] change disarm and trip into abilities: - [+] disarm - [+] trip - [+] ninja - [+] skills: - [+] athletics (enouhg to tumble) - [+] throwing - [+] unarmed - [+] long blades - [+] stealth - [+] objects: - [+] smoke bombs - [+] shuriken - another missle. higher dam than darts. - [+] how will this be different from the rogue class??? - [+] disarm - [+] trip. maybe make trip polearms confer this ability? - [+] flip .
2011-10-19 10:08:14 +11:00
specificcheckok = B_FALSE;
}
}
- [+] fixed CRASH when energy blade vanishes - [+] gods of opposing alignments should never make offers. - [+] new armour flag: - [+] f_underclothing - [+] getequippedob() - get the outer one. - [+] if you have f_underclothing, can wear other armour on top of it. - [+] can't remove underclothes without removing outer first. - [+] TEST with cotton shirt - [+] make sure autoequip handles undercltohing - [+] fix other objects - [+] adjust ']' output - [+] make armour help against some magical damage too - [+] move armour check and reduction into losehpeffects(). - [+] pass damreducedbyarmour to losehpeffects - [+] psionic spells: - [+] dampen missiles - lots of extra evasion vs missiles only * [+] soul link (l4, share damage) - [+] mind sheidl (l4, like the amulet) - [+] delay death (l5, don't die if hp <= 0 and this spell is active) - [+] remote ko (l6) - [+] Silence spell / effect - air. - [+] f_silenced. - [+] announce in io.c - [+] prevents spellcasting - [+] prevents docomms() - [+] prevents reading scrolls - [+] prevents speech-based abilities like warcry and sonic bolt - [+] say() will fail - [+] sayphrase() wil fail - [+] test the spell....... - [+] CRASH when adjusting glyph on edge of map - [+] non-humanoids can't climb without climb skill. - [+] player sohuld be able to swap with unconscious/asleep lfs <= same size - [+] too easy to knock things unconscious??? bug. fixed. - [+] reusable cells being set to empty! think this was a vault definition problem. - [+] demon chameleon / deech - [+] low-level mosnter which can hide
2012-12-06 15:57:13 +11:00
if ((ot->id == OT_A_WARCRY) && lfhasflag(lf, F_SILENCED)) {
specificcheckok = B_FALSE;
}
- [+] bug: wrapprint() needs to cope with long lines which wrap!!! - [+] in progress... - [+] currently hanging - fixed. - [+] once done, make it not add spaces - [+] add spaces manually in showlfstats. - [+] once done, change all code to use wrapprint instead of textwithcol - [+] still an issue - everything in my inventory is coming up bold! - [+] missing the last word again.... - [+] remove requirement that you have to be able to pick up an object to eat it * [+] make ninja weapons be "exotic" or ninjitsu - [+] ghost missing melee attacks - [+] make oil lamps last HEAPS longer too - [+] @ should include weapon bonuses for skill/str - [+] "headless bones" when you kill a skeleton?? - [+] allow for change of verb instead of always using "Killed by xxx" - [+] only call maketried() for the player - [+] don't show 'really attack the peaceful something' if you can't see it! - [+] vault: suply closet - [+] 1 sq room with tools - [+] why is hecta's pain hitting the player? - [+] make it so you can only Offer to gods you ahve prayeed to? - [+] recalc light on: - [+] darkness/light spells - [+] eye destroyed - [+] prevent tumble/jump while grabbed - [+] prompt to drop when wearing new armour - [+] canine tracking should be a potion, not a scroll - [+] some '?' help commands not working. - [+] add f_critprotection to armour - [+] crash when tumbling into an lf - [+] incrase cellknown time when no cartography skill - [+] change disarm and trip into abilities: - [+] disarm - [+] trip - [+] ninja - [+] skills: - [+] athletics (enouhg to tumble) - [+] throwing - [+] unarmed - [+] long blades - [+] stealth - [+] objects: - [+] smoke bombs - [+] shuriken - another missle. higher dam than darts. - [+] how will this be different from the rogue class??? - [+] disarm - [+] trip. maybe make trip polearms confer this ability? - [+] flip .
2011-10-19 10:08:14 +11:00
if (ot->id == OT_S_WARPWOOD) {
* [+] 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
specificcheckok = B_FALSE;
if (victim) {
object_t *oo;
for (oo = victim->pack->first ; oo ; oo = oo->next) {
if ((oo->type->material->id == MT_WOOD) && isequipped(oo)) {
specificcheckok = B_TRUE;
break;
}
}
}
}
if (ot->id == OT_S_WEAKEN) {
int nretflags,i;
flag_t *retflag[MAXCANDIDATES];
getflags(lf->flags, retflag, &nretflags, F_ATTRMOD, F_NONE);
for (i=0; i< nretflags; i++) {
if ((retflag[i]->id == F_ATTRMOD) && (retflag[i]->val[0] == A_STR) && (retflag[i]->obfrom == OT_S_WEAKEN)) {
specificcheckok = B_FALSE;
break;
}
}
}
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
if (!specificcheckok) {
if (db) dblog(".oO { cant cast %s - specific spell check failed }", ot ? ot->name : "?unkownspell?");
* [+] backstab - [+] monsters start asleep and make spot checks ? - [+] make them start asleep - [+] then make this random - [+] sound will wake them (ie. "makenoise") - [+] when you move, make SC_STEALTH check. if you fail, you make noise! - [+] must pass LISTEN check OR have los to hear something. - [+] "the blowfly falls asleep" "the blowfly appears" when summoned. - [+] don't show 'falls asleep' while being created! * [+] don't start summoned mosnters asleep! * [+] clean up bresnham functions - [+] hearing - instead of just using distance, use distance modiied by # of walls! - [+] getcelldistsound() - each wall counts as an extra cell! - [+] add WALK/FLY noises to all monsters! - [+] don't show 'you hear xxx' when resting. - [+] extra damage for weapon skill (up to 50% extra) - [+] make broken glass crushable - [+] only interrupt rest for non-peaceful, non-friendly monsters - [+] save to fight off poison * [+] beholder is never using its BITE attack * [+] need a price for manuals!! * [+] change"dobresnham" to populate an array of cells - [+] make ai cast animate metal (if they ahve a second weapon) - [+] implement getallegiance() to clean up isfriendly / ispeaceful etc - [+] bug - f_else f_ifpct etc not working in startobs * [+] OT_S_CHARM - [+] update askcoords to show "weilding x AND Y" - [+] stop enemies from throwing firearm ammo somehow * [+] implement - [+] pacify spell - [+] make spellbooks less common - [+] detectmetal not wokring. fixed. - [+] detectobjects spell - [+] cleanup using flagcausesredraw() - [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 16:09:31 +11:00
return B_FALSE;
}
2011-03-04 12:22:36 +11:00
return B_TRUE;
}
int aiwants(lifeform_t *lf, object_t *o, int *covets) {
enum OBTYPE oid[MAXPILEOBS];
int oidcovet[MAXPILEOBS];
int noids = 0;
enum FLAG wantflag[MAXPILEOBS];
int wantflagcovet[MAXPILEOBS];
int nwantflags = 0;
makewantedoblist(lf, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet);
return aiwants_real(lf, o, covets, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet);
}
int aiwants_real(lifeform_t *lf, object_t *o, int *covets, int *noids, enum OBTYPE *oid, int *oidcovet,int *nwantflags, enum FLAG *wantflag, int *wantflagcovet) {
int i;
- [+] ai shuldn't want its home/life objects. - [+] lich - [+] lifeob = ornate glass jar - [+] can walk up to 12 away - [+] chilling touch - [+] mindshield - [+] teleport back to jar on death - [+] monster ghosts have lifeob = corpse, which we generate. - [+] but DONT let them possess the player ? or dont let them possess anyhting ? - [+] mosnters should say noooo! if their lifeob is destroyed - [+] lifeobs need a link back to owner f_lifeobfor xxx - [+] lifeob check wasn't including the lf's cell itself. - [+] spellcasttext for dryad - "Charm" = beckons - [+] poltergeist should be invisible - [+] troll should covet food - [+] avian - birds should be friendly - [+] scroll of permenance should make armour invulnerable - [+] amulet of mind sheild - immune to psionics - [+] parserace() shouhld handle "random _baseid_" ie. random ant, random troll etc - [+] vault: troll cave (very rare) - [+] trolls - [+] bones - [+] cooked corpses - [+] bug: minions not being created in vaults. - [+] vault: ant nest - [+] queen ant - [+] dirt floor - [+] lots of ants - [+] LOTS of food. - [+] reduce flame volume - [+] vault maintainedge not working. slightly fixed now? - [+] vampires are turning into gas clouds but then trying to attack. - [+] new amulets - [+] Of evolution (turn into a merman in deep water, aviad instead of falling, (fireres humanoid) in fire, (coldred human) in cold) - [+] in deep water and can't swim? turn into merman - [+] about to fall through a hole? turn into a flying aviad - [+] in fire and not resistant? turn into a Lavax - [+] in cold and not resistant? turn into sasquatch - [+] all polymorphs are TEMPORARY (5 turns or so). - [+] no autoid - [+] of bloodthirst - walking over blood heals you! - [+] no autoid - [+] Of graceful swimming (auto turn into a swan when you enter water) - [+] no autoid - [+] paranoia (5% chance per turn to create monsters out of sight, but in lof) - [+] they will make a "walk" noise right away - [+] or something just "you hear xxx right behind you!"
2012-03-09 06:42:25 +11:00
if (hasflagval(o->flags, F_HOMEOBFOR, lf->id, NA, NA, NULL)) {
return B_FALSE;
}
for (i = 0; i < *noids; i++) {
if (oid[i] == o->type->id) {
if (covets) {
*covets = oidcovet[i];
}
return B_TRUE;
}
}
for (i = 0; i < *nwantflags; i++) {
// special case to cope with eating objects that aren't normally edible.
// eg. goats eating wood due to F_CANEATMATERIAL
if ((wantflag[i] == F_EDIBLE) && caneat(lf, o)) {
if (covets) *covets = wantflagcovet[i];
return B_TRUE;
}
if (hasflag(o->flags, wantflag[i])) {
if ((wantflag[i] == F_EDIBLE) && !caneat(lf, o)) { // special case
} else {
if (covets) {
*covets = wantflagcovet[i];
}
return B_TRUE;
}
}
}
return B_FALSE;
}
2011-03-04 12:22:36 +11:00
- [+] 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
lifeform_t *gettargetlf(lifeform_t *lf) {
flag_t *f;
lifeform_t *target = NULL;
f = hasflag(lf->flags, F_TARGETLF);
if (f) {
target = findlf(lf->cell->map, f->val[0]);
}
return target;
}
2011-02-01 06:16:13 +11:00
object_t *hasbetterarmour(lifeform_t *lf, obpile_t *op) {
object_t *o;
for (o = op->first ; o ; o = o->next) {
if (isarmour(o)) {
object_t *curarm;
enum BODYPART bp;
flag_t *f;
// where does it go?
f = hasflag(o->flags, F_GOESON);
bp = f->val[0];
// is it better than what we have in that position?
curarm = getarmour(lf, bp);
- [+] get rid of "sorcery" skill, and move 'study scrolls' ability to cmoe from lore:arcana instead - [+] rename magic skillls to sorcery:fire etc? - [+] adjust spell power calculation to take lack of sorcery skill int oaccount - [+] allow '\' during getchoice() and getchoicestr() - [+] so that we can see what we have identified - [+] lower metabolism while lmeditating - [+] poisonous mushrooms - [+] toadstool - poisonous - [+] shiitake - normal - [+] recognise via cooking skill - [+] if you add a blood ob, 1 randmo piece of armour in the pile becomes bloodstained - [+] accuracy boost when attacking something who has grabbedyou - [+] lessen gravitiy should prvent falls * [+] bug: - [+] add job descriptions - [+] handle ESC in askchar - [+] You attack the helpless the xat! You flatten the xat! - [+] "the helpless the xat" - [+] shoiuldn't use "flatten" sinec we're not killing it - [+] You attack the helpless xat! You kill the xat! - [+] ...but it wasn't dead! - [+] flame pillar scroll no longer works - [+] not asking for target. - [+] use castspell - [+] cope with 'ESC' presses during normal travel - [+] allow "maycancel" in askchar - [+] make wizards NOT automatically know wild magic - [+] is F_MPMOD working? check with elf wizard....... - [+] now it is. - [+] bug: create an elf, go over it, v - CRASH in makedesc_race. - [+] removeob() should update burdened status - [+] ie drinking a potion - [+] wizards start with a staff and a pointy hat - [+] don't "stir in your slumber" if meditating - [+] elves should have higher mp - [+] dwarves should have lower mp - [+] when monsters fail to open a door, abandon their targetcell - [+] might be able to jsut make failing a dooropen count as a move failure. - [+] HiGrv didn't stop me from moving? i passed the skill check, need to have a msg telling me this. - [+] race descriptions. - [+] add the descriptions - [+] ? in @@ shows info on them. - [+] (add ?=help in the bottom when in @ mode regardless of showall) - [+] make clouds expand as they disappate - [+] modify gethitstokill() to take "useevasion" and "usearmour" as a parameter - [+] at adept lore, you get threat comparison. at skilled level you get exact hit turns. - [+] make threat calculation use gethitstokill - [+] TEST new threat calc * [+] way too easy to notice traps on chests from 4-5 cells away, with only novice perception - [+] make cloudkill create puff of poison gas rather than a cloud - [+] attacking should count as movement (ie dont regen stamina) - [+] need more body bash criticals. - [+] torso bruised (acc penalty) - [+] torso bruised badly (higher acc penalty, low dam penalty) - [+] ribs broken (huge acc penalty, med dam penalty) - [+] lungs winded (stam=0 onetimeeffect, fit -1, only lasts a 2-3 turns) - [+] should stop flying when you lose ocnsciousness... - [+] warn before moving with f_pain as well. maybe cahnge confirm_injiury_action ??? - [+] extra warrior skill: aimed strike - [+] -50%acc - [+] auto crit on the part you select (if you hit)
2011-10-13 08:15:48 +11:00
if (isbetterwepthan(o, curarm, lf)) {
2011-02-01 06:16:13 +11:00
return o;
}
}
}
return NULL;
2010-12-02 12:17:54 +11:00
}
2011-02-01 06:16:13 +11:00
object_t *hasbetterweapon(lifeform_t *lf, obpile_t *op) {
object_t *bestwep, *o;
bestwep = getbestweapon(lf);
for (o = op->first ; o ; o = o->next) {
- [+] get rid of "sorcery" skill, and move 'study scrolls' ability to cmoe from lore:arcana instead - [+] rename magic skillls to sorcery:fire etc? - [+] adjust spell power calculation to take lack of sorcery skill int oaccount - [+] allow '\' during getchoice() and getchoicestr() - [+] so that we can see what we have identified - [+] lower metabolism while lmeditating - [+] poisonous mushrooms - [+] toadstool - poisonous - [+] shiitake - normal - [+] recognise via cooking skill - [+] if you add a blood ob, 1 randmo piece of armour in the pile becomes bloodstained - [+] accuracy boost when attacking something who has grabbedyou - [+] lessen gravitiy should prvent falls * [+] bug: - [+] add job descriptions - [+] handle ESC in askchar - [+] You attack the helpless the xat! You flatten the xat! - [+] "the helpless the xat" - [+] shoiuldn't use "flatten" sinec we're not killing it - [+] You attack the helpless xat! You kill the xat! - [+] ...but it wasn't dead! - [+] flame pillar scroll no longer works - [+] not asking for target. - [+] use castspell - [+] cope with 'ESC' presses during normal travel - [+] allow "maycancel" in askchar - [+] make wizards NOT automatically know wild magic - [+] is F_MPMOD working? check with elf wizard....... - [+] now it is. - [+] bug: create an elf, go over it, v - CRASH in makedesc_race. - [+] removeob() should update burdened status - [+] ie drinking a potion - [+] wizards start with a staff and a pointy hat - [+] don't "stir in your slumber" if meditating - [+] elves should have higher mp - [+] dwarves should have lower mp - [+] when monsters fail to open a door, abandon their targetcell - [+] might be able to jsut make failing a dooropen count as a move failure. - [+] HiGrv didn't stop me from moving? i passed the skill check, need to have a msg telling me this. - [+] race descriptions. - [+] add the descriptions - [+] ? in @@ shows info on them. - [+] (add ?=help in the bottom when in @ mode regardless of showall) - [+] make clouds expand as they disappate - [+] modify gethitstokill() to take "useevasion" and "usearmour" as a parameter - [+] at adept lore, you get threat comparison. at skilled level you get exact hit turns. - [+] make threat calculation use gethitstokill - [+] TEST new threat calc * [+] way too easy to notice traps on chests from 4-5 cells away, with only novice perception - [+] make cloudkill create puff of poison gas rather than a cloud - [+] attacking should count as movement (ie dont regen stamina) - [+] need more body bash criticals. - [+] torso bruised (acc penalty) - [+] torso bruised badly (higher acc penalty, low dam penalty) - [+] ribs broken (huge acc penalty, med dam penalty) - [+] lungs winded (stam=0 onetimeeffect, fit -1, only lasts a 2-3 turns) - [+] should stop flying when you lose ocnsciousness... - [+] warn before moving with f_pain as well. maybe cahnge confirm_injiury_action ??? - [+] extra warrior skill: aimed strike - [+] -50%acc - [+] auto crit on the part you select (if you hit)
2011-10-13 08:15:48 +11:00
if (isweapon(o) && isbetterwepthan(o, bestwep, lf) && canweild(lf, o)) {
2011-02-01 06:16:13 +11:00
return o;
}
2010-12-02 12:17:54 +11:00
}
2011-02-01 06:16:13 +11:00
return NULL;
2010-12-02 12:17:54 +11:00
}
int isvalidattacktarget(lifeform_t *lf, lifeform_t *victim) {
flag_t *f;
// lifeforms won't attack monster summoners
f = hasflagval(lf->flags, F_SUMMONEDBY, victim->id, NA, NA,NULL);
if (f) {
if (!isplayer(victim)) {
return B_FALSE;
}
}
2011-02-01 06:16:13 +11:00
// pets won't (intentionally) attack their masters
f = hasflagval(lf->flags, F_PETOF, victim->id, NA, NA,NULL);
if (f) {
return B_FALSE;
}
return B_TRUE;
}
2011-02-01 06:16:13 +11:00
// returns B_TRUE if we did something
- [+] 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 lookforobs(lifeform_t *lf) {
object_t *o,*nexto;
2011-02-01 06:16:13 +11:00
enum OBTYPE oid[MAXPILEOBS];
- [+] 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 oidcovet[MAXPILEOBS];
2011-02-01 06:16:13 +11:00
int noids = 0;
enum FLAG wantflag[MAXPILEOBS];
- [+] 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 wantflagcovet[MAXPILEOBS];
2011-02-01 06:16:13 +11:00
int nwantflags = 0;
flag_t *f;
cell_t *c;
int i;
int db = B_FALSE;
- [+] 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
lifeform_t *target;
int targdist = 999;
int covets = B_FALSE;
- [+] 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
target = gettargetlf(lf);
if (target) {
targdist = getcelldist(lf->cell, target->cell);
}
if (wantdb && lfhasflag(lf, F_DEBUG)) {
db = B_TRUE;
} else {
db = B_FALSE;
}
2011-02-01 06:16:13 +11:00
makewantedoblist(lf, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet);
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!! - [+] blink should go to random place within lof, not los - [+] sunglasses shuld reduce nightvis range, not visrange * [+] since jolt needs adjacency, make it more powerful - [+] use colours for spell descriptions - [+] replace 'call wind' with 'zephyr' * [+] add vault commonality. - [+] add more common vaults - roundabout etc * [+] change "addmonster" to take a string arg instrad of RACEID - [+] pouring cursed water on blessed scroll didn't work..... - [+] append "...god of xxx" to rc_god lifeforms - [+] try to attack with f_pain -> INFINITE LOOP. - [+] ARMOURPIERCE shouldn't hurt armour - [+] ghast touchparalyze attack isn't working. * [+] bug: when praying to gods, ones not in heaven aren't listed. - [+] when a god apepars..."Hecta appears" x2 - [+] attacking fleeing lf should count as a backstab (if you have the skill) * [+] "nothing happens" during god spell effects * [+] allow hunger to work on monsters - [+] pressing 'a' on @Magic has weird results. - [+] bug: got a gift form yumi during combat???? what for? healing? initial vampire implementation initial god implementation - [+] they all start off in "heaven" map. - [+] gods ahve f_piety. starts at 0 - [+] keep track of piety with each god. starts at 0 for each one. * [+] let planeshift take you to heaven (for debugging) * [+] everyone has 'pray' ability. - [+] modpiety(rid, amt) * [+] piety vals * [+] when you pray - [+] isangry(god) - ie is piety < 0 * [+] if you pray when god is angry, bad! * [+] once piety gets over 200 or so, praying might give you a gift. * [+] god_appears(lifeform_t *victim) - [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per turn). - [+] regain through doing actions ... in progress - [+] lose through doing actions only if you have prayed to this god before (angergodmaybe) - [+] special: gods don't need LOS to cast spells. - [+] gods planeshift away if not doing anything else. * [+] @g to see your piety levels for each god - [+] ?g for help on gods - [+] IN general: - [+] prey = oneoff effect - [+] gift = ongoing * [+] makeangry() vs modpiety * [+] Yumi - fem,mercy/healing - if you die within the first few turns! Hecta - partial Avamon - partial
2011-08-04 04:43:05 +10:00
2011-02-01 06:16:13 +11:00
// current cell has an object we want?
for (o = lf->cell->obpile->first ; o ; o = nexto) {
nexto = o->next;
if (aiwants_real(lf, o, &covets, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet)) {
int getit = B_TRUE;
// if we are in battle only go for it if we covet it
if (target && !covets) getit = B_FALSE;
if (isdangerousob(o, lf, B_TRUE) || !aipickupok(lf, o)) getit = B_FALSE;
if (getit) {
if (db) dblog(".oO { current cell has ob i want (%s) }",o->type->name);
// try to pick it up
if (!aipickup(lf, o)) return B_TRUE;
if (db) dblog(".oO { pickup of %s failed, trying to eat! }",o->type->name);
if (!eat(lf, o)) return B_TRUE;
if (db) dblog(".oO { eating %s failed }",o->type->name);
- [+] 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
}
2011-02-01 06:16:13 +11:00
}
}
2011-02-01 06:16:13 +11:00
// current cell has better weapon?
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (lfhasflag(lf, F_HUMANOID) && hasbp(lf, BP_WEAPON)) {
f = hasflag(lf->flags, F_WANTSBETTERWEP);
if (f) {
- [+] 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
// if we are in battle only go for it if we covet it
if (!target || (f->val[1] == B_COVETS)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
o = hasbetterweapon(lf, lf->cell->obpile);
- [+] thrown objects taking no damage due to hardness * [+] DIETY is slow. - [+] map bug - from 0,0, walk NE (off top edge). i end up at 0,0 again!!! * [+] ALLOW ROTATING OF VAULTS - [+] BUG: dig X only goes 1 cell. - [+] add a U shaped turn vault. - [+] change wehre i apply HADRNESS for lfs! - don't use adjustdammaterial cause we inherit there - [+] make obchance/thingchance part of habitat_t - [+] make sense surroundings take cartography skill into account * [+] BUG: rotated at() etc not working. - [+] if you fail stealing, the target should get angry!!! - [+] make sure to redraw stat bar when mind scan finishes. - [+] villages - [+] initial code * [+] town gaurds. stand next to the gate - [+] potion shop vault - [+] implement - [+] potion shop isn't getting potions!! - [+] and getting wrong floor type. * [+] stop shop from always being at the top left. - [+] make sure its x/y arent too close to edge of map (at least 5 away) - [+] vault param. f_mapmargin, 5 - [+] make calcroompos take x/y margin - [+] don't put auto obs inside vaults - [+] town walls - [+] more kinds of shops * [+] signs outside shops - [+] bug with ai swapping between firearms and twohanded weapons. fixed. * [+] make _CELLS_ have habitats! - [+] move vaultchance to a habitat param instead of getvaultchance() * [+] shopkeepers (special race) village things: - [+] barrels, - [+] guards, - [+] statue - [+] thrown objects should still take damage if blocked via a shield * [+] hardness (must do dam >= xx to hurt) * [+] WATER spread mods * [+] very powerful spells have casttime - [+] allow linkstairs() to take a parameter rather than always jsut searching for the other end - [+] when digging holes, only use getrandomadjcell if there is an lf in the way. and then use WE_NOLF. clear out solid cells - [+] show armour EVASION penalty in describeob - [+] teleportation trap. You reintegrate inside a solid object! You die.--More--. - [+] riverroom vault * [+] water: swap { and ~ again?? - [+] make "large puddle of water" evaporate more quickly * [+] special glyph case: for deep water
2011-06-29 18:48:48 +10:00
if (o && !isdangerousob(o, lf, B_TRUE) && aipickupok(lf, o) && canpickup(lf, o, 1)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (db) dblog(".oO { current cell has better weapon (%s) }",o->type->name);
// try to pick it up
if (!aipickup(lf, o)) return B_TRUE;
if (db) dblog(".oO { pickup of better wep %s failed! }",o->type->name);
}
2011-02-01 06:16:13 +11:00
}
}
}
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (lfhasflag(lf, F_HUMANOID)) {
// current cell has better armour?
f = hasflag(lf->flags, F_WANTSBETTERARM);
if (f ) {
- [+] 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
// if we are in battle only go for it if we covet it
if (!target || (f->val[1] == B_COVETS)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
o = hasbetterarmour(lf, lf->cell->obpile);
- [+] thrown objects taking no damage due to hardness * [+] DIETY is slow. - [+] map bug - from 0,0, walk NE (off top edge). i end up at 0,0 again!!! * [+] ALLOW ROTATING OF VAULTS - [+] BUG: dig X only goes 1 cell. - [+] add a U shaped turn vault. - [+] change wehre i apply HADRNESS for lfs! - don't use adjustdammaterial cause we inherit there - [+] make obchance/thingchance part of habitat_t - [+] make sense surroundings take cartography skill into account * [+] BUG: rotated at() etc not working. - [+] if you fail stealing, the target should get angry!!! - [+] make sure to redraw stat bar when mind scan finishes. - [+] villages - [+] initial code * [+] town gaurds. stand next to the gate - [+] potion shop vault - [+] implement - [+] potion shop isn't getting potions!! - [+] and getting wrong floor type. * [+] stop shop from always being at the top left. - [+] make sure its x/y arent too close to edge of map (at least 5 away) - [+] vault param. f_mapmargin, 5 - [+] make calcroompos take x/y margin - [+] don't put auto obs inside vaults - [+] town walls - [+] more kinds of shops * [+] signs outside shops - [+] bug with ai swapping between firearms and twohanded weapons. fixed. * [+] make _CELLS_ have habitats! - [+] move vaultchance to a habitat param instead of getvaultchance() * [+] shopkeepers (special race) village things: - [+] barrels, - [+] guards, - [+] statue - [+] thrown objects should still take damage if blocked via a shield * [+] hardness (must do dam >= xx to hurt) * [+] WATER spread mods * [+] very powerful spells have casttime - [+] allow linkstairs() to take a parameter rather than always jsut searching for the other end - [+] when digging holes, only use getrandomadjcell if there is an lf in the way. and then use WE_NOLF. clear out solid cells - [+] show armour EVASION penalty in describeob - [+] teleportation trap. You reintegrate inside a solid object! You die.--More--. - [+] riverroom vault * [+] water: swap { and ~ again?? - [+] make "large puddle of water" evaporate more quickly * [+] special glyph case: for deep water
2011-06-29 18:48:48 +10:00
if (o && !isdangerousob(o, lf, B_TRUE) && aipickupok(lf, o) && canpickup(lf, o, 1)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (db) dblog(".oO { current cell has better armour (%s) }",o->type->name);
// try to pick it up
if (!aipickup(lf, o)) return B_TRUE;
if (db) dblog(".oO { pickup of better armour %s failed! }",o->type->name);
}
2011-02-01 06:16:13 +11:00
}
}
}
// look around for objects which we want, if we don't already have a targetcell.
// CRASH in here!
2011-02-01 06:16:13 +11:00
if (!hasflag(lf->flags, F_TARGETCELL)) {
if (db) dblog(".oO { no targetcell, so looking for remote objects }");
if (lf->losdirty) precalclos(lf);
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_TRUE;
2011-02-01 06:16:13 +11:00
for (i = 0 ; i < lf->nlos; i++) {
int gothere = B_FALSE;
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
int celldist;
2011-02-01 06:16:13 +11:00
c = lf->los[i];
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
celldist = getcelldist(lf->cell, c);
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
if ((c != lf->cell) && (!c->lf || cancast(lf, OT_A_SNATCH, NULL)) &&
!lfhasflagval(lf, F_IGNORECELL, c->x, c->y, NA, NULL)) {
for (o = c->obpile->first ; o ; o = nexto) {
nexto = o->next;
if (aiwants_real(lf, o, &covets, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet) &&
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
aipickupok(lf, o)) {
- [+] 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
gothere = B_TRUE;
// if we are in battle only go for it if we covet it and
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
// it's similar distance to our target
if (target) {
if (!covets || (celldist > targdist)) {
gothere = B_FALSE;
}
2011-02-01 06:16:13 +11:00
}
if (gothere) {
if (db) dblog(".oO { remote cell has ob i want (%s). setting f_targetcell. }",o->type->name);
break;
}
} // end if aiwantsthisob
} // end foreach ob in cell
2011-02-01 06:16:13 +11:00
if (!gothere) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (lfhasflag(lf, F_HUMANOID) && hasbp(lf, BP_WEAPON)) {
// remote cell has better weapon?
f = hasflag(lf->flags, F_WANTSBETTERWEP);
if (f) {
- [+] 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
// if we are in battle only go for it if we covet it
if (!target ||
((f->val[1] != B_COVETS) && (celldist <= targdist)) ) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
o = hasbetterweapon(lf, c->obpile);
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
if (o && !isdangerousob(o, lf, B_TRUE) && aipickupok(lf, o)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (db) dblog(".oO { remote cell has better weapon (%s). setting f_targetcell }",o->type->name);
gothere = B_TRUE;
}
2011-02-01 06:16:13 +11:00
}
}
}
}
if (!gothere) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (lfhasflag(lf, F_HUMANOID)) {
// remote cell has better armour?
f = hasflag(lf->flags, F_WANTSBETTERARM);
if (f) {
- [+] 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
if (!target ||
((f->val[1] != B_COVETS) && (celldist <= targdist)) ) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
o = hasbetterarmour(lf, c->obpile);
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
if (o && !isdangerousob(o, lf, B_TRUE) && aipickupok(lf, o)) {
* [+] goblins aren't opening doors... - [+] xat shouldn't be able to open doors! - [+] semicontrolled createmonster * [+] implement semicontrolled teleport (can pick the general direction) * [+] change how semicontrolled teleport works - [+] make identify/remove curse more common - [+] make minorheal/heal more common * [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit? i got to 30ar very fast! (ie -45% dam) * [+] make a special case for F_FLAKJACKET - [+] BUG: glowbug is causing PERMENANT light, not temp! - [+] diety ability - levelup - [+] new damtype: necrotic - [+] drain life spell - [+] make water evaporate - [+] BUG in validating target cell. was asking a monster for input * [+] boots get wet if you walk in water - [+] why does oil lamp and pil lantern make the same range of light? - [+] fixed another vending maching crash - [+] crash due to sprinting? - [+] 2 blessed flask of battery acids - [+] "This is a wand!" - don't use code for hiding names in the dark! * [+] animals shouldn't eat their own race! - [+] gem of seeing costs nothing! - [+] frozen weapons do +1d4 cold damage - [+] allomancy/psionics don't need spellcasting - [+] poison isn't being announced on mosnters? - [+] "you are full" only interrupt if we went < normal (ie peckish starving etc) - [+] only F_HUMANOID creatures can wear armour / use weapons * [+] what does a masterwork bow do? - [+] implement strength requirements on weapons - [+] UNDEAD cannot be poisoned by eating corpses! - [+] ai lfs shoudlnt' eat tainted food - [+] change how gravboost works wrt movement - [+] smart ai lfs shouldnt move when in pain - [+] don't stop walking if the only things there are non-pickupable - [+] make mosnters swap places with each other if they are the same baseid * [+] scroll of permenance - [+] make more monsters have gold * [+] can learn novice level weapon skills by using one a lot * [+] finish hawks * [+] add colour * [+] job attribs aren't working - [+] pile of ash has weird glyph! * [+] when you learn the first rank of some magic skills, you get a spell with it - [+] add colours to statbar - [+] can only "stop on xxx" if you have feet - [+] monsters shouldn't attack other to get to wanted objects. * [+] "xat throws a knife" - [+] manaspike doing no damage to giant newt - [+] assign colours to rings
2011-04-01 10:54:44 +11:00
if (db) dblog(".oO { remote cell has better armour (%s). setting f_targetcell }",o->type->name);
gothere = B_TRUE;
}
2011-02-01 06:16:13 +11:00
}
}
}
}
if (gothere) {
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
long obid;
int success = B_FALSE;
// remember object id.
obid = o->id;
// cast a spell to get it?
if (cancast(lf, OT_S_CALLWIND, NULL) && haslofknown(lf->cell, c, LOF_NEED, NULL)) {
- [+] get rid of "sorcery" skill, and move 'study scrolls' ability to cmoe from lore:arcana instead - [+] rename magic skillls to sorcery:fire etc? - [+] adjust spell power calculation to take lack of sorcery skill int oaccount - [+] allow '\' during getchoice() and getchoicestr() - [+] so that we can see what we have identified - [+] lower metabolism while lmeditating - [+] poisonous mushrooms - [+] toadstool - poisonous - [+] shiitake - normal - [+] recognise via cooking skill - [+] if you add a blood ob, 1 randmo piece of armour in the pile becomes bloodstained - [+] accuracy boost when attacking something who has grabbedyou - [+] lessen gravitiy should prvent falls * [+] bug: - [+] add job descriptions - [+] handle ESC in askchar - [+] You attack the helpless the xat! You flatten the xat! - [+] "the helpless the xat" - [+] shoiuldn't use "flatten" sinec we're not killing it - [+] You attack the helpless xat! You kill the xat! - [+] ...but it wasn't dead! - [+] flame pillar scroll no longer works - [+] not asking for target. - [+] use castspell - [+] cope with 'ESC' presses during normal travel - [+] allow "maycancel" in askchar - [+] make wizards NOT automatically know wild magic - [+] is F_MPMOD working? check with elf wizard....... - [+] now it is. - [+] bug: create an elf, go over it, v - CRASH in makedesc_race. - [+] removeob() should update burdened status - [+] ie drinking a potion - [+] wizards start with a staff and a pointy hat - [+] don't "stir in your slumber" if meditating - [+] elves should have higher mp - [+] dwarves should have lower mp - [+] when monsters fail to open a door, abandon their targetcell - [+] might be able to jsut make failing a dooropen count as a move failure. - [+] HiGrv didn't stop me from moving? i passed the skill check, need to have a msg telling me this. - [+] race descriptions. - [+] add the descriptions - [+] ? in @@ shows info on them. - [+] (add ?=help in the bottom when in @ mode regardless of showall) - [+] make clouds expand as they disappate - [+] modify gethitstokill() to take "useevasion" and "usearmour" as a parameter - [+] at adept lore, you get threat comparison. at skilled level you get exact hit turns. - [+] make threat calculation use gethitstokill - [+] TEST new threat calc * [+] way too easy to notice traps on chests from 4-5 cells away, with only novice perception - [+] make cloudkill create puff of poison gas rather than a cloud - [+] attacking should count as movement (ie dont regen stamina) - [+] need more body bash criticals. - [+] torso bruised (acc penalty) - [+] torso bruised badly (higher acc penalty, low dam penalty) - [+] ribs broken (huge acc penalty, med dam penalty) - [+] lungs winded (stam=0 onetimeeffect, fit -1, only lasts a 2-3 turns) - [+] should stop flying when you lose ocnsciousness... - [+] warn before moving with f_pain as well. maybe cahnge confirm_injiury_action ??? - [+] extra warrior skill: aimed strike - [+] -50%acc - [+] auto crit on the part you select (if you hit)
2011-10-13 08:15:48 +11:00
if (!castspell(lf, OT_S_CALLWIND, NULL, o, c, NULL, NULL)) {
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
success = B_TRUE;
2011-05-20 06:30:58 +10:00
}
}
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
if (cancast(lf, OT_A_SNATCH, NULL) && haslofknown(lf->cell, c, LOF_NEED, NULL) &&
(getcelldist(lf->cell, c) == 1)) {
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
// only snatch those things which we can carry
if (canpickup(lf, o, 1)) {
if (!useability(lf, OT_A_SNATCH, NULL, c)) {
success = B_TRUE;
}
- [+] change real_getlfname(): - [+] take lifeform_t * for usevis instead of boolean - [+] add new option "useorigrace" for shapechangers - [+] whips - [+] F_WHIP - [+] new skill: sk_whips - [+] basic trais: - [+] high accuracy - [+] lowish dam - [+] pierce/slash/bash damage - [+] some will let you cast 'snatch' and suck - [+] no crit chance - [+] examples: - [+] bull whip (lowest damage) - [+] flail (ie. chain whip ,change type from club to whip) - [+] heavy flail - [+] metal-tipped whip (flail with higher acc) - [+] barbed whip (causes piercing damage as well) - [+] io.c @@ should take extradam into account - [+] describbeob() should show F_EXTRADAM - [+] change morale values - this shoudl default to your TR, otherwise f_morale replaces it. - [+] CRASH in doknowledgelist() - [+] hecta bug: fixed! - [+] You bisect the kobold! The dying kobold shouts "Nooooo!". Hecta's voice grates against your mind: "You allowed my sacrifice to escape!" - [+] is this because i'm calling "flee" after the lf takes fatal damage but before die() is called? - [+] NO, because flee() checks isdead(lf) - [+] it's happening when i kill a monster, and another one of the same type sees me! - [+] change: only trigger this is the player has previously attacked the monster - [+] replace fire titan with balrog - [+] You bisect the giant gnat! The dying giant gnat shouts "Nooooo!". - [+] fixed. - [+] boggart -brown 'n' - [+] made of wood - [+] cause things to disappear - [+] cause milk to sour (low power blight) - [+] scared of salt - [+] demandgold - [+] briar thrash (spiky) - yellow 'T' (grab) - [+] bingebark - red 'T'. wants edible, canwill snatch - [+] leshy (human with leaves) - green 'h' - [+] manticore - red 'm'' - [+] lion, bat lings, man head, tail tipped with iron spikes - [+] carnivore - [+] human sized - [+] shoots 1-6 spikes. each spike does 1d6. too much!! - [+] change this to be 5d3 damage per volley. - [+] ie missiledam 4d3 - [+] can do this once every 50 turns. - [+] can fly - [+] claws - 1d3 1d3 - [+] want gold (non covet)
2012-03-29 07:17:47 +11:00
}
}
- [+] most monsters which covet food should have snatch - so that you can just drop food for them. - [+] when looking for remote obs, DO include adjacent cells with lfs, if we have the snatch ability. - [+] some long thin levels (80 x 12 ?) - [+] fix code to remove useless doors. - [+] 0 pairs of dirs with empty cells = change door to wall - [+] pick an adjacent empty cell - [+] floodfill the 8 cells around the door. - [+] start with adj cell - [+] can't go more than 1 cell away from door - [+] solid cells or doors will stop movement - [+] if no unfilled cells around the door, bad. - [+] new way of fixing unconnected levels - portal! - [+] pick one spot in each section then place a portal there. - [+] dying should cure poison - [+] tweaks to attack text - [+] floor tile effecst - [+] absorbancy - ie. carpet should absorb water. - [+] converyors - [+] only walkable sometime (crushers?) - [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus" - [+] god of nature should like eating animals all the time, not just when hungry (makes piety gain easier) - [+] announce when eyes are protected from a spellcloud - [+] klikirak should like setting off fire traps. - [+] floodfill() should follow portals to the same level. - [+] show >1 skillpoints in green on status bar - [+] bug: gods are apeparing behind you. - [+] bug in getrandomadjcell - [+] gods' planeshift spells failing? might be fixed now. using getrandomroomcell instead of getrandomcell. - [+] increaes damage dealt by smite evil/good - [+] lightning javelins shouldn't be stackable - [+] monsters not firing ranged weapons! - [+] they just walk back and forth - [+] bug with how i was calling haslof() for cells other than where the mosnter was (in getdiraway()) - [+] turn undead should only work if caster level*2 is >= monster level fullblock basics: - [+] penalties - [+] lowers visrange to 1 - [+] huge attack penalties - [+] huge evasion penalties - [+] vhigh chance of all ranged damage going to shield instead. - [+] buckler = 75 (small) - [+] shield = 80 - [+] large shield = 85 - [+] tower = 90 - [+] plus shield skill*2 - [+] use check_shield_block in all spell effects - [+] this checks whether player is shieldblocoking (or evades??) - [+] then applies damage appropriatly. - [+] new ability; - [+] stopped by: - [+] losing or unequipping the shield - [+] being interrupted - [+] casting a spell or using an ability - [+] exotic weapons should cost more. - [+] maybe prevent prayer until gods have been pleased enough ? - [+] while you're not worshipping anyone, piety gain is x4. - [+] once first one hits 'pleased', they will appear and offer you a place - [+] advantge to this is that you get a gift - [+] picking up new gold should please felix...... - [+] you shoudl only be able to sacrifice untouched gold. this pleases felix double as much as grabbing it. - [+] gods sohuld appear "in a cloud of ..." - [+] bjorn - blood - [+] klik - fire - [+] lumara - bright light
2012-11-09 22:50:52 +11:00
if (success) {
// got the object. now try to eat it if possible.
object_t *oo;
oo = hasobid(lf->pack, obid);
if (oo && isedible(oo) && caneat(lf, oo)) {
eat(lf, o);
}
return B_TRUE;
}
2011-02-01 06:16:13 +11:00
// start walking towards target cell
- [+] in shops, show 'ESC when done, ? to describe/purchase' - [+] b - a silver shoddy bastard sword - [+] show object's condition before changed material state? - [+] bug: torches aren't lighting up walls when walking in corridor! - [+] scrolls with f_scrollneedsob should say 'tried on object' - [+] dungeon light - [+] lit shoudl be "illuminated" and be an enum - [+] IL_FULLYLIT - [+] IL_WELLLIT (dark, candelabras in every room and moss every 4 steps) - [+] IL_DIM (dark, torches in rooms and moss every 6 steps) - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8 steps) - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no light at all) - [+] need more fixed light source objects: - [+] moonmoss and sunmoss - [+] if not fully lit, map illumination level determines how often light sources are placed, and what type. - [+] special monster behaviour (perception or lore will show this?) - [+] insane monsters (attacks anything) - [+] hunting for food (hungry, add covets food) - [+] returning to lair with plunder (extra treasure) - [+] timid (lower morale, maybe add f_timid or alwaysflees) - [+] drugged (never flee) - [+] drunk - [+] diseased (start with a non-lethal disease. eating its corpse infects you) - [+] determined (will chase the player for longer) - [+] lazy (chase for less time) - [+] only show if perception >= skilled) - [+] only show monster jobs if lorelev >= beginner - [+] bug: cursed scrolls no longer having bad effects. fixed. - [+] after you fool a monster by feigning death, it shouldn't target you for a while. - [+] prevent wands from being blessed/cursed. - [+] bug: still no displayed text when your pet dies. - [+] update: this seems to happen when a monster is killed by another monster - [+] The bear cub claws the dog. The dog wakes up. - [+] fixed! - [+] hwen monsters start with weapons/sheilds, their starting skill should be based on hit dice. - [+] max skill is hitdice / 3 - [+] wake up player before giving god gift! - [+] "a goblin shaman moves out of view" - [+] but i didnt hav ehigh enough lore! - [+] maybe real_getlfname needs "showall". check this istneda of usevis to see whether to show job. - [+] crash when objects fall through a hole and the lower hole needed to be moved slightly. - [+] bug: invisibility is fooling even things with 'enhancesmell' - [+] water onto dirt only makes mud if there isn't some already there. - [+] monk fists DR should max out at 12 or so, since #attacks keeps going up! - [+] don't show god pleaseing messages when asleep - [+] bug: showing '%s dodges" when you can't see it. - [+] fix rarity of wands - [+] reward at bottom of caves: - [+] godstone of war (cases RAGE on everyone near you) Goblin cave bosses: - [+] goblin king - [+] young dragon
2012-01-10 14:40:43 +11:00
if (aigoto(lf, c, MR_OB, o, aigetchasetime(lf))) {
* [+] 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
return B_FALSE;
}
2011-02-01 06:16:13 +11:00
}
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
} else if ((celldist == 1) && c->lf &&
(isunconscious(c->lf) || isasleep(c->lf)) &&
- [+] allies should always give out info without payment - [+] ....but only about their home level! - [+] f_startmapid - [+] cave entrances should make noise - [+] drip - [+] echoing - [+] cope with multiple f_makesnoise flags on objects (pick one randomly) - [+] showlfstats skill display bug - "MORE" keystroke doesn't fall through. - [+] You impale the chicken! The chicken turns to face you. - [+] shouldn't turn to face if your'e dead! - [+] nulllify spell not populating seenbyplayer - [+] crash in createfakes() - [+] animals hsould still walk onto SHARP objects. - [+] secret doors showing up as empty remembered cells when you look away from them (and have lowish cartography) - [+] don't call remove_deadends on vaults. - [+] when walking down stairs to level 3: - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)', depth 2), but it has no free stairs - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them. - [+] FIXED. countstairs() was including too much. now using countmapobs(map, stairtype) instead. - [+] The goblin rogue a half-sized leather armour (null). - [+] fixed crash when you cast rage on someone who is eating. - [+] crash when catching a glowbug in a flask - [+] use canreachbp code when selecting armour to damage as well.... ie newt can't hit your helmet! - [+] BUG: "tunnel doing up" went down! - [+] for monsters:auto raise lf stats to match starting weapons - [+] crash in aigetspelltarget() for CLIMB - [+] should deactiveate all spells on polymorph - [+] allow usage of FEIGNDEATH while prone. - [+] make coprses non-stackable - [+] CRASH in animatedead - [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 11:20:57 +11:00
(getattrbracket(getattr(lf, A_IQ), A_IQ, NULL) > IQ_ANIMAL) && !isundead(lf) && !willeatlf(lf, c->lf)) {
// intelligent enemies will loot unconscious/sleeping lfs to make sure they are not a threat.
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
//
// in this case they'll loot more than normal. even if they wouldn't normally pick up
// some of these objects, they'll assume they are good because the player was holding
// them.
int getit = B_FALSE;
for (o = c->lf->pack->first ; o ; o = nexto) {
nexto = o->next;
getit = B_FALSE;
if (aiwants_real(lf, o, &covets, &noids, oid, oidcovet, &nwantflags, wantflag, wantflagcovet)) {
getit = B_TRUE;
} else if (areenemies(lf, c->lf) && (isweapon(o) || isarmour(o))) {
getit = B_TRUE;
} else {
if (aiobok(lf, o, NULL)) {
flag_t *retflag[MAXCANDIDATES];
int nretflags;
getflags(o->flags, retflag, &nretflags, F_AIBOOSTITEM, F_AIFLEEITEM, F_AIHEALITEM, F_NONE);
if (nretflags) {
getit = B_TRUE;
}
}
}
// if we are in battle with someone OTHER than this lf, then only go for it if we covet it
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
if (getit) {
if (target && (target != c->lf) && !covets) getit = B_FALSE;
- [+] high metalwork/sewing lets you make things into masterwork (combine two). - [+] get dizzy if you turn too much. - [+] stomach - [+] obejcts - gems etc (check phone) - [+] if you kill it form inside, you get expelled. - [+] don't say "you hear fighting" when things are attacking you! - [+] fix crash in polymorph code - [+] All bandits should demand gold - [+] when you give it to them, thel ALL get satisfied. - [+] more flagpile corruption still happening. - [+] wasn't allcoating enough space for losdark in precalclos. - [+] still missing death announcement for plauyer pets - [+] reduce #attacks for young hawk to 1 - [+] mercy - [+] say this to intelligent mosnters then pass a speech check - [+] if you pass: - [+] they say something - [+] they ko you - [+] monstesr shouldn'ts randomly move into unconscious/dead lfs - [+] monsters should take wanted obs from adjacent unconscious lfs - [+] when you wake up: "some/all of your items are missing..." - [+] at beginner weapon skill level: exposed strike - takes longer but higher accuracy? - [+] impaler frog - [+] sinkmite - [+] drills for hands - [+] canwill Ot_s_dig - [+] targetting: - [+] fleeing: downwards - [+] can drill downwards to flee - [+] can dig through walls - [+] necrons: - [+] trapper - blue - [+] reaper - red - [+] scythe - [+] hurricane strike - [+] bug: necron reaper is not preffering its weapon for attacks.... why? - [+] check attackcell() - [+] fix colour in retaliation text - [+] need to announce hurricane strike ability - [+] amnesia scroll - lose all skill points! - Hecta effects - [+] flay flesh (bleed depending on hitdice) - [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent lfs, drags underground)
2011-12-20 19:03:15 +11:00
if (isdangerousob(o, lf, B_TRUE) || !aipickupok(lf, o)) getit = B_FALSE;
}
if (getit) {
break;
}
}
if (getit) {
int returnnow = B_FALSE;
if (db) dblog(".oO { adjacent unconscious lf has ob i want (%s) }",o->type->name);
// try to pick it up
if (aipickup(lf, o)) {
if (db) dblog(".oO { pickup of %s failed, trying to eat! }",o->type->name);
} else {
returnnow = B_TRUE; // got it!
}
if (!returnnow) {
if (eat(lf, o)) {
if (db) dblog(".oO { eating %s failed }",o->type->name);
} else {
returnnow = B_TRUE;
}
}
if (returnnow) {
// if they were only sleeping, they wake up a bit
f = isasleep(c->lf);
if (f) {
timeeffectsflag(f, 3 + rnd(1,3));
}
return B_TRUE;
}
}
} // end if looting sleeping lfs
} // end foreach los cell
- [+] fix carpetted floor colour - [+] bug: giant ant zombie not attacking giant ant - [+] change table symol to PI - [+] replace footstool with chair - [+] allow reusable cells in vaults - [+] slippery floors should make pushing easier - [+] when checking stairs i found "Pete footprints" - [+] new monsters: - [+] polar bear - [+] owlbear - [+] bug: sleeping monsters never waking up. - [+] "random good weapon" wish broken. fixed now. - [+] cope with med/small/large dancing weapons - [+] generice code to check baseid instead of raceid - [+] handle automatic generation - need to populate: - [+] select an appropriate object (rarity freq / common, uncommon, rare) - [+] copy from obejct to lf: - [+] OBHP - [+] SIZE - [+] OBATTACKDELAY - [+] bug: always getting 'twisted branch' for small dancing weapon - [+] bug: crash in attackcell. nweps = 0 - [+] replace thin walls with unicode symbols - [+] glass - [+] wood - [+] metal - [+] getcellglyph() looks at surrounding cells if required - [+] too slow? - [+] attacking helpless undead shouldn't count - [+] differentiate EXTRADAM from WOUNDING. - [+] wounding = add damage to ALL attacks - [+] EXTRADAM = add DIFFERENT type of damage - [+] psionics on levelup - [+] make this a "select from iq/10", not a select from any - [+] if poison needle trap misses, place it on the ground. - [+] no nauseated effects while asleep. - [+] if something runs out of view adjacent to you, say "xxx moves behind you" - [+] ashkari bug: - [+] when getting enraged by the sight of something, f_rage runs out a few turns before f_aicontrolled. should be the same!!!
2012-11-30 07:18:21 +11:00
lf->loslock = B_FALSE;
2011-02-01 06:16:13 +11:00
}
if (db) dblog(".oO { didn't find any obs i want }");
2011-02-01 06:16:13 +11:00
return B_FALSE;
}
- [+] add autopop to playerstart vaults - [+] rename magic skills: Magic:Cold - [+] bug: infinite loop in poison arrow trap - make sure the arrow always dies. - [+] bug: c4 didn't kill iron door - [+] implement stamina (float). max is Fit/2 * [+] in startlfturn: - [+] sprinting drains this. - [+] ...then stop using f_sprinting for exhausted - [+] ...and remove f_tired - [+] if exhausted, stop sprinting. (in modstamina) - [+] change crushed windpipe - [+] f_stamcost for abilities. - [+] modify cancast. - [+] tumbling - [+] jumping - [+] rage - [+] swimming - [+] drains stamina like sprinting - [+] if stamina drops to 0, you start drowning. - [+] new spell: lethargy (sets stamina to 0) - [+] if a sleep spell fails, use lethergy instead. - [+] no attacking while stam = 0 ??? - [+] need to update statbar right away when casting ongoing spells. - [+] bug: reading an awareness scroll counting as an active spell! - [+] genericise magic resistance check into a function - [+] "disorient" - l1 mental spell which randomly turns lf, someitmes makes them dizzy - [+] change stun - just means you can't attack, cast spell, use abils * [+] AI shouldn't look for targets if stunned or no stamina * [+] why do mosnters end up facing -1 (d_none) ?? - [+] turn undead problem. - [+] The skeleton turns to flee from you! The skeleton bites you. - [+] crit which spins you around (bash to body) - [+] say "you attack xxx from behind" when you ar ebehidn them and they can't see you - [+] or "you attack the helpless xxx" when thye just can't see you - [+] genericise sacrifice text - [+] fix up weight of heads (8% of body mass) - [+] make attribss do more: - [+] iq: determine how soon you learn new skills (ie. modify SKILLXPPERPOINT) - [+] fit: determines stamina points. - [+] wisdom >= AT_HIGH - [+] warn before wearing/eating/drinking/weilding unknown bad/cursed objects (low chance) - [+] use isbadobject() - [+] chance: - [+] high = 10% - [+] vhigh = 30% - [+] exhigh = 50% - [-] idea: sacrifice to gods to make them happier - [+] mercy: weapons - [+] death: any corpses - [+] thieves: gold
2011-09-15 08:42:54 +10:00
int loseaitargets(lifeform_t *lf) {
int donesomething = B_FALSE;
if (killflagsofid(lf->flags, F_AIPATH)) donesomething = B_TRUE;
- [+] add autopop to playerstart vaults - [+] rename magic skills: Magic:Cold - [+] bug: infinite loop in poison arrow trap - make sure the arrow always dies. - [+] bug: c4 didn't kill iron door - [+] implement stamina (float). max is Fit/2 * [+] in startlfturn: - [+] sprinting drains this. - [+] ...then stop using f_sprinting for exhausted - [+] ...and remove f_tired - [+] if exhausted, stop sprinting. (in modstamina) - [+] change crushed windpipe - [+] f_stamcost for abilities. - [+] modify cancast. - [+] tumbling - [+] jumping - [+] rage - [+] swimming - [+] drains stamina like sprinting - [+] if stamina drops to 0, you start drowning. - [+] new spell: lethargy (sets stamina to 0) - [+] if a sleep spell fails, use lethergy instead. - [+] no attacking while stam = 0 ??? - [+] need to update statbar right away when casting ongoing spells. - [+] bug: reading an awareness scroll counting as an active spell! - [+] genericise magic resistance check into a function - [+] "disorient" - l1 mental spell which randomly turns lf, someitmes makes them dizzy - [+] change stun - just means you can't attack, cast spell, use abils * [+] AI shouldn't look for targets if stunned or no stamina * [+] why do mosnters end up facing -1 (d_none) ?? - [+] turn undead problem. - [+] The skeleton turns to flee from you! The skeleton bites you. - [+] crit which spins you around (bash to body) - [+] say "you attack xxx from behind" when you ar ebehidn them and they can't see you - [+] or "you attack the helpless xxx" when thye just can't see you - [+] genericise sacrifice text - [+] fix up weight of heads (8% of body mass) - [+] make attribss do more: - [+] iq: determine how soon you learn new skills (ie. modify SKILLXPPERPOINT) - [+] fit: determines stamina points. - [+] wisdom >= AT_HIGH - [+] warn before wearing/eating/drinking/weilding unknown bad/cursed objects (low chance) - [+] use isbadobject() - [+] chance: - [+] high = 10% - [+] vhigh = 30% - [+] exhigh = 50% - [-] idea: sacrifice to gods to make them happier - [+] mercy: weapons - [+] death: any corpses - [+] thieves: gold
2011-09-15 08:42:54 +10:00
if (killflagsofid(lf->flags, F_TARGETLF)) donesomething = B_TRUE;
if (killflagsofid(lf->flags, F_TARGETCELL)) donesomething = B_TRUE;
return donesomething;
}
void makewantedoblist(lifeform_t *lf, int *noids, enum OBTYPE *oid, int *oidcovet,int *nwantflags, enum FLAG *wantflag, int *wantflagcovet) {
int i;
flag_t *f;
flag_t *retflag[MAXCANDIDATES];
int nretflags = 0;
// construct a list of objects which we want
*noids = 0;
getflags(lf->flags, retflag, &nretflags, F_WANTS, F_WANTSOBFLAG, F_NONE);
for (i = 0; i < nretflags; i++) {
f = retflag[i];
if (f->id == F_WANTS) {
oid[*noids] = f->val[0];
oidcovet[*noids] = (f->val[1] == B_COVETS) ? B_TRUE : B_FALSE;
(*noids)++;
} else if (f->id == F_WANTSOBFLAG) {
wantflag[*nwantflags] = f->val[0];
wantflagcovet[*nwantflags] = (f->val[1] == B_COVETS) ? B_TRUE : B_FALSE;
(*nwantflags)++;
}
if (*nwantflags >= MAXCANDIDATES) {
raise(SIGINT);
}
}
if (hasflag(lf->flags, F_HUNGER)) {
// monsters dont normaly need to eat. if they have hunger, it's due
// to a spell.
wantflag[*nwantflags] = F_EDIBLE;
wantflagcovet[*nwantflags] = B_TRUE;
(*nwantflags)++;
if (*nwantflags >= MAXCANDIDATES) {
raise(SIGINT);
}
}
}
2011-03-16 15:45:46 +11:00
// try to use an item with the given flag on ourself.
// returns B_FALSE if successful
int useitemwithflag(lifeform_t *lf, enum FLAG whichflag) {
object_t *o;
- [+] 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
// can't use anything if enraged
if (lfhasflag(lf, F_RAGE)) return B_TRUE;
// aicontrolled human won't use items
if (lfhasflag(lf, F_AICONTROLLED)) return B_TRUE;
- [+] announce when a web spell hits you - [+] grammar: xxx "flys" into view. need getmoveverbplural() - [+] make yumi's "well, that seems unfair" only work when killed by a mosnter which didn't chase you up. - [+] no unarmed skill descriptions!! - [+] remove pain ability from stink beetle - [+] cockroach - with just high armour rating (10) - [+] bajeetle - lower armour but bite causes pain - [+] yumi - only allow you to gain piety from letting a monster run away ONCE per mosnter - [+] new monster: petrifungus - [+] give merciful fighting for novoice adanced combat - [+] monsters should lose targets when eating - [+] vault: window in wall - [+] fix werewolf hiding code for Rattus (when medium sized) - [+] "you hear a muffled slithering" - this shouldnt be loud enough to go through walls! - [+] selected Evil Adventurer. alignment ended up as NONE - [+] have added debugging - [+] wait for it to happen again - [+] put in code to check at start of turn whethe r my alignment just changed. - [+] my alignment seems to have changed to NONE - [+] POLYMORPH is causing this. - [+] fixed - [+] commando should have low level version of gunblade - [+] electromachete - low pierce + low electric - [+] gunblade - med slash + low explosive - [+] boomstick - med bash + high explosive - [+] commando should start with a few energy packs (need to add this object) - [+] l2 tech - [+] operate it to recharge tech which has charges. - [+] like a scroll of replenishment, but only for tech. - [+] when monsters follow you up stairs, they should face you - [+] jewelry store should buy watches - [+] when exploding cells, remember who caused it - [+] new arg: lifeform_t *causedby - [+] use this when dealing damage, so that it counts as player kill (etC) - [+] explodeob - [+] monks sohuld be very resistant to being scared - [+] gauntlets (or other hard gloves) should increase unarmed damge by 1 - [+] seems almost impossible to break locks on chests by bashing.... check the calc. - [+] fixed. - [+] ekrub should accept sacrifices of plant matter - [+] sebastian - absorbs physical damage to increase damage. - [+] after first hit: +1dam, knockback - [+] after 2nd: +2 dam - [+] etc - [+] vuln to non-physical (fire, magic, cold, elec, etc) - [+] cockroach, plague rat should taint anything it walks on - [+] fix up morale checks. 30 should be 100. therefore: multiply by 3 and a bit. - [+] CRASH during wish for Power - [+] bug: - [+] You whack the pixie. The pixie turns to face you. The pixie turns to flee from you! Amberon's voice booms out from the heavens: "You dare attack an innocent?" Amberon's voice booms out from the heavens: "You dare attack an innocent?" The pixie gestures at itself. - [+] baba yaga's hut - [+] shoudln't be able todrink potions - [+] shouldn't take criticals - [+] don't annoucne time during combat - [+] bug after giving gold to a bandit: - [+] $ - 0 gold dollars - [+] lore: tech... every level says' no special effects' - [+] bug: Strength: 24 (very weak, +1 dmg)* - [+] bug in getstrdammod() - [+] bug: A brown snake walks into view. - [+] should be 'slithers' - [+] mud shouldnt make shoes wet - [+] refridgerator should only have meat in it - [+] some jobs which have whip skills - [+] scourge should always start with a whip. - [+] fighter should be able to pick it - [+] aligned temples sohuld be half price (or free if god is pleased?) - [+] SM_DETECTCURSE - [+] SM_PURCHASEITEMS - [+] SM_BLESS - [+] SM_MIRACLE - [+] re-introduce monster zoos vault - [+] bullwhip shouldn't be able to dull! - [+] banana skin not slippery anoymore - [+] slightly boost player's starting hp - [+] why can vampire bat reach me to damage by boots/trousers? - [+] check out canreachbp() in lf.c - [+] maybe fixed - [+] commando's starting gun should start with normal bullets, never silver - [+] klikirak should grant fire powers - [+] cast pyromania when you pray - [+] gift: immolate every 20 turns - [+] fix trytokillobs() - this might fix some of the infinite loops i'm getting during level creation. - [+] klikirak should give slightly more xp for sacrifing objects - [+] hawks should swoop more often - [+] book colours are incorrect (ie. "red book" isn't red) - [+] i saw "something burns!" while resting... - [+] make hollow trees be green - [+] blessed amnesia shouldn't do anything bad - [+] armour stores shouldn't get hot! - [+] earthworm should only divide from slash damage - not bash - [+] queen ant shoudl be able to summon lots of soldiers - [+] staircases should be on top of ash piles when draring them!! - [+] in fact, staircases should be on top of _everything_ - [+] sanctuary potion should put out fires under you! (or anything with walkdam) - [+] shouldn't be able to smell by's hut - [+] wood wall should be diggable with pickaxe - [+] does shovel actually work? no, but it does now. - [+] dungeon level name - if it has a swamp vault, level is just called "the swamp" - [+] fire damage to bread = toast - [+] only say "the light here is a bit dim" etc if it's different form your previous level - [+] weapon stores shouldn't appear in baba yaha's hut! - [+] i think i said "weapon" but it turned into weapon store. - [+] works in a wish...... is this only a problem in a vault? - [+] test agian..... - [+] during summon mosnter, don't say 'the xxx starts to fly!' before "the xxx appears" - [+] when i read a create monster scroll, this _doesnt_ happen. - [+] when i cast summon small animals and a brian bat appears, it _doesnt_ happen - [+] only seems to happen whan a mosnter uses a summon spell - [+] maybe to do with finalisemonster() or "autogen" being set in addmonster? - [+] fixed now? - [+] walking on water shouldn't extinguish a flaming weapon! - [+] losehp_real needs a 'bodypart' argument - [+] klikirak should like killing plants - [+] do something to stop kilkirak worhipers from scarificeing the entire forest! - [+] if you attack a plant lf in the sylvan forest - [+] nearby plants attack. - [+] 33% chance of a treant: - [+] same if you destroy a plant object - [+] takedamage() needs a "fromlf" arg - [+] or sacrifice one. - [+] _warning_ if you attack a plant object or plant lf. (but don't kill it) - [+] WISDOM warnings: - [+] if you are about to attack an OC_FLORA object in the woods (and have felt the woods get angry once before) - [+] if you are about to attack a RC_PLANT lf in the woods - [+] if you are about to attack a CT_WALLTREE cell in the woods - [+] remove base 'wizard' class...
2012-08-12 15:04:49 +10:00
// only humanoids can use items
if (!lfhasflag(lf, F_HUMANOID)) return B_TRUE;
2011-03-16 15:45:46 +11:00
for (o = lf->pack->first ; o ; o = o->next) {
if (hasflag(o->flags, whichflag)) {
if (aiobok(lf, o, lf)) {
if (o->type->obclass->id == OC_POTION) {
- [+] add f_nostam to undead. - [+] add nonausea rather than nosmell sometimes. - [+] rats should eb able to smell, but not get nauseated. - [+] fix triumph pleasure for bjorn. must be no monsters within LOF... or within radius ? - [+] and make it very low piety gain. - [+] remember which level we got flags form - [+] flag_t -> fromlev - [+] announce this in getflagcourse - [+] undead qualities - [+] no criticals - [+] don't naturally heal - [+] don't breath - [+] drainlevel(fromlf) - [+] check for dtresist necrotic - [+] fitness saving throw (difficulty is 100 + fromlf's level*6) - [+] call loselevel() - [+] loselevel() - [+] announce. - [+] drop maxhp. - [+] adjust hp appropriately - [+] lose any flags where >fromlev is too high. - [+] handle monk f_hasattack specially. - [+] getmonkdr(level) - [+] getmonkattacks(level) - [+] keep track of what stats we gained and lose them again. - [+] TEST level drain with cursed xp pot - [+] TEST level drain with stats... - [+] prevent drinking when wearing full-face masks like gas mask/football helmet - [+] implement f_COVERSFACE. - [+] add it to objects. - [+] check it when doing caneat() candrink() - [+] up their AC bonus too - [+] large scorpion - [+] hellhound - [+] large primalities - [+] new vault flag: usehabitat:xxx - [+] means "set the habitat of all vault cells to xxx" - [+] real_getrandomob() should be given a CELL, not MAP. - [+] getrandomobofclass() should be given a CELL, not MAP. - [+] use CELL habitat to determine random obs - [+] apply to caves - [+] vault scatter: ignore locked cells (ie. reusable ones) new vaults - [+] dualroom - [+] sauna - vhot! - [+] pentagram and demons new pionic spells - [+] chi bolt - low dam ranged attack 1d4 - [+] chi strike (l4) - add 1d4 explosive damage to melee hits
2012-12-03 16:12:29 +11:00
if (candrink(lf, o)) {
2011-03-16 15:45:46 +11:00
quaff(lf, o);
return B_FALSE;
}
- [+] fixed CRASH when energy blade vanishes - [+] gods of opposing alignments should never make offers. - [+] new armour flag: - [+] f_underclothing - [+] getequippedob() - get the outer one. - [+] if you have f_underclothing, can wear other armour on top of it. - [+] can't remove underclothes without removing outer first. - [+] TEST with cotton shirt - [+] make sure autoequip handles undercltohing - [+] fix other objects - [+] adjust ']' output - [+] make armour help against some magical damage too - [+] move armour check and reduction into losehpeffects(). - [+] pass damreducedbyarmour to losehpeffects - [+] psionic spells: - [+] dampen missiles - lots of extra evasion vs missiles only * [+] soul link (l4, share damage) - [+] mind sheidl (l4, like the amulet) - [+] delay death (l5, don't die if hp <= 0 and this spell is active) - [+] remote ko (l6) - [+] Silence spell / effect - air. - [+] f_silenced. - [+] announce in io.c - [+] prevents spellcasting - [+] prevents docomms() - [+] prevents reading scrolls - [+] prevents speech-based abilities like warcry and sonic bolt - [+] say() will fail - [+] sayphrase() wil fail - [+] test the spell....... - [+] CRASH when adjusting glyph on edge of map - [+] non-humanoids can't climb without climb skill. - [+] player sohuld be able to swap with unconscious/asleep lfs <= same size - [+] too easy to knock things unconscious??? bug. fixed. - [+] reusable cells being set to empty! think this was a vault definition problem. - [+] demon chameleon / deech - [+] low-level mosnter which can hide
2012-12-06 15:57:13 +11:00
} else if ((o->type->obclass->id == OC_SCROLL) && !lfhasflag(lf, F_SILENCED)) {
2011-03-16 15:45:46 +11:00
if (!readsomething(lf, o)) {
return B_FALSE;
}
- [+] vault:pub - [+] has lots of recruitable people - [+] plants, magic creatures, etc shoudl have infinite staina - [+] severed fingers/heads are no longer considered "corpses". - [+] new kind of bed: pile of straw - [+] closed shops now work properly. - [+] stench skillcheck (in makenauseated) - announce this differenlty to 'nothing happen's - [+] monsters won't turn to face sounds when fleeing. - [+] increase accuracy for spear, but reduce accuracy when adjacent - [+] why didn't cyborg warrior start with bullwhip equiped?? - [+] isbetterwepthan() should take EXTRADAM flag into account - [+] monster starting skill levels should depend on iq - [+] no sprinting with injured legs - [+] more restructions when stunned: - [+] no throwing - [+] no operating - [+] no firearms - [+] tombstone text: Eaten by a snow troll's halberd - [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant corpse! reduced. - [+] learning certain lore skills should please gods - [+] repairing should take a lot longer. ie. shoudlbn't be able to do it during a fight. - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR, v0=material, v1=howmuch - [+] continuerepairing() should only fix <skill + helpsrepair> hp per turn. - [+] announce helpsrepair in obdesc - [+] coldroom vault: - [+] ice floor - [+] ice walls - [+] ice pillar - [+] frozen corpses - [+] new job: gladiator - [+] sword - [+] shield - [+] high shield skill - [+] high evasion skill - [+] limited armour skill - [+] net - [+] war cry fairly early on - [+] gust of wind and airblast should drop flying creatures - [+] fall_from_air(). - [+] trigger then when wind-based effects hit. - [+] chance of falling depends on size. - [+] if you polymorph a monster, it should NOT turn back to its original form! - [+] criticals dont seem to be happening any more... fixed - [+] when picking first askcoords target lf, pick the closest - [+] sakcs etc should contain rarer objects. - [+] intelligent ai: if exhausted and in battle, and faster than opponent, flee.??? - [+] easy way to fix reachability: - [+] is there a solid cell which is: - [+] adjacent to both a filled and an unfilled area? - [+] not a fixed vault wall? - [+] if so, just clear it. - [+] genericise getrandomrace flags - [+] some containers should have mini/tiny monsters inside! - [+] f_hashidinglf, v0=rid - [+] if you loot it, monster jumps out - [+] ...and gets a free hit! - [+] perception lets you see the container moving (only if it weighs less than what is inside it) - [+] genericise getrandomcell() with conditionsets. * [+] condset_t - [+] then replace all getrandomadjcell() calls... - [+] remove getrandomroomcells - [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
} else if ((o->type->obclass->id == OC_WAND) && getcharges(o) && canoperate(lf, o, NULL)) {
2011-03-16 15:45:46 +11:00
// if wand, use it on ourself
if (!operate(lf, o, lf->cell)) {
return B_FALSE;
}
// here on are special cases
} else if (o->type->id == OT_ASHCONCEAL) {
throwat(lf, o, lf->cell);
2011-03-16 15:45:46 +11:00
}
}
}
}
// failed to use an item
return B_TRUE;
}
- [+] 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