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: