コード例 #1
0
ファイル: gods.cpp プロジェクト: AdrianGin/ivan
void mortifer::Pray()
{
  LastPray = 0;
  if(!Timer && Relation == 1000)
  {
    ADD_MESSAGE("You feel %s is very pleased.", GetName());
    PrayGoodEffect();
    AdjustTimer(100000);
    AdjustRelation(-500);
    game::ApplyDivineAlignmentBonuses(this, 100, true);
    PLAYER->EditExperience(WISDOM, 400, 1 << 11);

    if(Relation > 250 && !(RAND() % 2))
    {
      character* Angel = CreateAngel(PLAYER->GetTeam());

      if(Angel)
        ADD_MESSAGE("%s seems to be very friendly towards you.", Angel->CHAR_DESCRIPTION(DEFINITE));
    }
  }
  else
  {
    ADD_MESSAGE("You feel you are not yet worthy enough for %s.", GetName());
    PrayBadEffect();
    AdjustTimer(50000);
    AdjustRelation(-100);
    game::ApplyDivineAlignmentBonuses(this, 20, false);
    PLAYER->EditExperience(WISDOM, -50, 1 << 10);

    if(Relation < -250 && !(RAND() % 3))
    {
      character* Angel = CreateAngel(game::GetTeam(4), 10000);

      if(Angel)
        ADD_MESSAGE("%s seems to be hostile.", Angel->CHAR_DESCRIPTION(DEFINITE));
    }
  }
}
コード例 #2
0
ファイル: gods.cpp プロジェクト: harmonise/ivan-f
void atavus::PrayGoodEffect()
{
  if(!Timer && Relation > 500 + RAND_N(500))
  {
    item* Reward = bodyarmor::Spawn(PLATE_MAIL, NO_MATERIALS);
    Reward->InitMaterials(MAKE_MATERIAL(ARCANITE));
    ADD_MESSAGE("%s materializes before you.", Reward->CHAR_NAME(INDEFINITE));
    PLAYER->GetGiftStack()->AddItem(Reward);
    AdjustTimer(45000);
    AdjustRelation(-300);
  }
  else
    ADD_MESSAGE("Nothing happens.");
}