forked from 0ad/0ad
Add notification for missing resources when tributing. Patch by alpha123. Fixes #1839.
This was SVN commit r13276.
This commit is contained in:
parent
637abf8167
commit
844f71681a
@ -175,7 +175,7 @@ Player.prototype.GetNeededResources = function(amounts)
|
||||
return amountsNeeded;
|
||||
};
|
||||
|
||||
Player.prototype.TrySubtractResources = function(amounts)
|
||||
Player.prototype.SubtractResourcesOrNotify = function(amounts)
|
||||
{
|
||||
var amountsNeeded = this.GetNeededResources(amounts);
|
||||
|
||||
@ -190,17 +190,23 @@ Player.prototype.TrySubtractResources = function(amounts)
|
||||
cmpGUIInterface.PushNotification(notification);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// Subtract the resources
|
||||
var cmpStatisticsTracker = QueryPlayerIDInterface(this.playerID, IID_StatisticsTracker);
|
||||
for (var type in amounts)
|
||||
{
|
||||
this.resourceCount[type] -= amounts[type];
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
Player.prototype.TrySubtractResources = function(amounts)
|
||||
{
|
||||
if (!this.SubtractResourcesOrNotify(amounts))
|
||||
return false;
|
||||
|
||||
var cmpStatisticsTracker = QueryPlayerIDInterface(this.playerID, IID_StatisticsTracker);
|
||||
if (cmpStatisticsTracker)
|
||||
for (var type in amounts)
|
||||
cmpStatisticsTracker.IncreaseResourceUsedCounter(type, amounts[type]);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
@ -534,10 +540,8 @@ Player.prototype.TributeResource = function(player, amounts)
|
||||
if (this.state != "active" || cmpPlayer.state != "active")
|
||||
return;
|
||||
|
||||
if (!this.GetNeededResources(amounts))
|
||||
{
|
||||
for (var type in amounts)
|
||||
this.resourceCount[type] -= amounts[type];
|
||||
if (!this.SubtractResourcesOrNotify(amounts))
|
||||
return;
|
||||
|
||||
cmpPlayer.AddResources(amounts);
|
||||
|
||||
@ -551,9 +555,8 @@ Player.prototype.TributeResource = function(player, amounts)
|
||||
|
||||
var notification = {"type": "tribute", "player": player, "player1": this.playerID, "amounts": amounts};
|
||||
var cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
|
||||
if (cmpGUIInterface)
|
||||
cmpGUIInterface.PushNotification(notification);
|
||||
}
|
||||
// else not enough resources... TODO: send gui notification
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Player, "Player", Player);
|
||||
|
Loading…
Reference in New Issue
Block a user