Crossfire Server, Branches 1.12  R18729
Disease

Description

Diseases are an interesting form of spellcraft in Crossfire. Once casted, they can spread out and infect creatures in a large area. Being infected can have various effects, from amusing farts to horrible damage - almost everything is possible.

Type defined by:

Attributes

Attribute Field Description
attacktype obj::attacktype The disease will attack the host with the given <attacktype>. Godpower attacktype is commonly used for "unresistable" diseases.
attenuation obj::last_grace The <attenuation> value reduces the diseases' <infectiousness> every time it infects someone new. This limits how many generations a disease can propagate.
block view FLAG_BLOCKSVIEW If an item is set to block view, players (and monsters) cannot see beyond it unless they cross it or manage to stand on top.
charisma liv::Cha The player's charisma will rise by the given value while being infected. (Negative values make charisma fall)
constitution liv::Con The player's constitution will rise by the given value while being infected. (Negative values make constitution fall)
create arch obj::other_arch

If set, the specified arch is created and dropped every time the symptoms strike.

This can be various things: farts, body pieces, eggs ... Even monsters can be created that way. You could also make a disease where some exotic stuff like money/gems is created.

curing duration liv::maxgrace

The disease will last in the host for <curing duration> "disease moves" (Assuming the host survives and doesn't use a curing spell). After this period the disease is naturally cured, which provides the host with immunity from this particular disease of lower or equal level.

A negative value means the disease can never be cured naturally.

Note that this value can be further modulated by spell-parameters, if the disease is registered as spell in the code. Due to that, most default diseases take a lot longer to cure than it seems.

damage liv::dam

A disease with a positive <damage> value will strike the player for that amount of damage every time the symptoms occur. A negative <damage> value produces %-based damage: "&lt;damage&gt; -10" means the player's health is reduced by 10% every time the symptoms strike.

Diseases with %-based damage can be dangerous - but not deadly - for players of all levels.

dexterity liv::Dex The player's dexterity will rise by the given value while being infected. (Negative values make dexterity fall)
elevation obj::elevation The elevation (height above sea level) of this tile. It is used for weather calculations and should be in the range -32000..32000. The elevation of a tile must be set in the bottom-most game object; elevation values for non-bottom-most game objects are ignored by the Crossfire server.
exp. for curing liv::exp When the player manages to cure this disease (with a curing spell), he is awarded with <exp. for curing> experience.
food depletion obj::last_eat Every time the disease "moves", the player's food is reduced by the value of <food depletion>. For negative values, a %-based amount is taken.
glow radius obj::glow_radius If <glow radius> is set to a value greater zero, the object appears lit up on dark maps. <glow radius> can be a value between 0 and 4, the higher, the more light does the object emit.
health regen. liv::hp This value increases the player's healing rate. Negative values decrease it.
identified FLAG_IDENTIFIED If an item is identified, the player has full knowledge about it.
image obj::face The image-name defines what image is displayed for this object in-game.
infect race obj::race The disease will only infect creatures of the specified <race>. "&lt;race&gt; *" means every creature can be infected.
infection range obj::magic <infection range> sets the range at which infection may occur. If positive, the <infection range> is level dependant - If negative, it is not: E.g. "&lt;infection range&gt; -6" means creatures can be infected in six square range, and <plaque level> doesn't modify that.
infectiousness liv::wc

The <infectiousness> defines the chance of new creatures getting infected. If you set this too high, the disease is very likely to be too effective.

<infectiousness>/127 is the chance of someone in range catching it.

intelligence liv::Int The player's intelligence will rise by the given value while being infected. (Negative values make intelligence fall)
invisible obj::invisible Generally makes the object invisible. Depending on the object-type, some can be made visible by the show_invisible spell. If in doubt, test it. Putting an invisible object under the floor always prevents it from being shown.
mana depletion liv::maxsp Every time the disease "moves", the player's mana is reduced by the value of <mana depletion>. For negative values, a %-based amount is taken.
mana regen. liv::sp This value increases the player's rate of mana regeneration. Negative values decrease it.
material obj::material This bitmask-value informs the player of which material(s) the object consists. Material does also affect how likely the object can be destroyed by hazardous spell-effects.
message obj::msg This text is displayed to the player every time the symptoms strike.
moving speed obj::speed The <speed> of the disease determines how fast the disease will "move", thus how fast the symptoms strike the host.
name obj::name This is the name of the object, displayed to the player.
non-pickable FLAG_NO_PICK If set, the object cannot be picked up (Neither by players nor monsters).
number obj::nrof This value determines the number of objects in one stack (for example: 100 gold coins => "number = 100"). You should set this at least to one, for any pickable object - otherwise it won't be mergeable into a stack.
persistence liv::maxhp <persistence> defines how long the disease can persist OUTSIDE a host. The disease can "move" <persistence> times outside a host before it vanishes. A negative value means the disease lasts for permanent (which is only recommended to use in maps without monsters).
plaque level obj::level The <plaque level> is proportional to the disease's deadliness. This mainly reflects in the <damage>. It has no effect on most other symptoms. Nevertheless, it is a very important value for all damage-inflicting diseases.
plural name obj::name_pl This is the plural name of the object. A plural name must be set for all items that can be picked up and collected by the player.
power liv::Pow The player's power will rise by the given value while being infected. (Negative values make power fall)
progressiveness liv::ac Every time the disease "moves" the severity of the symptoms are increased by <progressiveness>/100. (severity = 1 + (accumulated progression)/100)
slowdown penalty obj::last_sp If set, the disease imposes a <slowdown penalty> while being infected. The player's speed is reduced by <slowdown penalty> % of normal value.
smooth level obj::smoothlevel If <smooth level> is set to a value greater zero, the object will be drawn partially over adjacent squares having a lower <smooth level> value. The value must be between 0 and 255 (inclusive); 0 means "never overlap adjacent squares".
strength liv::Str The player's strength will rise by the given value while being infected. (Negative values make strength fall)
title obj::title This is the object's title. Once an object is identified the title is attached to the name. Typical titles are "of Mostrai", "of xray vision" etc.
unpaid FLAG_UNPAID An <unpaid> item cannot be used unless a player carried it over a shop mat, paying the demanded price. Setting this flag makes sense only for pickable items inside shops.
value obj::value Adds a certain value to the object: It will be worth that many times the default value from it's archetype (E.g. "value = 3" means three times worth the default value). Value for buying/selling will be further modified by various factors. Hence, testing values in-game is usually inevitable.
weight obj::weight This value defines the object's weight in grams (1000g is 1kg). Objects with zero weight are not pickable for players. Still, set the "non-pickable"-flag for explicitly non-pickable objects (hey, this is opensource.. you never know ;) ).
wisdom liv::Wis The player's wisdom will rise by the given value while being infected. (Negative values make wisdom fall)