P_LIGHT_MODIFIER

NAME

P_LIGHT_MODIFIER                     "light_modifier"

DEFINIERT IN

/sys/properties.h

BESCHREIBUNG

Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird.
Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt.
Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese
veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur
die Sicht.

ANMERKUNG

Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen,
sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt,
auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs
oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig.

BEISPIELE

// Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2
// noch sehen kann...
create_default_npc(10);
SetProp(P_LIGHT_MODIFIER, 3);

// Eine Sonnenbrille, die das Lichtlevel um eins senkt.

create()
{

   :

   SetProp(P_ARMOUR_TYPE, AT_GLASSES);
   SetProp(P_LIGHT_MODIFIER, -1);

   :

}

// Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat,
// wird diese Methode hier furchtbar schief gehen und im besten Fall
// nichts veraendern. In realen Objekten empfiehlt sich zumindest eine
// Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist.
protected void InformWear(object pl, int silent, int all) {
    pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1);
}

protected void InformUnwear(object pl, int silent, int all) {
    pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1);
}

SIEHE AUCH

P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()