Bladestorm Games
New member
While working on a new mod I ran across an issue.
I wanted to have a "+X per Y Player Level" and achieved that like so:
<effect_group>
<!-- Carry Capacity based on Player Level -->
<requirement name="PlayerLevel" operation="GT" value="9"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
</effect_group>
I wanted to have multiple breakpoints, so I tried this:
<effect_group>
<!-- Carry Capacity based on Player Level -->
<!-- Player Level 10+ -->
<requirement name="PlayerLevel" operation="GT" value="9"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<!-- Player Level 20+ -->
<requirement name="PlayerLevel" operation="GT" value="19"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<!-- Player Level 30+ -->
<requirement name="PlayerLevel" operation="GT" value="29"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
</effect_group>
I thought the code above would be similar to this:
if (PlayerLevel > 9) {
CarryCapacity += 1;
}
if (PlayerLevel > 19) {
CarryCapacity += 1;
}
if (PlayerLevel > 29) {
CarryCapacity += 1;
}
But it seems take all requirements within the effect_group, THEN apply the passive_effect IF the requirements are met.
So as a solution I did this:
<effect_group>
<!-- Player Level 10+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<!-- Player Level 20+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 30+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="29"/>
</passive_effect>
</effect_group>
But what If i want CarryCapacity, RunSpeed, and Health? Do I structure the code like this?:
<effect_group>
<!-- Player Level 10+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 20+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 30+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
</effect_group>
The above does work, Im just wondering if that is the correct way to go about it.
I wanted to have a "+X per Y Player Level" and achieved that like so:
<effect_group>
<!-- Carry Capacity based on Player Level -->
<requirement name="PlayerLevel" operation="GT" value="9"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
</effect_group>
I wanted to have multiple breakpoints, so I tried this:
<effect_group>
<!-- Carry Capacity based on Player Level -->
<!-- Player Level 10+ -->
<requirement name="PlayerLevel" operation="GT" value="9"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<!-- Player Level 20+ -->
<requirement name="PlayerLevel" operation="GT" value="19"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<!-- Player Level 30+ -->
<requirement name="PlayerLevel" operation="GT" value="29"/>
<passive_effect name="CarryCapacity" operation="base_add" value="1">
</effect_group>
I thought the code above would be similar to this:
if (PlayerLevel > 9) {
CarryCapacity += 1;
}
if (PlayerLevel > 19) {
CarryCapacity += 1;
}
if (PlayerLevel > 29) {
CarryCapacity += 1;
}
But it seems take all requirements within the effect_group, THEN apply the passive_effect IF the requirements are met.
So as a solution I did this:
<effect_group>
<!-- Player Level 10+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<!-- Player Level 20+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 30+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="29"/>
</passive_effect>
</effect_group>
But what If i want CarryCapacity, RunSpeed, and Health? Do I structure the code like this?:
<effect_group>
<!-- Player Level 10+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 20+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
<!-- Player Level 30+ -->
<passive_effect name="CarryCapacity" operation="base_add" value="1">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="RunSpeed" operation="perc_add" value=".05">
<requirement name="PlayerLevel" operation="GT" value="9"/>
</passive_effect>
<passive_effect name="HealthMax" operation="base_add" value="2">
<requirement name="PlayerLevel" operation="GT" value="19"/>
</passive_effect>
</effect_group>
The above does work, Im just wondering if that is the correct way to go about it.