Server:Faction

From The Al`Kabor Project Wiki
Jump to navigation Jump to search

This article will attempt to explain how faction works server-side to assist with understanding the various modifiers applied to characters between the base values and the ones you experience in-game.

In the source code, faction is found in /common/faction.h and /common/faction.cpp. Faction is calculated in the CalculateFaction function, where

character_value += base value + class modifier + race modifier + deity modifier

Faction Properties

Property Data Type Description
id int32 database identifier
mods std::map<std::string, int16>
base int16
name char array 50
see_illusion bool Determines whether the faction will see through racial illusion spells
min_cap int16
max_cap int16

Faction Modifiers

The FactionMod struct defined in /common/faction.h defines the following members:

  • int32 base
  • int32 class_mod
  • int32 race_mod
  • int32 deity_mod

Faction Value Ranges

Min Cap Max Cap Level
>= 2000 - FACTION_MAX_ALLY = 0
>= 1100 - FACTION_ALLY = 1
>= 750 <= 1099 FACTION_WARMLY = 2
>= 500 <= 749 FACTION_KINDLY = 3
>= 100 <= 499 FACTION_AMIABLY = 4
>= 0 <= 99 FACTION_INDIFFERENTLY = 5
>= -100 <= -1 FACTION_APPREHENSIVELY = 6
>= -500 <= -101 FACTION_DUBIOUSLY = 7
>= -750 <= -501 FACTION_THREATENINGLY = 8
- <= -751 FACTION_SCOWLS = 9
- <= -2000 FACTION_MAX_SCOWLS = 10