nexus/save.c

1474 lines
37 KiB
C
Raw Permalink Normal View History

#define _GNU_SOURCE
2010-12-07 18:34:26 +11:00
#include <assert.h>
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
#include <ctype.h>
2010-12-02 12:17:54 +11:00
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
2011-02-01 06:16:13 +11:00
#include <unistd.h>
#include <sqlite3.h>
2010-12-02 12:17:54 +11:00
#include "defs.h"
2011-02-01 06:16:13 +11:00
#include "flag.h"
#include "io.h"
2010-12-02 12:17:54 +11:00
#include "lf.h"
#include "map.h"
#include "move.h"
#include "nexus.h"
#include "objects.h"
#include "save.h"
* [+] 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
#include "text.h"
- [+] 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
#include "vault.h"
2010-12-02 12:17:54 +11:00
2011-02-01 06:16:13 +11:00
extern long curtime;
2010-12-02 12:17:54 +11:00
extern lifeform_t *player;
extern map_t *firstmap;
- [+] 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
extern race_t *firstrace;
2010-12-07 18:34:26 +11:00
extern knowledge_t *knowledge;
* [+] 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
extern region_t *firstregion,*lastregion;
extern regionoutline_t *firstregionoutline,*lastregionoutline;
2010-12-07 18:34:26 +11:00
- [+] 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
extern map_t *heaven;
extern long curtime, gamedays, gamesecs;
extern enum GAMEMODE gamemode;
2010-12-02 12:17:54 +11:00
void inithiscores() {
char filename[BUFLEN];
int ok = B_FALSE;
// open database
snprintf(filename, BUFLEN, "%s/hiscores.db", DATADIR);
if (access(filename, F_OK ) == -1 ) {
char *cmd, *errmsg = NULL;
int rc;
sqlite3 *db;
// create a new hiscores db
rc = sqlite3_open(filename, &db);
if (rc) {
msg("failed to open hiscore file %s!\n", filename);
dblog("failed to open hiscore file %s!\n", filename);
exit(1);
}
asprintf(&cmd, "create table hiscores(id int primary key, score longint, name varchar, job varchar, killedby varchar);");
rc = sqlite3_exec(db, cmd, NULL, NULL, &errmsg);
if (rc == SQLITE_OK) {
ok = B_TRUE;
} else {
msg("failed to create hiscore table in %s! %s\n", filename, errmsg);
dblog("failed to create hiscore table in %s! %s\n", filename, errmsg);
sqlite3_free(errmsg);
}
free(cmd);
sqlite3_close(db);
} else {
ok = B_TRUE;
}
if (ok != B_TRUE) {
exit(1);
}
}
// returns TRUE if we successfully loaded a save file
2010-12-02 12:17:54 +11:00
int loadall(void) {
//int db = B_FALSE;
int foundsavegame = 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
region_t *heavenregion;
2010-12-02 12:17:54 +11:00
gamemode = GM_LOADING;
2010-12-07 18:34:26 +11:00
if (loadsavegame()) {
// update fixed region pointers
heavenregion = findregionbytype(BH_HEAVEN);
heaven = findregionmap(heavenregion->id, 1);
foundsavegame = 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
}
gamemode = GM_LOADED;
2010-12-07 18:34:26 +11:00
return foundsavegame;
2010-12-02 12:17:54 +11:00
}
2011-02-01 06:16:13 +11:00
int loadflagpile(FILE *f, flagpile_t *fp) {
flag_t tempflag;
flag_t *fl;
char line[BUFLEN];
2011-02-01 06:16:13 +11:00
char buf[BUFLEN];
int rv;
int skid = -9999;
* [+] 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
int db = B_FALSE;
2011-02-01 06:16:13 +11:00
fscanf(f, "flags:\n");
fgets(line, BUFLEN, f);
rv = sscanf(line, "%d,%d,%d,%d,%d,%d,%d,%ld,%d\n",
&tempflag.id, &tempflag.nvals, &tempflag.val[0], &tempflag.val[1], &tempflag.val[2],&tempflag.lifetime, &tempflag.known,&tempflag.obfrom,&skid);
assert(rv == 9);
assert(skid != -9999);
2011-02-01 06:16:13 +11:00
while (tempflag.id != -1) {
dblog("got flag id=%d\n",tempflag.id);
// get flag text
fgets(buf, BUFLEN, f);
buf[strlen(buf)-1] = '\0'; // strip newline
fl = addflag_real(fp, tempflag.id,
tempflag.val[0],
tempflag.val[1],
tempflag.val[2], strcmp(buf, "^^^") ? buf : NULL, tempflag.lifetime, tempflag.known, tempflag.obfrom);
fl->skillfrom = findskill((enum SKILL)skid);
2011-02-01 06:16:13 +11:00
if (db) {
dblog("--> added flag id=%d. v0=%d, v1=%d, v2=%d, text=%s, lifetime=%d, known=%d, obfrom=%ld\n",fl->id,
fl->val[0], fl->val[1], fl->val[2], fl->text ? fl->text : "(null)", fl->lifetime, fl->known,fl->obfrom);
}
// load next one
fgets(line, BUFLEN, f);
rv = sscanf(line, "%d,%d,%d,%d,%d,%d,%d,%ld,%d\n",
&tempflag.id, &tempflag.nvals, &tempflag.val[0], &tempflag.val[1], &tempflag.val[2],&tempflag.lifetime, &tempflag.known,&tempflag.obfrom,&skid);
2011-02-01 06:16:13 +11:00
//dblog("fscanf returned %d\n",rv);
}
return B_FALSE;
}
2010-12-07 18:34:26 +11:00
int loadknowledge(FILE *f) {
int db = B_FALSE;
char buf[BUFLEN];
- [+] bug: "10 flaming arrows ##########\n are no longer on fire" - [+] bug: when wearing no boots: "A small puddle of water hits you!" - [+] animated zombie keeps changing colour * [+] wizard special case: * [+] bug - walked down stiars on top of a monster - [+] change "haslof" to come from a cell - [+] replace WE_NOTSOLID with WE_WALKABLE - [+] show hp/mp in colour - [+] invis potion should always traget user - [+] generic functions to curse/uncurse an object - [+] not prompting for statgain after training properly. fixed. * [+] pressing a key should interrupt resting * [+] implement doublebuffering for screen - [+] don't show attack dmg for mosnters - [+] reduce sprint time - [+] if a monster is chasing someone (ie has F_TARGET), then don't consider cursed ob ells as valid - [+] don't hear noises when in battle - [+] colourise attribs on status bar * [+] askob/askobmulti - [+] "lockpick with what" showing too much * [+] inventoy colours - [+] "masterwork stick" ?! - [+] poison: save to get rid of poison should be HARDER than save to prevent getting it * [+] why are xats starting off carrying objects ? * [+] small chance of catching a thrown missile if you have very high dex * [+] if you polymorphed on purpose, have a "revert to original form" ability - [+] nausea should only affect humanoids - [+] BUG displaying knowledge when it goes longer than 1 screen. - [+] monsters are attacking each other again! fixed? * [+] BUG: when i load a game, i gain all knowledge! - [+] more pole weapons * [+] disarming weapons * [+] tripping weapons * [+] MORE ISSUES with askobject * [+] validatelf - [+] fix bug with poison triggering too often - [+] chance of retching when nauseated. no hp loss, but takes time. - [+] monsters shouldn't throw stuff if they don't have lof. - [+] fix crash in knockbackob->fireat, caused by thrower == null - [+] let high powered KNOCK knockback creatures again ? - [+] test function to dump out: dungeonlev which_monsters_can_appear - [+] firstaid tells you how long poison will last and whether it's lifethreatenting? * [+] high level listen gives more info - [+] wind shield spell - [+] repels all missiles of speed <= power - [+] variable level spells - [+] F_VARLEVEL - [+] when you cast, say "cast at how much power" with choices "Power II (5 MP)" - [+] show in spell list: "5-10 MP" - [+] replace ARBOOST with MAGICARMOUR - [+] needan() * [+] move psychic shield check into losehp - [+] high level detectlife should show actual lf glyphs - [+] control which jobs can learn which new skills. - [+] F_CANLEARN xxx - [+] remember last target from spells - [+] askcoords = does lf for lastlftarg exist? if not, set it to null - [+] if so, start with it - [+] when you pick one, set it. - [+] F_SHIELDPENALTY - modifies accuracy. * [+] stop wizards from using shields
2011-04-06 17:27:55 +10:00
char line[BUFLEN];
2010-12-07 18:34:26 +11:00
int otid,known;
char hiddenname[BUFLEN];
- [+] bug: "10 flaming arrows ##########\n are no longer on fire" - [+] bug: when wearing no boots: "A small puddle of water hits you!" - [+] animated zombie keeps changing colour * [+] wizard special case: * [+] bug - walked down stiars on top of a monster - [+] change "haslof" to come from a cell - [+] replace WE_NOTSOLID with WE_WALKABLE - [+] show hp/mp in colour - [+] invis potion should always traget user - [+] generic functions to curse/uncurse an object - [+] not prompting for statgain after training properly. fixed. * [+] pressing a key should interrupt resting * [+] implement doublebuffering for screen - [+] don't show attack dmg for mosnters - [+] reduce sprint time - [+] if a monster is chasing someone (ie has F_TARGET), then don't consider cursed ob ells as valid - [+] don't hear noises when in battle - [+] colourise attribs on status bar * [+] askob/askobmulti - [+] "lockpick with what" showing too much * [+] inventoy colours - [+] "masterwork stick" ?! - [+] poison: save to get rid of poison should be HARDER than save to prevent getting it * [+] why are xats starting off carrying objects ? * [+] small chance of catching a thrown missile if you have very high dex * [+] if you polymorphed on purpose, have a "revert to original form" ability - [+] nausea should only affect humanoids - [+] BUG displaying knowledge when it goes longer than 1 screen. - [+] monsters are attacking each other again! fixed? * [+] BUG: when i load a game, i gain all knowledge! - [+] more pole weapons * [+] disarming weapons * [+] tripping weapons * [+] MORE ISSUES with askobject * [+] validatelf - [+] fix bug with poison triggering too often - [+] chance of retching when nauseated. no hp loss, but takes time. - [+] monsters shouldn't throw stuff if they don't have lof. - [+] fix crash in knockbackob->fireat, caused by thrower == null - [+] let high powered KNOCK knockback creatures again ? - [+] test function to dump out: dungeonlev which_monsters_can_appear - [+] firstaid tells you how long poison will last and whether it's lifethreatenting? * [+] high level listen gives more info - [+] wind shield spell - [+] repels all missiles of speed <= power - [+] variable level spells - [+] F_VARLEVEL - [+] when you cast, say "cast at how much power" with choices "Power II (5 MP)" - [+] show in spell list: "5-10 MP" - [+] replace ARBOOST with MAGICARMOUR - [+] needan() * [+] move psychic shield check into losehp - [+] high level detectlife should show actual lf glyphs - [+] control which jobs can learn which new skills. - [+] F_CANLEARN xxx - [+] remember last target from spells - [+] askcoords = does lf for lastlftarg exist? if not, set it to null - [+] if so, start with it - [+] when you pick one, set it. - [+] F_SHIELDPENALTY - modifies accuracy. * [+] stop wizards from using shields
2011-04-06 17:27:55 +10:00
char *p,*dummy;
2010-12-07 18:34:26 +11:00
if (db) dblog("--> Loading knowledge...\n");
fscanf(f, "startknowledge\n");
fgets(buf, BUFLEN, f);
buf[strlen(buf)-1] = '\0'; // strip newline
2010-12-02 12:17:54 +11:00
2010-12-07 18:34:26 +11:00
while (strcmp(buf, "endknowledge")) {
- [+] bug: "10 flaming arrows ##########\n are no longer on fire" - [+] bug: when wearing no boots: "A small puddle of water hits you!" - [+] animated zombie keeps changing colour * [+] wizard special case: * [+] bug - walked down stiars on top of a monster - [+] change "haslof" to come from a cell - [+] replace WE_NOTSOLID with WE_WALKABLE - [+] show hp/mp in colour - [+] invis potion should always traget user - [+] generic functions to curse/uncurse an object - [+] not prompting for statgain after training properly. fixed. * [+] pressing a key should interrupt resting * [+] implement doublebuffering for screen - [+] don't show attack dmg for mosnters - [+] reduce sprint time - [+] if a monster is chasing someone (ie has F_TARGET), then don't consider cursed ob ells as valid - [+] don't hear noises when in battle - [+] colourise attribs on status bar * [+] askob/askobmulti - [+] "lockpick with what" showing too much * [+] inventoy colours - [+] "masterwork stick" ?! - [+] poison: save to get rid of poison should be HARDER than save to prevent getting it * [+] why are xats starting off carrying objects ? * [+] small chance of catching a thrown missile if you have very high dex * [+] if you polymorphed on purpose, have a "revert to original form" ability - [+] nausea should only affect humanoids - [+] BUG displaying knowledge when it goes longer than 1 screen. - [+] monsters are attacking each other again! fixed? * [+] BUG: when i load a game, i gain all knowledge! - [+] more pole weapons * [+] disarming weapons * [+] tripping weapons * [+] MORE ISSUES with askobject * [+] validatelf - [+] fix bug with poison triggering too often - [+] chance of retching when nauseated. no hp loss, but takes time. - [+] monsters shouldn't throw stuff if they don't have lof. - [+] fix crash in knockbackob->fireat, caused by thrower == null - [+] let high powered KNOCK knockback creatures again ? - [+] test function to dump out: dungeonlev which_monsters_can_appear - [+] firstaid tells you how long poison will last and whether it's lifethreatenting? * [+] high level listen gives more info - [+] wind shield spell - [+] repels all missiles of speed <= power - [+] variable level spells - [+] F_VARLEVEL - [+] when you cast, say "cast at how much power" with choices "Power II (5 MP)" - [+] show in spell list: "5-10 MP" - [+] replace ARBOOST with MAGICARMOUR - [+] needan() * [+] move psychic shield check into losehp - [+] high level detectlife should show actual lf glyphs - [+] control which jobs can learn which new skills. - [+] F_CANLEARN xxx - [+] remember last target from spells - [+] askcoords = does lf for lastlftarg exist? if not, set it to null - [+] if so, start with it - [+] when you pick one, set it. - [+] F_SHIELDPENALTY - modifies accuracy. * [+] stop wizards from using shields
2011-04-06 17:27:55 +10:00
//sscanf(buf, "%d^%s^%d",&otid, hiddenname, &known);
strcpy(line, buf);
p = strtok_r(line, "^", &dummy);
otid = atoi(p);
p = strtok_r(NULL, "^", &dummy);
strcpy(hiddenname, p);
p = strtok_r(NULL, "^", &dummy);
known = atoi(p);
2010-12-07 18:34:26 +11:00
addknowledge(otid, hiddenname, known);
// get next line
fgets(buf, BUFLEN, f);
buf[strlen(buf)-1] = '\0'; // strip newline
}
return B_FALSE;
}
2010-12-02 12:17:54 +11:00
2011-02-01 06:16:13 +11:00
int loadvars(FILE *f) {
- [+] 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
int id;
2011-02-01 06:16:13 +11:00
int db = 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
race_t *r;
2011-02-01 06:16:13 +11:00
if (db) dblog("--> Loading knowledge...\n");
fscanf(f, "startvars\n");
fscanf(f, "curtime:%ld\n",&curtime);
fscanf(f, "endvars\n");
- [+] 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
fscanf(f, "startknownraces\n");
fscanf(f, "%d\n", &id);
while (id != -1) {
r = findrace(id);
r->known = B_TRUE;
fscanf(f, "%d\n", &id);
}
fscanf(f, "endknownraces\n");
2011-02-01 06:16:13 +11:00
return B_FALSE;
}
2010-12-02 12:17:54 +11:00
// load and allocate one lifeform from given file
lifeform_t *loadlf(FILE *f, cell_t *where) {
lifeform_t *l;
int lfid, lfraceid;
long obid;
int rv;
int i,b;
2010-12-02 12:17:54 +11:00
char buf[BUFLEN];
int obcount;
int mapid;
map_t *m;
- [+] 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
int x,y,level,newlevel;
2010-12-02 12:17:54 +11:00
int db = B_TRUE;
- [+] 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
int matid;
2010-12-02 12:17:54 +11:00
if (db) dblog("--> Loading lifeform...\n");
//fscanf(f, "startlf\n");
2010-12-02 12:17:54 +11:00
fscanf(f, "lfid: %d\n",&lfid);
fscanf(f, "race: %d\n",&lfraceid);
fscanf(f, "map: %d\n",&mapid);
fscanf(f, "pos: %d,%d\n",&x, &y);
2010-12-07 18:34:26 +11:00
fscanf(f, "level: %d\n",&level);
- [+] 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
fscanf(f, "newlevel: %d\n",&newlevel);
2010-12-02 12:17:54 +11:00
// find the map
m = findmap(mapid);
if (!m) {
dblog("ERROR loading lf id %d: can't find map id %d\n",lfid,mapid);
exit(1);
}
if (where == NULL) {
where = getcellat(m, x, y);
}
if (!m) {
dblog("ERROR loading lf id %d: can't find cell at %d,%d on map id %d\n",lfid,x,y,mapid);
exit(1);
}
2010-12-07 18:34:26 +11:00
l = addlf(where, lfraceid,level);
2010-12-02 12:17:54 +11:00
l->id = lfid;
l->x = x;
l->y = y;
- [+] 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
l->newlevel = newlevel;
2010-12-02 12:17:54 +11:00
// load rest of this lf
2011-02-01 06:16:13 +11:00
fscanf(f, "str: %d/%d\n",&l->att[A_STR],&l->baseatt[A_STR]);
- [+] 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
fscanf(f, "dex: %d/%d\n",&l->att[A_AGI],&l->baseatt[A_AGI]);
2011-02-01 06:16:13 +11:00
fscanf(f, "int: %d/%d\n",&l->att[A_IQ],&l->baseatt[A_IQ]);
fscanf(f, "xp: %ld\n",&l->xp);
fscanf(f, "skillxp: %ld\n",&l->skillxp);
- [+] 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
fscanf(f, "totskillpoints: %ld\n",&l->totskillpoints);
2011-03-16 15:45:46 +11:00
fscanf(f, "skp: %d\n",&l->skillpoints);
2010-12-02 12:17:54 +11:00
fscanf(f, "contr: %d\n",&l->controller);
fscanf(f, "hp: %d/%d\n",&l->hp, &l->maxhp);
2011-02-01 06:16:13 +11:00
fscanf(f, "mp: %d/%d\n",&l->mp, &l->maxmp);
- [+] 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
fscanf(f, "stamina: %f\n",&l->stamina);
2010-12-02 12:17:54 +11:00
fscanf(f, "alive: %d\n",&l->alive);
2011-02-01 06:16:13 +11:00
fscanf(f, "lastdamtype: %d\n",(int *)&l->lastdamtype);
2010-12-02 12:17:54 +11:00
fgets(buf, BUFLEN, f); // lastdam
buf[strlen(buf)-1] = '\0'; // strip newline
l->lastdam = strdup(buf + 9); // after 'lastdam: '
- [+] 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
fscanf(f, "material: %d\n",&matid);
l->material = findmaterial(matid);
2010-12-02 12:17:54 +11:00
fscanf(f, "timespent: %d\n",&l->timespent);
fscanf(f, "sorted: %d\n",&l->sorted);
2011-02-01 06:16:13 +11:00
fscanf(f, "polyrevert: %d\n",&l->polyrevert);
2010-12-07 18:34:26 +11:00
fscanf(f, "forgettimer: %f\n",&l->forgettimer);
- [+] if can WILL _and_ CAST a spell, use power level from whichever is highest - [+] exorcise spell - l2 summoning - [+] +10% chance per skill level, -5% per monster TR, +5% per spell power - [+] implement - [+] paladins get exorcise at l5 - [+] new purity god pray effect: 100% success exorcisms. - [+] new perks for lore:demonology - [+] nov: exorcise demons (power 1) - [+] skilled: summon demon - [+] midnight -portals open. moongate? lunar portal? lunar gate? moon door? - [+] portals with no F_MAPLINK will create a random destinatino in the same map. - [+] makeobjecttemporary() function - [+] when it strikes midnight, a portal appears somewhere on the plaeyr's level - [+] the portal is temporary for 60 turns (ie. approx 1 hours) turns until end of midnight (calc this) - [+] fixed crash on "w-" - [+] during glorana's peace, striketoko is okay. - [+] announce posion potion effects. - [+] make dark maps just lower max vis range, isntead of not being lit ? - [+] redo entire light calculation code. - [+] light effects: - [+] create "bright light" object in radius around target cell (it has f_produceslight) - [+] at high level, light spell will increase ILLUMINATION level of the entire map. - [+] DARKNESS - [+] make a "magical darkness" object - [+] blocks view. - [+] at high level, light spell will increase ILLUMINATION level of the entire map. - [+] bright light objects burn/scare undead - [+] undead won't walk into cells with bright light power >= their TR - [+] monsters in cells with produces light which are vulnerable to light take damage - [+] cases to check for: - [+] vuln to light - [+] migrains - [+] iscelllit() should return light level of cell (sum of f_produceslight) - [+] gaining/losing f_produceslight should setlosdirty - [+] makelit() just places light/darkness objects - [+] monsters in cells with produces light which have good eyes get blinded - [+] move blinding code out of spell.c and into turneffectslf - [+] placing light/darkness objects causes los recalc in any who can see them - [+] this shoudl happen automatically since they will have BLOCKSVIEW. - [+] islit(): - [+] check for ot_darkness objects in the cell - [+] check for f_produceslight flags in the cell's lfs/objects - [+] return how MUCH the cell is lit - [+] f_produceslight flag now just lets you see further in the darkness - [+] still give light sources to monsters, but change the check to see whether we do this (check the map's illumnation level) - [+] get rid of calclight() code. - [+] then i can get rid of seeindark code in los checking ??? - [+] get rid of eyesight adjustment code - [+] remove enum LIGHTLEV - [+] CHANGE nightvisrange - it just countres the map's illumination level - [+] remove lf->eyeadjustment - [+] remove lf->losdark - [+] remove lf->nlosdark - [+] remove cell->lit and littime and otiglittimer and origlight and lastlit - [+] remove it - [+] don't save it
2012-08-02 14:08:27 +10:00
//fscanf(f, "eyeadj: %d\n",&l->eyeadjustment);
- [+] 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
fscanf(f, "facing: %d\n",&l->facing);
fscanf(f, "turncounter: %d\n",&l->turncounter);
- [+] 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
fscanf(f, "rotated: %d\n",&l->rotated);
2010-12-02 12:17:54 +11:00
2011-02-01 06:16:13 +11:00
if (db) dblog("--> Got hp=%d/%d. timespend=%d. sorted=%d. Now loading flags.",l->hp,l->maxhp,l->timespent,l->sorted);
* [+] 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
// clear existing flags from addlf
foreach_bucket(b) {
while (l->flags->first[b]) {
killflag(l->flags->first[b]);
}
}
* [+] 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
// load lf flags
2011-02-01 06:16:13 +11:00
loadflagpile(f, l->flags);
if (db) dblog("--> now loading objects");
2010-12-02 12:17:54 +11:00
// load object list
obcount = 0;
obid = 9999; // for testing
rv = fscanf(f, "ob:%ld\n",&obid);
while (obid != -1) {
if (db) dblog("--> Load ob id %d into list...",obid);
l->pack->oblist[obcount] = obid;
obcount++;
fscanf(f, "ob:%ld\n",&obid);
}
// terminate with -1s!
for (i = obcount ; i < MAXPILEOBS; i++) {
l->pack->oblist[i] = -1;
}
if (db) dblog("--> Finished oblist. Found %d objects.",obcount);
* [+] 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
// now load object defs for this player!
2010-12-02 12:17:54 +11:00
fscanf(f, "obdefs\n");
for (i = 0; i < obcount; i++) {
2010-12-07 18:34:26 +11:00
long thisid;
if (db) dblog("--> Creating ob #%d for lf.",i);
2010-12-02 12:17:54 +11:00
//if (db) dblog("-----> ob %d/%d...\n",i+1,obcount);
2010-12-07 18:34:26 +11:00
if (loadob(f, l->pack, &thisid)) {
2010-12-02 12:17:54 +11:00
dblog("Error - can't create object %d/%d!\n",i+1,obcount);
exit(1);
}
2010-12-07 18:34:26 +11:00
if (db) dblog("----> done (id=%ld)",thisid);
2010-12-02 12:17:54 +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 repeat the above for polypack...
obcount = 0;
obid = 9998; // for testing
rv = fscanf(f, "polyob:%ld\n",&obid);
while (obid != -1) {
if (db) dblog("--> Load ob id %d into polypack list...",obid);
l->polypack->oblist[obcount] = obid;
obcount++;
fscanf(f, "polyob:%ld\n",&obid);
}
// terminate with -1s!
for (i = obcount ; i < MAXPILEOBS; i++) {
l->polypack->oblist[i] = -1;
}
if (db) dblog("--> Finished polypack oblist. Found %d objects.",obcount);
// now load object defs for this lf's pack!
fscanf(f, "polyobdefs\n");
for (i = 0; i < obcount; i++) {
long thisid;
if (db) dblog("--> Creating polypack ob #%d for lf.",i);
//if (db) dblog("-----> ob %d/%d...\n",i+1,obcount);
if (loadob(f, l->polypack, &thisid)) {
dblog("Error - can't create object %d/%d!\n",i+1,obcount);
exit(1);
}
if (db) dblog("----> done (id=%ld)",thisid);
}
2010-12-02 12:17:54 +11:00
// is this the player?
if (l->controller == C_PLAYER) {
player = l;
}
2011-02-01 06:16:13 +11:00
sortlf(l->cell->map, l);
return l;
2010-12-02 12:17:54 +11:00
}
map_t *loadmap(FILE *f) {
2010-12-02 12:17:54 +11:00
char buf[BUFLEN];
int obcount;
int i;
int x,y;
int db = B_TRUE;
enum HABITAT habitatid;
- [+] 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 illum;
2010-12-02 12:17:54 +11:00
lifeform_t *l;
2011-02-01 06:16:13 +11:00
object_t *o;
2010-12-02 12:17:54 +11:00
map_t *m;
cell_t *dummycell;
* [+] 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
int regionid;
2010-12-02 12:17:54 +11:00
// create map
m = addmap();
dummycell = malloc(sizeof(cell_t));
* [+] 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
dummycell->obpile = addobpile(NULL, dummycell, NULL);
2010-12-02 12:17:54 +11:00
dummycell->map = m;
2010-12-07 18:34:26 +11:00
dummycell->type = (celltype_t *)DUMMYCELLTYPE; // for debugging
2010-12-02 12:17:54 +11:00
if (!m) {
printf("Error creating map while loading.");
2010-12-02 12:17:54 +11:00
return NULL;
}
// load map info
if (db) dblog("--> Loading map info...\n");
fscanf(f, "id:%d\n",&m->id); // map id
* [+] 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
fscanf(f, "region:%d\n",&regionid); // region id
m->region = findregion(regionid);
2011-02-01 06:16:13 +11:00
fscanf(f, "depth:%d\n",&m->depth); // map depth
2010-12-02 12:17:54 +11:00
fgets(buf, BUFLEN, f); // map name
buf[strlen(buf)-1] = '\0'; // strip newline
m->name = strdup(buf + 5); // after 'name:'
* [+] 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
fscanf(f, "habitat:%d\n",(int *)&habitatid); // habitat
m->habitat = findhabitat(habitatid);
fscanf(f, "seed:%u\n",&m->seed); // seed
fscanf(f, "lastplayervisit:%ld\n",&m->lastplayervisit);
2010-12-02 12:17:54 +11:00
fscanf(f, "dims:%d,%d\n",&m->w, &m->h); // map dimensons
- [+] 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
fscanf(f, "illumination:%d\n",&illum);
m->illumination = illum;
2010-12-02 12:17:54 +11:00
fscanf(f, "nextmaps:\n");
for (i = 0; i < MAXDIR_ORTH; i++) {
fscanf(f, "%d\n",&m->nextmap[i]); // map dimensons
}
if (db) dblog("--> Finished map info. name='%s', dims=%d x %d\n",m->name, m->w, m->h);
* [+] 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
fscanf(f, "beingcreated:%d\n",&m->beingcreated);
2010-12-02 12:17:54 +11:00
fscanf(f, "id:%d\n",&m->id); // map id
// load lifeforms
if (db) dblog("--> Loading lifeforms...\n");
fscanf(f, "lifeforms:\n");
fscanf(f, "%s\n",buf);
while (!strcmp(buf ,"startlf")) {
loadlf(f, dummycell);
// check for more lifeforms...
fscanf(f, "%s\n",buf);
}
// load room defs
fscanf(f, "nrooms:%d\n",&m->nrooms);
for (i = 0; i < m->nrooms; i++) {
char line[BUFLEN];
fgets(line, BUFLEN, f);
//if (line[strlen(line)-1] == '\n') line[strlen(line)-1] = '\0';
sscanf(line, "%d,%d,%d,%d,%d,%[ a-zA-Z_0-9+'*/-]\n",&m->room[i].id,
&m->room[i].x1, &m->room[i].y1,
&m->room[i].x2, &m->room[i].y2, buf);
m->room[i].vault = findvault(buf);
}
2010-12-02 12:17:54 +11:00
// load cells
if (db) dblog("--> Loading map cells...\n");
fscanf(f, "cells:\n");
for (y = 0; y < m->h; y++) {
for (x = 0; x < m->w; x++) {
cell_t *c;
celltype_t *ct;
int celltypeid;
long obid;
- [+] 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
int temphab;
int roomid;
2010-12-02 12:17:54 +11:00
//if (db) dblog("cell %d,%d...",x,y);
// allocate this cell
c = addcell(m, x, y);
// cell info
- [+] Go to 256 colour mode! - [+] enable it - [+] adjust colour enum definitions - [+] adjust usage of colour enums in *.c - [+] redo celltype colours - [+] redo all lf colours in data.c - [+] redo all object colours in data.c - [+] fix potioncolours etc - [+] get background colours working again..... - [+] You walk down the staircase... Invalid racename 'random' in vault monsterzoo - [+] gaining/losing god bonus - only announce first one you lose/gain! - [+] knockout bugs: - [+] "you knock out the pixie"... then there' s pixie corpse. - [+] shouldn't be able to KO robots! - [+] don't say "you kill baba yaga's hut", say "you defeat xxx" - [+] alignment change - [+] should become evil if you worship hecta - [+] ...and good if you worship glorana - [+] -15% xp forever. - [+] shoudl become prone when hit by falling door trap. - [+] TEMPERATURE - [+] habitat->basetemperature - [+] VCOLD = <=0 - [+] COLD=1-11 - [+] COOL=12-18 - [+] AVERAGE = 19-22 - [+] WARM=23-29 - [+] HOT=30-35 - [+] VHOT=36+ - [+] getcelltemperature() - [+] start with habitat temperature - [+] adding/removing/moving nearby fire makes cells hotter - [+] adding/removing/moving nearby blizzards, hailstorms, ice etc make cells cooler - [+] getlftemp() - [+] start with getcelltemp - [+] adjust for warm/cold blood, resistances, etc - [+] hot effects - [+] stamina is used more quickly - [+] ice melts very fast (turns to water) - [+] food goes bad very quickly - [+] things made of ice take damage every turn. in startlfturn() ? - [+] cold effects - [+] exposed body parts give penalties to accuracy - [+] -2 to -4 per exposed body part (ie. max -14, -21, -28) - [+] no effect on furred things like bears. make them cold-resistant or immune. * [+] medium chance to shiver... chance to drop weapons * [+] low chance to catch cold (check cold damage code) - [+] nothing ever melts - [+] food never goes bad - [+] water freezes( turns to ice) - [+] things made of fire take _extra_ damage (in attack.c) - [+] Show YOUR temperature in @@ - [+] Show other's temp in @@ if our lore is high enough - [+] notify when temperature changes. - [+] just like igniting other fires, fires should deal fire damage to surrounding cells - [+] heat/cold should affect SURRONDING cells too. - [+] maybe: instead of checking cell temp every time, recalc cell temp whenever: - [+] create cells with habitat base temperature - [+] we add a new object - [+] we move an object - [+] we remove an object - [+] SAVE cell temperature now. - [+] show cold/hot in statusbar. - [+] cold announcement not working. - [+] change glaciate: - [+] create "unnatural coldness" object - [+] cold snap: (l2) - [+] create "unnatural coldness" in a radius - [+] heatwave (l2) or "oppressive heat" - [+] create "unnatural heat" in a radius - [+] add fur coats to creatures (ie. resistcold) - [+] ice cave level - [+] walls = ice. - [+] floor = metal - [+] creation similar to swamp: - [+] make dungeon - [+] change solid walls to ice - [+] limit room size to small. - [+] floor = snow - [+] temperature - [+] base temperature is cold - [+] ice-themed monsters - [+] ice-themed objects
2012-11-27 21:27:54 +11:00
fscanf(f, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
&roomid, &celltypeid,(int *) &c->known, &c->knowntime, &c->knownglyph.ch, &c->knownglyph.colour, &c->visited, &c->locked, &temphab, &c->isroomwall, &c->temperature);
- [+] 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
c->habitat = findhabitat(temphab);
2010-12-02 12:17:54 +11:00
c->room = findroom(m, roomid);
2010-12-02 12:17:54 +11:00
ct = findcelltype(celltypeid);
if (ct) {
c->type = ct;
} else {
dblog("ERROR loading map cells - can't find celltype id %ld\n",celltypeid);
exit(1);
}
// cell objects
obcount = 0;
fscanf(f, "ob:%ld\n",&obid);
while (obid != -1) {
c->obpile->oblist[obcount] = obid;
obcount++;
fscanf(f, "ob:%ld\n",&obid);
}
// terminate with -1s!
for (i = obcount ; i < MAXPILEOBS; i++) {
c->obpile->oblist[i] = -1;
}
}
}
// load object definitions
if (db) dblog("--> Loading object definitions for map obs...\n");
fscanf(f, "MAPOBS:%d\n",&obcount); // how many obs?
// create all objects in a dummy cell
for (i = 0; i < obcount; i++) {
2010-12-07 18:34:26 +11:00
long thisid;
if (db) dblog("-----> loading into dummycell: mapob %d/%d...\n",i+1,obcount);
if (loadob(f, dummycell->obpile, &thisid)) {
2010-12-02 12:17:54 +11:00
dblog("Error - can't create object %d/%d!\n",i+1,obcount);
exit(1);
}
2010-12-07 18:34:26 +11:00
if (db) dblog("----------> got obid %ld\n",thisid);
// check!
if (!hasobid(dummycell->obpile, thisid)) {
dblog("Error: after loading obid %ld, can't find it in dummycell!\n",thisid);
exit(1);
}
2010-12-02 12:17:54 +11:00
}
// hand out the objects to lifeforms...
2010-12-07 18:34:26 +11:00
/*
2010-12-02 12:17:54 +11:00
for (l = m->lf ; l ; l = l->next) {
int curob = 0;
long obid;
obid = l->pack->oblist[curob];
while (obid != -1) {
int found = B_FALSE;
// find this ob id in the dummycell
for (o = dummycell->obpile->first ; o ; o = nexto) {
nexto = o->next;
if (o->id == obid) {
relinkob(o, l->pack);
found = B_TRUE;
break;
}
}
if (!found) {
2010-12-07 18:34:26 +11:00
dblog("Error loading obs - lf %d should have obid %ld but can't find it in dummycell.\n",l->id, obid);
2010-12-02 12:17:54 +11:00
exit(1);
}
// next one
curob++;
obid = l->pack->oblist[curob];
}
// clear the oblist
for (i = 0; i < MAXPILEOBS; i++) {
l->pack->oblist[i] = -1;
}
}
2010-12-07 18:34:26 +11:00
*/
2010-12-02 12:17:54 +11:00
// hand out objects to cells
for (y = 0; y < m->h; y++) {
for (x = 0; x < m->w; x++) {
cell_t *c;
long obid;
int curob = 0;
c = m->cell[y * m->w + x];
obid = c->obpile->oblist[curob];
2010-12-07 18:34:26 +11:00
dblog("Handing out objects to cell %d,%d\n",x,y);
2010-12-02 12:17:54 +11:00
while (obid != -1) {
2010-12-07 18:34:26 +11:00
dblog(" Looking for obid %ld in dummycell...",obid);
2010-12-02 12:17:54 +11:00
// find this ob id in the dummycell
2010-12-07 18:34:26 +11:00
o = hasobid(dummycell->obpile, obid);
if (o) {
dblog(" Got it.");
relinkob(o, c->obpile);
} else {
dblog(" Error loading obs - cell %d,%d should have obid %ld but can't find it.\n",x,y, obid);
2010-12-02 12:17:54 +11:00
exit(1);
}
// next one
curob++;
2010-12-07 18:34:26 +11:00
obid = c->obpile->oblist[curob];
2010-12-02 12:17:54 +11:00
}
// clear the oblist
for (i = 0; i < MAXPILEOBS; i++) {
c->obpile->oblist[i] = -1;
}
}
}
2011-05-20 06:30:58 +10:00
// load flags
loadflagpile(f, m->flags);
// we are now finished loading from the file.
2010-12-02 12:17:54 +11:00
// move lifeforms to their proper locations
for (l = m->lf ; l ; l = l->next) {
cell_t *c;
c = getcellat(m, l->x, l->y);
if (!c) {
dblog("Error loading map - Can't find cell at %d,%d to place lifeform id %d.\n",
l->x, l->y, l->id);
exit(1);
}
- [+] 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
movelf(l, c, B_FALSE);
2010-12-02 12:17:54 +11:00
//dblog("Moving lf %d to %d,%d\n",l->id, l->x, l->y);
}
free(dummycell);
return m;
}
2010-12-07 18:34:26 +11:00
int loadob(FILE *f, obpile_t *op, long *id) {
2010-12-02 12:17:54 +11:00
objecttype_t *ot;
object_t *o;
material_t *mat;
long obid;
int otid,matid,b;
2010-12-02 12:17:54 +11:00
char buf[BUFLEN];
2010-12-07 18:34:26 +11:00
int db = B_TRUE;
2010-12-02 12:17:54 +11:00
fscanf(f, "id:%ld\n",&obid);
fscanf(f, "type:%d\n",&otid);
2010-12-07 18:34:26 +11:00
if (db) dblog("... loading object id %ld",obid);
if (id) {
*id = obid;
}
2010-12-02 12:17:54 +11:00
ot = findot(otid);
if (!ot) {
2011-02-01 06:16:13 +11:00
dblog("ERROR loading objects - can't find obtype id %d (obj id %ld)\n",otid,obid);
2010-12-02 12:17:54 +11:00
return B_TRUE;
}
// create the object
o = addobject(op, NULL, B_NOSTACK, B_FALSE, ot->id); // no stacking!
2010-12-02 12:17:54 +11:00
// overwrite ob parameters
o->id = obid;
fscanf(f, "material:%d\n",&matid);
mat = findmaterial(matid);
if (!mat) {
dblog("ERROR loading objects - can't find material %d\n",matid);
return B_TRUE;
}
o->material = mat;
fscanf(f, "weight:%f\n",&o->mass);
2010-12-02 12:17:54 +11:00
fgets(buf, BUFLEN, f); // inscription
buf[strlen(buf)-1] = '\0'; // strip newline
o->inscription = strdup(buf + 6); // after 'inscr:'
if (!strcmp(o->inscription, "^^^")) { // ie. if equal to ^^^...
free(o->inscription);
o->inscription = NULL;
}
fscanf(f, "letter:%c\n",&o->letter);
fscanf(f, "bless:%d\n",&o->blessed);
fscanf(f, "blessknown:%d\n",&o->blessknown);
fscanf(f, "amt:%d\n",&o->amt);
2011-02-01 06:16:13 +11:00
fscanf(f, "birthtime:%ld\n",&o->birthtime);
2010-12-02 12:17:54 +11:00
2011-02-01 06:16:13 +11:00
// now remove ALL obejct flags (which were inherited
// from the obtype during addobject() ). these will be
// loaded in instead.
2010-12-02 12:17:54 +11:00
foreach_bucket(b) {
while (o->flags->first[b]) {
killflag(o->flags->first[b]);
}
}
2010-12-07 18:34:26 +11:00
2011-02-01 06:16:13 +11:00
dblog("About to start loading object flags...");
loadflagpile(f, o->flags);
* [+] 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
fgets(buf, BUFLEN, f);// either 'obcontents:xx' or 'endob'
if (strstarts(buf, "obcontents")) {
// load this object's contents...
char *p;
char buf2[BUFLEN];
int ncontents;
int i;
//dblog("got obcontents");
// strip newline
buf[strlen(buf)-1] = '\0';
p = readuntil(buf2, buf, ':'); // ignore bit before :
p = readuntil(buf2, p, ')'); // ) will really be eol
ncontents = atoi(buf2);
for (i = 0 ; i < ncontents; i++) {
loadob(f, o->contents, NULL);
}
fgets(buf, BUFLEN, f);// 'endobcontents'
//dblog("want endobcontents, got: '%s'", buf);
fgets(buf, BUFLEN, f);// 'endob'
//dblog("want endob, got: '%s'", buf);
}
if (strstarts(buf, "endob")) {
// we got 'endob'
} else {
dblog("ERROR loading objects - expecting 'endob' but got '%s'\n",buf);
exit(1);
}
//fscanf(f, "endob\n");
return B_FALSE;
}
int loadregions(FILE *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
int rtid,nthings,i,n;
int numoutlines,numregions;
int db = B_TRUE;
- [+] 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
int depthmod;
* [+] 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
fscanf(f, "start_regions\n");
* [+] 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
fscanf(f, "numoutlines:%d\n",&numoutlines);
if (db) dblog("Found %d region outlines.\n",numoutlines);
for (n = 0; n < numoutlines; n++) {
- [+] don't place draininge grates on low floor!! - [+] gate spell should always take you to a location wihtout water!! - [+] enhance speak with dead spell (SPEAKDEAD) - [+] may ask "how did you die" plus one of the below: - [+] tell me about the area - [+] mark stairs on the map - [+] mark shops on the map - [+] tell about very rare objects - [+] tell me about nearby dangers - [+] tell about odd monsters - [+] tell about traps - [+] test - [+] let you ask peaceful lfs about the surroundings too - [+] move code into io.c "askaboutarea(char *who)" - [+] test - [+] the first time you ask someone for info, randomly determine whether they know about: - [+] stairs (high chance) - [+] shops (medium chance) - [+] traps (low chance) - [+] areacomms_danger should include out of depth monsters - need isoutofdepth(lf) - [+] room floors should take the entry type from the habitat, NOT just use ct_room!!!! - [+] sometimes generate fixed SEWER regionthings - [+] done - [+] BUG: canT enter goblin caves again!!!! - [+] getting "ERROR - can't find opposite end of stairs/portal!" - [+] FAILED to link stiars: 'tunnel leading up' - [+] make maps direct you to regionthings. - [+] region things need unique IDs !!! - [+] change F_MAPTO - [+] v0 = src region id - [+] v1 = src depth - [+] v2 = regionthing with whatkind = RT_REGIONLINK - [+] when generating map objects, fill in a random branch entry - [+] fix getobname code for unknown maps. - [+] TEST - [+] with "map to the goblin caves" - [+] with "map" - [+] with "map to" - [+] use "the goblin caves are to the north", not "is to the north" - [+] is - [+] isn't - [+] test reading a map when on the wrong branch - [+] test reading a map when on the wrong level - [+] test reading a map when on the right level - [+] move staircase generation to END of map create - [+] finalisemap() - [+] countobswithflagval(obpile, flagid, val0...) - [+] countmapobswithflagval(map, flagid, v0...) - [+] jimbo's map should lead you to one of the major branches. - [+] crit pos shouldn't be higher than you can reach! - [+] same size or bigger = can reach anything - [+] 1 size smaller = you can't reach the head - [+] 2 sizes smaller = can't reach head or hands - [+] 3 sizes smaller = can't reach head, hands or body - [+] jimbo's room should contain all the staircases - [+] make you have to pass a speech check before people will tell you about the area - [+] bug in recruitment skillchecks - using wrong attribute, and too easy. - [+] rename dwarf to delver - [+] somtimes say "dons" instead of "puts on"
2012-01-05 02:54:28 +11:00
regionthing_t *thing;
if (db) dblog(" loading regionoutline #%d / %d",n+1, numoutlines);
* [+] 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
fscanf(f, "startro\n");
fscanf(f, "rtypeid:%d\n",&rtid); // region type id
addregionoutline(rtid);
fscanf(f, "nthings:%d\n",&nthings);
for (i = 0; i < nthings; i++) {
- [+] don't place draininge grates on low floor!! - [+] gate spell should always take you to a location wihtout water!! - [+] enhance speak with dead spell (SPEAKDEAD) - [+] may ask "how did you die" plus one of the below: - [+] tell me about the area - [+] mark stairs on the map - [+] mark shops on the map - [+] tell about very rare objects - [+] tell me about nearby dangers - [+] tell about odd monsters - [+] tell about traps - [+] test - [+] let you ask peaceful lfs about the surroundings too - [+] move code into io.c "askaboutarea(char *who)" - [+] test - [+] the first time you ask someone for info, randomly determine whether they know about: - [+] stairs (high chance) - [+] shops (medium chance) - [+] traps (low chance) - [+] areacomms_danger should include out of depth monsters - need isoutofdepth(lf) - [+] room floors should take the entry type from the habitat, NOT just use ct_room!!!! - [+] sometimes generate fixed SEWER regionthings - [+] done - [+] BUG: canT enter goblin caves again!!!! - [+] getting "ERROR - can't find opposite end of stairs/portal!" - [+] FAILED to link stiars: 'tunnel leading up' - [+] make maps direct you to regionthings. - [+] region things need unique IDs !!! - [+] change F_MAPTO - [+] v0 = src region id - [+] v1 = src depth - [+] v2 = regionthing with whatkind = RT_REGIONLINK - [+] when generating map objects, fill in a random branch entry - [+] fix getobname code for unknown maps. - [+] TEST - [+] with "map to the goblin caves" - [+] with "map" - [+] with "map to" - [+] use "the goblin caves are to the north", not "is to the north" - [+] is - [+] isn't - [+] test reading a map when on the wrong branch - [+] test reading a map when on the wrong level - [+] test reading a map when on the right level - [+] move staircase generation to END of map create - [+] finalisemap() - [+] countobswithflagval(obpile, flagid, val0...) - [+] countmapobswithflagval(map, flagid, v0...) - [+] jimbo's map should lead you to one of the major branches. - [+] crit pos shouldn't be higher than you can reach! - [+] same size or bigger = can reach anything - [+] 1 size smaller = you can't reach the head - [+] 2 sizes smaller = can't reach head or hands - [+] 3 sizes smaller = can't reach head, hands or body - [+] jimbo's room should contain all the staircases - [+] make you have to pass a speech check before people will tell you about the area - [+] bug in recruitment skillchecks - using wrong attribute, and too easy. - [+] rename dwarf to delver - [+] somtimes say "dons" instead of "puts on"
2012-01-05 02:54:28 +11:00
int depth,x,y,val,id;
* [+] 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
enum REGIONTHING whatkind;
char buf[BUFLEN];
* [+] 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
fscanf(f, "startthing\n");
- [+] don't place draininge grates on low floor!! - [+] gate spell should always take you to a location wihtout water!! - [+] enhance speak with dead spell (SPEAKDEAD) - [+] may ask "how did you die" plus one of the below: - [+] tell me about the area - [+] mark stairs on the map - [+] mark shops on the map - [+] tell about very rare objects - [+] tell me about nearby dangers - [+] tell about odd monsters - [+] tell about traps - [+] test - [+] let you ask peaceful lfs about the surroundings too - [+] move code into io.c "askaboutarea(char *who)" - [+] test - [+] the first time you ask someone for info, randomly determine whether they know about: - [+] stairs (high chance) - [+] shops (medium chance) - [+] traps (low chance) - [+] areacomms_danger should include out of depth monsters - need isoutofdepth(lf) - [+] room floors should take the entry type from the habitat, NOT just use ct_room!!!! - [+] sometimes generate fixed SEWER regionthings - [+] done - [+] BUG: canT enter goblin caves again!!!! - [+] getting "ERROR - can't find opposite end of stairs/portal!" - [+] FAILED to link stiars: 'tunnel leading up' - [+] make maps direct you to regionthings. - [+] region things need unique IDs !!! - [+] change F_MAPTO - [+] v0 = src region id - [+] v1 = src depth - [+] v2 = regionthing with whatkind = RT_REGIONLINK - [+] when generating map objects, fill in a random branch entry - [+] fix getobname code for unknown maps. - [+] TEST - [+] with "map to the goblin caves" - [+] with "map" - [+] with "map to" - [+] use "the goblin caves are to the north", not "is to the north" - [+] is - [+] isn't - [+] test reading a map when on the wrong branch - [+] test reading a map when on the wrong level - [+] test reading a map when on the right level - [+] move staircase generation to END of map create - [+] finalisemap() - [+] countobswithflagval(obpile, flagid, val0...) - [+] countmapobswithflagval(map, flagid, v0...) - [+] jimbo's map should lead you to one of the major branches. - [+] crit pos shouldn't be higher than you can reach! - [+] same size or bigger = can reach anything - [+] 1 size smaller = you can't reach the head - [+] 2 sizes smaller = can't reach head or hands - [+] 3 sizes smaller = can't reach head, hands or body - [+] jimbo's room should contain all the staircases - [+] make you have to pass a speech check before people will tell you about the area - [+] bug in recruitment skillchecks - using wrong attribute, and too easy. - [+] rename dwarf to delver - [+] somtimes say "dons" instead of "puts on"
2012-01-05 02:54:28 +11:00
fscanf(f, " thingid:%d\n",&id);
* [+] 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
fscanf(f, " thingdepth:%d,%d,%d\n",&depth, &x, &y);
fscanf(f, " thingkind:%d\n",(int *)&whatkind);
fscanf(f, " thingval:%d\n",&val);
fscanf(f, " thingwhat:%[ a-zA-Z_0-9+'*/-]\n",buf);
* [+] 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
fscanf(f, "endthing\n");
// replace ^ with ' ' in thingwhat
/*
* [+] 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
for (p = buf ; *p; p++) {
if (*p == '^') *p = ' ';
}
*/
if (db) dblog(" got regionthing: [%s]", buf);
- [+] don't place draininge grates on low floor!! - [+] gate spell should always take you to a location wihtout water!! - [+] enhance speak with dead spell (SPEAKDEAD) - [+] may ask "how did you die" plus one of the below: - [+] tell me about the area - [+] mark stairs on the map - [+] mark shops on the map - [+] tell about very rare objects - [+] tell me about nearby dangers - [+] tell about odd monsters - [+] tell about traps - [+] test - [+] let you ask peaceful lfs about the surroundings too - [+] move code into io.c "askaboutarea(char *who)" - [+] test - [+] the first time you ask someone for info, randomly determine whether they know about: - [+] stairs (high chance) - [+] shops (medium chance) - [+] traps (low chance) - [+] areacomms_danger should include out of depth monsters - need isoutofdepth(lf) - [+] room floors should take the entry type from the habitat, NOT just use ct_room!!!! - [+] sometimes generate fixed SEWER regionthings - [+] done - [+] BUG: canT enter goblin caves again!!!! - [+] getting "ERROR - can't find opposite end of stairs/portal!" - [+] FAILED to link stiars: 'tunnel leading up' - [+] make maps direct you to regionthings. - [+] region things need unique IDs !!! - [+] change F_MAPTO - [+] v0 = src region id - [+] v1 = src depth - [+] v2 = regionthing with whatkind = RT_REGIONLINK - [+] when generating map objects, fill in a random branch entry - [+] fix getobname code for unknown maps. - [+] TEST - [+] with "map to the goblin caves" - [+] with "map" - [+] with "map to" - [+] use "the goblin caves are to the north", not "is to the north" - [+] is - [+] isn't - [+] test reading a map when on the wrong branch - [+] test reading a map when on the wrong level - [+] test reading a map when on the right level - [+] move staircase generation to END of map create - [+] finalisemap() - [+] countobswithflagval(obpile, flagid, val0...) - [+] countmapobswithflagval(map, flagid, v0...) - [+] jimbo's map should lead you to one of the major branches. - [+] crit pos shouldn't be higher than you can reach! - [+] same size or bigger = can reach anything - [+] 1 size smaller = you can't reach the head - [+] 2 sizes smaller = can't reach head or hands - [+] 3 sizes smaller = can't reach head, hands or body - [+] jimbo's room should contain all the staircases - [+] make you have to pass a speech check before people will tell you about the area - [+] bug in recruitment skillchecks - using wrong attribute, and too easy. - [+] rename dwarf to delver - [+] somtimes say "dons" instead of "puts on"
2012-01-05 02:54:28 +11:00
thing = addregionthing(lastregionoutline, depth, x, y, whatkind, val, streq(buf, "NULL") ? NULL : buf);
thing->id = id;
* [+] 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
}
fscanf(f, "endro\n");
if (db) dblog("Loaded regionoutline #%d / %d",n+1, numoutlines);
}
// now load in the actual region->outline mappings
* [+] 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
fscanf(f, "numregions:%d\n",&numregions);
if (db) dblog("Found %d regions.\n",numregions);
for (n = 0; n < numregions; n++) {
region_t *r;
enum BRANCH rtid;
- [+] 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
int rid;
- [+] redo throw hit%. even inept sk_throwing should have 40% or so to hit at point blank range. - [+] only reduce hit% after first cell? - [+] increase change of player ko with yumi - [+] tranq dart and nanodart should be rodshaped. - [+] genericise purification - [+] F_PURIFIESTO v0 = newobject - [+] add toadstool -> shiitake - [+] posion potion -> water - [+] acid potion -> water - [+] rum -> water - [+] DONT make the original object type known now - [+] higher level purify food lets you select a cell! - [+] need f_targettedspell v1 & v2 to specify power. - [+] druid should get to pick one of 3 spells (from each available level) upon levelup, not anything! - [+] implement f_levspellschoolfromx - [+] TEST! - [+] implement secondary weapon swap with 'x' - [+] initial press: unweild curwep. if successful, mark as secondayr. - [+] subsequent presses: find secondary wep (or fail). remember cur. weild secondary. if successful, remove scondary flag and mark old cur wep as secondary - [+] when you move an object, it loses secondary flag. - [+] BUG: I had TWO regions with rtype->id == RG_CAVE!!! - [+] have added debug code - [+] think this is fixed - need to remove created regions when i regenerate a map. - [+] should be able to sell gems to jewelery store - [+] sm_sellitems - [+] shopsell() - [+] shop has f_cansellobclass xxx, val[0] = pct of full price you can sell for. normally 50% but 75% for gems. - [+] allow COUNT - modified askobjectwithflag ? - [+] OR add an extra *sellshop option to doaskobject ?? - [+] if this is set, only allow selection of objects which match the shop's f_shopsell flags - [+] ie. replace wantflags[] - [+] when passing this, don't also pass wantflag args!!! - [+] rename shopsell flag to f_shopacceptsflag - [+] accept F_NONE in shopacceptsflag - [+] make shopdonate use the same code - [+] make donating to shops lower their prices ? - [+] for each 100 value you donate, reduce prices by 1% - [+] ie. donate 1000 worth, reduce by 10% = 1 level of speech skill - [+] change shopsell to use applyshoppricemod - [+] applyshoppricemod needs a new arg - up or down - [+] check code in objects.c for naming too! listobs()
2012-02-07 13:50:17 +11:00
int outlineid,parentid,nthings,createdby;
* [+] 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
fscanf(f, "startregion\n");
fscanf(f, " rid:%d\n",(int *)&rid);
* [+] 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
fscanf(f, " rtypeid:%d\n",(int *)&rtid);
fscanf(f, " outline:%d\n",&outlineid);
fscanf(f, " parentregion:%d\n",&parentid);
fscanf(f, " nthings:%d\n",&nthings);
- [+] 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
fscanf(f, " depthmod:%d\n",&depthmod);
- [+] redo throw hit%. even inept sk_throwing should have 40% or so to hit at point blank range. - [+] only reduce hit% after first cell? - [+] increase change of player ko with yumi - [+] tranq dart and nanodart should be rodshaped. - [+] genericise purification - [+] F_PURIFIESTO v0 = newobject - [+] add toadstool -> shiitake - [+] posion potion -> water - [+] acid potion -> water - [+] rum -> water - [+] DONT make the original object type known now - [+] higher level purify food lets you select a cell! - [+] need f_targettedspell v1 & v2 to specify power. - [+] druid should get to pick one of 3 spells (from each available level) upon levelup, not anything! - [+] implement f_levspellschoolfromx - [+] TEST! - [+] implement secondary weapon swap with 'x' - [+] initial press: unweild curwep. if successful, mark as secondayr. - [+] subsequent presses: find secondary wep (or fail). remember cur. weild secondary. if successful, remove scondary flag and mark old cur wep as secondary - [+] when you move an object, it loses secondary flag. - [+] BUG: I had TWO regions with rtype->id == RG_CAVE!!! - [+] have added debug code - [+] think this is fixed - need to remove created regions when i regenerate a map. - [+] should be able to sell gems to jewelery store - [+] sm_sellitems - [+] shopsell() - [+] shop has f_cansellobclass xxx, val[0] = pct of full price you can sell for. normally 50% but 75% for gems. - [+] allow COUNT - modified askobjectwithflag ? - [+] OR add an extra *sellshop option to doaskobject ?? - [+] if this is set, only allow selection of objects which match the shop's f_shopsell flags - [+] ie. replace wantflags[] - [+] when passing this, don't also pass wantflag args!!! - [+] rename shopsell flag to f_shopacceptsflag - [+] accept F_NONE in shopacceptsflag - [+] make shopdonate use the same code - [+] make donating to shops lower their prices ? - [+] for each 100 value you donate, reduce prices by 1% - [+] ie. donate 1000 worth, reduce by 10% = 1 level of speech skill - [+] change shopsell to use applyshoppricemod - [+] applyshoppricemod needs a new arg - up or down - [+] check code in objects.c for naming too! listobs()
2012-02-07 13:50:17 +11:00
fscanf(f, " createdby:%d\n",&createdby);
* [+] 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
fscanf(f, "endregion\n");
- [+] redo throw hit%. even inept sk_throwing should have 40% or so to hit at point blank range. - [+] only reduce hit% after first cell? - [+] increase change of player ko with yumi - [+] tranq dart and nanodart should be rodshaped. - [+] genericise purification - [+] F_PURIFIESTO v0 = newobject - [+] add toadstool -> shiitake - [+] posion potion -> water - [+] acid potion -> water - [+] rum -> water - [+] DONT make the original object type known now - [+] higher level purify food lets you select a cell! - [+] need f_targettedspell v1 & v2 to specify power. - [+] druid should get to pick one of 3 spells (from each available level) upon levelup, not anything! - [+] implement f_levspellschoolfromx - [+] TEST! - [+] implement secondary weapon swap with 'x' - [+] initial press: unweild curwep. if successful, mark as secondayr. - [+] subsequent presses: find secondary wep (or fail). remember cur. weild secondary. if successful, remove scondary flag and mark old cur wep as secondary - [+] when you move an object, it loses secondary flag. - [+] BUG: I had TWO regions with rtype->id == RG_CAVE!!! - [+] have added debug code - [+] think this is fixed - need to remove created regions when i regenerate a map. - [+] should be able to sell gems to jewelery store - [+] sm_sellitems - [+] shopsell() - [+] shop has f_cansellobclass xxx, val[0] = pct of full price you can sell for. normally 50% but 75% for gems. - [+] allow COUNT - modified askobjectwithflag ? - [+] OR add an extra *sellshop option to doaskobject ?? - [+] if this is set, only allow selection of objects which match the shop's f_shopsell flags - [+] ie. replace wantflags[] - [+] when passing this, don't also pass wantflag args!!! - [+] rename shopsell flag to f_shopacceptsflag - [+] accept F_NONE in shopacceptsflag - [+] make shopdonate use the same code - [+] make donating to shops lower their prices ? - [+] for each 100 value you donate, reduce prices by 1% - [+] ie. donate 1000 worth, reduce by 10% = 1 level of speech skill - [+] change shopsell to use applyshoppricemod - [+] applyshoppricemod needs a new arg - up or down - [+] check code in objects.c for naming too! listobs()
2012-02-07 13:50:17 +11:00
r = addregion(rtid, (parentid == -1) ? NULL : findregion(parentid), outlineid, depthmod, createdby);
- [+] 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
r->id = rid;
* [+] 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
r->nthings = nthings;
if (db) dblog("Loaded region #%d / %d",n+1, numregions);
}
fscanf(f, "end_regions\n");
- [+] 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
2010-12-02 12:17:54 +11:00
return B_FALSE;
}
// returns TRUE if there was a savegame file.
2010-12-02 12:17:54 +11:00
int loadsavegame(void) {
char filename[BUFLEN];
FILE *f;
int mapcount,i;
2010-12-02 12:17:54 +11:00
// check for a save file...
snprintf(filename, BUFLEN, "%s/game.sav",SAVEDIR);
f = fopen(filename, "rt");
if (!f) {
// this isn't an error - just means no savegames
dblog("No savegame found.");
return B_FALSE;
2010-12-02 12:17:54 +11:00
}
// load region outlines
if (loadregions(f)) {
printf("No region data found in savegame file!");
exit(1);
}
2010-12-02 12:17:54 +11:00
// load maps
fscanf(f, "start_maps:%d\n",&mapcount);
for (i = 0; i < mapcount; i++) {
if (!loadmap(f)) {
printf("Error loading map %d of %d!", i+1, mapcount);
exit(1);
2010-12-02 12:17:54 +11:00
}
}
fscanf(f, "end_maps\n");
2011-02-01 06:16:13 +11:00
// load world data
if (loadworlddata(f)) {
printf("Error load world data from save file.");
exit(1);
}
// load player
fscanf(f, "startlf\n");
if (!loadlf(f, NULL)) {
printf("Error loading player from save file.");
exit(1);
}
// load knowledge
if (loadknowledge(f)) {
printf("Error loading knowledge from save file.");
exit(1);
}
// load game variables
if (loadvars(f)) {
printf("Error loading game variables from save file.");
exit(1);
}
// successful load - close and kill the savegame file
fclose(f);
unlink(filename);
return B_TRUE;
2011-02-01 06:16:13 +11:00
}
int savevars(FILE *f) {
int db = 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
race_t *r;
2011-02-01 06:16:13 +11:00
if (db) dblog("--> Saving knowledge...\n");
fprintf(f, "startvars\n");
fprintf(f, "curtime:%ld\n",curtime);
fprintf(f, "endvars\n");
- [+] 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
fprintf(f, "startknownraces\n");
for (r = firstrace ; r ; r = r->next) {
if (r->known) {
fprintf(f, "%d\n",r->id);
}
}
fprintf(f, "-1\n");
fprintf(f, "endknownraces\n");
2011-02-01 06:16:13 +11:00
return B_FALSE;
}
int loadworlddata(FILE *f) {
fscanf(f, "timedata:%ld,%ld,%ld\n",&curtime,&gamedays,&gamesecs);
return B_FALSE;
}
2011-02-01 06:16:13 +11:00
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
int removevaultfile(char *filename) {
if (unlink(filename)) {
msg("ERROR: Could not unlink bones file after creation ('%s')", filename);
dblog("ERROR: Could not unlink bones file after creation ('%s')", filename);
return B_TRUE;
}
return B_FALSE;
}
// dynamically create a temporary vault file based on the given room.
int savebones(map_t *m, room_t *r) {
cell_t *c;
int x,y;
FILE *f;
char filename[BUFLEN];
DIR *dp;
struct dirent *ep;
int maxid = 0, bonesid;
celltype_t *ct;
char ch;
char nextch = 'a';
celltype_t *legendct[MAXCANDIDATES];
char legendch[MAXCANDIDATES];
int nlegends = 0,n;
// get list of existing bones files
dp = opendir(BONESDIR);
if (dp != NULL) {
while ((ep = readdir(dp)) != NULL) {
char thisname[BUFLEN];
char *p;
strcpy(thisname, ep->d_name);
p = strstr(thisname, "bones");
if (p) {
char numbuf[BUFLEN];
char *np;
int thisid;
p += 5;
for (np = numbuf; isdigit(*p); p++, np++) {
*np = *p;
}
*np = '\0';
thisid = atoi(numbuf);
if (thisid > maxid) maxid = thisid;
}
}
closedir(dp);
}
bonesid = maxid + 1;
snprintf(filename, BUFLEN, "%s/bones%d.vlt",BONESDIR, bonesid);
f = fopen(filename, "wt");
if (!f) {
msg("Could not write bones file '%s'!", filename);
return B_TRUE;
}
fprintf(f, "@id:bones%d\n", bonesid);
fprintf(f, "@map\n");
for (y = r->y1; y <= r->y2; y++) {
for (x = r->x1; x <= r->x2; x++) {
c = getcellat(m, x, y);
// do we already ahve a legend entry for this celltype?
ct = NULL;
ch = '\0';
for (n = 0; n < nlegends; n++ ){
if (legendct[n] == c->type) {
ch = legendch[n];
break;
}
}
if (ch == '\0') {
ch = nextch;
legendct[nlegends] = c->type;
legendch[nlegends] = ch;
nlegends++;
if (nextch == 'z') nextch = 'A';
else if (nextch == 'Z') nextch = '0';
else nextch++;
}
// wall
fprintf(f, "%c", ch);
}
fprintf(f, "\n");
}
fprintf(f, "@end\n");
fprintf(f, "@legend\n");
for (n = 0; n < nlegends; n++){
fprintf(f, "%c:cell:%s\n",legendch[n], legendct[n]->name);
}
fprintf(f, "@end\n");
fprintf(f, "@flags\n");
// contents...
for (y = r->y1; y <= r->y2; y++) {
for (x = r->x1; x <= r->x2; x++) {
c = getcellat(m, x, y);
if (c) {
object_t *o;
int relx,rely;
relx = x - r->x1;
rely = y - r->y1;
if (c->lf) {
if (isplayer(c->lf)) {
// the lf's objects will appear in the bones file
for (o = c->lf->pack->first; o ; o = o->next) {
saveobtobones(o, f, relx, rely);
}
} else {
// the lf will appear in the bones file
char lfname[BUFLEN];
// remove props
killflagsofid(c->lf->flags, F_PETOF);
- [+] 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(c->lf, lfname, NULL, B_SHOWALL, B_REALRACE);
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
fprintf(f, "at(%d,%d) lf:%s\n", relx,rely, lfname);
}
}
for (o = c->obpile->first ; o ; o = o->next) {
saveobtobones(o, f, relx, rely);
}
}
}
}
// other flags.
fprintf(f, "tag:bones\n");
fprintf(f, "rarity:frequent\n");
fprintf(f, "goesin:%s\n", m->habitat->name);
fprintf(f, "dlevmin:%d\n", m->depth);
fprintf(f, "dlevmax:%d\n", m->depth);
fprintf(f, "@end\n");
fclose(f);
return B_FALSE;
}
2011-02-01 06:16:13 +11:00
int saveflagpile(FILE *f, flagpile_t *fp) {
int b;
2011-02-01 06:16:13 +11:00
flag_t *fl;
fprintf(f, "flags:\n");
foreach_bucket(b) {
for (fl = fp->first[b] ; fl ; fl = fl->next) {
assert(!fl->skillfrom || findskill(fl->skillfrom->id));
fprintf(f, "%d,%d,%d,%d,%d,%d,%d,%ld,%d\n",
fl->id, fl->nvals, fl->val[0], fl->val[1], fl->val[2],fl->lifetime,fl->known,fl->obfrom, fl->skillfrom ? fl->skillfrom->id : SK_NONE);
2011-02-01 06:16:13 +11:00
if (!fl->text || !strcmp(fl->text, "")) {
fprintf(f, "%s\n","^^^");
} else {
fprintf(f, "%s\n",fl->text);
}
}
2011-02-01 06:16:13 +11:00
}
fprintf(f, "-1,-1,-1,-1,-1,-1,-1,-1\n");
2010-12-02 12:17:54 +11:00
return B_FALSE;
}
2010-12-07 18:34:26 +11:00
int saveknowledge(FILE *f) {
int db = B_FALSE;
knowledge_t *k;
if (db) dblog("--> Saving knowledge...\n");
fprintf(f, "startknowledge\n");
for (k = knowledge; k ; k = k->next) {
fprintf(f, "%d^%s^%d\n",k->id, k->hiddenname, k->known);
}
fprintf(f, "endknowledge\n");
return B_FALSE;
}
2010-12-02 12:17:54 +11:00
int savelf(FILE *f, lifeform_t *l) {
object_t *o;
int obcount = 0;
// save this lf
fprintf(f, "startlf\n");
fprintf(f, "lfid: %d\n",l->id);
fprintf(f, "race: %d\n",l->race->id);
fprintf(f, "map: %d\n",l->cell->map->id);
fprintf(f, "pos: %d,%d\n",l->cell->x, l->cell->y);
2010-12-07 18:34:26 +11:00
fprintf(f, "level: %d\n",l->level);
- [+] 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
fprintf(f, "newlevel: %d\n",l->newlevel);
2011-02-01 06:16:13 +11:00
// liefform will be created after loading the above.
fprintf(f, "str: %d/%d\n",l->att[A_STR],l->baseatt[A_STR]);
- [+] 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
fprintf(f, "dex: %d/%d\n",l->att[A_AGI],l->baseatt[A_AGI]);
2011-02-01 06:16:13 +11:00
fprintf(f, "int: %d/%d\n",l->att[A_IQ],l->baseatt[A_IQ]);
fprintf(f, "xp: %ld\n",l->xp);
fprintf(f, "skillxp: %ld\n",l->skillxp);
- [+] 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
fprintf(f, "totskillpoints: %ld\n",l->totskillpoints);
2011-03-16 15:45:46 +11:00
fprintf(f, "skp: %d\n",l->skillpoints);
2010-12-02 12:17:54 +11:00
fprintf(f, "contr: %d\n",l->controller);
fprintf(f, "hp: %d/%d\n",l->hp, l->maxhp);
2011-02-01 06:16:13 +11:00
fprintf(f, "mp: %d/%d\n",l->mp, l->maxmp);
- [+] 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
fprintf(f, "stamina: %f\n", l->stamina);
2010-12-02 12:17:54 +11:00
fprintf(f, "alive: %d\n",l->alive);
2011-02-01 06:16:13 +11:00
fprintf(f, "lastdamtype: %d\n",l->lastdamtype);
2010-12-02 12:17:54 +11:00
fprintf(f, "lastdam: %s\n",l->lastdam);
- [+] 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
fprintf(f, "material: %d\n",l->material->id);
2010-12-02 12:17:54 +11:00
fprintf(f, "timespent: %d\n",l->timespent);
fprintf(f, "sorted: %d\n",l->sorted);
2011-02-01 06:16:13 +11:00
fprintf(f, "polyrevert: %d\n",l->polyrevert);
2010-12-07 18:34:26 +11:00
fprintf(f, "forgettimer: %f\n",l->forgettimer);
- [+] if can WILL _and_ CAST a spell, use power level from whichever is highest - [+] exorcise spell - l2 summoning - [+] +10% chance per skill level, -5% per monster TR, +5% per spell power - [+] implement - [+] paladins get exorcise at l5 - [+] new purity god pray effect: 100% success exorcisms. - [+] new perks for lore:demonology - [+] nov: exorcise demons (power 1) - [+] skilled: summon demon - [+] midnight -portals open. moongate? lunar portal? lunar gate? moon door? - [+] portals with no F_MAPLINK will create a random destinatino in the same map. - [+] makeobjecttemporary() function - [+] when it strikes midnight, a portal appears somewhere on the plaeyr's level - [+] the portal is temporary for 60 turns (ie. approx 1 hours) turns until end of midnight (calc this) - [+] fixed crash on "w-" - [+] during glorana's peace, striketoko is okay. - [+] announce posion potion effects. - [+] make dark maps just lower max vis range, isntead of not being lit ? - [+] redo entire light calculation code. - [+] light effects: - [+] create "bright light" object in radius around target cell (it has f_produceslight) - [+] at high level, light spell will increase ILLUMINATION level of the entire map. - [+] DARKNESS - [+] make a "magical darkness" object - [+] blocks view. - [+] at high level, light spell will increase ILLUMINATION level of the entire map. - [+] bright light objects burn/scare undead - [+] undead won't walk into cells with bright light power >= their TR - [+] monsters in cells with produces light which are vulnerable to light take damage - [+] cases to check for: - [+] vuln to light - [+] migrains - [+] iscelllit() should return light level of cell (sum of f_produceslight) - [+] gaining/losing f_produceslight should setlosdirty - [+] makelit() just places light/darkness objects - [+] monsters in cells with produces light which have good eyes get blinded - [+] move blinding code out of spell.c and into turneffectslf - [+] placing light/darkness objects causes los recalc in any who can see them - [+] this shoudl happen automatically since they will have BLOCKSVIEW. - [+] islit(): - [+] check for ot_darkness objects in the cell - [+] check for f_produceslight flags in the cell's lfs/objects - [+] return how MUCH the cell is lit - [+] f_produceslight flag now just lets you see further in the darkness - [+] still give light sources to monsters, but change the check to see whether we do this (check the map's illumnation level) - [+] get rid of calclight() code. - [+] then i can get rid of seeindark code in los checking ??? - [+] get rid of eyesight adjustment code - [+] remove enum LIGHTLEV - [+] CHANGE nightvisrange - it just countres the map's illumination level - [+] remove lf->eyeadjustment - [+] remove lf->losdark - [+] remove lf->nlosdark - [+] remove cell->lit and littime and otiglittimer and origlight and lastlit - [+] remove it - [+] don't save it
2012-08-02 14:08:27 +10:00
//fprintf(f, "eyeadj: %d\n",l->eyeadjustment);
- [+] 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
fprintf(f, "facing: %d\n",l->facing);
fprintf(f, "turncounter: %d\n",l->turncounter);
- [+] 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
fprintf(f, "rotated: %d\n",l->rotated);
2011-02-01 06:16:13 +11:00
// lf flags
saveflagpile(f, l->flags);
2010-12-02 12:17:54 +11:00
// lifeform objects
obcount = 0;
for (o = l->pack->first ; o ; o = o->next) {
fprintf(f, "ob:%ld\n",o->id);
obcount++;
}
fprintf(f, "ob:-1\n");
fprintf(f, "obdefs\n");
// now save our object definitions
for (o = l->pack->first ; o ; o = o->next) {
saveob(f, o);
}
- [+] 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
// lifeform polypack objects
obcount = 0;
for (o = l->polypack->first ; o ; o = o->next) {
fprintf(f, "polyob:%ld\n",o->id);
obcount++;
}
fprintf(f, "polyob:-1\n");
fprintf(f, "polyobdefs\n");
// now save our polypack object definitions
for (o = l->polypack->first ; o ; o = o->next) {
saveob(f, o);
}
2010-12-02 12:17:54 +11:00
return B_FALSE;
}
2011-02-01 06:16:13 +11:00
int savegame(void) {
map_t *m;
FILE *f;
char buf[BUFLEN];
int rv;
int mapcount = 0;
snprintf(buf, BUFLEN, "%s/game.sav",SAVEDIR);
f = fopen(buf, "wt");
if (!f) {
msg("Could not open save file!");
return B_TRUE;
}
rv = saveregions(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
if (rv) {
msg("Could not save region data.");
return B_TRUE;
}
for (m = firstmap; m ; m = m->next) {
mapcount++;
}
fprintf(f, "start_maps:%d\n",mapcount);
2011-02-01 06:16:13 +11:00
for (m = firstmap; m ; m = m->next) {
// save world
rv = savemap(f, m);
2011-02-01 06:16:13 +11:00
if (rv) {
msg("Could not save map '%s'",m->name);
return B_TRUE;
}
}
fprintf(f, "end_maps\n");
// load world data
saveworlddata(f);
// save player + their objects
savelf(f, player);
saveknowledge(f);
savevars(f);
fclose(f);
2011-02-01 06:16:13 +11:00
return B_FALSE;
}
2010-12-02 12:17:54 +11:00
int savemap(FILE *f, map_t *m) {
2010-12-02 12:17:54 +11:00
int i;
object_t *o;
lifeform_t *l;
int x,y;
int obcount = 0;
// save map info
fprintf(f, "id:%d\n",m->id); // map id
* [+] 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
fprintf(f, "region:%d\n",m->region->id); // map region id
2011-02-01 06:16:13 +11:00
fprintf(f, "depth:%d\n",m->depth); // map depth
2010-12-02 12:17:54 +11:00
fprintf(f, "name:%s\n",m->name); // map name
fprintf(f, "habitat:%d\n",m->habitat->id); // habitat
fprintf(f, "seed:%u\n",m->seed); // seed
fprintf(f, "lastplayervisit:%ld\n",m->lastplayervisit);
2010-12-02 12:17:54 +11:00
fprintf(f, "dims:%d,%d\n",m->w, m->h); // map dimensons
- [+] 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
fprintf(f, "illumination:%d\n",m->illumination); // seed
2010-12-02 12:17:54 +11:00
fprintf(f, "nextmaps:\n");
for (i = 0; i < MAXDIR_ORTH; i++) {
fprintf(f, "%d\n",m->nextmap[i] ); // map dimensons
}
* [+] 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
fprintf(f, "beingcreated:%d\n",m->beingcreated);
2010-12-02 12:17:54 +11:00
// save all non-player lifeforms (includes their objects)
fprintf(f, "lifeforms:\n");
for (l = m->lf ; l ; l = l->next) {
if (l->controller != C_PLAYER) { // don't save the player!
savelf(f, l);
}
}
fprintf(f, "endlifeforms\n");
// save room defs
fprintf(f, "nrooms:%d\n",m->nrooms);
for (i = 0; i < m->nrooms; i++) {
fprintf(f, "%d,%d,%d,%d,%d,%s\n",m->room[i].id,
m->room[i].x1, m->room[i].y1,
m->room[i].x2, m->room[i].y2,
m->room[i].vault ? m->room[i].vault->id : "^^^");
}
2010-12-02 12:17:54 +11:00
// cells
fprintf(f, "cells:\n");
for (y = 0; y < m->h; y++) {
for (x = 0; x < m->w; x++) {
cell_t *c;
c = getcellat(m, x, y);
// cell info
- [+] Go to 256 colour mode! - [+] enable it - [+] adjust colour enum definitions - [+] adjust usage of colour enums in *.c - [+] redo celltype colours - [+] redo all lf colours in data.c - [+] redo all object colours in data.c - [+] fix potioncolours etc - [+] get background colours working again..... - [+] You walk down the staircase... Invalid racename 'random' in vault monsterzoo - [+] gaining/losing god bonus - only announce first one you lose/gain! - [+] knockout bugs: - [+] "you knock out the pixie"... then there' s pixie corpse. - [+] shouldn't be able to KO robots! - [+] don't say "you kill baba yaga's hut", say "you defeat xxx" - [+] alignment change - [+] should become evil if you worship hecta - [+] ...and good if you worship glorana - [+] -15% xp forever. - [+] shoudl become prone when hit by falling door trap. - [+] TEMPERATURE - [+] habitat->basetemperature - [+] VCOLD = <=0 - [+] COLD=1-11 - [+] COOL=12-18 - [+] AVERAGE = 19-22 - [+] WARM=23-29 - [+] HOT=30-35 - [+] VHOT=36+ - [+] getcelltemperature() - [+] start with habitat temperature - [+] adding/removing/moving nearby fire makes cells hotter - [+] adding/removing/moving nearby blizzards, hailstorms, ice etc make cells cooler - [+] getlftemp() - [+] start with getcelltemp - [+] adjust for warm/cold blood, resistances, etc - [+] hot effects - [+] stamina is used more quickly - [+] ice melts very fast (turns to water) - [+] food goes bad very quickly - [+] things made of ice take damage every turn. in startlfturn() ? - [+] cold effects - [+] exposed body parts give penalties to accuracy - [+] -2 to -4 per exposed body part (ie. max -14, -21, -28) - [+] no effect on furred things like bears. make them cold-resistant or immune. * [+] medium chance to shiver... chance to drop weapons * [+] low chance to catch cold (check cold damage code) - [+] nothing ever melts - [+] food never goes bad - [+] water freezes( turns to ice) - [+] things made of fire take _extra_ damage (in attack.c) - [+] Show YOUR temperature in @@ - [+] Show other's temp in @@ if our lore is high enough - [+] notify when temperature changes. - [+] just like igniting other fires, fires should deal fire damage to surrounding cells - [+] heat/cold should affect SURRONDING cells too. - [+] maybe: instead of checking cell temp every time, recalc cell temp whenever: - [+] create cells with habitat base temperature - [+] we add a new object - [+] we move an object - [+] we remove an object - [+] SAVE cell temperature now. - [+] show cold/hot in statusbar. - [+] cold announcement not working. - [+] change glaciate: - [+] create "unnatural coldness" object - [+] cold snap: (l2) - [+] create "unnatural coldness" in a radius - [+] heatwave (l2) or "oppressive heat" - [+] create "unnatural heat" in a radius - [+] add fur coats to creatures (ie. resistcold) - [+] ice cave level - [+] walls = ice. - [+] floor = metal - [+] creation similar to swamp: - [+] make dungeon - [+] change solid walls to ice - [+] limit room size to small. - [+] floor = snow - [+] temperature - [+] base temperature is cold - [+] ice-themed monsters - [+] ice-themed objects
2012-11-27 21:27:54 +11:00
fprintf(f, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
c->room ? c->room->id : -1, c->type->id, c->known, c->knowntime, c->knownglyph.ch, c->knownglyph.colour, c->visited,c->locked, c->habitat->id, c->isroomwall, c->temperature );
2010-12-02 12:17:54 +11:00
// cell objects
for (o = c->obpile->first ; o ; o = o->next) {
fprintf(f, "ob:%ld\n",o->id);
obcount++;
}
fprintf(f, "ob:-1\n");
}
}
2010-12-02 12:17:54 +11:00
// save object definitions from map cells
fprintf(f, "MAPOBS:%d\n",obcount);
for (y = 0; y < m->h; y++) {
for (x = 0; x < m->w; x++) {
cell_t *c;
c = getcellat(m, x, y);
// cell objects
for (o = c->obpile->first ; o ; o = o->next) {
saveob(f, o);
}
}
}
2011-05-20 06:30:58 +10:00
saveflagpile(f, m->flags);
2010-12-02 12:17:54 +11:00
return B_FALSE;
}
int saveob(FILE *f, object_t *o) {
* [+] 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
object_t *oo;
int ncontents;
2010-12-02 12:17:54 +11:00
fprintf(f, "id:%ld\n",o->id);
fprintf(f, "type:%d\n",o->type->id);
fprintf(f, "material:%d\n",o->material->id);
fprintf(f, "weight:%f\n",o->mass);
2010-12-02 12:17:54 +11:00
fprintf(f, "inscr:%s\n",o->inscription ? o->inscription : "^^^");
fprintf(f, "letter:%c\n",o->letter);
fprintf(f, "bless:%d\n",o->blessed);
fprintf(f, "blessknown:%d\n",o->blessknown);
fprintf(f, "amt:%d\n",o->amt);
2011-02-01 06:16:13 +11:00
fprintf(f, "birthtime:%ld\n",o->birthtime);
saveflagpile(f, o->flags);
* [+] 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
// object contents...
ncontents = countobs(o->contents, B_FALSE);
if (ncontents) {
fprintf(f, "obcontents:%d\n",ncontents);
for (oo = o->contents->first ; oo ; oo = oo->next) {
saveob(f, oo);
}
fprintf(f, "endobcontents\n");
}
2010-12-02 12:17:54 +11:00
fprintf(f, "endob\n");
return B_FALSE;
}
* [+] 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
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
int saveobtobones(object_t *o, FILE *f, int x, int y) {
char obname[BUFLEN];
if (!obgoesinbones(o)) return B_TRUE;
// chance that someone picked up the object
if (onein(4)) return B_TRUE;
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
// modify the object?
2012-12-01 16:26:23 +11:00
if (hasflag(o->flags, F_DECAY)) {
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
// food will decay by the time someone else finds it.
return B_TRUE;
}
if (isweapon(o) || isarmour(o)) {
// weapons/armour might degrade in quality
if (hasflag(o->flags, F_MASTERWORK)) {
// masterwork -> normal
killflagsofid(o->flags, F_MASTERWORK);
} else {
if (onein(3)) {
applyobmod(o, findobmod(OM_SHODDY));
}
if (onein(3) && ismetal(o->material->id)) {
addflag(o->flags, F_RUSTED, R_RUSTY, NA, NA, NULL);
}
}
}
if (o->material->id == MT_BLOOD) {
sprintf(obname, "a blood stain");
- [+] 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
} else if (o->type->id == OT_GRIMOIRE) {
sprintf(obname, "grimoire");
} else {
getobnametrue(o, obname, o->amt);
}
- [+] make zombies eat flesh. - [+] warn before eating your own kind if it will anger your god, and you wisdom is high. - [+] make disease way worse if you eat your own race's corpse! - [+] CRASH when i try to cook firebug corpse * [+] bones files: - [+] when your leg is bleeding, don't lose hp for ATTACKING, only for MOVING. - [+] bug: issue with skill display if you learn higher than your max level by reading a book! - [+] in this case, reading the book should fail. - [+] when you start worshipping felix, allow you to learn lockpicking & thievery to full level! - [+] infinite loop when an ashkari enters rage while already eating. - [+] felix prayer should always unlock all nearby doors - [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1. - [+] that way we can confer it! - [+] say "this is xxx!" after wearing a new amulet. - [+] fork / knife should make you eat faster. - [+] double the hp of most armour again AMULETS - [+] add new bodypart = neck - [+] object hiddennames * [+] nouns * [+] adjectives - [+] flight (canwill fly) - [+] enhance spell power - [+] victimization (makes everything hostile) (no auto id) - [+] blinking - [+] anger (canwill rage) - [+] vs poison (poison immune) - [+] vs magic (magic resistance) - [+] common - [+] feather fall (dt_fall dmg = 0) - [+] don't "slam into the ground", just "float gently to the ground" - [+] of amplification (boost listening skillchecks, allow you to listen at stairs) - [+] peaceful sleep (don't get woken up by sound, cursed) - [+] chef's amulet(lower metabolism) - [+] thief's amulet (lockpicking)
2012-03-05 21:31:21 +11:00
fprintf(f, "at(%d,%d) ob:%s\n", x,y, obname);
return B_FALSE;
}
int saveregions(FILE *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
int i;
regionoutline_t *ro;
region_t *r;
int numoutlines = 0,numregions = 0;
fprintf(f, "start_regions\n");
* [+] 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
for (ro = firstregionoutline ; ro ; ro = ro->next) {
numoutlines++;
}
fprintf(f, "numoutlines:%d\n",numoutlines);
for (ro = firstregionoutline ; ro ; ro = ro->next) {
// save this outline
fprintf(f, "startro\n");
fprintf(f, "rtypeid:%d\n",ro->rtype->id); // region type id
fprintf(f, "nthings:%d\n",ro->nthings);
for (i = 0; i < ro->nthings; i++) {
fprintf(f, "startthing\n");
- [+] don't place draininge grates on low floor!! - [+] gate spell should always take you to a location wihtout water!! - [+] enhance speak with dead spell (SPEAKDEAD) - [+] may ask "how did you die" plus one of the below: - [+] tell me about the area - [+] mark stairs on the map - [+] mark shops on the map - [+] tell about very rare objects - [+] tell me about nearby dangers - [+] tell about odd monsters - [+] tell about traps - [+] test - [+] let you ask peaceful lfs about the surroundings too - [+] move code into io.c "askaboutarea(char *who)" - [+] test - [+] the first time you ask someone for info, randomly determine whether they know about: - [+] stairs (high chance) - [+] shops (medium chance) - [+] traps (low chance) - [+] areacomms_danger should include out of depth monsters - need isoutofdepth(lf) - [+] room floors should take the entry type from the habitat, NOT just use ct_room!!!! - [+] sometimes generate fixed SEWER regionthings - [+] done - [+] BUG: canT enter goblin caves again!!!! - [+] getting "ERROR - can't find opposite end of stairs/portal!" - [+] FAILED to link stiars: 'tunnel leading up' - [+] make maps direct you to regionthings. - [+] region things need unique IDs !!! - [+] change F_MAPTO - [+] v0 = src region id - [+] v1 = src depth - [+] v2 = regionthing with whatkind = RT_REGIONLINK - [+] when generating map objects, fill in a random branch entry - [+] fix getobname code for unknown maps. - [+] TEST - [+] with "map to the goblin caves" - [+] with "map" - [+] with "map to" - [+] use "the goblin caves are to the north", not "is to the north" - [+] is - [+] isn't - [+] test reading a map when on the wrong branch - [+] test reading a map when on the wrong level - [+] test reading a map when on the right level - [+] move staircase generation to END of map create - [+] finalisemap() - [+] countobswithflagval(obpile, flagid, val0...) - [+] countmapobswithflagval(map, flagid, v0...) - [+] jimbo's map should lead you to one of the major branches. - [+] crit pos shouldn't be higher than you can reach! - [+] same size or bigger = can reach anything - [+] 1 size smaller = you can't reach the head - [+] 2 sizes smaller = can't reach head or hands - [+] 3 sizes smaller = can't reach head, hands or body - [+] jimbo's room should contain all the staircases - [+] make you have to pass a speech check before people will tell you about the area - [+] bug in recruitment skillchecks - using wrong attribute, and too easy. - [+] rename dwarf to delver - [+] somtimes say "dons" instead of "puts on"
2012-01-05 02:54:28 +11:00
fprintf(f, " thingid:%d\n",(int)ro->thing[i].id);
* [+] 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
fprintf(f, " thingdepth:%d,%d,%d\n",ro->thing[i].depth, ro->thing[i].x, ro->thing[i].y);
fprintf(f, " thingkind:%d\n",(int)ro->thing[i].whatkind);
fprintf(f, " thingval:%d\n",(int)ro->thing[i].value);
if (strlen(ro->thing[i].what)) {
char localwhat[BUFLEN];
* [+] 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
strcpy(localwhat,ro->thing[i].what);
/*
* [+] 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
for (p = localwhat ; *p; p++) {
if (*p == ' ') *p = '^';
}
*/
* [+] 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
fprintf(f, " thingwhat:%s\n",localwhat);
} else {
fprintf(f, " thingwhat:NULL\n");
}
fprintf(f, "endthing\n");
}
fprintf(f, "endro\n");
}
// now save out the actual region->outline mappings
numregions = 0;
for (r = firstregion ; r; r = r->next) {
numregions++;
}
fprintf(f, "numregions:%d\n",numregions);
for (r = firstregion ; r; r = r->next) {
fprintf(f, "startregion\n");
- [+] 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
fprintf(f, " rid:%d\n",r->id);
* [+] 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
fprintf(f, " rtypeid:%d\n",r->rtype->id);
fprintf(f, " outline:%d\n",r->outline ? r->outline->id : -1);
fprintf(f, " parentregion:%d\n",r->parentregion ? r->parentregion->id : -1);
fprintf(f, " nthings:%d\n",r->nthings);
- [+] 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
fprintf(f, " depthmod:%d\n",r->depthmod);
- [+] redo throw hit%. even inept sk_throwing should have 40% or so to hit at point blank range. - [+] only reduce hit% after first cell? - [+] increase change of player ko with yumi - [+] tranq dart and nanodart should be rodshaped. - [+] genericise purification - [+] F_PURIFIESTO v0 = newobject - [+] add toadstool -> shiitake - [+] posion potion -> water - [+] acid potion -> water - [+] rum -> water - [+] DONT make the original object type known now - [+] higher level purify food lets you select a cell! - [+] need f_targettedspell v1 & v2 to specify power. - [+] druid should get to pick one of 3 spells (from each available level) upon levelup, not anything! - [+] implement f_levspellschoolfromx - [+] TEST! - [+] implement secondary weapon swap with 'x' - [+] initial press: unweild curwep. if successful, mark as secondayr. - [+] subsequent presses: find secondary wep (or fail). remember cur. weild secondary. if successful, remove scondary flag and mark old cur wep as secondary - [+] when you move an object, it loses secondary flag. - [+] BUG: I had TWO regions with rtype->id == RG_CAVE!!! - [+] have added debug code - [+] think this is fixed - need to remove created regions when i regenerate a map. - [+] should be able to sell gems to jewelery store - [+] sm_sellitems - [+] shopsell() - [+] shop has f_cansellobclass xxx, val[0] = pct of full price you can sell for. normally 50% but 75% for gems. - [+] allow COUNT - modified askobjectwithflag ? - [+] OR add an extra *sellshop option to doaskobject ?? - [+] if this is set, only allow selection of objects which match the shop's f_shopsell flags - [+] ie. replace wantflags[] - [+] when passing this, don't also pass wantflag args!!! - [+] rename shopsell flag to f_shopacceptsflag - [+] accept F_NONE in shopacceptsflag - [+] make shopdonate use the same code - [+] make donating to shops lower their prices ? - [+] for each 100 value you donate, reduce prices by 1% - [+] ie. donate 1000 worth, reduce by 10% = 1 level of speech skill - [+] change shopsell to use applyshoppricemod - [+] applyshoppricemod needs a new arg - up or down - [+] check code in objects.c for naming too! listobs()
2012-02-07 13:50:17 +11:00
fprintf(f, " createdby:%d\n",r->createdbymapid);
* [+] 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
fprintf(f, "endregion\n");
}
fprintf(f, "end_regions\n");
* [+] 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;
}
int saveworlddata(FILE *f) {
fprintf(f, "timedata:%ld,%ld,%ld\n",curtime,gamedays,gamesecs);
return B_FALSE;
}
int showhiscores(lifeform_t *lf, int min, int max) {
sqlite3 *db;
int rc;
char filename[BUFLEN],*cmd;
char *errmsg = NULL;
char hilitescoretext[BUFLEN];
long hilitescore = -1;
if (lf && !lfhasflag(lf, F_NOSCORE)) {
hilitescore = calcscore(lf);
if (hilitescore == 0) hilitescore = -1;
} else {
hilitescore = -1;
}
// open database
snprintf(filename, BUFLEN, "%s/hiscores.db", DATADIR);
rc = sqlite3_open(filename, &db);
if (rc) {
msg("error opening hiscore file '%s'.\n",filename);
dblog("error opening hiscore file '%s'.\n",filename);
return B_TRUE;
}
// show top ten
//snprintf(cmd, BUFLEN, "select * from hiscores order by score desc limit 10;");
asprintf(&cmd, "select (select count(*) from hiscores b where b.score > a.score) + 1 as rank, score,name,job,killedby from hiscores a where (rank >= %d) and (rank <= %d) order by score desc limit 100;", min, max);
snprintf(hilitescoretext, BUFLEN, "%ld",hilitescore);
rc = sqlite3_exec(db, cmd, showhiscoreline, hilitescoretext, &errmsg);
if (rc != SQLITE_OK) {
msg("error %d reading hiscores: '%s'", rc, errmsg);
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
dblog("query was: '%s'", cmd);
dblog("error %d reading hiscores: '%s'\n sql command: [%s]", rc, errmsg, cmd);
sqlite3_free(errmsg);
}
- [+] 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
free(cmd);
sqlite3_close(db);
return B_FALSE;
}
// returns player's rank in 'rank'
int writehiscore(lifeform_t *lf, int *rank) {
sqlite3 *db;
int rc;
char filename[BUFLEN],*cmd;
char pname[BUFLEN];
- 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
char racename[BUFLEN];
char jobname[BUFLEN];
char killedby[BUFLEN];
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
char *escaped;
char *errmsg = NULL;
sqlite3_stmt *smt;
job_t *j;
long minscore = 0;
long score;
score = calcscore(lf);
// open database
snprintf(filename, BUFLEN, "%s/hiscores.db", DATADIR);
rc = sqlite3_open(filename, &db);
if (rc) {
msg("error %d opening hiscore file '%s'.\n",rc, filename);
dblog("error %d opening hiscore file '%s'.\n",rc, filename);
return B_TRUE;
}
getplayername(pname);
j = getjob(player);
- 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
strcpy(racename, player->race->name);
capitalise(racename);
- [+] 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
snprintf(jobname, BUFLEN, "Lv%d %s %s", player->level, racename, getjobname(player));
makekillertext(killedby, lf->killverb, lf->lastdam, lf->cell->map, B_FALSE, B_TRUE);
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
// add escapes
escaped = strdup(killedby);
strrep(&escaped, "'", "''", NULL);
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
if (!lfhasflag(lf, F_NOSCORE) && (score > 0)) {
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
asprintf(&cmd, "insert into 'hiscores' (score,name,job,killedby) VALUES (%ld, '%s', '%s', '%s')", score, pname, jobname, escaped);
rc = sqlite3_exec(db, cmd, NULL, NULL, &errmsg);
free(cmd);
if (rc != SQLITE_OK) {
msg("error writing hiscores: '%s'", errmsg);
dblog("error writing hiscores: '%s'", errmsg);
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
dblog("query was: '%s'", cmd);
sqlite3_free(errmsg);
}
}
- [+] change how critical hits work - [+] must score a hit first THEN pass a critical hit % check. - [+] when asking for an object form the player's pack, default to NOT showing long format - [+] in askobject, pass in actionchar. remember choice for each actionchar. and use it as a default. - [+] warning system - [+] warnabout(char *warntext) - [+] if already confirmed it, keep going - [+] otherwise ask to confirm - [+] confirmations time out after some time... - [+] replace injury warnings - [+] reduce spell range - [+] big bug - way too many critical hits! - [+] askcoods: accept 'enter' to select a cell - [+] armour should never reduce damage under 1 - [+] for playable races, show bonus/penalties when selecting them. - [+] add f_hatesracewithflag with ashkari - [+] mammoan - no athletics! - [+] bug writing hiscores - need to escape 's. - [+] add v2 to F_ATTREQ - scaling. - [+] will scale up to 3 above/below - [+] v2 = 1 means "+/- v2 per point above/below" - [+] more than 3 below means you can't use it. modify "meetsattreq" - [+] more than 3 above gives no extra bonus. - [+] this is MANDATORY. add to checks. - [+] add messages if your skill it slightly too low - [+] STR scales damage, AGI scales tohit and crit chance - [+] make sure showlfstats takes this into account - [+] make sure rolltohit / getdamrange takes this into account - [+] what do I do with attreq IQ??? mus tmeet it. - [+] missile weapons: no scaling, must meet reqs - [+] reduce regular strength dam mod - [+] you only get attr bonuses if you are skilled with the weapon. - [+] crash: getrandomrace(NULL, NA) returning null! - [+] don't give away invisible creature locations in askcoords - [+] does fireat automatically re-calc lof based on obstacles? - [+] if so then change haslof in askcoords to be hasKNOWNlof! - [+] catlike race - ashkari - [+] bonus - [+] has climbing, listen - [+] jump ability - [+] agi+ - [+] unarmed attack is claws - [+] balance (stability?) - [+] eyesight, darkvision - [+] enhancesmell (only low) - [+] pens: - [+] hunger faster - [+] carnivore - [+] low-- wis (ie vuln to magic) - [+] vuln to magic - [+] vuln to water - [+] vuln to sound - [+] low str - [+] auto rage on dog/wolf/mouse/bird/chicken - [+] races CANT ahve certain flags - [+] apply this during giveskill()
2011-11-22 08:26:33 +11:00
free(escaped);
if (rank) {
if (lfhasflag(lf, F_NOSCORE)) {
*rank = -1;
} else if (score == 0) {
*rank = -2;
} else {
// find out the player's rank
asprintf(&cmd, "select (select count(*) from hiscores b where b.score > a.score) + 1 as rank from hiscores a where score = %ld;",score);
rc = sqlite3_prepare_v2(db, cmd, -1, &smt, 0);
free(cmd);
rc = sqlite3_step(smt);
while (rc == SQLITE_ROW) {
const char *p;
p = (const char *)sqlite3_column_text(smt, 0);
*rank = atoi(p);
rc = sqlite3_step(smt);
}
}
}
// now delete all hiscore entries after 100
// find score number 100...
asprintf(&cmd, "select score from hiscores order by score desc limit 100;");
rc = sqlite3_prepare_v2(db, cmd, -1, &smt, 0);
free(cmd);
rc = sqlite3_step(smt);
while (rc == SQLITE_ROW) {
const char *p;
p = (const char *)sqlite3_column_text(smt, 0);
minscore = atol(p);
rc = sqlite3_step(smt);
}
if (minscore > 0) {
// we now have a minimum score - delete everything lower than it.
asprintf(&cmd, "delete from hiscores where score < %ld;", minscore);
rc = sqlite3_exec(db, cmd, NULL, NULL, &errmsg);
free(cmd);
}
sqlite3_close(db);
return 0;
}