Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/helpers/Transform.js
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | function ChangeEntityTemplate(oldEnt, newTemplate) | ||||
var cmpHealth = Engine.QueryInterface(oldEnt, IID_Health); | var cmpHealth = Engine.QueryInterface(oldEnt, IID_Health); | ||||
var cmpNewHealth = Engine.QueryInterface(newEnt, IID_Health); | var cmpNewHealth = Engine.QueryInterface(newEnt, IID_Health); | ||||
if (cmpHealth && cmpNewHealth) | if (cmpHealth && cmpNewHealth) | ||||
{ | { | ||||
var healthLevel = Math.max(0, Math.min(1, cmpHealth.GetHitpoints() / cmpHealth.GetMaxHitpoints())); | var healthLevel = Math.max(0, Math.min(1, cmpHealth.GetHitpoints() / cmpHealth.GetMaxHitpoints())); | ||||
cmpNewHealth.SetHitpoints(cmpNewHealth.GetMaxHitpoints() * healthLevel); | cmpNewHealth.SetHitpoints(cmpNewHealth.GetMaxHitpoints() * healthLevel); | ||||
} | } | ||||
let cmpBuilderList = QueryBuilderListInterface(oldEnt); | |||||
let cmpNewBuilderList = QueryBuilderListInterface(newEnt); | |||||
if (cmpBuilderList && cmpNewBuilderList) | |||||
cmpNewBuilderList.AddBuilders(cmpBuilderList.GetBuilders()); | |||||
let cmpPromotion = Engine.QueryInterface(oldEnt, IID_Promotion); | let cmpPromotion = Engine.QueryInterface(oldEnt, IID_Promotion); | ||||
let cmpNewPromotion = Engine.QueryInterface(newEnt, IID_Promotion); | let cmpNewPromotion = Engine.QueryInterface(newEnt, IID_Promotion); | ||||
if (cmpPromotion && cmpNewPromotion) | if (cmpPromotion && cmpNewPromotion) | ||||
cmpNewPromotion.IncreaseXp(cmpPromotion.GetCurrentXp()); | cmpNewPromotion.IncreaseXp(cmpPromotion.GetCurrentXp()); | ||||
let cmpResGatherer = Engine.QueryInterface(oldEnt, IID_ResourceGatherer); | let cmpResGatherer = Engine.QueryInterface(oldEnt, IID_ResourceGatherer); | ||||
let cmpNewResGatherer = Engine.QueryInterface(newEnt, IID_ResourceGatherer); | let cmpNewResGatherer = Engine.QueryInterface(newEnt, IID_ResourceGatherer); | ||||
if (cmpResGatherer && cmpNewResGatherer) | if (cmpResGatherer && cmpNewResGatherer) | ||||
▲ Show 20 Lines • Show All 202 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator