Difference between revisions of "Sadist"

From IvanWiki
Jump to navigation Jump to search
m
Line 33: Line 33:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
== Sadists ==
 +
*All types of [[dark mage]]
 +
*All types of [[guard]]
 +
*All types of [[mistress]]
 +
*All types of [[necromancer]]
 +
*All types of [[orc]]
 +
*All [[shopkeeper]]s
 +
*[[Angel]] of [[Cleptia]]
 +
*[[Angel]] of [[Cruentus]]
 +
*[[Angel]] of [[Infuscor]]
 +
*[[Angel]] of [[Mellis]]
 +
*[[Angel]] of [[Mortifer]]
 +
*[[Angel]] of [[Nefas]]
 +
*[[Angel]] of [[Scabies]]
 +
*[[Banana grower encourager]]
 +
*Black [[unicorn]]
 +
*[[Dark knight]]
 +
*[[Hunter]]
 +
*[[Orc]]
 +
*[[Oree]] the blood daemon king
 +
*[[Punisher]]
 +
*[[Richel Decos]]
 +
*[[Rondol]] the [[kobold]] patriarch
 +
  
 
[[category:Game Mechanics]]
 
[[category:Game Mechanics]]

Revision as of 12:05, 17 September 2014

Coding: This article contains code which is for experienced users only, and may reveal game secrets


IsSadist is a char.dat tag that designates the character as a sadist. A sadist character equipped with a sadist weapon (belt, whip, banana, banana peel, broken bottle, nut, bodypart) will randomly attack allied masochistic characters.

truth character::CheckSadism()
{
  if(!IsSadist() || !HasSadistAttackMode() || !IsSmall()) // gum
    return false;

  if(!RAND_N(10))
  {
    for(int d = 0; d < 8; ++d)
    {
      square* Square = GetNeighbourSquare(d);

      if(Square)
      {
	character* Char = Square->GetCharacter();

	if(Char && Char->IsMasochist() && GetRelation(Char) == FRIEND
	   && Char->GetHP() * 3 >= Char->GetMaxHP() * 2
	   && Hit(Char, Square->GetPos(), d, SADIST_HIT))
	{
	  TerminateGoingTo();
	  return true;
	}
      }
    }
  }

  return false;
}

Sadists