blob: 2e26294e86c379ec1de9442440f588c73790bb99 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// armour/description.c -- armour description handling
4//
5// $Id: description.c 6306 2007-05-20 11:32:03Z Zesstra $
6
7#pragma strict_types
8#pragma save_types
9#pragma no_clone
10#pragma pedantic
11#pragma range_check
12
13inherit "/std/clothing/description";
14
15//#define NEED_PROTOTYPES
16
17#include <properties.h>
18
19string dam_descr()
20{ string re;
21 mixed desc;
22 int maximum,dam,pos;
23
24 if (!QueryProp(P_NAME) || !QueryProp(P_DAMAGED) || !QueryProp(P_SHORT) ||
25 !(desc=QueryProp(P_DAM_DESC)) || (!stringp(desc) && !pointerp(desc)))
26 return "";
27 re = capitalize(name(WER,2))+" ";
28 maximum = QueryProp(P_AC)+(dam=QueryProp(P_DAMAGED));
29 if (stringp(desc))
30 return (dam>(maximum/2))?(re+desc+".\n"):"";
31 if (maximum==dam)
32 pos=sizeof(desc)-1;
33 else
34 pos = (sizeof(desc)*dam/maximum);
35 if (stringp(desc[pos]))
36 return (re+desc[pos]+".\n");
37 return "";
38}
39
40
41mapping _query_material() {
42 mixed res,at;
43
44 if (mappingp(res=Query(P_MATERIAL)))
45 return res;
46 at=QueryProp(P_ARMOUR_TYPE);
47 switch(at) {
48 case AT_ARMOUR:
49 case AT_HELMET:
50 case AT_RING:
51 case AT_AMULET:
52 case AT_SHIELD:
53 return ([MAT_MISC_METAL:100]);
54 case AT_CLOAK:
55 case AT_TROUSERS:
56 return ([MAT_CLOTH:100]);
57 case AT_GLOVE:
58 case AT_BOOT:
59 return ([MAT_LEATHER:100]);
60 }
61 return ([MAT_LEATHER:100]);
62}