Ticket #3889: xpPerHit.diff
File xpPerHit.diff, 1.6 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/simulation/components/Looter.js
14 14 if (!cmpLoot) 15 15 return; 16 16 17 // Loot experience points as defined in the template18 var xp = cmpLoot.GetXp();19 if (xp > 0)20 {21 let cmpPromotion = Engine.QueryInterface(this.entity, IID_Promotion);22 if (cmpPromotion)23 cmpPromotion.IncreaseXp(xp);24 }25 26 17 // Loot resources as defined in the templates 27 18 var resources = cmpLoot.GetResources(); 28 19 for (let type in resources) -
binaries/data/mods/public/simulation/helpers/Damage.js
74 74 // Damage the target 75 75 var targetState = cmpDamageReceiver.TakeDamage(data.strengths.hack * data.multiplier, data.strengths.pierce * data.multiplier, data.strengths.crush * data.multiplier); 76 76 77 var cmpPromotion = Engine.QueryInterface(data.attacker, IID_Promotion); 78 var cmpLoot = Engine.QueryInterface(data.target, IID_Loot); 79 if (cmpPromotion && cmpLoot && cmpLoot.GetXp() > 0) 80 cmpPromotion.IncreaseXp(cmpLoot.GetXp() * -targetState.change / cmpHealth.GetMaxHitpoints()); 81 77 82 // If the target was killed run some cleanup 78 83 if (targetState.killed) 79 84 Damage.TargetKilled(data.attacker, data.target);