blob: 2409c79a5f503996b5cfa39e6a897d07e65ba3c3 [file] [log] [blame]
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()