Sins of a Solar Empire : Real-Time Strategy. Unrivalled Scale.
© 2003-2016 Ironclad Games Corporation Vancouver, BC. All rights reserved.
© 2006-2016 Stardock Entertainment

[Question] could someone tell me about the function of "onReapplyDuplicateType" and so on

By on December 27, 2014 9:31:24 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

BingXueZhiYa

Join Date 01/2013
0

Well, I have been studied modding in SSE for a long time. With the help of Eclipse plugin, I could edit the 

actions skilled. But I still not really understand the first few lines of a buff file.

As the below:

onReapplyDuplicateType "PrioritizeNewBuffs"
buffStackingLimitType "ForAllPlayers"

buffExclusivityForAIType "NotExclusive"

What are those mean in the game, or what will happen if I edit these lines.

 

BTW, is there someone know the other enum of "buffExclusivityForAIType "

 

Thanks at last.

Locked Post 10 Replies
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
December 28, 2014 10:14:24 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

onReapplyDuplicateType refers to what happens when a buff is applied to a target a second time. Say the buff has a stacking limit of 1, and it has a finish condition of time elapsed; in this case using PrioritizeNewBuffs would be good as the "new" buff, which has a "new" timer, would be better to apply to the target. However, when dealing with say a passive ability that only has out of range as a finish condition, using PrioritizeOldBuffs would be better as this uses up less CPU resources and as reapplying the buff ultimately serves no purpose.

buffStackingLimitType refers to the "owner" of the original caster. For example, with a stacking limit of one and a buffStackingLimitType of ForAllPlayers, a phase gate buff will only work for a single player, if there are multiple phase gates in a gravity well. However, with a buffStackingLimitType of PerPlayer means that each player has a stacking limit of 1, i.e. everyone can have a phase gate buff on that gravity well.

From what I can tell buffExclusivityForAIType goes hand in hand with buffStackingLimitType, namely if you have a buffStackingLimitType of PerPlayer buffExclusivityForAIType of ExclusivePerPlayer. However, for buffs that applies to all players rather than being focused on per player, it seems that ExclusiveForAllPlayers and NotExclusive effectively do the same thing, confusingly.

Reason for Karma (Optional)
Successfully updated karma reason!
December 29, 2014 6:50:20 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting Lavo_2,


buffStackingLimitType refers to the "owner" of the original caster. For example, with a stacking limit of one and a buffStackingLimitType of ForAllPlayers, a phase gate buff will only work for a single player, if there are multiple phase gates in a gravity well. However, with a buffStackingLimitType of PerPlayer means that each player has a stacking limit of 1, i.e. everyone can have a phase gate buff on that gravity well.

Not really understand the "buffStackingLimitType". Do you mean that if both A and B (allied or enemy) have a phase gate in a same gravity well (in the "ForAllPlayers" mode), only one of them would get the effect of phase point? 

In another case, can I understand the "ForAllPlayers" as many entities shared a single buff in ROM? Once the buff is removed (for example, removed by another buff) all entities will loss it. The "PerPlayer" means every entities has a space to store the buff in ROM itself. So the end condition will be calculated for them one by one.

 

Reason for Karma (Optional)
Successfully updated karma reason!
December 29, 2014 10:58:31 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Yes, that is correct; with how phase gates are set up, only A or B will have the phase end point. The phase gate ability is also rather terribly done; if a phase gate buff is "trumped" by a new one, the other phase gate is useless as it will never properly reapply the phase end point buff again.

That's not how it works. It means that say Ship 1 and Ship 2 have an ability that does -50% acceleration to an enemy ship. If the stacking limit is 2, and both ships can cast the ability infinitely, with ForAllPlayers the enemy ship will experience -100% acceleration, as the buff can only stack two times. However, if the buff is set to PerPlayer, the ship will experience -200% acceleration, as both Ship 1 and Ship 2 each cast the ability two times, because each player can apply the buff 2 times.

Reason for Karma (Optional)
Successfully updated karma reason!
December 29, 2014 7:35:55 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting Lavo_2,


That's not how it works. It means that say Ship 1 and Ship 2 have an ability that does -50% acceleration to an enemy ship. If the stacking limit is 2, and both ships can cast the ability infinitely, with ForAllPlayers the enemy ship will experience -100% acceleration, as the buff can only stack two times. However, if the buff is set to PerPlayer, the ship will experience -200% acceleration, as both Ship 1 and Ship 2 each cast the ability two times, because each player can apply the buff 2 times.

Oh, I understand. The "player" is the entity rather than owner or player. " ForAllPlayers " means the stack limit is for the target, no matter how many caster there are, the target could only have a limited buff. But "PerPlayer" means the limit will be calculated for every caster, the upper limit of target is only decided by the number of caster. 

Another question is about the percentage. The -100% max-speed seems like does not mean a can't move, but the -100% damageAsDamageTarget will really lead to can not be damaged. But the shield ability of Vasari StarBase has a buff of -200% damage from front. Will it be necessary? Or how does the percentage variable be calculated in game? There are many case that -100% does not mean zero in game.

Reason for Karma (Optional)
Successfully updated karma reason!
January 3, 2015 5:51:17 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

The percentage bit was purely an example. Simply put, in Sins, -100% does not mean zero.

Reason for Karma (Optional)
Successfully updated karma reason!
January 3, 2015 6:53:29 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting Lavo_2,

The percentage bit was purely an example. Simply put, in Sins, -100% does not mean zero.

Indeed, it means one half for most things. There are a few things where -100% is zero. Planeet Population reduction I think for example.

 

The exact formula for things besides those special cases is 1/(1 + n). 

Reason for Karma (Optional)
Successfully updated karma reason!
January 5, 2015 4:44:50 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,


Indeed, it means one half for most things. There are a few things where -100% is zero. Planeet Population reduction I think for example.

 

The exact formula for things besides those special cases is 1/(1 + n). 

 

Thanks a lot. Are there other 'special cases'? I think the damageAsDamageTarget must be one, but I have no mind about other.

Reason for Karma (Optional)
Successfully updated karma reason!
January 5, 2015 7:11:37 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting BingXueZhiYa,


Quoting GoaFan77,




Indeed, it means one half for most things. There are a few things where -100% is zero. Planeet Population reduction I think for example.

 

The exact formula for things besides those special cases is 1/(1 + n). 



 

Thanks a lot. Are there other 'special cases'? I think the damageAsDamageTarget must be one, but I have no mind about other.

 

No. -100% damage reduction doesn't mean the ship instantly dies, it means it takes twice as much damage.

Reason for Karma (Optional)
Successfully updated karma reason!
January 5, 2015 8:04:33 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting GoaFan77,

No. -100% damage reduction doesn't mean the ship instantly dies, it means it takes twice as much damage.

 

No, I mean that 100% of this parameter leads to invincible. I wonder what are other cases that 100% or -100% means zero. Planet Population reduction may be one, as you say. I am interested in others.

Reason for Karma (Optional)
Successfully updated karma reason!
January 5, 2015 11:24:44 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting BingXueZhiYa,


Quoting GoaFan77,


No. -100% damage reduction doesn't mean the ship instantly dies, it means it takes twice as much damage.



 

No, I mean that 100% of this parameter leads to invincible. I wonder what are other cases that 100% or -100% means zero. Planet Population reduction may be one, as you say. I am interested in others.

No it doesn't. On ships it will double their durability, not make you invulnerable.

 

That said, the equivalent modifier for planets (don't remember what its called off the top of my head) does make the planet invincible (what the TEC shield generator does). Seems whoever coded the planet stuff wasn't on board with the math the other team members were using.

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #101114  walnut1   Server Load Time: 00:00:00.0000625   Page Render Time: