Skip to content

Commit

Permalink
- Reldens - v4.0.0 - Fix rewards split missing configuration.
Browse files Browse the repository at this point in the history
  • Loading branch information
damian-pastorini committed Oct 22, 2024
1 parent 0d42f51 commit 6381ee4
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions lib/rewards/server/subscribers/rewards-subscriber.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ class RewardsSubscriber
{
// @TODO - BETA - Handle undefined cases.
this.teamsPlugin = props?.featuresManager?.featuresList?.teams.package;
this.actionsPlugin = props?.featuresManager?.featuresList?.actions.package;
this.rewardsConfig = props.featuresManager?.config?.getWithoutLogs('client/rewards/general', {}) ?? {};
this.splitExperience = sc.get(this.rewardsConfig, 'splitExperience', 0);
this.splitModifier = sc.get(this.rewardsConfig, 'splitModifier', 0);
this.targetDeterminer = new TargetDeterminer(this.teamsPlugin);
}

Expand All @@ -33,6 +36,7 @@ class RewardsSubscriber
}
let rewards = sc.get(targetObject, 'rewards', false);
let winningRewards = this.getWinningRewards(rewards);
// Logger.debug('Player won rewards.', rewards, {playerId: playerSchema.player_id, objectId: targetObject.id});
if(0 === winningRewards.length){
return;
}
Expand Down Expand Up @@ -115,7 +119,7 @@ class RewardsSubscriber
let playersKeys = Object.keys(rewardTargets);
let randomIndex = sc.randomInteger(0, playersKeys.length);
let randomTarget = rewardTargets[randomIndex];
let configuredTargets = RewardsConst.SPLIT_MODIFIER.ALL === this.rewardsConfig['splitModifier']
let configuredTargets = RewardsConst.SPLIT_MODIFIER.ALL === this.splitModifier
? rewardTargets
: {[randomTarget.player_id]: randomTarget};
for(let i of Object.keys(configuredTargets)){
Expand All @@ -134,18 +138,20 @@ class RewardsSubscriber
async applyExperienceReward(reward, rewardTargets)
{
let playersKeys = Object.keys(rewardTargets);
if(RewardsConst.SPLIT_EXPERIENCE.ALL === this.rewardsConfig['splitExperience']){
if(RewardsConst.SPLIT_EXPERIENCE.ALL === this.splitExperience){
for(let i of playersKeys){
let experiencePerPlayer = Number(reward.experience) / Number(playersKeys.length);
await rewardTargets[i].skillsServer.classPath.addExperience(experiencePerPlayer);
let rewardTargetClassPath = rewardTargets[i].skillsServer.classPath;
await rewardTargetClassPath.addExperience(experiencePerPlayer);
}
}
if(RewardsConst.SPLIT_EXPERIENCE.PROPORTIONAL_BY_LEVEL === this.rewardsConfig['splitExperience']){
if(RewardsConst.SPLIT_EXPERIENCE.PROPORTIONAL_BY_LEVEL === this.splitExperience){
let levelsTotal = this.targetsLevelsTotal(playersKeys, rewardTargets);
for(let i of playersKeys){
let playerLevelProportion = (rewardTargets[i].skillsServer.classPath.currentLevel * 100) / levelsTotal;
let rewardTargetClassPath = rewardTargets[i].skillsServer.classPath;
let playerLevelProportion = (rewardTargetClassPath.currentLevel * 100) / levelsTotal;
let experiencePerPlayer = (playerLevelProportion * Number(reward.experience)) / 100 ;
await rewardTargets[i].skillsServer.classPath.addExperience(experiencePerPlayer);
await rewardTargetClassPath.addExperience(experiencePerPlayer);
}
}
return this.createRewardResult(true);
Expand Down

0 comments on commit 6381ee4

Please sign in to comment.