Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/std/living/std_skills.c b/std/living/std_skills.c
new file mode 100644
index 0000000..d132efc
--- /dev/null
+++ b/std/living/std_skills.c
@@ -0,0 +1,104 @@
+// MorgenGrauen MUDlib
+//
+// living/std_skills.c -- Standardfaehigkeiten
+//
+// $Id: std_skills.c 6673 2008-01-05 20:57:43Z Zesstra $
+#pragma strong_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#define NEED_PROTOTYPES
+#include <living/skills.h>
+#include <living/skill_attributes.h>
+#include <thing/properties.h>
+#include <attributes.h>
+#undef NEED_PROTOTYPES
+#include <properties.h>
+#include <new_skills.h>
+
+#define SIG(x) (x?(x>0?1:-1):0)
+
+protected int StdSkill_Nightvision(object me, string sname, mixed sinfo) {
+ int abil,light,llt,dt,res;
+
+ if (!sinfo || !environment()) return 0;
+ if (intp(sinfo)) sinfo=([SI_SKILLABILITY:sinfo]);
+ if (!mappingp(sinfo)) return 0;
+ if ((light=QueryProp(P_PLAYER_LIGHT))>0) {
+ ModifySkill(sname,([SI_LASTLIGHT:time()]));
+ return light;
+ }
+ abil=sinfo[SI_SKILLABILITY];
+ if (!(llt=sinfo[SI_LASTLIGHT])) {
+ ModifySkill(sname,([SI_LASTLIGHT:time()]));
+ dt=0;
+ } else {
+ dt=time()-llt;
+ if (dt<0) dt=0;
+ if (dt>86400) dt=86400;
+ }
+
+ res=(abil*dt)/(20*MAX_ABILITY)+light;
+ if (res<=0) {
+ res--; // Wert muss !=0 sein
+ if (res<-MAX_ABILITY) res=-MAX_ABILITY;
+ } else {
+ if (res>MAX_ABILITY) res=MAX_ABILITY;
+ }
+ return res;
+}
+
+protected mapping StdSkill_Bihand(object me, string sname, mapping sinfo) {
+ int abil,val;
+
+ // printf("Bihand: %O\n",sinfo);
+ if (!sinfo) return 0;
+ abil=sinfo[SI_SKILLABILITY];
+ val=(abil*(QueryAttribute(A_STR)+33))/MAX_ABILITY;
+ val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
+ sinfo[SI_SKILLDAMAGE]+=val;
+ // + max. 53
+ return sinfo;
+}
+
+protected mapping StdSkill_Fight_sword(object me, string sname, mapping sinfo) {
+ int abil,asig,val;
+
+ abil=sinfo[SI_SKILLABILITY];asig=SIG(abil);
+ val=(abil*(QueryAttribute(A_STR) +
+ QueryAttribute(A_DEX)*asig +
+ 33))/MAX_ABILITY;
+ val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
+ sinfo[SI_SKILLDAMAGE]+=val;
+ // + max. 73
+ return sinfo;
+}
+
+protected mapping StdSkill_Fight_hands(object me, string sname, mapping sinfo) {
+ int abil,asig,val;
+
+ if (!sinfo) return 0;
+ abil=sinfo[SI_SKILLABILITY];asig=SIG(abil);
+ val=(abil*(QueryAttribute(A_STR) +
+ QueryAttribute(A_DEX)*3*asig +
+ 100))/MAX_ABILITY;
+ val=(val*QuerySkillAttribute(SA_DAMAGE))/100;
+ sinfo[SI_SKILLDAMAGE]+=val;
+ // + max. 180
+ return sinfo;
+}
+
+protected int StdSkill_Booze(object me, string sname, mapping sinfo) {
+ int abil,val;
+
+ val=0;
+ if (!sinfo || (val=sinfo[SI_SKILLARG])<=0)
+ return val;
+ abil=sinfo[SI_SKILLABILITY];
+ val-=(val*abil)/(MAX_ABILITY+2500); // Bis zu 80% Abzug bei Alkoholikern.
+ if (val<=0) val=1;
+ return val;
+}
+