Instructions Jenkins Doxygen

[changed] Dots can now damage more than one attribute at a percent of 50/750/4
authorPete <elpete@swgemu.com>
Wed, 4 Sep 2013 20:17:29 +0000 (15:17 -0500)
committergerrit <gerrit@review.swgemu.com>
Thu, 12 Sep 2013 22:16:15 +0000 (22:16 +0000)
dmg

Change-Id: I7bbfde0bcfd2d89158ca698a15266641c23f9e8a

MMOCoreORB/bin/scripts/commands/commands.lua
MMOCoreORB/bin/scripts/commands/flameSingle1.lua
MMOCoreORB/src/server/zone/managers/combat/CombatManager.cpp
MMOCoreORB/src/server/zone/objects/creature/CreatureObject.cpp
MMOCoreORB/src/server/zone/objects/creature/CreatureObject.h
MMOCoreORB/src/server/zone/objects/creature/CreatureObject.idl
MMOCoreORB/src/server/zone/objects/creature/commands/effect/DotEffect.h
MMOCoreORB/src/server/zone/objects/creature/damageovertime/DamageOverTime.cpp
MMOCoreORB/src/server/zone/objects/creature/damageovertime/DamageOverTime.h
MMOCoreORB/src/server/zone/objects/creature/damageovertime/DamageOverTimeList.cpp
MMOCoreORB/src/server/zone/objects/creature/damageovertime/DamageOverTimeList.h

index 92506d7..783d57d 100644 (file)
@@ -12,7 +12,7 @@ function StateEffect(t, et, dm, jm, c, s, l)
 end
 
 -- carries dot data for combat commands
-function DotEffect(t, dm, pl, h, p, c, s, d)
+function DotEffect(t, dm, pl, h, p, c, s, d, pp, sp)
   return {
        dotType = t,
        defenderStateDefenseModifers = dm,
@@ -21,7 +21,9 @@ function DotEffect(t, dm, pl, h, p, c, s, d)
        dotPotency = p,
        dotChance = c,
        dotStrength = s,
-       dotDuration = d
+       dotDuration = d,
+       primaryPercent = pp or 100,
+       secondaryPercent = sp or 100
   }
 end
 
@@ -806,4 +808,4 @@ RunSlashCommandsFile("eject.lua")
 RunSlashCommandsFile("waypoint.lua")
 RunSlashCommandsFile("unstick.lua")
 RunSlashCommandsFile("launchIntoSpace.lua")
-RunSlashCommandsFile("createVendor.lua")
\ No newline at end of file
+RunSlashCommandsFile("createVendor.lua")
index 711b88c..28bb816 100755 (executable)
@@ -55,7 +55,20 @@ FlameSingle1Command = {
 
        animationCRC = hashCode("fire_flame_thrower_single_1_light"),
        combatSpam = "flamesingle1",
-       
+       dotEffects = {
+         DotEffect( 
+               ONFIRE, 
+               {"resistance_fire", "fire_resist"},
+               HEALTH,
+               true,
+               100,
+               100,
+               100, 
+               60,
+               10,
+               2
+         )
+       },
        range = 16
 }
 AddCommand(FlameSingle1Command)
index b0bfb5b..04e5836 100644 (file)
@@ -301,8 +301,8 @@ void CombatManager::applyDots(CreatureObject* attacker, CreatureObject* defender
                        resist += defender->getSkillMod(defenseMods.get(j));
 
                //info("entering addDotState", true);
-
-               defender->addDotState(effect.getDotType(), data.getCommand()->getNameCRC(), effect.isDotDamageofHit() ? appliedDamage : effect.getDotStrength(), effect.getDotPool(), effect.getDotDuration(), effect.getDotPotency(), resist);
+               defender->addDotState(effect.getDotType(), data.getCommand()->getNameCRC(), effect.isDotDamageofHit() ? appliedDamage * effect.getPrimaryPercent() / 100.0f : effect.getDotStrength(), effect.getDotPool(), effect.getDotDuration(), effect.getDotPotency(), resist,
+                               effect.isDotDamageofHit() ? appliedDamage * effect.getSecondaryPercent() / 100.0f : effect.getDotStrength());
        }
 }
 
@@ -346,7 +346,7 @@ void CombatManager::applyWeaponDots(CreatureObject* attacker, CreatureObject* de
 
                if (attackerWeapon->getDotType(i) == 3) { // Fire.
                        resist = defender->getSkillMod("resistance_fire");
-                       int power = defender->addDotState(CreatureState::ONFIRE, attackerWeapon->getServerObjectCRC(), attackerWeapon->getDotStrength(i), attackerWeapon->getDotAttribute(i), attackerWeapon->getDotDuration(i), attackerWeapon->getDotPotency(i), resist);
+                       int power = defender->addDotState(CreatureState::ONFIRE, attackerWeapon->getServerObjectCRC(), attackerWeapon->getDotStrength(i), attackerWeapon->getDotAttribute(i), attackerWeapon->getDotDuration(i), attackerWeapon->getDotPotency(i), resist,  attackerWeapon->getDotStrength(i));
 
                        if (power > 0) { // Unresisted, reduce use count.
                                if (attackerWeapon->getDotUses(i) > 0) {
index 63add3a..f038bfc 100644 (file)
@@ -44,7 +44,7 @@
  *     CreatureObjectStub
  */
 
-enum {RPC_INITIALIZEMEMBERS__ = 6,RPC_FINALIZE__,RPC_CREATECHILDOBJECTS__,RPC_INITIALIZETRANSIENTMEMBERS__,RPC_CLEARQUEUEACTION__INT_FLOAT_INT_INT_,RPC_SENDBASELINESTO__SCENEOBJECT_,RPC_SENDTOOWNER__BOOL_,RPC_SENDTO__SCENEOBJECT_BOOL_,RPC_SENDSYSTEMMESSAGE__STRING_,RPC_PLAYMUSICMESSAGE__STRING_,RPC_SENDNEWBIETUTORIALREQUEST__STRING_,RPC_SENDNEWBIETUTORIALENABLEHUDELEMENT__STRING_BOOL_,RPC_SENDOPENHOLOCRONTOPAGEMESSAGE__,RPC_SENDSYSTEMMESSAGE__UNICODESTRING_,RPC_SENDSLOTTEDOBJECTSTO__SCENEOBJECT_,RPC_SETCOMBATSTATE__,RPC_CLEARCOMBATSTATE__BOOL_,RPC_SETPOSTURE__INT_BOOL_,RPC_CALCULATESPEED__,RPC_UPDATELOCOMOTION__,RPC_SETHEIGHT__FLOAT_BOOL_,RPC_SETACCELERATIONMULTIPLIERBASE__FLOAT_BOOL_,RPC_SETACCELERATIONMULTIPLIERMOD__FLOAT_BOOL_,RPC_SETSPEEDMULTIPLIERBASE__FLOAT_BOOL_,RPC_SETSPEEDMULTIPLIERMOD__FLOAT_BOOL_,RPC_SETTURNSCALE__FLOAT_BOOL_,RPC_SETRUNSPEED__FLOAT_BOOL_,RPC_SETCURRENTSPEED__FLOAT_,RPC_SETHAM__INT_INT_BOOL_,RPC_INFLICTDAMAGE__TANGIBLEOBJECT_INT_FLOAT_BOOL_BOOL_,RPC_INFLICTDAMAGE__TANGIBLEOBJECT_INT_FLOAT_BOOL_STRING_BOOL_,RPC_HASDAMAGE__INT_,RPC_HEALDAMAGE__TANGIBLEOBJECT_INT_INT_BOOL_BOOL_,RPC_HEALWOUND__TANGIBLEOBJECT_INT_INT_BOOL_BOOL_,RPC_SETBASEHAM__INT_INT_BOOL_,RPC_SETWOUNDS__INT_INT_BOOL_,RPC_ADDWOUNDS__INT_INT_BOOL_,RPC_SETMAXHAM__INT_INT_BOOL_,RPC_ADDMAXHAM__INT_INT_BOOL_,RPC_SETENCUMBRANCE__INT_INT_BOOL_,RPC_ADDENCUMBRANCE__INT_INT_BOOL_,RPC_SETWEAPON__WEAPONOBJECT_BOOL_,RPC_NOTIFYOBJECTINSERTED__SCENEOBJECT_,RPC_NOTIFYOBJECTREMOVED__SCENEOBJECT_,RPC_SETINSTRUMENTID__INT_BOOL_,RPC_SETLISTENTOID__LONG_BOOL_,RPC_SETPERFORMANCECOUNTER__INT_BOOL_,RPC_SETPERFORMANCEANIMATION__STRING_BOOL_,RPC_SETSHOCKWOUNDS__INT_BOOL_,RPC_ADDSHOCKWOUNDS__INT_BOOL_,RPC_SETTARGETID__LONG_BOOL_,RPC_SETBANKCREDITS__INT_BOOL_,RPC_ADDBUFF__BUFF_,RPC_REMOVEBUFF__INT_,RPC_REMOVEBUFF__BUFF_,RPC_REMOVESTATEBUFF__LONG_,RPC_CLEARBUFFS__BOOL_,RPC_ADDWEARABLEOBJECT__TANGIBLEOBJECT_BOOL_,RPC_REMOVEWEARABLEOBJECT__TANGIBLEOBJECT_BOOL_,RPC_SENDBUFFSTO__CREATUREOBJECT_,RPC_GETBUFF__INT_,RPC_GETSKILLMODFROMBUFFS__STRING_,RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_,RPC_HEALDOT__LONG_INT_,RPC_CLEARDOTS__,RPC_HASBUFF__INT_,RPC_NOTIFYSELFPOSITIONUPDATE__,RPC_NOTIFYPOSTURECHANGE__INT_,RPC_SETLEVEL__INT_,RPC_UPDATETODATABASEALLOBJECTS__BOOL_,RPC_ISRESUSCITABLE__,RPC_ADDBANKCREDITS__INT_BOOL_,RPC_ADDCASHCREDITS__INT_BOOL_,RPC_SUBTRACTBANKCREDITS__INT_,RPC_SUBTRACTCASHCREDITS__INT_,RPC_VERIFYCASHCREDITS__INT_,RPC_VERIFYBANKCREDITS__INT_,RPC_ISDANCING__,RPC_ISPLAYINGMUSIC__,RPC_STOPENTERTAINING__,RPC_ISENTERTAINING__,RPC_SETCASHCREDITS__INT_BOOL_,RPC_SETTERRAINNEGOTIATION__FLOAT_BOOL_,RPC_ADDSKILL__STRING_BOOL_,RPC_REMOVESKILL__STRING_BOOL_,RPC_ADDSKILLMOD__INT_STRING_INT_BOOL_,RPC_REMOVESKILLMOD__INT_STRING_INT_BOOL_,RPC_REMOVEALLSKILLMODSOFTYPE__INT_BOOL_,RPC_UPDATEGROUPINVITERID__LONG_BOOL_,RPC_UPDATEGROUP__GROUPOBJECT_BOOL_,RPC_ENQUEUECOMMAND__INT_INT_LONG_UNICODESTRING_INT_,RPC_SETMOOD__BYTE_BOOL_,RPC_SETMOODSTRING__STRING_BOOL_,RPC_DELETEQUEUEACTION__INT_,RPC_SETSTATE__LONG_BOOL_,RPC_CLEARSTATE__LONG_BOOL_,RPC_SETCONTROLDEVICE__CONTROLDEVICE_,RPC_SETCREATURELINK__CREATUREOBJECT_BOOL_,RPC_EXECUTEOBJECTCONTROLLERACTION__INT_,RPC_EXECUTEOBJECTCONTROLLERACTION__INT_LONG_UNICODESTRING_,RPC_ISATTACKABLEBY__CREATUREOBJECT_,RPC_ISATTACKABLEBY__TANGIBLEOBJECT_,RPC_ISHEALABLEBY__CREATUREOBJECT_,RPC_ISINBOUNTYMISSION__CREATUREOBJECT_CREATUREOBJECT_,RPC_SENDCONVERSATIONSTARTTO__SCENEOBJECT_,RPC_SELECTCONVERSATIONOPTION__INT_SCENEOBJECT_,RPC_SENDMESSAGE__BASEPACKET_,RPC_SENDEXECUTECONSOLECOMMAND__STRING_,RPC_ISAGGRESSIVETO__CREATUREOBJECT_,RPC_NOTIFYOBJECTDESTRUCTIONOBSERVERS__TANGIBLEOBJECT_INT_,RPC_NOTIFYOBJECTKILLOBSERVERS__TANGIBLEOBJECT_,RPC_NOTIFYLOADFROMDATABASE__,RPC_SETFACTIONRANK__INT_BOOL_,RPC_GETFIRSTNAME__,RPC_GETLASTNAME__,RPC_ISONLINE__,RPC_CANTREATINJURIES__,RPC_CANTREATSTATES__,RPC_CANTREATWOUNDS__,RPC_CANTREATCONDITIONS__,RPC_GETPLAYEROBJECT__,RPC_GETACTOROBJECT__,RPC_ISLISTENING__,RPC_ISWATCHING__,RPC_SETCLIENT__ZONECLIENTSESSION_,RPC_DISMOUNT__,RPC_CALCULATEBFRATIO__,RPC_SETDIZZIEDSTATE__INT_,RPC_SETRALLIEDSTATE__INT_,RPC_SETAIMINGSTATE__INT_,RPC_SETCOVERSTATE__INT_,RPC_SETBERSERKEDSTATE__INT_,RPC_SETSTUNNEDSTATE__INT_,RPC_SETBLINDEDSTATE__INT_,RPC_SETINTIMIDATEDSTATE__INT_INT_,RPC_SETSNAREDSTATE__INT_,RPC_SETROOTEDSTATE__INT_,RPC_SETNEXTATTACKDELAY__INT_INT_,RPC_SETMEDITATESTATE__,RPC_ACTIVATEHAMREGENERATION__,RPC_ACTIVATEPASSIVEWOUNDREGENERATION__,RPC_ACTIVATESTATERECOVERY__,RPC_UPDATETIMEOFDEATH__,RPC_HASATTACKDELAY__,RPC_REMOVEATTACKDELAY__,RPC_HASSPICE__,RPC_UPDATELASTSUCCESSFULCOMBATACTION__,RPC_UPDATEKNOCKDOWNRECOVERY__,RPC_QUEUEDIZZYFALLEVENT__,RPC_UPDATELASTKNOCKDOWN__,RPC_CHECKKNOCKDOWNRECOVERY__,RPC_CHECKLASTKNOCKDOWN__,RPC_UPDATEPOSTUREDOWNRECOVERY__,RPC_UPDATEPOSTUREUPRECOVERY__,RPC_CHECKPOSTUREDOWNRECOVERY__,RPC_GETSCREENPLAYSTATE__STRING_,RPC_SETSCREENPLAYSTATE__STRING_LONG_,RPC_CHECKPOSTUREUPRECOVERY__,RPC_UPDATECOOLDOWNTIMER__STRING_INT_,RPC_CHECKCOOLDOWNRECOVERY__STRING_,RPC_ADDCOOLDOWN__STRING_INT_,RPC_DOANIMATION__STRING_,RPC_DOCOMBATANIMATION__CREATUREOBJECT_INT_BYTE_BYTE_,RPC_PLAYEFFECT__STRING_STRING_,RPC_PLAYEFFECT__STRING_,RPC_ACTIVATEQUEUEACTION__,RPC_ACTIVATEIMMEDIATEACTION__,RPC_GETCREATURENAME__,RPC_ISGROUPED__,RPC_GETBANKCREDITS__,RPC_GETCASHCREDITS__,RPC_GETBASEHAM__INT_,RPC_GETWOUNDS__INT_,RPC_GETHAM__INT_,RPC_GETMAXHAM__INT_,RPC_GETENCUMBRANCE__INT_,RPC_GETPOSTURE__,RPC_GETLOCOMOTION__,RPC_GETFACTIONRANK__,RPC_GETLINKEDCREATURE__,RPC_GETCREATURELINKID__,RPC_GETSHOCKWOUNDS__,RPC_GETWATCHTOID__,RPC_GETSTATEBITMASK__,RPC_HASSTATE__LONG_,RPC_HASSTATES__,RPC_GETLISTENID__,RPC_GETACCELERATIONMULTIPLIERBASE__,RPC_GETACCELERATIONMULTIPLIERMOD__,RPC_GETSPEEDMULTIPLIERBASE__,RPC_GETSPEEDMULTIPLIERMOD__,RPC_GETCURRENTSPEED__,RPC_GETRUNSPEED__,RPC_GETWALKSPEED__,RPC_GETTURNSCALE__,RPC_GETTERRAINNEGOTIATION__,RPC_GETRUNACCELERATION__,RPC_GETWALKACCELERATION__,RPC_GETPERFORMANCEANIMATION__,RPC_GETMOODSTRING__,RPC_GETWEAPONID__,RPC_GETWEAPON__,RPC_GETGUILDOBJECT__,RPC_GETGUILDID__,RPC_ISINGUILD__,RPC_SETGUILDOBJECT__GUILDOBJECT_,RPC_GETGROUPID__,RPC_GETGROUPINVITERID__,RPC_GETGROUP__,RPC_GETGROUPINVITECOUNTER__,RPC_GETTARGETID__,RPC_GETMOODID__,RPC_GETSLOPEMODPERCENT__,RPC_GETPERFORMANCECOUNTER__,RPC_GETINSTRUMENTID__,RPC_GETFROZEN__,RPC_GETHEIGHT__,RPC_GETSPECIES__,RPC_GETSPECIESNAME__,RPC_GETGENDER__,RPC_GETSKILLMOD__STRING_,RPC_HASSKILL__STRING_,RPC_SETWATCHTOID__LONG_,RPC_ISCREATUREOBJECT__,RPC_ISNEXTACTIONPAST__,RPC_ISTRAINERCREATURE__,RPC_ISSWIMMING__,RPC_GETCLIENT__,RPC_ISRIDINGMOUNT__,RPC_GETCONTROLDEVICE__,RPC_GETSWIMHEIGHT__,RPC_ISINCAPACITATED__,RPC_ISDEAD__,RPC_ISKNOCKEDDOWN__,RPC_ISKNEELING__,RPC_ISPRONE__,RPC_ISSTANDING__,RPC_ISSITTING__,RPC_ISSKILLANIMATING__,RPC_ISRALLIED__,RPC_ISINCOMBAT__,RPC_ISDIZZIED__,RPC_ISBERSERKED__,RPC_ISSTUNNED__,RPC_ISBLINDED__,RPC_ISINTIMIDATED__,RPC_ISSNARED__,RPC_ISIMMOBILIZED__,RPC_ISROOTED__,RPC_ISFROZEN__,RPC_ISDISEASED__,RPC_ISPOISONED__,RPC_ISBLEEDING__,RPC_ISONFIRE__,RPC_ISMOUNTED__,RPC_ISRIDINGCREATURE__,RPC_ISPEACED__,RPC_ISMEDITATING__,RPC_ISAIMING__,RPC_ISINCOVER__,RPC_ISRUNNING__,RPC_ISNONPLAYERCREATUREOBJECT__,RPC_ISCREATURE__,RPC_ISPLAYERCREATURE__,RPC_ISAIACTOR__,RPC_ISINFORMANTCREATURE__,RPC_GETCURRENTCAMP__,RPC_GETCURRENTWEATHER__,RPC_SETCURRENTWEATHER__BYTE_,RPC_GETCURRENTWIND__,RPC_SETCURRENTWIND__BYTE_,RPC_HANDLEOBJECTMENUSELECT__CREATUREOBJECT_BYTE_,RPC_FILLATTRIBUTELIST__ATTRIBUTELISTMESSAGE_CREATUREOBJECT_,RPC_DESTROYOBJECTFROMWORLD__BOOL_,RPC_ISINVISIBLE__,RPC_SETINVISIBLE__BOOL_,RPC_CALCULATECOSTADJUSTMENT__BYTE_FLOAT_,RPC_UPDATESPEEDANDACCELERATIONMODS__};
+enum {RPC_INITIALIZEMEMBERS__ = 6,RPC_FINALIZE__,RPC_CREATECHILDOBJECTS__,RPC_INITIALIZETRANSIENTMEMBERS__,RPC_CLEARQUEUEACTION__INT_FLOAT_INT_INT_,RPC_SENDBASELINESTO__SCENEOBJECT_,RPC_SENDTOOWNER__BOOL_,RPC_SENDTO__SCENEOBJECT_BOOL_,RPC_SENDSYSTEMMESSAGE__STRING_,RPC_PLAYMUSICMESSAGE__STRING_,RPC_SENDNEWBIETUTORIALREQUEST__STRING_,RPC_SENDNEWBIETUTORIALENABLEHUDELEMENT__STRING_BOOL_,RPC_SENDOPENHOLOCRONTOPAGEMESSAGE__,RPC_SENDSYSTEMMESSAGE__UNICODESTRING_,RPC_SENDSLOTTEDOBJECTSTO__SCENEOBJECT_,RPC_SETCOMBATSTATE__,RPC_CLEARCOMBATSTATE__BOOL_,RPC_SETPOSTURE__INT_BOOL_,RPC_CALCULATESPEED__,RPC_UPDATELOCOMOTION__,RPC_SETHEIGHT__FLOAT_BOOL_,RPC_SETACCELERATIONMULTIPLIERBASE__FLOAT_BOOL_,RPC_SETACCELERATIONMULTIPLIERMOD__FLOAT_BOOL_,RPC_SETSPEEDMULTIPLIERBASE__FLOAT_BOOL_,RPC_SETSPEEDMULTIPLIERMOD__FLOAT_BOOL_,RPC_SETTURNSCALE__FLOAT_BOOL_,RPC_SETRUNSPEED__FLOAT_BOOL_,RPC_SETCURRENTSPEED__FLOAT_,RPC_SETHAM__INT_INT_BOOL_,RPC_INFLICTDAMAGE__TANGIBLEOBJECT_INT_FLOAT_BOOL_BOOL_,RPC_INFLICTDAMAGE__TANGIBLEOBJECT_INT_FLOAT_BOOL_STRING_BOOL_,RPC_HASDAMAGE__INT_,RPC_HEALDAMAGE__TANGIBLEOBJECT_INT_INT_BOOL_BOOL_,RPC_HEALWOUND__TANGIBLEOBJECT_INT_INT_BOOL_BOOL_,RPC_SETBASEHAM__INT_INT_BOOL_,RPC_SETWOUNDS__INT_INT_BOOL_,RPC_ADDWOUNDS__INT_INT_BOOL_,RPC_SETMAXHAM__INT_INT_BOOL_,RPC_ADDMAXHAM__INT_INT_BOOL_,RPC_SETENCUMBRANCE__INT_INT_BOOL_,RPC_ADDENCUMBRANCE__INT_INT_BOOL_,RPC_SETWEAPON__WEAPONOBJECT_BOOL_,RPC_NOTIFYOBJECTINSERTED__SCENEOBJECT_,RPC_NOTIFYOBJECTREMOVED__SCENEOBJECT_,RPC_SETINSTRUMENTID__INT_BOOL_,RPC_SETLISTENTOID__LONG_BOOL_,RPC_SETPERFORMANCECOUNTER__INT_BOOL_,RPC_SETPERFORMANCEANIMATION__STRING_BOOL_,RPC_SETSHOCKWOUNDS__INT_BOOL_,RPC_ADDSHOCKWOUNDS__INT_BOOL_,RPC_SETTARGETID__LONG_BOOL_,RPC_SETBANKCREDITS__INT_BOOL_,RPC_ADDBUFF__BUFF_,RPC_REMOVEBUFF__INT_,RPC_REMOVEBUFF__BUFF_,RPC_REMOVESTATEBUFF__LONG_,RPC_CLEARBUFFS__BOOL_,RPC_ADDWEARABLEOBJECT__TANGIBLEOBJECT_BOOL_,RPC_REMOVEWEARABLEOBJECT__TANGIBLEOBJECT_BOOL_,RPC_SENDBUFFSTO__CREATUREOBJECT_,RPC_GETBUFF__INT_,RPC_GETSKILLMODFROMBUFFS__STRING_,RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_INT_,RPC_HEALDOT__LONG_INT_,RPC_CLEARDOTS__,RPC_HASBUFF__INT_,RPC_NOTIFYSELFPOSITIONUPDATE__,RPC_NOTIFYPOSTURECHANGE__INT_,RPC_SETLEVEL__INT_,RPC_UPDATETODATABASEALLOBJECTS__BOOL_,RPC_ISRESUSCITABLE__,RPC_ADDBANKCREDITS__INT_BOOL_,RPC_ADDCASHCREDITS__INT_BOOL_,RPC_SUBTRACTBANKCREDITS__INT_,RPC_SUBTRACTCASHCREDITS__INT_,RPC_VERIFYCASHCREDITS__INT_,RPC_VERIFYBANKCREDITS__INT_,RPC_ISDANCING__,RPC_ISPLAYINGMUSIC__,RPC_STOPENTERTAINING__,RPC_ISENTERTAINING__,RPC_SETCASHCREDITS__INT_BOOL_,RPC_SETTERRAINNEGOTIATION__FLOAT_BOOL_,RPC_ADDSKILL__STRING_BOOL_,RPC_REMOVESKILL__STRING_BOOL_,RPC_ADDSKILLMOD__INT_STRING_INT_BOOL_,RPC_REMOVESKILLMOD__INT_STRING_INT_BOOL_,RPC_REMOVEALLSKILLMODSOFTYPE__INT_BOOL_,RPC_UPDATEGROUPINVITERID__LONG_BOOL_,RPC_UPDATEGROUP__GROUPOBJECT_BOOL_,RPC_ENQUEUECOMMAND__INT_INT_LONG_UNICODESTRING_INT_,RPC_SETMOOD__BYTE_BOOL_,RPC_SETMOODSTRING__STRING_BOOL_,RPC_DELETEQUEUEACTION__INT_,RPC_SETSTATE__LONG_BOOL_,RPC_CLEARSTATE__LONG_BOOL_,RPC_SETCONTROLDEVICE__CONTROLDEVICE_,RPC_SETCREATURELINK__CREATUREOBJECT_BOOL_,RPC_EXECUTEOBJECTCONTROLLERACTION__INT_,RPC_EXECUTEOBJECTCONTROLLERACTION__INT_LONG_UNICODESTRING_,RPC_ISATTACKABLEBY__CREATUREOBJECT_,RPC_ISATTACKABLEBY__TANGIBLEOBJECT_,RPC_ISHEALABLEBY__CREATUREOBJECT_,RPC_ISINBOUNTYMISSION__CREATUREOBJECT_CREATUREOBJECT_,RPC_SENDCONVERSATIONSTARTTO__SCENEOBJECT_,RPC_SELECTCONVERSATIONOPTION__INT_SCENEOBJECT_,RPC_SENDMESSAGE__BASEPACKET_,RPC_SENDEXECUTECONSOLECOMMAND__STRING_,RPC_ISAGGRESSIVETO__CREATUREOBJECT_,RPC_NOTIFYOBJECTDESTRUCTIONOBSERVERS__TANGIBLEOBJECT_INT_,RPC_NOTIFYOBJECTKILLOBSERVERS__TANGIBLEOBJECT_,RPC_NOTIFYLOADFROMDATABASE__,RPC_SETFACTIONRANK__INT_BOOL_,RPC_GETFIRSTNAME__,RPC_GETLASTNAME__,RPC_ISONLINE__,RPC_CANTREATINJURIES__,RPC_CANTREATSTATES__,RPC_CANTREATWOUNDS__,RPC_CANTREATCONDITIONS__,RPC_GETPLAYEROBJECT__,RPC_GETACTOROBJECT__,RPC_ISLISTENING__,RPC_ISWATCHING__,RPC_SETCLIENT__ZONECLIENTSESSION_,RPC_DISMOUNT__,RPC_CALCULATEBFRATIO__,RPC_SETDIZZIEDSTATE__INT_,RPC_SETRALLIEDSTATE__INT_,RPC_SETAIMINGSTATE__INT_,RPC_SETCOVERSTATE__INT_,RPC_SETBERSERKEDSTATE__INT_,RPC_SETSTUNNEDSTATE__INT_,RPC_SETBLINDEDSTATE__INT_,RPC_SETINTIMIDATEDSTATE__INT_INT_,RPC_SETSNAREDSTATE__INT_,RPC_SETROOTEDSTATE__INT_,RPC_SETNEXTATTACKDELAY__INT_INT_,RPC_SETMEDITATESTATE__,RPC_ACTIVATEHAMREGENERATION__,RPC_ACTIVATEPASSIVEWOUNDREGENERATION__,RPC_ACTIVATESTATERECOVERY__,RPC_UPDATETIMEOFDEATH__,RPC_HASATTACKDELAY__,RPC_REMOVEATTACKDELAY__,RPC_HASSPICE__,RPC_UPDATELASTSUCCESSFULCOMBATACTION__,RPC_UPDATEKNOCKDOWNRECOVERY__,RPC_QUEUEDIZZYFALLEVENT__,RPC_UPDATELASTKNOCKDOWN__,RPC_CHECKKNOCKDOWNRECOVERY__,RPC_CHECKLASTKNOCKDOWN__,RPC_UPDATEPOSTUREDOWNRECOVERY__,RPC_UPDATEPOSTUREUPRECOVERY__,RPC_CHECKPOSTUREDOWNRECOVERY__,RPC_GETSCREENPLAYSTATE__STRING_,RPC_SETSCREENPLAYSTATE__STRING_LONG_,RPC_CHECKPOSTUREUPRECOVERY__,RPC_UPDATECOOLDOWNTIMER__STRING_INT_,RPC_CHECKCOOLDOWNRECOVERY__STRING_,RPC_ADDCOOLDOWN__STRING_INT_,RPC_DOANIMATION__STRING_,RPC_DOCOMBATANIMATION__CREATUREOBJECT_INT_BYTE_BYTE_,RPC_PLAYEFFECT__STRING_STRING_,RPC_PLAYEFFECT__STRING_,RPC_ACTIVATEQUEUEACTION__,RPC_ACTIVATEIMMEDIATEACTION__,RPC_GETCREATURENAME__,RPC_ISGROUPED__,RPC_GETBANKCREDITS__,RPC_GETCASHCREDITS__,RPC_GETBASEHAM__INT_,RPC_GETWOUNDS__INT_,RPC_GETHAM__INT_,RPC_GETMAXHAM__INT_,RPC_GETENCUMBRANCE__INT_,RPC_GETPOSTURE__,RPC_GETLOCOMOTION__,RPC_GETFACTIONRANK__,RPC_GETLINKEDCREATURE__,RPC_GETCREATURELINKID__,RPC_GETSHOCKWOUNDS__,RPC_GETWATCHTOID__,RPC_GETSTATEBITMASK__,RPC_HASSTATE__LONG_,RPC_HASSTATES__,RPC_GETLISTENID__,RPC_GETACCELERATIONMULTIPLIERBASE__,RPC_GETACCELERATIONMULTIPLIERMOD__,RPC_GETSPEEDMULTIPLIERBASE__,RPC_GETSPEEDMULTIPLIERMOD__,RPC_GETCURRENTSPEED__,RPC_GETRUNSPEED__,RPC_GETWALKSPEED__,RPC_GETTURNSCALE__,RPC_GETTERRAINNEGOTIATION__,RPC_GETRUNACCELERATION__,RPC_GETWALKACCELERATION__,RPC_GETPERFORMANCEANIMATION__,RPC_GETMOODSTRING__,RPC_GETWEAPONID__,RPC_GETWEAPON__,RPC_GETGUILDOBJECT__,RPC_GETGUILDID__,RPC_ISINGUILD__,RPC_SETGUILDOBJECT__GUILDOBJECT_,RPC_GETGROUPID__,RPC_GETGROUPINVITERID__,RPC_GETGROUP__,RPC_GETGROUPINVITECOUNTER__,RPC_GETTARGETID__,RPC_GETMOODID__,RPC_GETSLOPEMODPERCENT__,RPC_GETPERFORMANCECOUNTER__,RPC_GETINSTRUMENTID__,RPC_GETFROZEN__,RPC_GETHEIGHT__,RPC_GETSPECIES__,RPC_GETSPECIESNAME__,RPC_GETGENDER__,RPC_GETSKILLMOD__STRING_,RPC_HASSKILL__STRING_,RPC_SETWATCHTOID__LONG_,RPC_ISCREATUREOBJECT__,RPC_ISNEXTACTIONPAST__,RPC_ISTRAINERCREATURE__,RPC_ISSWIMMING__,RPC_GETCLIENT__,RPC_ISRIDINGMOUNT__,RPC_GETCONTROLDEVICE__,RPC_GETSWIMHEIGHT__,RPC_ISINCAPACITATED__,RPC_ISDEAD__,RPC_ISKNOCKEDDOWN__,RPC_ISKNEELING__,RPC_ISPRONE__,RPC_ISSTANDING__,RPC_ISSITTING__,RPC_ISSKILLANIMATING__,RPC_ISRALLIED__,RPC_ISINCOMBAT__,RPC_ISDIZZIED__,RPC_ISBERSERKED__,RPC_ISSTUNNED__,RPC_ISBLINDED__,RPC_ISINTIMIDATED__,RPC_ISSNARED__,RPC_ISIMMOBILIZED__,RPC_ISROOTED__,RPC_ISFROZEN__,RPC_ISDISEASED__,RPC_ISPOISONED__,RPC_ISBLEEDING__,RPC_ISONFIRE__,RPC_ISMOUNTED__,RPC_ISRIDINGCREATURE__,RPC_ISPEACED__,RPC_ISMEDITATING__,RPC_ISAIMING__,RPC_ISINCOVER__,RPC_ISRUNNING__,RPC_ISNONPLAYERCREATUREOBJECT__,RPC_ISCREATURE__,RPC_ISPLAYERCREATURE__,RPC_ISAIACTOR__,RPC_ISINFORMANTCREATURE__,RPC_GETCURRENTCAMP__,RPC_GETCURRENTWEATHER__,RPC_SETCURRENTWEATHER__BYTE_,RPC_GETCURRENTWIND__,RPC_SETCURRENTWIND__BYTE_,RPC_HANDLEOBJECTMENUSELECT__CREATUREOBJECT_BYTE_,RPC_FILLATTRIBUTELIST__ATTRIBUTELISTMESSAGE_CREATUREOBJECT_,RPC_DESTROYOBJECTFROMWORLD__BOOL_,RPC_ISINVISIBLE__,RPC_SETINVISIBLE__BOOL_,RPC_CALCULATECOSTADJUSTMENT__BYTE_FLOAT_,RPC_UPDATESPEEDANDACCELERATIONMODS__};
 
 CreatureObject::CreatureObject() : TangibleObject(DummyConstructorParameter::instance()) {
        CreatureObjectImplementation* _implementation = new CreatureObjectImplementation();
@@ -1002,13 +1002,13 @@ long long CreatureObject::getSkillModFromBuffs(const String& skillMod) {
                return _implementation->getSkillModFromBuffs(skillMod);
 }
 
-int CreatureObject::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense) {
+int CreatureObject::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength) {
        CreatureObjectImplementation* _implementation = static_cast<CreatureObjectImplementation*>(_getImplementation());
        if (_implementation == NULL) {
                if (!deployed)
                        throw ObjectNotDeployedException(this);
 
-               DistributedMethod method(this, RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_);
+               DistributedMethod method(this, RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_INT_);
                method.addUnsignedLongParameter(dotType);
                method.addUnsignedLongParameter(objectID);
                method.addUnsignedIntParameter(strength);
@@ -1016,10 +1016,11 @@ int CreatureObject::addDotState(unsigned long long dotType, unsigned long long o
                method.addUnsignedIntParameter(duration);
                method.addFloatParameter(potency);
                method.addUnsignedIntParameter(defense);
+               method.addSignedIntParameter(secondaryStrength);
 
                return method.executeWithSignedIntReturn();
        } else
-               return _implementation->addDotState(dotType, objectID, strength, type, duration, potency, defense);
+               return _implementation->addDotState(dotType, objectID, strength, type, duration, potency, defense, secondaryStrength);
 }
 
 bool CreatureObject::healDot(unsigned long long dotType, int reduction) {
@@ -4964,9 +4965,9 @@ long long CreatureObjectImplementation::getSkillModFromBuffs(const String& skill
        return (&creatureBuffs)->getModifierByName(skillMod);
 }
 
-int CreatureObjectImplementation::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense) {
-       // server/zone/objects/creature/CreatureObject.idl():           return damageOverTimeList.addDot(this, objectID, duration, dotType, type, strength, potency, defense);
-       return (&damageOverTimeList)->addDot(_this.get(), objectID, duration, dotType, type, strength, potency, defense);
+int CreatureObjectImplementation::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength) {
+       // server/zone/objects/creature/CreatureObject.idl():           return damageOverTimeList.addDot(this, objectID, duration, dotType, type, strength, potency, defense, secondaryStrength);
+       return (&damageOverTimeList)->addDot(_this.get(), objectID, duration, dotType, type, strength, potency, defense, secondaryStrength);
 }
 
 bool CreatureObjectImplementation::healDot(unsigned long long dotType, int reduction) {
@@ -6165,9 +6166,9 @@ void CreatureObjectAdapter::invokeMethod(uint32 methid, DistributedMethod* inv)
                        resp->insertSignedLong(getSkillModFromBuffs(inv->getAsciiParameter(skillMod)));
                }
                break;
-       case RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_:
+       case RPC_ADDDOTSTATE__LONG_LONG_INT_BYTE_INT_FLOAT_INT_INT_:
                {
-                       resp->insertSignedInt(addDotState(inv->getUnsignedLongParameter(), inv->getUnsignedLongParameter(), inv->getUnsignedIntParameter(), inv->getByteParameter(), inv->getUnsignedIntParameter(), inv->getFloatParameter(), inv->getUnsignedIntParameter()));
+                       resp->insertSignedInt(addDotState(inv->getUnsignedLongParameter(), inv->getUnsignedLongParameter(), inv->getUnsignedIntParameter(), inv->getByteParameter(), inv->getUnsignedIntParameter(), inv->getFloatParameter(), inv->getUnsignedIntParameter(), inv->getSignedIntParameter()));
                }
                break;
        case RPC_HEALDOT__LONG_INT_:
@@ -7516,8 +7517,8 @@ long long CreatureObjectAdapter::getSkillModFromBuffs(const String& skillMod) {
        return (static_cast<CreatureObject*>(stub))->getSkillModFromBuffs(skillMod);
 }
 
-int CreatureObjectAdapter::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense) {
-       return (static_cast<CreatureObject*>(stub))->addDotState(dotType, objectID, strength, type, duration, potency, defense);
+int CreatureObjectAdapter::addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength) {
+       return (static_cast<CreatureObject*>(stub))->addDotState(dotType, objectID, strength, type, duration, potency, defense, secondaryStrength);
 }
 
 bool CreatureObjectAdapter::healDot(unsigned long long dotType, int reduction) {
index 34ebc5e..a1f68e4 100644 (file)
@@ -472,7 +472,7 @@ public:
 
        long long getSkillModFromBuffs(const String& skillMod);
 
-       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense);
+       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength = 0);
 
        bool healDot(unsigned long long dotType, int reduction);
 
@@ -1264,7 +1264,7 @@ public:
 
        long long getSkillModFromBuffs(const String& skillMod);
 
-       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense);
+       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength = 0);
 
        bool healDot(unsigned long long dotType, int reduction);
 
@@ -1891,7 +1891,7 @@ public:
 
        long long getSkillModFromBuffs(const String& skillMod);
 
-       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense);
+       int addDotState(unsigned long long dotType, unsigned long long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength);
 
        bool healDot(unsigned long long dotType, int reduction);
 
index b7e582e..fd32c8d 100644 (file)
@@ -686,8 +686,8 @@ class CreatureObject extends TangibleObject {
                return creatureBuffs.getModifierByName(skillMod);
        }
        
-       public int addDotState(unsigned long dotType, unsigned long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense) {
-               return damageOverTimeList.addDot(this, objectID, duration, dotType, type, strength, potency, defense);
+       public int addDotState(unsigned long dotType, unsigned long objectID, unsigned int strength, byte type, unsigned int duration, float potency, unsigned int defense, int secondaryStrength = 0) {
+               return damageOverTimeList.addDot(this, objectID, duration, dotType, type, strength, potency, defense, secondaryStrength);
        }
 
        public boolean healDot(unsigned long dotType, int reduction) {
index c34192b..1dcb01c 100644 (file)
@@ -20,10 +20,14 @@ protected:
        uint32 dotStrength;
        uint32 dotPotency;
     uint32 dotChance;
+    byte primaryPercent;
+    byte secondaryPercent;
+
 public:
     DotEffect()
     :Object()
     {
+
         dotType = 0;
         dotPool = 0;
         dotDamageofHit = 0;
@@ -31,6 +35,8 @@ public:
         dotStrength = 0;
         dotPotency = 0;
         dotChance = 0;
+        primaryPercent = 100;
+        secondaryPercent = 0;
     }
 
     DotEffect(LuaObject dot)
@@ -42,6 +48,7 @@ public:
     DotEffect(const DotEffect & effect)
     :Object()
     {
+
         dotType = effect.dotType;
         defenderStateDefenseModifers = effect.defenderStateDefenseModifers;
         dotPool = effect.dotPool;
@@ -50,6 +57,8 @@ public:
         dotStrength = effect.dotStrength;
         dotPotency = effect.dotPotency;
         dotChance = effect.dotChance;
+        primaryPercent = effect.primaryPercent;
+        secondaryPercent = effect.secondaryPercent;
     }
 
     virtual ~DotEffect()
@@ -69,6 +78,9 @@ public:
         dotStrength = effect.dotStrength;
         dotPotency = effect.dotPotency;
         dotChance = effect.dotChance;
+        primaryPercent = effect.primaryPercent;
+        secondaryPercent = effect.secondaryPercent;
+
         return *this;
     }
     inline int compareTo(const DotEffect & effect)
@@ -88,6 +100,9 @@ public:
         dotStrength = dot.getIntField("dotStrength");
         dotPotency = dot.getIntField("dotPotency");
         dotChance = dot.getIntField("dotChance");
+        primaryPercent = dot.getByteField("primaryPercent");
+        secondaryPercent = dot.getByteField("secondaryPercent");
+
         LuaObject defMods = dot.getObjectField("defenderStateDefenseModifiers");
         for(int i = 1;i <= defMods.getTableSize();++i){
             defenderStateDefenseModifers.add(defMods.getStringAt(i));
@@ -173,6 +188,14 @@ public:
         this->dotChance = dotChance;
     }
 
+    byte getPrimaryPercent(){
+       return primaryPercent;
+    }
+
+    byte getSecondaryPercent(){
+       return secondaryPercent;
+    }
+
 };
 
 
index c9cdb5a..b36cbca 100644 (file)
@@ -57,16 +57,17 @@ DamageOverTime::DamageOverTime() {
        setDuration(0);
        setPotency(0.0f);
        setExpires(0);
-
+       setSecondaryStrength(0);
        addSerializableVariables();
 }
 
-DamageOverTime::DamageOverTime(uint64 tp, uint8 attrib, uint32 str, uint32 dur, float potency) {
+DamageOverTime::DamageOverTime(uint64 tp, uint8 attrib, uint32 str, uint32 dur, float potency, int secondaryStrength) {
        setType(tp);
        setAttribute(attrib);
        strength = str;
        setDuration(dur);
        setPotency(potency);
+       setSecondaryStrength(secondaryStrength);
        activate();
 
        addSerializableVariables();
@@ -82,6 +83,8 @@ DamageOverTime::DamageOverTime(const DamageOverTime& dot) : Object(), Serializab
        potency = dot.potency;
        expires = dot.expires;
        nextTick = dot.nextTick;
+       secondaryStrength = dot.secondaryStrength;
+
 }
 
 DamageOverTime& DamageOverTime::operator=(const DamageOverTime& dot) {
@@ -95,6 +98,8 @@ DamageOverTime& DamageOverTime::operator=(const DamageOverTime& dot) {
        potency = dot.potency;
        expires = dot.expires;
        nextTick = dot.nextTick;
+       secondaryStrength = dot.secondaryStrength;
+
 
        return *this;
 }
@@ -107,6 +112,8 @@ void DamageOverTime::addSerializableVariables() {
        addSerializableVariable("potency", &potency);
        addSerializableVariable("expires", &expires);
        addSerializableVariable("nextTick", &nextTick);
+       addSerializableVariable("secondaryStrength", &secondaryStrength);
+
 }
 
 /*bool DamageOverTime::toBinaryStream(ObjectOutputStream* stream) {
@@ -222,9 +229,10 @@ uint32 DamageOverTime::doBleedingTick(CreatureObject* victim) {
 uint32 DamageOverTime::doFireTick(CreatureObject* victim) {
        uint32 attr = victim->getHAM(attribute);
        uint32 strengthToApply = strength;
+       int woundsToApply = secondaryStrength;
 
        if ((int)strength > 0)
-               victim->addWounds(attribute, strength, true);
+               victim->addWounds(attribute, woundsToApply, true);
 
        if (attr < strengthToApply)
                strengthToApply = attr - 1;
index 8d1ac88..25357f2 100644 (file)
@@ -32,9 +32,11 @@ protected:
 
        Time expires;
        Time nextTick;
+       int secondaryStrength;
+
 public:
        DamageOverTime();
-       DamageOverTime(uint64 tp, uint8 attrib, uint32 str, uint32 dur, float potency);
+       DamageOverTime(uint64 tp, uint8 attrib, uint32 str, uint32 dur, float potency, int secondaryStr = 0);
 
        DamageOverTime(const DamageOverTime& dot);
        DamageOverTime& operator=(const DamageOverTime& dot);
@@ -82,6 +84,9 @@ public:
                expires = time;
        }
 
+       inline void setSecondaryStrength(int str){
+               secondaryStrength = str;
+       }
        //Getters
        inline uint64 getType() {
                return type;
@@ -126,6 +131,12 @@ public:
        inline Time getNextTick() {
                return nextTick;
        }
+
+       inline int getSecondaryStrength() {
+               return secondaryStrength;
+       }
+
+
 };
 
 
index c205213..7a65a31 100644 (file)
@@ -87,7 +87,7 @@ int DamageOverTimeList::getStrength(uint8 pool, uint64 dotType) {
        return strength;
 }
 
-uint32 DamageOverTimeList::addDot(CreatureObject* victim, uint64 objectID, uint32 duration, uint64 dotType, uint8 pool, uint32 strength, float potency, uint32 defense) {
+uint32 DamageOverTimeList::addDot(CreatureObject* victim, uint64 objectID, uint32 duration, uint64 dotType, uint8 pool, uint32 strength, float potency, uint32 defense, int secondaryStrength) {
        if (strength == 0) return 0;
        int oldStrength = getStrength(pool, dotType);
        float dotReductionMod = 1.0f;
@@ -133,7 +133,7 @@ uint32 DamageOverTimeList::addDot(CreatureObject* victim, uint64 objectID, uint3
                objectID = Long::hashCode(CreatureState::DISEASED);
 
        }
-       DamageOverTime newDot(dotType, pool, redStrength, duration, redPotency);
+       DamageOverTime newDot(dotType, pool, redStrength, duration, redPotency, secondaryStrength);
        int dotPower = newDot.initDot(victim);
        victim->setState(dotType);
 
index 1eec059..3f2069a 100644 (file)
@@ -28,7 +28,7 @@ public:
        }
 
        uint64 activateDots(CreatureObject* victim);
-       uint32 addDot(CreatureObject* victim, uint64 parentObjectID, uint32 duration, uint64 dotType, uint8 pool, uint32 strength, float potency, uint32 defense);
+       uint32 addDot(CreatureObject* victim, uint64 parentObjectID, uint32 duration, uint64 dotType, uint8 pool, uint32 strength, float potency, uint32 defense, int secondaryStrength = 0);
        bool healState(CreatureObject* victim, uint64 dotType, float reduction);
        void clear(CreatureObject* creature);