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