Changeset 415

Show
Ignore:
Timestamp:
07/31/07 11:36:09 (1 year ago)
Author:
takkaria
Message:

Fix mushrooms (see #311); also

  • combine Paranoia and Confusion as Clear Mind
  • add some basic savefile conversion stuff for items that've been removed
  • add timed ESP effect
  • remove "slow poison" effect, and LOSE_STR2 (mushroom of disease)
  • fix compiler warning in effects.h
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/edit/object.txt

    r413 r415  
    5050# are currently hard-coded.)  
    5151 
    52 # 'W' is for extra information. Depth is the depth the object is normally 
    53 # found at (and defines what "level" the object is, when determining how easy  
    54 # it is to use a wand, staff or rod, rarity determines how common the object 
    55 # is (currently unused, thanks to the A: allocation lines), weight is in 
    56 # tenth-pounds and cost is the item's base value. 
     52# 'W' is for extra information. Depth defines what "level" the object is, 
     53# when determining how easy it is to use a wand, staff or rod; rarity 
     54# is unused; weight is in tenth-pounds and cost is the item's base value. 
    5755 
    5856# 'P' is for power information. The items base armor class, its base 
     
    9391##### Mushrooms ##### 
    9492 
     93# Removed in 3.1: Naivety, Disease, Sickness, Paralysis.  These were 
     94# introduced in 2.7.8 as replacements for duplicated effects between 
     95# some mushrooms and "hairy molds". 
     96 
     97# Changed in 3.1: Cure Paranoia + Cure Confusion now "Clear Mind" 
     98# Added in 3.1: Mending, which cures cut/stun/poison/blindness (idea from S) 
     99#               Second Sight, which gives temp ESP and cures blindness 
     100 
     101## Basic "bad" kinds 
     102 
    95103N:1:Blindness 
    96104G:,:d 
    97105I:80:1:500 
    98106W:5:0:1:0 
    99 A:100:5 to 100 
     107A:75:10 to 15 
    100108F:EASY_KNOW 
    101109E:BLIND 
     
    105113I:80:2:500 
    106114W:5:0:1:0 
    107 A:100:5 to 100 
     115A:75:10 to 15 
    108116F:EASY_KNOW 
    109117E:SCARE 
     
    113121I:80:3:500 
    114122W:5:0:1:0 
    115 A:100:5 to 100 
     123A:75:10 to 15 
    116124F:EASY_KNOW 
    117125E:CONFUSE 
     
    121129I:80:4:500 
    122130W:10:0:1:0 
    123 A:100:10 to 100 
     131A:75:10 to 15 
    124132F:EASY_KNOW 
    125133E:HALLUC 
    126134 
    127 N:5:Cure Poison 
     135N:5:Poison 
     136G:,:d 
     137I:80:0:500 
     138W:5:0:1:0 
     139A:75:10 to 20 
     140F:EASY_KNOW 
     141E:POISON 
     142 
     143## 6 
     144 
     145N:7:Weakness 
     146G:,:d 
     147I:80:6:500 
     148W:10:0:1:0 
     149A:75:15 to 30 
     150F:EASY_KNOW 
     151E:LOSE_STR 
     152 
     153N:8:Stupidity 
     154G:,:d 
     155I:80:8:500 
     156W:15:0:1:0 
     157A:75:15 to 30 
     158F:EASY_KNOW 
     159E:LOSE_INT 
     160 
     161N:9:Unhealth 
     162G:,:d 
     163I:80:10:500 
     164W:15:0:1:0 
     165A:40:20 to 50 
     166P:0:10d10:0:0:0 
     167F:EASY_KNOW 
     168E:LOSE_CON2 
     169D:It may also be thrown to inflict 10d10 points of damage. 
     170 
     171 
     172## Curing of various kinds 
     173 
     174N:10:Cure Poison 
    128175G:,:d 
    129176I:80:12:500 
    130177W:10:0:1:60 
    131 A:100:10 to 100 
     178A:100:10 to 40 
     179M:70:1d4 
    132180F:EASY_KNOW 
    133181E:CURE_POISON 
    134182 
    135 N:6:Cure Blindness 
     183N:11:Cure Blindness 
    136184G:,:d 
    137185I:80:13:500 
    138186W:10:0:1:50 
    139 A:100:10 to 100 
     187A:100:10 to 40 
     188M:70:1d4 
    140189F:EASY_KNOW 
    141190E:CURE_BLINDNESS 
    142191 
    143 N:7:Cure Paranoia 
     192N:12:Clear Mind 
    144193G:,:d 
    145194I:80:14:500 
    146 W:10:0:1:25 
     195W:10:0:1:90 
    147196A:100:10 to 100 
    148 F:EASY_KNOW 
    149 E:CURE_PARANOIA 
    150  
    151 N:8:Cure Confusion 
     197M:70:1d4 
     198F:EASY_KNOW 
     199E:CURE_MIND 
     200 
     201N:13:Mending 
    152202G:,:d 
    153 I:80:15:500 
    154 W:10:0:1:50 
    155 A:100:10 to 100 
    156 F:EASY_KNOW 
    157 E:CURE_CONFUSION 
    158  
    159 N:9:Weakness 
     203I:80:25:500 
     204W:10:0:1:100 
     205A:80:20 to 100 
     206M:70:1d4 
     207F:EASY_KNOW 
     208E:CURE_BODY 
     209 
     210## 14 
     211 
     212N:15:Cure Serious Wounds 
    160213G:,:d 
    161 I:80:6:500 
    162 W:10:0:1:0 
    163 A:100:10 to 100 
    164 F:EASY_KNOW 
    165 E:LOSE_STR 
    166  
    167 N:10:Unhealth 
     214I:80:16:500 
     215W:15:0:1:75 
     216A:90:15 to 35 
     217F:EASY_KNOW 
     218E:CURE_SERIOUS 
     219 
     220## Restoration 
     221 
     222N:16:Restore Strength 
    168223G:,:d 
    169 I:80:10:500 
    170 W:15:0:1:50 
    171 A:100:15 to 100 
    172 P:0:10d10:0:0:0 
    173 F:EASY_KNOW 
    174 E:LOSE_CON2 
    175 D:It may also be thrown to inflict 10d10 points of damage. 
    176  
    177 N:11:Restore Constitution 
     224I:80:17:500 
     225W:20:0:1:350 
     226A:100:20 to 50 
     227F:EASY_KNOW 
     228E:RESTORE_STR 
     229 
     230N:17:Restore Constitution 
    178231G:,:d 
    179232I:80:18:500 
    180233W:20:0:1:350 
    181 A:100:20 to 10
     234A:100:20 to 5
    182235F:EASY_KNOW 
    183236E:RESTORE_CON 
    184237 
    185 N:12:Restoring 
     238N:18:Restoring 
    186239G:,:d 
    187240I:80:19:500 
     
    191244E:RESTORE_ALL 
    192245 
    193 N:13:Stupidity 
     246## A stranger mushroom 
     247 
     248N:19:Second Sight 
    194249G:,:d 
    195 I:80:8:500 
    196 W:15:0:1:0 
    197 A:100:15 to 100 
    198 F:EASY_KNOW 
    199 E:LOSE_INT 
    200  
    201 N:14:Naivety 
    202 G:,:d 
    203 I:80:9:500 
    204 W:15:0:1:0 
    205 A:100:15 to 100 
    206 F:EASY_KNOW 
    207 E:LOSE_WIS 
    208  
    209 N:15:Poison 
    210 G:,:d 
    211 I:80:0:500 
    212 W:5:0:1:0 
    213 A:100:5 to 20 
    214 F:EASY_KNOW 
    215 E:POISON 
    216  
    217 N:16:Sickness 
    218 G:,:d 
    219 I:80:7:500 
    220 W:10:0:1:0 
    221 A:100:10 to 100 
    222 F:EASY_KNOW 
    223 E:LOSE_CON 
    224  
    225 N:17:Paralysis 
    226 G:,:d 
    227 I:80:5:500 
    228 W:20:0:1:0 
    229 A:100:20 to 100 
    230 F:EASY_KNOW 
    231 E:PARALYZE 
    232  
    233 N:18:Restore Strength 
    234 G:,:d 
    235 I:80:17:500 
    236 W:20:0:1:350 
    237 A:100:20 to 100 
    238 F:EASY_KNOW 
    239 E:RESTORE_STR 
    240  
    241 N:19:Disease 
    242 G:,:d 
    243 I:80:11:500 
    244 W:20:0:1:50 
    245 A:100:20 to 100 
    246 P:0:10d10:0:0:0 
    247 F:EASY_KNOW 
    248 E:LOSE_STR2 
    249 D:It may also be thrown to inflict 10d10 points of damage. 
    250  
    251 N:20:Cure Serious Wounds 
    252 G:,:d 
    253 I:80:16:500 
    254 W:15:0:1:75 
    255 A:100:15 to 100 
    256 F:EASY_KNOW 
    257 E:CURE_SERIOUS 
     250I:80:26:200 
     251W:0:0:1:1250 
     252A:20:15 to 100 
     253F:EASY_KNOW 
     254E:TMD_ESP 
     255 
     256 
     257## 20 
    258258 
    259259 
     
    276276I:80:36:2500 
    277277W:1:0:2:2 
    278 A:100:1 to 10
     278A:110:5 to 6
    279279M:100:2d3 
    280280F:EASY_KNOW 
     
    285285I:80:37:7500 
    286286W:5:0:3:10 
    287 A:100:25 to 100 
     287A:90:30 to 100 
    288288F:EASY_KNOW 
    289289E:FOOD_WAYBREAD 
  • trunk/src/defines.h

    r404 r415  
    444444        TMD_INVULN, TMD_HERO, TMD_SHERO, TMD_SHIELD, TMD_BLESSED, TMD_SINVIS, 
    445445        TMD_SINFRA, TMD_OPP_ACID, TMD_OPP_ELEC, TMD_OPP_FIRE, TMD_OPP_COLD, 
    446         TMD_OPP_POIS, TMD_AMNESIA, 
     446        TMD_OPP_POIS, TMD_AMNESIA, TMD_TELEPATHY, 
    447447 
    448448        TMD_MAX 
  • trunk/src/effects.c

    r414 r415  
    201201                } 
    202202 
    203                 case EF_CURE_POISON2: 
    204                 { 
    205                         if (set_timed(TMD_POISONED, p_ptr->timed[TMD_POISONED] / 2)) *ident = TRUE; 
    206                         return TRUE; 
    207                 } 
    208  
    209203                case EF_CURE_BLINDNESS: 
    210204                { 
     
    224218                        return TRUE; 
    225219                } 
     220 
     221                case EF_CURE_MIND: 
     222                { 
     223                        if (clear_timed(TMD_CONFUSED)) *ident = TRUE; 
     224                        if (clear_timed(TMD_AFRAID)) *ident = TRUE; 
     225                        return TRUE; 
     226                } 
     227 
     228                case EF_CURE_BODY: 
     229                { 
     230                        if (clear_timed(TMD_STUN)) *ident = TRUE; 
     231                        if (clear_timed(TMD_CUT)) *ident = TRUE; 
     232                        if (clear_timed(TMD_POISONED)) *ident = TRUE; 
     233                        if (clear_timed(TMD_BLIND)) *ident = TRUE; 
     234                        return TRUE; 
     235                } 
     236 
    226237 
    227238                case EF_CURE_LIGHT: 
     
    390401                        take_hit(damroll(5, 5), "stat drain"); 
    391402                        (void)do_dec_stat(stat); 
    392                         *ident = TRUE; 
    393  
    394                         return TRUE; 
    395                 } 
    396  
    397                 case EF_LOSE_STR2: 
    398                 { 
    399                         take_hit(damroll(10, 10), "poisonous food"); 
    400                         (void)do_dec_stat(A_STR); 
    401403                        *ident = TRUE; 
    402404 
     
    484486                        return TRUE; 
    485487                } 
     488 
     489                case EF_TMD_ESP: 
     490                { 
     491                        if (clear_timed(TMD_BLIND)) *ident = TRUE; 
     492                        if (inc_timed(TMD_TELEPATHY, 12 + damroll(6, 6))) 
     493                                *ident = TRUE; 
     494                        return TRUE; 
     495                } 
     496 
    486497 
    487498                case EF_ENLIGHTENMENT: 
  • trunk/src/effects.h

    r373 r415  
    3333        #include "effects.h" 
    3434 
    35         EFFECT(MAX, FALSE, NULL) 
     35        EF_MAX 
    3636} effect_type; 
    3737 
     
    5454 
    5555        EFFECT(CURE_POISON,    FALSE, "neutralizes poison") 
    56         EFFECT(CURE_POISON2,   FALSE, "halves the severity of any poisoning") 
    5756        EFFECT(CURE_BLINDNESS, FALSE, "cures blindness") 
    5857        EFFECT(CURE_PARANOIA,  FALSE, "removes your fear") 
    5958        EFFECT(CURE_CONFUSION, FALSE, "cures confusion") 
     59        EFFECT(CURE_MIND,      FALSE, "cures confusion and removes fear") 
     60        EFFECT(CURE_BODY,      FALSE, "heals cut damage, and cures stunning, poison and blindness") 
    6061 
    6162        EFFECT(CURE_LIGHT,     FALSE, "restores 2d8 hit points, heals some cut damage and cures blindness") 
     
    8990        EFFECT(LOSE_CON,       FALSE, "reduces your constitution with damage 5d5") 
    9091        EFFECT(LOSE_CHR,       FALSE, "reduces your intelligence with damage 5d5") 
    91         EFFECT(LOSE_STR2,      FALSE, "reduces your strength with damage 10d10") 
    9292        EFFECT(LOSE_CON2,      FALSE, "reduces your constitution with damage 10d10") 
    9393        EFFECT(RESTORE_STR,    FALSE, "restores your strength") 
     
    103103        EFFECT(TMD_INFRA,      FALSE, "extends your infravision by 50 feet for 4d25+100 turns") 
    104104        EFFECT(TMD_SINVIS,     FALSE, "allows you to see invisible things for 2d6+12 turns") 
     105        EFFECT(TMD_ESP,        FALSE, "gives you telepathy for 6d6+12 turns and cures blindness") 
    105106 
    106107        EFFECT(ENLIGHTENMENT,  FALSE, "completely lights up and magically maps the level") 
  • trunk/src/load.c

    r413 r415  
    143143 
    144144 
     145/* A wonderful savefile conversion function. Temporary only. */ 
     146void convert_kind(byte *tval, byte *sval) 
     147{ 
     148        switch (*tval) 
     149        { 
     150                case TV_FOOD: 
     151                { 
     152                        /* Cure Paranoia + Cure Confusion -> Clear Mind */ 
     153                        if (*sval == 15) *sval = 16; 
     154 
     155                        /* Sickness -> Weakness */ 
     156                        if (*sval == 7) *sval = 6; 
     157 
     158                        /* LoseWis -> Stupidity */ 
     159                        if (*sval == 9) *sval = 8; 
     160 
     161                        /* Paralysis -> Poison */ 
     162                        if (*sval == 5) *sval = 0; 
     163 
     164                        /* Disease -> Unhealth */ 
     165                        if (*sval == 11) *sval = 10; 
     166 
     167                        break; 
     168                } 
     169        } 
     170} 
     171 
     172 
    145173/* 
    146174 * The following functions are used to load the basic building blocks 
     
    316344        if (buf[0]) o_ptr->note = quark_add(buf); 
    317345 
     346 
     347        /* Convert tval/sval */ 
     348        convert_kind(&o_ptr->tval, &o_ptr->sval); 
    318349 
    319350        /* Lookup item kind */ 
  • trunk/src/xtra1.c

    r402 r415  
    649649        { TMD_POISONED,  S("Poisoned"),   TERM_ORANGE }, 
    650650        { TMD_PROTEVIL,  S("ProtEvil"),   TERM_L_GREEN }, 
     651        { TMD_TELEPATHY, S("ESP"),        TERM_L_BLUE }, 
    651652        { TMD_INVULN,    S("Invuln"),     TERM_L_GREEN }, 
    652653        { TMD_HERO,      S("Hero"),       TERM_L_GREEN }, 
     
    21192120                p_ptr->to_h += 12; 
    21202121                p_ptr->dis_to_h += 12; 
     2122                p_ptr->resist_fear = TRUE; 
    21212123        } 
    21222124 
     
    21282130                p_ptr->to_a -= 10; 
    21292131                p_ptr->dis_to_a -= 10; 
     2132                p_ptr->resist_fear = TRUE; 
    21302133        } 
    21312134 
    21322135        /* Temporary "fast" */ 
    21332136        if (p_ptr->timed[TMD_FAST]) 
    2134         { 
    21352137                p_ptr->pspeed += 10; 
    2136         } 
    21372138 
    21382139        /* Temporary "slow" */ 
    21392140        if (p_ptr->timed[TMD_SLOW]) 
    2140         { 
    21412141                p_ptr->pspeed -= 10; 
    2142         } 
     2142 
    21432143 
    21442144        /* Temporary see invisible */ 
    21452145        if (p_ptr->timed[TMD_SINVIS]) 
    2146         { 
    21472146                p_ptr->see_inv = TRUE; 
    2148         } 
    21492147 
    21502148        /* Temporary infravision boost */ 
    21512149        if (p_ptr->timed[TMD_SINFRA]) 
    2152         { 
    21532150                p_ptr->see_infra += 5; 
    2154         } 
    2155  
    2156  
    2157         /*** Special flags ***/ 
    2158  
    2159         /* Hack -- Hero/Shero -> Res fear */ 
    2160         if (p_ptr->timed[TMD_HERO] || p_ptr->timed[TMD_SHERO]) 
    2161         { 
    2162                 p_ptr->resist_fear = TRUE; 
    2163         } 
     2151 
     2152        /* Temporary telepathy */ 
     2153        if (p_ptr->timed[TMD_TELEPATHY]) 
     2154                p_ptr->telepathy = TRUE; 
     2155 
    21642156 
    21652157 
  • trunk/src/xtra2.c

    r404 r415  
    6262        { "You feel resistant to poison!", "You feel less resistant to poison", 0, 0, 0, MSG_RES_POIS }, 
    6363        { "You feel your memories fade.", "Your memories come flooding back.", 0, 0, 0, MSG_GENERIC }, 
     64        { "Your mind expands.", "Your horizons are once more limited.", 0, 0, PU_BONUS, MSG_GENERIC }, 
    6465}; 
    6566