All pastes #496164 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-19 02:49 UTC
rendered paste body
Index: /trunk/dawn/starter.mmo/genesis/dbdict.py
===================================================================
--- /trunk/dawn/starter.mmo/genesis/dbdict.py (revision 5)
+++ /trunk/dawn/starter.mmo/genesis/dbdict.py (revision 150)
@@ -1358,5 +1358,5 @@
         self.damage.append((stage,type,amount))
         
-    def addStat(self,stage,stat,value):
+    def addStat(self,stage,stat,value,skillMod = ""):
         if stat == 'slow' and value < 0:
             value = -value
@@ -1364,5 +1364,5 @@
             value = -value
             
-        self.stats.append((stage,stat,value))
+        self.stats.append((stage,stat,value,skillMod))
         
     def addPermanentStat(self,stat,value):
@@ -1398,5 +1398,5 @@
             
         for st in self.stats:
-            EffectStat(stage = st[0],statname=st[1],value=st[2],effectProto=proto)
+            EffectStat(stage = st[0],statname=st[1],value=st[2],skillMod=st[3],effectProto=proto)
 
         for st in self.permStats:
Index: /trunk/dawn/mud/world/effect.py
===================================================================
--- /trunk/dawn/mud/world/effect.py (revision 2)
+++ /trunk/dawn/mud/world/effect.py (revision 150)
@@ -104,4 +104,5 @@
     value = FloatCol()
     stage = IntCol()
+    skillMod = StringCol()
     effectProto = ForeignKey('EffectProto')
 
@@ -772,5 +773,5 @@
 
 class Effect:
-    def __init__(self,parent,src,dst,proto,time,mod=1.0,fromStore=False):
+    def __init__(self,parent,src,dst,proto,time,mod=1.0,fromStore=False,skillMult=""):
         self.effectProto = proto
         self.time = time
@@ -825,6 +826,11 @@
                         if src.player:
                             src.player.sendGameText(RPG_MSG_GAME_DENIED,"%s's casting has been interrupted!\\n"%(src.name))
-
-                value = st.value*self.mod
+                            
+                if st.skillMod != "":
+                    mod = src.skillLevels.get(st.skillMod,1.0)
+                    value = st.value*mod
+                else:
+                    value = st.value*self.mod
+
                 if not fromStore and st.statname == 'health' and value < 0:
                     if dst.player and value < -24000:
@@ -882,5 +888,9 @@
             for st in proto.stats:
                 if st.stage == RPG_EFFECT_STAGE_BEGIN:
-                    value = st.value*self.mod
+                    if st.skillMod != "":
+                        mod = src.skillLevels.get(st.skillMod,1.0)
+                        value = st.value*mod
+                    else:
+                        value = st.value*self.mod
                     if st.statname == 'health' and value < 0:
                         if dst.player and value < -24000: