mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 14:24:43 +00:00
Use a gaia specific player entity.
Fix some code that assumed components exist instead of testing for them. EntityLimits and TechnologyManager are not needed for gaia and will be removed in the future. This was SVN commit r16119.
This commit is contained in:
@@ -50,14 +50,15 @@ Armour.prototype.SetInvulnerability = function(invulnerability)
|
||||
Armour.prototype.TakeDamage = function(hack, pierce, crush, source)
|
||||
{
|
||||
// Alert target owner of attack
|
||||
var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
|
||||
var cmpAttackDetection = QueryPlayerIDInterface(cmpOwnership.GetOwner(), IID_AttackDetection);
|
||||
var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|
||||
var now = cmpTimer.GetTime();
|
||||
if (now > this.nextAlertTime)
|
||||
var cmpAttackDetection = QueryOwnerInterface(this.entity, IID_AttackDetection);
|
||||
if (cmpAttackDetection)
|
||||
{
|
||||
this.nextAlertTime = now + cmpAttackDetection.GetSuppressionTime();
|
||||
cmpAttackDetection.AttackAlert(this.entity, source);
|
||||
var now = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer).GetTime();
|
||||
if (now > this.nextAlertTime)
|
||||
{
|
||||
this.nextAlertTime = now + cmpAttackDetection.GetSuppressionTime();
|
||||
cmpAttackDetection.AttackAlert(this.entity, source);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.invulnerable)
|
||||
|
||||
@@ -46,7 +46,7 @@ GuiInterface.prototype.GetSimulationState = function(player)
|
||||
var ret = {
|
||||
"players": []
|
||||
};
|
||||
|
||||
|
||||
var cmpPlayerMan = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
|
||||
var n = cmpPlayerMan.GetNumPlayers();
|
||||
for (var i = 0; i < n; ++i)
|
||||
@@ -54,7 +54,7 @@ GuiInterface.prototype.GetSimulationState = function(player)
|
||||
var playerEnt = cmpPlayerMan.GetPlayerByID(i);
|
||||
var cmpPlayerEntityLimits = Engine.QueryInterface(playerEnt, IID_EntityLimits);
|
||||
var cmpPlayer = Engine.QueryInterface(playerEnt, IID_Player);
|
||||
|
||||
|
||||
// Work out what phase we are in
|
||||
var cmpTechnologyManager = Engine.QueryInterface(playerEnt, IID_TechnologyManager);
|
||||
var phase = "";
|
||||
@@ -64,7 +64,7 @@ GuiInterface.prototype.GetSimulationState = function(player)
|
||||
phase = "town";
|
||||
else if (cmpTechnologyManager.IsTechnologyResearched("phase_village"))
|
||||
phase = "village";
|
||||
|
||||
|
||||
// store player ally/neutral/enemy data as arrays
|
||||
var allies = [];
|
||||
var mutualAllies = [];
|
||||
@@ -111,10 +111,8 @@ GuiInterface.prototype.GetSimulationState = function(player)
|
||||
|
||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
|
||||
if (cmpRangeManager)
|
||||
{
|
||||
ret.circularMap = cmpRangeManager.GetLosCircular();
|
||||
}
|
||||
|
||||
|
||||
// Add timeElapsed
|
||||
var cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
|
||||
ret.timeElapsed = cmpTimer.GetTime();
|
||||
@@ -148,7 +146,8 @@ GuiInterface.prototype.GetExtendedSimulationState = function(player)
|
||||
{
|
||||
var playerEnt = cmpPlayerMan.GetPlayerByID(i);
|
||||
var cmpPlayerStatisticsTracker = Engine.QueryInterface(playerEnt, IID_StatisticsTracker);
|
||||
ret.players[i].statistics = cmpPlayerStatisticsTracker.GetStatistics();
|
||||
if (cmpPlayerStatisticsTracker)
|
||||
ret.players[i].statistics = cmpPlayerStatisticsTracker.GetStatistics();
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -46,7 +46,7 @@ function LoadPlayerSettings(settings, newPlayers)
|
||||
{
|
||||
// Add player entity to engine
|
||||
var civ = getSetting(playerData, playerDefaults, numPlayers, "Civ");
|
||||
var template = cmpTemplateManager.TemplateExists("special/"+civ+"_player") ? "special/"+civ+"_player" : "special/player";
|
||||
var template = cmpTemplateManager.TemplateExists("special/player_"+civ) ? "special/player_"+civ : "special/player";
|
||||
var entID = Engine.AddEntity(template);
|
||||
var cmpPlayer = Engine.QueryInterface(entID, IID_Player);
|
||||
if (!cmpPlayer)
|
||||
@@ -67,7 +67,7 @@ function LoadPlayerSettings(settings, newPlayers)
|
||||
for (var i = 0; i < numPlayers; ++i)
|
||||
{
|
||||
var civ = getSetting(playerData, playerDefaults, i, "Civ");
|
||||
var template = cmpTemplateManager.TemplateExists("special/"+civ+"_player") ? "special/"+civ+"_player" : "special/player";
|
||||
var template = cmpTemplateManager.TemplateExists("special/player_"+civ) ? "special/player_"+civ : "special/player";
|
||||
var entID = cmpPlayerManager.GetPlayerByID(i);
|
||||
if (cmpTemplateManager.GetCurrentTemplateName(entID) === template)
|
||||
continue;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<EntityLimits>
|
||||
<Limits/>
|
||||
<LimitChangers/>
|
||||
<LimitRemovers/>
|
||||
</EntityLimits>
|
||||
<Player/>
|
||||
<TechnologyManager/>
|
||||
</Entity>
|
||||
Reference in New Issue
Block a user