Пример #1
0
void i_azoth(pob o)
{
    if (o->plus < 0) {
        mprint("The mercury was poisonous!");
        p_poison(25);
    }
    else if (o->plus == 0) {
        mprint("The partially enchanted azoth makes you sick!");
        Player.con = ((int) (Player.con / 2));
        calc_melee();
    }
    else if (o->blessing < 1) {
        mprint("The unblessed azoth warps your soul!");
        Player.pow = Player.maxpow = ((int) (Player.maxpow / 2));
        level_drain(random_range(10),"cursed azoth");
    }
    else {
        mprint("The azoth fills you with cosmic power!");
        if (Player.str > Player.maxstr*2) {
            mprint("The power rages out of control!");
            p_death("overdose of azoth");
        }
        else {
            heal(10);
            cleanse(1);
            Player.mana = calcmana()*3;
            toggle_item_use(TRUE);
            Player.str = (Player.maxstr++)*3;
            toggle_item_use(FALSE);
        }
    }
}
Пример #2
0
void i_perm_negimmune(pob o)
{
    if (o->blessing > -1) {
        if (o->used) {
            Player.immunity[NEGENERGY]++;
        }
        else Player.immunity[NEGENERGY]--;
    }
    else if (o->used)
        level_drain(abs(o->blessing),"cursed cloak of level drain");
}
Пример #3
0
void weapon_desecrate(int dmgmod, pob o, pmt m)
{
  o->known = 2;
  if (Player.alignment < 0) {
    mprint("Your opponent screams in agony!");
    p_hit(m,Player.dmg+dmgmod,UNSTOPPABLE);
    Player.alignment--;
    if (Player.hp < Player.maxhp) {
      mprint("You feel a thrill of power surging up your blade!");
      Player.hp = min(Player.maxhp,Player.hp+Player.dmg+dmgmod);
    }
  }
  else {
    mprint("Your blade turns in your hands and hits you!");
    mprint("You hear evil laughter....");
    level_drain(Player.dmg,"the sword Desecrator");
    Player.alignment-=10;
    mprint("A strange force spreads from the wound throughout your body...");
    mprint("You feel much more chaotic now.");
  }
}