MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // MorgenGrauen MUDlib |
| 2 | // |
| 3 | // shells/hobbit.c -- Hobbit Shell |
| 4 | // |
| 5 | // 9.April 1995 V1.0 Gundur |
| 6 | // |
| 7 | // 15.Juni prayroom und defHome auf Hobbitdorf gesetzt von Gundur |
| 8 | // |
| 9 | // $Id: hobbit.c 8920 2014-09-02 20:18:38Z Zesstra $ |
| 10 | |
| 11 | #pragma strong_types,save_types |
| 12 | |
| 13 | inherit "std/player/base"; |
| 14 | |
| 15 | #include <properties.h> |
| 16 | #include <attributes.h> |
| 17 | #include <wizlevels.h> |
| 18 | #include <health.h> |
| 19 | #include <new_skills.h> |
| 20 | #include <language.h> |
| 21 | #include <combat.h> |
| 22 | #include <moving.h> |
| 23 | #include <defuel.h> |
| 24 | |
| 25 | |
| 26 | |
| 27 | void create(){ |
| 28 | if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) { |
| 29 | set_next_reset(-1); |
| 30 | return; |
| 31 | } |
| 32 | |
| 33 | mixed res; |
| 34 | |
| 35 | base::create(); |
| 36 | SetDefaultHome("/d/wald/gundur/hobbitdorf/schrein"); |
| 37 | SetDefaultPrayRoom("/d/wald/gundur/hobbitdorf/schrein"); |
| 38 | SetProp(P_ATTRIBUTES_OFFSETS,([A_DEX:4,A_CON:2])); |
| 39 | SetProp(P_AVERAGE_SIZE, 105); |
| 40 | SetProp(P_AVERAGE_WEIGHT, 60000); |
| 41 | SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_EATABLE:30, |
| 42 | MATGROUP_DRUG:30, |
| 43 | MATGROUP_POISONOUS:10])); |
| 44 | SetProp(P_RESISTANCE_STRENGTHS, |
| 45 | ([ DT_TERROR : -0.1, |
| 46 | DT_MAGIC : -0.1, |
| 47 | DT_SOUND : 0.2, |
| 48 | DT_LIGHTNING : 0.1, |
| 49 | DT_POISON : 0.1 ])); |
| 50 | SetProp(P_MAX_FOOD,250); |
| 51 | SetProp(P_MAX_DRINK,100); |
| 52 | SetProp(P_MAX_ALCOHOL,150); |
| 53 | |
| 54 | SetProp(P_SP_DELAY,HEAL_DELAY+1); |
| 55 | SetProp(P_POISON_DELAY,POISON_DELAY-1); |
| 56 | SetProp(P_FOOD_DELAY,FOOD_DELAY-2); |
| 57 | SetProp(P_ALCOHOL_DELAY,ALCOHOL_DELAY+1); |
| 58 | |
| 59 | SetProp(P_MAGIC_RESISTANCE_OFFSET, |
| 60 | ([ MT_ANGRIFF : 500, |
| 61 | MT_HELLSICHT : -500, |
| 62 | MT_PSYCHO : -500 ])); |
| 63 | |
| 64 | if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3)) |
| 65 | res=({" mit pelzigen Haenden",25,({DT_BLUDGEON})}); |
| 66 | res[1]=25; |
| 67 | SetProp(P_HANDS,res); |
| 68 | SetProp(P_BODY,15); |
| 69 | |
| 70 | /* Groesse wird nur einmal gesetzt */ |
| 71 | if(!QueryProp(P_SIZE)){ |
| 72 | SetProp(P_SIZE,95+random(21)); |
| 73 | Set(P_SIZE,SAVE,F_MODE_AS); |
| 74 | } |
| 75 | |
| 76 | /* Dito Gewicht */ |
| 77 | if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){ |
| 78 | SetProp(P_WEIGHT,50000+random(20001)); |
| 79 | if(QueryProp(P_GENDER)==FEMALE) |
| 80 | SetProp(P_WEIGHT,QueryProp(P_WEIGHT)-5000); |
| 81 | Set(P_WEIGHT,SAVE,F_MODE_AS); |
| 82 | } |
| 83 | SetProp(P_DEFUEL_LIMIT_FOOD,140); |
| 84 | SetProp(P_DEFUEL_LIMIT_DRINK,50); |
| 85 | SetProp(P_DEFUEL_TIME_FOOD,850); |
| 86 | SetProp(P_DEFUEL_TIME_DRINK,450); |
| 87 | SetProp(P_DEFUEL_AMOUNT_FOOD,0.8); |
| 88 | SetProp(P_DEFUEL_AMOUNT_DRINK,0.6); |
| 89 | |
| 90 | } |
| 91 | |
| 92 | string _query_race() |
| 93 | { |
| 94 | return "Hobbit"; |
| 95 | } |
| 96 | |
| 97 | string _query_real_race() |
| 98 | { |
| 99 | return "Hobbit"; |
| 100 | } |
| 101 | |
| 102 | string _query_racedescr() |
| 103 | { |
| 104 | return "Hobbits sind kleine Wesen, die am ehesten den Menschen aehneln.\n"+ |
| 105 | "Sie zeichnen sich trotz Ihrer Groesse durch ihren Mut und Standfestigkeit "+ |
| 106 | "aus.\nObwohl sie viel lieber zuhause vorm warmen Kamin sitzen, sind sie "+ |
| 107 | "immer\nfuer ein Abenteuer zu haben.\n"; |
| 108 | } |
| 109 | |
| 110 | int QueryAllowSelect() { return 1; } |
| 111 | |
| 112 | string *_query_racestring(){ |
| 113 | if (QueryProp(P_GENDER) == FEMALE) |
| 114 | return ({"Hobbitfrau","Hobbitfrau","Hobbitfrau","Hobbitfrau"}); |
| 115 | return ({"Hobbit","Hobbits","Hobbit","Hobbit"}); |
| 116 | } |
| 117 | |
| 118 | string _query_default_guild(){ |
| 119 | return "abenteurer"; |
| 120 | } |
| 121 | |
| 122 | void FinalSetup() { |
| 123 | if(!present("pfeifchen",this_object())) |
| 124 | clone_object("/items/pfeifchen")->move(this_object(),M_NOCHECK); |
| 125 | } |
| 126 | |
| 127 | mixed RaceDefault(string arg) |
| 128 | { |
| 129 | if (!arg) |
| 130 | return 0; |
| 131 | switch(arg) |
| 132 | { |
| 133 | case P_HANDS : |
| 134 | return ({" mit pelzigen Haenden",25,({DT_BLUDGEON}) }); |
| 135 | case P_BODY : |
| 136 | return 15; |
| 137 | } |
| 138 | return base::RaceDefault(arg); |
| 139 | } |