--------------------- - CONDUCT PATCH 2.2 - --------------------- (Change-Details) Affected data-structures: ------------------------- Philosophy: flags - contain the player's initial intention u.roleplay - contains the character's intentions/abilities u.uconduct - contains raw statistical data on character's actions flags (flags.h) additional flags - (remain fixed after character creation) flags.ascet flags.atheist flags.blindfolded flags.illiterate flags.pacifist flags.nudist flags.vegan flags.vegetarian u (you.h) additional intrinsics - (may change during gameplay) u.roleplay.ascet u.roleplay.atheist u.roleplay.blindfolded u.roleplay.illiterate u.roleplay.pacifist u.roleplay.nudist u.roleplay.vegan u.roleplay.vegetarian additional conduct-counters - (raw statistical details) u.uconduct.armoruses u.uconduct.unblinded u.uconduct.unecologic u.uconduct.robbed I added only a few special cases in which the roleplay-intrinsics make a difference (only those I'm currently interested in; mainly illiterate pacifists). Feel free to add more... (e.g atheists deserve a lot of special cases). Affected files -------------- include : 5 files extern.h - added violated() from role.c - removed violated_vegetarian() flags.h - added flags for conduct-options (set at character creation) mondata.h - defined is_guardian() /* creature is an artifact-guardian */ patchlevel.h - increased editlevel (bones and save-files are incompatible) you.h - added counters for nudism, zen and thievery conduct - added roleplay-intrinsics - declared a struct[] that contains conduct-strings: nouns and adjectives (used for the high-score) names (*unused*) can be used e.g. for a conduct-menue at startup (the definitions for the struct are in role.c) - define CONDUCT_XYZ this gets used to access strings for the highscore call violated(CONDUCT_XYZ) src : 17 files cmd.c - #conduct-list updated added nudism and zen modified pacifism/sadism added special cases for the selected conducts do_wear.c - violated(CONDUCT_BLINDFOLDED) dog.c - enlarged the area for level-followers eat.c - re-arranged all conduct lines use violated() to break a conduct use character's intention instead of conduct-counter to determine blessed food-detection effects end.c - done(QUIT) and done(ASCENDED) now use the killer-string in the logfile this looks like: quit after an act of violence ascended nude pacifist engrave.c - illiterate characters always engrave a single 'X' - re-arranged the engrave-messages a bit. E.g: "You add your name to the weird writing in the dust" - violated(CONDUCT_ILLITERACY) hack.c - violated(CONDUCT_FOODLESS) - violated(CONDUCT_PACIFISM) mon.c - violated(CONDUCT_PACIFISM) - violated(CONDUCT_THIEVERY) options.c - added conduct options (DISP_IN_GAME) OPTIONS=nudist,illiterate,pacifist,atheist OPTIONS=vegetarian,vegan,ascet,blindfolded pray.c - build a conduct-string for done(ASCENDED) read.c - violated(CONDUCT_ILLITERACY) - you can read the Book of the Dead while blind (needed for zen-conduct) - illiterate characters can't read role.c - define conduct-names/nouns/adjectives - initialize roleplay intrinsics - function violated() increases conduct-counters may give a messages may perform special actions topten.c - takes ascension-conduct and puts it into the highscore u_init.c - conduct may modify starting equipment nudists don't wear initial armor zen masters get a worn blindfold (only one) pacifists don't wield initial weapon uhitm.c - violated(CONDUCT_FOOD) worn.c - violated(CONDUCT_NUDISM) write.c - violated(CONDUCT_ILLITERACY) - illiterate characters can't write