Index: ps/trunk/binaries/data/mods/public/simulation/components/Promotion.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/Promotion.js +++ ps/trunk/binaries/data/mods/public/simulation/components/Promotion.js @@ -87,9 +87,6 @@ promotedTemplateName = template.Promotion.Entity; } this.Promote(promotedTemplateName); - let cmpPromotion = Engine.QueryInterface(this.promotedUnitEntity, IID_Promotion); - if (cmpPromotion) - cmpPromotion.IncreaseXp(this.currentXp); } Engine.PostMessage(this.entity, MT_ExperienceChanged, {}); Index: ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Promotion.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Promotion.js +++ ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Promotion.js @@ -41,10 +41,12 @@ let ChangeEntityTemplate = function(ent, template) { let newEnt = ent + 1; + let exp = cmpPromotion.GetCurrentXp(); cmpPromotion = ConstructComponent(newEnt, "Promotion", { "Entity": entTemplates[newEnt], "RequiredXp": 1000 }); + cmpPromotion.IncreaseXp(exp); return newEnt; }; Engine.RegisterGlobal("ChangeEntityTemplate", ChangeEntityTemplate);