blob: b1e73ad9e9b23cc21090ca6442d46d37486e6185 [file] [log] [blame]
// MorgenGrauen MUDlib
//
// armour/container_description.c -- armour_container description handling
//
// $Id: container_description.c 6306 2007-05-20 11:32:03Z Zesstra $
#pragma strict_types
#pragma save_types
#pragma pedantic
#pragma range_check
#pragma no_clone
inherit "/std/clothing/container_description";
#define NEED_PROTOTYPES
#include <thing/properties.h>
#include <thing/description.h>
#include <thing/language.h>
#include <container.h>
#include <combat.h>
#include <thing/material.h>
#include <defines.h>
#include <wizlevels.h>
#include <player/base.h>
string dam_descr() {
string re;
mixed desc;
int maximum,dam,pos;
if (!QueryProp(P_NAME) || !QueryProp(P_DAMAGED) || !QueryProp(P_SHORT) ||
!(desc=QueryProp(P_DAM_DESC)) || (!stringp(desc) && !pointerp(desc)))
return "";
re = capitalize(name(WER,2))+" ";
maximum = QueryProp(P_AC)+(dam=QueryProp(P_DAMAGED));
if (stringp(desc))
return (dam>(maximum/2))?(re+desc+".\n"):"";
pos = (sizeof(desc)*dam/maximum);
if (stringp(desc[pos]))
return (re+desc[pos]+".\n");
return "";
}
mapping _query_material() {
mixed res,at;
if (mappingp(res=Query(P_MATERIAL)))
return res;
at=QueryProp(P_ARMOUR_TYPE);
switch(at) {
case AT_ARMOUR:
case AT_HELMET:
case AT_RING:
case AT_AMULET:
case AT_SHIELD:
return ([MAT_MISC_METAL:100]);
case AT_CLOAK:
case AT_TROUSERS:
return ([MAT_CLOTH:100]);
case AT_GLOVE:
case AT_BOOT:
return ([MAT_LEATHER:100]);
}
return ([MAT_LEATHER:100]);
}