DoEvilDeed
Coding: This article contains code which is for experienced users only, and may reveal game secrets
DoEvilDeed is a function called to add to tip the player's alignment toward chaotic.
The primary means of doing evil is murdering innocent people.
void game::DoEvilDeed(int Amount) { if(!Amount) return; for(int c = 1; c <= GODS; ++c) { int Change = Amount - Amount * GetGod(c)->GetAlignment() / 5; if(!IsInWilderness() && Player->GetLSquareUnder()->GetDivineMaster() == c) if(GetGod(c)->GetRelation() - (Change << 1) < -750) { if(GetGod(c)->GetRelation() > -750) GetGod(c)->SetRelation(-750); } else if(GetGod(c)->GetRelation() - (Change << 1) > 750) { if(GetGod(c)->GetRelation() < 750) GetGod(c)->SetRelation(750); } else GetGod(c)->SetRelation(GetGod(c)->GetRelation() - (Change << 1)); else if(GetGod(c)->GetRelation() - Change < -500) { if(GetGod(c)->GetRelation() > -500) GetGod(c)->SetRelation(-500); } else if(GetGod(c)->GetRelation() - Change > 500) { if(GetGod(c)->GetRelation() < 500) GetGod(c)->SetRelation(500); } else GetGod(c)->SetRelation(GetGod(c)->GetRelation() - Change); } }
Doing Evil
Murdering people is the primary means of doing evil and making your character more chaotic:
if(DeathFlags & FORCE_DEATH || IsDead()) { if(Murderer && Murderer->IsPlayer() && GetTeam()->GetKillEvilness()) game::DoEvilDeed(GetTeam()->GetKillEvilness());
How evil it is to kill a character is determined by what "team" they are on:
- Attnamese = 50
- Betrayed pets = 10
- Dungeon shopkeeper faction = 100
- Ivan and Vlad = 100
- Monsters = 0
- New Attnam natives = 50
- New Attnam tourists = 10
- Richel Decos faction = 0
Other than murder, certain actions are considered evil. They are listed here with their evil values:
- Attacking with certain weapons:
- Chameleon whip = 20
- Mjolak = 10
- Neerc Se-ulb = 10
- Whip of thievery = 10
- Eating certain materials:
- Necromancy or resurrection = 50