Merge pull request #11627 from obrakmann/player-experience2
Enable tracking of player experience in all mods
This commit is contained in:
@@ -65,6 +65,13 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
if (building != null && building.Locked)
|
if (building != null && building.Locked)
|
||||||
building.Unlock();
|
building.Unlock();
|
||||||
|
|
||||||
|
if (self.Owner.Stances[oldOwner].HasStance(capturesInfo.PlayerExperienceStances))
|
||||||
|
{
|
||||||
|
var exp = self.Owner.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null)
|
||||||
|
exp.GiveExperience(capturesInfo.PlayerExperience);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using OpenRA.Mods.Common.Effects;
|
using OpenRA.Mods.Common.Effects;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Activities
|
namespace OpenRA.Mods.Common.Activities
|
||||||
@@ -18,12 +19,14 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
{
|
{
|
||||||
readonly Actor target;
|
readonly Actor target;
|
||||||
readonly int payload;
|
readonly int payload;
|
||||||
|
readonly int experience;
|
||||||
|
|
||||||
public DonateSupplies(Actor self, Actor target, int payload)
|
public DonateSupplies(Actor self, Actor target, int payload, int playerExperience)
|
||||||
: base(self, target, EnterBehaviour.Dispose)
|
: base(self, target, EnterBehaviour.Dispose)
|
||||||
{
|
{
|
||||||
this.target = target;
|
this.target = target;
|
||||||
this.payload = payload;
|
this.payload = payload;
|
||||||
|
this.experience = playerExperience;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnInside(Actor self)
|
protected override void OnInside(Actor self)
|
||||||
@@ -33,6 +36,10 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
target.Owner.PlayerActor.Trait<PlayerResources>().GiveCash(payload);
|
target.Owner.PlayerActor.Trait<PlayerResources>().GiveCash(payload);
|
||||||
|
|
||||||
|
var exp = self.Owner.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null && target.Owner != self.Owner)
|
||||||
|
exp.GiveExperience(experience);
|
||||||
|
|
||||||
if (self.Owner.IsAlliedWith(self.World.RenderPlayer))
|
if (self.Owner.IsAlliedWith(self.World.RenderPlayer))
|
||||||
self.World.AddFrameEndTask(w => w.Add(new FloatingText(target.CenterPosition, target.Owner.Color.RGB, FloatingText.FormatCashTick(payload), 30)));
|
self.World.AddFrameEndTask(w => w.Add(new FloatingText(target.CenterPosition, target.Owner.Color.RGB, FloatingText.FormatCashTick(payload), 30)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
capturable.EndCapture();
|
capturable.EndCapture();
|
||||||
|
|
||||||
|
if (self.Owner.Stances[oldOwner].HasStance(capturesInfo.PlayerExperienceStances))
|
||||||
|
{
|
||||||
|
var exp = self.Owner.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null)
|
||||||
|
exp.GiveExperience(capturesInfo.PlayerExperience);
|
||||||
|
}
|
||||||
|
|
||||||
if (capturesInfo != null && capturesInfo.ConsumeActor)
|
if (capturesInfo != null && capturesInfo.ConsumeActor)
|
||||||
self.Dispose();
|
self.Dispose();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -49,6 +49,13 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
if (health.DamageState == DamageState.Undamaged)
|
if (health.DamageState == DamageState.Undamaged)
|
||||||
{
|
{
|
||||||
|
if (host.Owner != self.Owner)
|
||||||
|
{
|
||||||
|
var exp = host.Owner.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null)
|
||||||
|
exp.GiveExperience(repairsUnits.PlayerExperience);
|
||||||
|
}
|
||||||
|
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", repairsUnits.FinishRepairingNotification, self.Owner.Faction.InternalName);
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", repairsUnits.FinishRepairingNotification, self.Owner.Faction.InternalName);
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Suffixed by the internal repairing player name.")]
|
[Desc("Suffixed by the internal repairing player name.")]
|
||||||
public readonly string IndicatorPalettePrefix = "player";
|
public readonly string IndicatorPalettePrefix = "player";
|
||||||
|
|
||||||
|
[Desc("Experience gained by a player for repairing structures of allied players.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new RepairableBuilding(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new RepairableBuilding(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,6 +136,16 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
if (health.DamageState == DamageState.Undamaged)
|
if (health.DamageState == DamageState.Undamaged)
|
||||||
{
|
{
|
||||||
|
Repairers.Do(r =>
|
||||||
|
{
|
||||||
|
if (r == self.Owner)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var exp = r.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null)
|
||||||
|
exp.GiveExperience(Info.PlayerExperience);
|
||||||
|
});
|
||||||
|
|
||||||
Repairers.Clear();
|
Repairers.Clear();
|
||||||
RepairActive = false;
|
RepairActive = false;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
[Desc("The sound played when repairing a unit is done.")]
|
[Desc("The sound played when repairing a unit is done.")]
|
||||||
public readonly string FinishRepairingNotification = null;
|
public readonly string FinishRepairingNotification = null;
|
||||||
|
|
||||||
|
[Desc("Experience gained by the player owning this actor for repairing an allied unit.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RepairsUnits { }
|
public class RepairsUnits { }
|
||||||
|
|||||||
@@ -22,11 +22,19 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
[Desc("Types of actors that it can capture, as long as the type also exists in the Capturable Type: trait.")]
|
[Desc("Types of actors that it can capture, as long as the type also exists in the Capturable Type: trait.")]
|
||||||
public readonly HashSet<string> CaptureTypes = new HashSet<string> { "building" };
|
public readonly HashSet<string> CaptureTypes = new HashSet<string> { "building" };
|
||||||
|
|
||||||
[Desc("Unit will do damage to the actor instead of capturing it. Unit is destroyed when sabotaging.")]
|
[Desc("Unit will do damage to the actor instead of capturing it. Unit is destroyed when sabotaging.")]
|
||||||
public readonly bool Sabotage = true;
|
public readonly bool Sabotage = true;
|
||||||
|
|
||||||
[Desc("Only used if Sabotage=true. Sabotage damage expressed as a percentage of enemy health removed.")]
|
[Desc("Only used if Sabotage=true. Sabotage damage expressed as a percentage of enemy health removed.")]
|
||||||
public readonly int SabotageHPRemoval = 50;
|
public readonly int SabotageHPRemoval = 50;
|
||||||
|
|
||||||
|
[Desc("Experience granted to the capturing player.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
|
|
||||||
|
[Desc("Stance that the structure's previous owner needs to have for the capturing player to receive Experience.")]
|
||||||
|
public readonly Stance PlayerExperienceStances = Stance.Enemy;
|
||||||
|
|
||||||
[VoiceReference] public readonly string Voice = "Action";
|
[VoiceReference] public readonly string Voice = "Action";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new Captures(init.Self, this); }
|
public object Create(ActorInitializer init) { return new Captures(init.Self, this); }
|
||||||
|
|||||||
@@ -26,6 +26,12 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Destroy the unit after capturing.")]
|
[Desc("Destroy the unit after capturing.")]
|
||||||
public readonly bool ConsumeActor = false;
|
public readonly bool ConsumeActor = false;
|
||||||
|
|
||||||
|
[Desc("Experience granted to the capturing player.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
|
|
||||||
|
[Desc("Stance that the structure's previous owner needs to have for the capturing player to receive Experience.")]
|
||||||
|
public readonly Stance PlayerExperienceStances = Stance.Enemy;
|
||||||
|
|
||||||
[VoiceReference] public readonly string Voice = "Action";
|
[VoiceReference] public readonly string Voice = "Action";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new ExternalCaptures(init.Self, this); }
|
public object Create(ActorInitializer init) { return new ExternalCaptures(init.Self, this); }
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("The amount of cash the owner receives.")]
|
[Desc("The amount of cash the owner receives.")]
|
||||||
public readonly int Payload = 500;
|
public readonly int Payload = 500;
|
||||||
|
|
||||||
|
[Desc("The amount of experience the donating player receives.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
|
|
||||||
[VoiceReference] public readonly string Voice = "Action";
|
[VoiceReference] public readonly string Voice = "Action";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new SupplyTruck(this); }
|
public object Create(ActorInitializer init) { return new SupplyTruck(this); }
|
||||||
@@ -71,7 +74,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
|
|
||||||
self.SetTargetLine(target, Color.Yellow);
|
self.SetTargetLine(target, Color.Yellow);
|
||||||
self.QueueActivity(new DonateSupplies(self, target.Actor, info.Payload));
|
self.QueueActivity(new DonateSupplies(self, target.Actor, info.Payload, info.PlayerExperience));
|
||||||
}
|
}
|
||||||
|
|
||||||
class SupplyTruckOrderTargeter : UnitOrderTargeter
|
class SupplyTruckOrderTargeter : UnitOrderTargeter
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
@@ -59,58 +60,70 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
playerPanel.Bounds.Height += objectiveGroup.Bounds.Height;
|
playerPanel.Bounds.Height += objectiveGroup.Bounds.Height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var teamTemplate = playerPanel.Get<ScrollItemWidget>("TEAM_TEMPLATE");
|
||||||
var playerTemplate = playerPanel.Get("PLAYER_TEMPLATE");
|
var playerTemplate = playerPanel.Get("PLAYER_TEMPLATE");
|
||||||
playerPanel.RemoveChildren();
|
playerPanel.RemoveChildren();
|
||||||
|
|
||||||
foreach (var p in world.Players.Where(a => !a.NonCombatant))
|
var teams = world.Players.Where(p => !p.NonCombatant && p.Playable)
|
||||||
|
.Select(p => new Pair<Player, PlayerStatistics>(p, p.PlayerActor.TraitOrDefault<PlayerStatistics>()))
|
||||||
|
.OrderByDescending(p => p.Second != null ? p.Second.Experience : 0)
|
||||||
|
.GroupBy(p => (world.LobbyInfo.ClientWithIndex(p.First.ClientIndex) ?? new Session.Client()).Team)
|
||||||
|
.OrderByDescending(g => g.Sum(gg => gg.Second != null ? gg.Second.Experience : 0));
|
||||||
|
|
||||||
|
foreach (var t in teams)
|
||||||
{
|
{
|
||||||
var pp = p;
|
if (teams.Count() > 1)
|
||||||
var client = world.LobbyInfo.ClientWithIndex(pp.ClientIndex);
|
|
||||||
var item = playerTemplate.Clone();
|
|
||||||
LobbyUtils.SetupClientWidget(item, client, orderManager, client != null && client.Bot == null);
|
|
||||||
var nameLabel = item.Get<LabelWidget>("NAME");
|
|
||||||
var nameFont = Game.Renderer.Fonts[nameLabel.Font];
|
|
||||||
|
|
||||||
var suffixLength = new CachedTransform<string, int>(s => nameFont.Measure(s).X);
|
|
||||||
var name = new CachedTransform<Pair<string, int>, string>(c =>
|
|
||||||
WidgetUtils.TruncateText(c.First, nameLabel.Bounds.Width - c.Second, nameFont));
|
|
||||||
|
|
||||||
nameLabel.GetText = () =>
|
|
||||||
{
|
{
|
||||||
var suffix = pp.WinState == WinState.Undefined ? "" : " (" + pp.WinState + ")";
|
var teamHeader = ScrollItemWidget.Setup(teamTemplate, () => true, () => { });
|
||||||
if (client != null && client.State == Session.ClientState.Disconnected)
|
teamHeader.Get<LabelWidget>("TEAM").GetText = () => t.Key == 0 ? "No Team" : "Team {0}".F(t.Key);
|
||||||
suffix = " (Gone)";
|
var teamRating = teamHeader.Get<LabelWidget>("TEAM_SCORE");
|
||||||
|
teamRating.GetText = () => t.Sum(gg => gg.Second != null ? gg.Second.Experience : 0).ToString();
|
||||||
|
|
||||||
var sl = suffixLength.Update(suffix);
|
playerPanel.AddChild(teamHeader);
|
||||||
return name.Update(Pair.New(pp.PlayerName, sl)) + suffix;
|
|
||||||
};
|
|
||||||
nameLabel.GetColor = () => pp.Color.RGB;
|
|
||||||
|
|
||||||
var flag = item.Get<ImageWidget>("FACTIONFLAG");
|
|
||||||
flag.GetImageCollection = () => "flags";
|
|
||||||
if (player == null || player.Stances[pp] == Stance.Ally || player.WinState != WinState.Undefined)
|
|
||||||
{
|
|
||||||
flag.GetImageName = () => pp.Faction.InternalName;
|
|
||||||
item.Get<LabelWidget>("FACTION").GetText = () => pp.Faction.Name;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flag.GetImageName = () => pp.DisplayFaction.InternalName;
|
|
||||||
item.Get<LabelWidget>("FACTION").GetText = () => pp.DisplayFaction.Name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var team = item.Get<LabelWidget>("TEAM");
|
foreach (var p in t.ToList())
|
||||||
var teamNumber = pp.PlayerReference.Playable ? ((client == null) ? 0 : client.Team) : pp.PlayerReference.Team;
|
{
|
||||||
team.GetText = () => (teamNumber == 0) ? "-" : teamNumber.ToString();
|
var pp = p.First;
|
||||||
playerPanel.AddChild(item);
|
var client = world.LobbyInfo.ClientWithIndex(pp.ClientIndex);
|
||||||
|
var item = playerTemplate.Clone();
|
||||||
|
LobbyUtils.SetupClientWidget(item, client, orderManager, client != null && client.Bot == null);
|
||||||
|
var nameLabel = item.Get<LabelWidget>("NAME");
|
||||||
|
var nameFont = Game.Renderer.Fonts[nameLabel.Font];
|
||||||
|
|
||||||
var stats = pp.PlayerActor.TraitOrDefault<PlayerStatistics>();
|
var suffixLength = new CachedTransform<string, int>(s => nameFont.Measure(s).X);
|
||||||
if (stats == null)
|
var name = new CachedTransform<Pair<string, int>, string>(c =>
|
||||||
break;
|
WidgetUtils.TruncateText(c.First, nameLabel.Bounds.Width - c.Second, nameFont));
|
||||||
var totalKills = stats.UnitsKilled + stats.BuildingsKilled;
|
|
||||||
var totalDeaths = stats.UnitsDead + stats.BuildingsDead;
|
nameLabel.GetText = () =>
|
||||||
item.Get<LabelWidget>("KILLS").GetText = () => totalKills.ToString();
|
{
|
||||||
item.Get<LabelWidget>("DEATHS").GetText = () => totalDeaths.ToString();
|
var suffix = pp.WinState == WinState.Undefined ? "" : " (" + pp.WinState + ")";
|
||||||
|
if (client != null && client.State == Session.ClientState.Disconnected)
|
||||||
|
suffix = " (Gone)";
|
||||||
|
|
||||||
|
var sl = suffixLength.Update(suffix);
|
||||||
|
return name.Update(Pair.New(pp.PlayerName, sl)) + suffix;
|
||||||
|
};
|
||||||
|
nameLabel.GetColor = () => pp.Color.RGB;
|
||||||
|
|
||||||
|
var flag = item.Get<ImageWidget>("FACTIONFLAG");
|
||||||
|
flag.GetImageCollection = () => "flags";
|
||||||
|
if (player == null || player.Stances[pp] == Stance.Ally || player.WinState != WinState.Undefined)
|
||||||
|
{
|
||||||
|
flag.GetImageName = () => pp.Faction.InternalName;
|
||||||
|
item.Get<LabelWidget>("FACTION").GetText = () => pp.Faction.Name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flag.GetImageName = () => pp.DisplayFaction.InternalName;
|
||||||
|
item.Get<LabelWidget>("FACTION").GetText = () => pp.DisplayFaction.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
var experience = p.Second != null ? p.Second.Experience : 0;
|
||||||
|
item.Get<LabelWidget>("SCORE").GetText = () => experience.ToString();
|
||||||
|
|
||||||
|
playerPanel.AddChild(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,6 +273,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
template.Get<LabelWidget>("DEATHS").GetText = () => (stats.UnitsDead + stats.BuildingsDead).ToString();
|
template.Get<LabelWidget>("DEATHS").GetText = () => (stats.UnitsDead + stats.BuildingsDead).ToString();
|
||||||
template.Get<LabelWidget>("ASSETS_DESTROYED").GetText = () => "$" + stats.KillsCost;
|
template.Get<LabelWidget>("ASSETS_DESTROYED").GetText = () => "$" + stats.KillsCost;
|
||||||
template.Get<LabelWidget>("ASSETS_LOST").GetText = () => "$" + stats.DeathsCost;
|
template.Get<LabelWidget>("ASSETS_LOST").GetText = () => "$" + stats.DeathsCost;
|
||||||
|
template.Get<LabelWidget>("EXPERIENCE").GetText = () => stats.Experience.ToString();
|
||||||
template.Get<LabelWidget>("ACTIONS_MIN").GetText = () => AverageOrdersPerMinute(stats.OrderCount);
|
template.Get<LabelWidget>("ACTIONS_MIN").GetText = () => AverageOrdersPerMinute(stats.OrderCount);
|
||||||
|
|
||||||
return template;
|
return template;
|
||||||
|
|||||||
@@ -21,13 +21,15 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
readonly Stance validStances;
|
readonly Stance validStances;
|
||||||
readonly Cloak cloak;
|
readonly Cloak cloak;
|
||||||
readonly string notification;
|
readonly string notification;
|
||||||
|
readonly int experience;
|
||||||
|
|
||||||
public Infiltrate(Actor self, Actor target, EnterBehaviour enterBehaviour, Stance validStances, string notification)
|
public Infiltrate(Actor self, Actor target, EnterBehaviour enterBehaviour, Stance validStances, string notification, int experience)
|
||||||
: base(self, target, enterBehaviour)
|
: base(self, target, enterBehaviour)
|
||||||
{
|
{
|
||||||
this.target = target;
|
this.target = target;
|
||||||
this.validStances = validStances;
|
this.validStances = validStances;
|
||||||
this.notification = notification;
|
this.notification = notification;
|
||||||
|
this.experience = experience;
|
||||||
cloak = self.TraitOrDefault<Cloak>();
|
cloak = self.TraitOrDefault<Cloak>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,6 +48,10 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
foreach (var t in target.TraitsImplementing<INotifyInfiltrated>())
|
foreach (var t in target.TraitsImplementing<INotifyInfiltrated>())
|
||||||
t.Infiltrated(target, self);
|
t.Infiltrated(target, self);
|
||||||
|
|
||||||
|
var exp = self.Owner.PlayerActor.TraitOrDefault<PlayerExperience>();
|
||||||
|
if (exp != null)
|
||||||
|
exp.GiveExperience(experience);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(notification))
|
if (!string.IsNullOrEmpty(notification))
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
||||||
notification, self.Owner.Faction.InternalName);
|
notification, self.Owner.Faction.InternalName);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Scripting
|
|||||||
[Desc("Infiltrate the target actor.")]
|
[Desc("Infiltrate the target actor.")]
|
||||||
public void Infiltrate(Actor target)
|
public void Infiltrate(Actor target)
|
||||||
{
|
{
|
||||||
Self.QueueActivity(new Infiltrate(Self, target, info.EnterBehaviour, info.ValidStances, info.Notification));
|
Self.QueueActivity(new Infiltrate(Self, target, info.EnterBehaviour, info.ValidStances, info.Notification, info.PlayerExperience));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
[Desc("Notification to play when a building is infiltrated.")]
|
[Desc("Notification to play when a building is infiltrated.")]
|
||||||
public readonly string Notification = "BuildingInfiltrated";
|
public readonly string Notification = "BuildingInfiltrated";
|
||||||
|
|
||||||
|
[Desc("Experience to grant to the infiltrating player.")]
|
||||||
|
public readonly int PlayerExperience = 0;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new Infiltrates(this); }
|
public object Create(ActorInitializer init) { return new Infiltrates(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +115,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
|
|
||||||
self.SetTargetLine(target, Color.Red);
|
self.SetTargetLine(target, Color.Red);
|
||||||
self.QueueActivity(new Infiltrate(self, target.Actor, info.EnterBehaviour, info.ValidStances, info.Notification));
|
self.QueueActivity(new Infiltrate(self, target.Actor, info.EnterBehaviour, info.ValidStances, info.Notification, info.PlayerExperience));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,38 +35,23 @@ Container@SKIRMISH_STATS:
|
|||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Player
|
Text: Player
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 150
|
X: 230
|
||||||
Width: 80
|
Width: 120
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Faction
|
Text: Faction
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Label@SCORE:
|
||||||
Label@STANCE:
|
X: 360
|
||||||
X: 240
|
Width: 75
|
||||||
Width: 70
|
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Team
|
Text: Score
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 310
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Text: Kills
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 380
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Text: Deaths
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
ScrollPanel@PLAYER_LIST:
|
ScrollPanel@PLAYER_LIST:
|
||||||
X: 15
|
X: 15
|
||||||
Y: 105
|
Y: 105
|
||||||
@@ -75,43 +60,51 @@ Container@SKIRMISH_STATS:
|
|||||||
TopBottomSpacing: 5
|
TopBottomSpacing: 5
|
||||||
ItemSpacing: 5
|
ItemSpacing: 5
|
||||||
Children:
|
Children:
|
||||||
|
ScrollItem@TEAM_TEMPLATE:
|
||||||
|
Width: PARENT_RIGHT - 27
|
||||||
|
Height: 20
|
||||||
|
X: 2
|
||||||
|
Visible: false
|
||||||
|
Children:
|
||||||
|
Label@TEAM:
|
||||||
|
X: 2
|
||||||
|
Y: 0-2
|
||||||
|
Width: 160
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Label@TEAM_SCORE:
|
||||||
|
X: 360
|
||||||
|
Y: 0-2
|
||||||
|
Width: 75
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Align: Right
|
||||||
Container@PLAYER_TEMPLATE:
|
Container@PLAYER_TEMPLATE:
|
||||||
Width: PARENT_RIGHT-27
|
Width: PARENT_RIGHT-27
|
||||||
Height: 25
|
Height: 25
|
||||||
X: 2
|
X: 2
|
||||||
Y: 0
|
|
||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
ClientTooltipRegion@CLIENT_REGION:
|
ClientTooltipRegion@CLIENT_REGION:
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
Template: INGAME_CLIENT_TOOLTIP
|
Template: INGAME_CLIENT_TOOLTIP
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Image@FACTIONFLAG:
|
Image@FACTIONFLAG:
|
||||||
X: 159
|
X: 230
|
||||||
Y: 6
|
Y: 6
|
||||||
Width: 32
|
Width: 32
|
||||||
Height: 16
|
Height: 16
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 195
|
X: 264
|
||||||
Width: 40
|
Width: 86
|
||||||
Height: 25
|
Height: 25
|
||||||
Label@TEAM:
|
Label@SCORE:
|
||||||
X: 240
|
X: 360
|
||||||
Width: 70
|
Width: 75
|
||||||
Height: 25
|
Height: 25
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 310
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 380
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Logic: ObserverStatsLogic
|
Logic: ObserverStatsLogic
|
||||||
X: (WINDOW_RIGHT - WIDTH) / 2
|
X: (WINDOW_RIGHT - WIDTH) / 2
|
||||||
Y: (WINDOW_BOTTOM - HEIGHT) / 2
|
Y: (WINDOW_BOTTOM - HEIGHT) / 2
|
||||||
Width: 940
|
Width: 1005
|
||||||
Height: 500
|
Height: 500
|
||||||
Children:
|
Children:
|
||||||
Background@BACKGROUND:
|
Background@BACKGROUND:
|
||||||
@@ -59,41 +59,49 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Power
|
Text: Power
|
||||||
Label@KILLS_HEADER:
|
Label@KILLS_HEADER:
|
||||||
X: 495
|
X: 475
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Kills
|
Text: Kills
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS_HEADER:
|
Label@DEATHS_HEADER:
|
||||||
X: 555
|
X: 535
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Deaths
|
Text: Deaths
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED_HEADER:
|
Label@ASSETS_DESTROYED_HEADER:
|
||||||
X: 625
|
X: 595
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Destroyed
|
Text: Destroyed
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_LOST_HEADER:
|
Label@ASSETS_LOST_HEADER:
|
||||||
X: 685
|
X: 675
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Lost
|
Text: Lost
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN_HEADER:
|
Label@EXPERIENCE_HEADER:
|
||||||
X: 805
|
X: 755
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 94
|
||||||
|
Height: 25
|
||||||
|
Font: Bold
|
||||||
|
Text: Experience
|
||||||
|
Align: Right
|
||||||
|
Label@ACTIONS_MIN_HEADER:
|
||||||
|
X: 850
|
||||||
|
Y: 40
|
||||||
|
Width: 90
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Actions/min
|
Text: Actions/min
|
||||||
@@ -316,33 +324,39 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Width: 80
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Label@KILLS:
|
Label@KILLS:
|
||||||
X: 475
|
X: 455
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS:
|
Label@DEATHS:
|
||||||
X: 535
|
X: 515
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED:
|
Label@ASSETS_DESTROYED:
|
||||||
X: 595
|
X: 575
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_LOST:
|
Label@ASSETS_LOST:
|
||||||
X: 660
|
X: 655
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Align: Right
|
||||||
|
Label@EXPERIENCE:
|
||||||
|
X: 735
|
||||||
|
Y: 0
|
||||||
|
Width: 95
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN:
|
Label@ACTIONS_MIN:
|
||||||
X: 775
|
X: 830
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 90
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
||||||
|
|||||||
23
mods/cnc/rules/campaign-disable-experience.yaml
Normal file
23
mods/cnc/rules/campaign-disable-experience.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
^ExistsInWorld:
|
||||||
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 0
|
||||||
|
|
||||||
|
^BaseBuilding:
|
||||||
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
^TechBuilding:
|
||||||
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
E6:
|
||||||
|
Captures:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
HPAD:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
FIX:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
UpdatesPlayerStatistics:
|
UpdatesPlayerStatistics:
|
||||||
CombatDebugOverlay:
|
CombatDebugOverlay:
|
||||||
GivesExperience:
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 1
|
||||||
ScriptTriggers:
|
ScriptTriggers:
|
||||||
UpgradeManager:
|
UpgradeManager:
|
||||||
Huntable:
|
Huntable:
|
||||||
@@ -515,6 +516,7 @@
|
|||||||
RepairableBuilding:
|
RepairableBuilding:
|
||||||
RepairPercent: 40
|
RepairPercent: 40
|
||||||
RepairStep: 14
|
RepairStep: 14
|
||||||
|
PlayerExperience: 15
|
||||||
WithDeathAnimation:
|
WithDeathAnimation:
|
||||||
DeathSequence: dead
|
DeathSequence: dead
|
||||||
UseDeathTypeSuffix: false
|
UseDeathTypeSuffix: false
|
||||||
@@ -560,6 +562,7 @@
|
|||||||
RepairableBuilding:
|
RepairableBuilding:
|
||||||
RepairPercent: 40
|
RepairPercent: 40
|
||||||
RepairStep: 14
|
RepairStep: 14
|
||||||
|
PlayerExperience: 15
|
||||||
EngineerRepairable:
|
EngineerRepairable:
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 3c0
|
Range: 3c0
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ E6:
|
|||||||
RepairsBridges:
|
RepairsBridges:
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: building, husk
|
CaptureTypes: building, husk
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
-GainsExperience:
|
-GainsExperience:
|
||||||
|
|
||||||
|
|||||||
@@ -34,3 +34,4 @@ Player:
|
|||||||
Id: unrestricted
|
Id: unrestricted
|
||||||
GlobalUpgradeManager:
|
GlobalUpgradeManager:
|
||||||
ResourceStorageWarning:
|
ResourceStorageWarning:
|
||||||
|
PlayerExperience:
|
||||||
|
|||||||
@@ -425,6 +425,7 @@ HPAD:
|
|||||||
Produces: Aircraft.GDI, Aircraft.Nod
|
Produces: Aircraft.GDI, Aircraft.Nod
|
||||||
Reservable:
|
Reservable:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
|
PlayerExperience: 25
|
||||||
WithRepairAnimation:
|
WithRepairAnimation:
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
ProductionQueue@GDI:
|
ProductionQueue@GDI:
|
||||||
@@ -532,6 +533,7 @@ FIX:
|
|||||||
Reservable:
|
Reservable:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
Interval: 15
|
Interval: 15
|
||||||
|
PlayerExperience: 25
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
WithRepairAnimation:
|
WithRepairAnimation:
|
||||||
Power:
|
Power:
|
||||||
|
|||||||
@@ -35,38 +35,23 @@ Container@SKIRMISH_STATS:
|
|||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Player
|
Text: Player
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 150
|
X: 230
|
||||||
Width: 80
|
Width: 120
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Faction
|
Text: Faction
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Label@SCORE:
|
||||||
Label@STANCE:
|
X: 360
|
||||||
X: 280
|
Width: 75
|
||||||
Width: 50
|
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Team
|
Text: Score
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 330
|
|
||||||
Width: 60
|
|
||||||
Height: 25
|
|
||||||
Text: Kills
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 390
|
|
||||||
Width: 60
|
|
||||||
Height: 25
|
|
||||||
Text: Deaths
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
ScrollPanel@PLAYER_LIST:
|
ScrollPanel@PLAYER_LIST:
|
||||||
X: 20
|
X: 20
|
||||||
Y: 105
|
Y: 105
|
||||||
@@ -75,43 +60,52 @@ Container@SKIRMISH_STATS:
|
|||||||
TopBottomSpacing: 5
|
TopBottomSpacing: 5
|
||||||
ItemSpacing: 5
|
ItemSpacing: 5
|
||||||
Children:
|
Children:
|
||||||
|
ScrollItem@TEAM_TEMPLATE:
|
||||||
|
BaseName: scrollheader
|
||||||
|
Width: PARENT_RIGHT - 27
|
||||||
|
Height: 20
|
||||||
|
X: 2
|
||||||
|
Visible: false
|
||||||
|
Children:
|
||||||
|
Label@TEAM:
|
||||||
|
X: 2
|
||||||
|
Y: 0-2
|
||||||
|
Width: 160
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Label@TEAM_SCORE:
|
||||||
|
X: 360
|
||||||
|
Y: 0-2
|
||||||
|
Width: 75
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Align: Right
|
||||||
Container@PLAYER_TEMPLATE:
|
Container@PLAYER_TEMPLATE:
|
||||||
Width: PARENT_RIGHT-27
|
Width: PARENT_RIGHT-27
|
||||||
Height: 25
|
Height: 25
|
||||||
X: 2
|
X: 2
|
||||||
Y: 0
|
|
||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
ClientTooltipRegion@CLIENT_REGION:
|
ClientTooltipRegion@CLIENT_REGION:
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
Template: INGAME_CLIENT_TOOLTIP
|
Template: INGAME_CLIENT_TOOLTIP
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Image@FACTIONFLAG:
|
Image@FACTIONFLAG:
|
||||||
X: 159
|
X: 230
|
||||||
Y: 3
|
Y: 6
|
||||||
Width: 32
|
Width: 32
|
||||||
Height: 16
|
Height: 16
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 195
|
X: 264
|
||||||
Width: 85
|
Width: 86
|
||||||
Height: 25
|
Height: 25
|
||||||
Label@TEAM:
|
Label@SCORE:
|
||||||
X: 280
|
X: 360
|
||||||
Width: 50
|
Width: 75
|
||||||
Height: 25
|
Height: 25
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 330
|
|
||||||
Width: 60
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 390
|
|
||||||
Width: 60
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
|
|||||||
15
mods/d2k/rules/campaign-disable-experience.yaml
Normal file
15
mods/d2k/rules/campaign-disable-experience.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
^ExistsInWorld:
|
||||||
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 0
|
||||||
|
|
||||||
|
^Building:
|
||||||
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
engineer:
|
||||||
|
Captures:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
repair_pad:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
UpdatesPlayerStatistics:
|
UpdatesPlayerStatistics:
|
||||||
CombatDebugOverlay:
|
CombatDebugOverlay:
|
||||||
GivesExperience:
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 1
|
||||||
ScriptTriggers:
|
ScriptTriggers:
|
||||||
UpgradeManager:
|
UpgradeManager:
|
||||||
Huntable:
|
Huntable:
|
||||||
@@ -262,6 +263,7 @@
|
|||||||
WithBuildingExplosion:
|
WithBuildingExplosion:
|
||||||
Sequences: building, self_destruct, large_explosion
|
Sequences: building, self_destruct, large_explosion
|
||||||
RepairableBuilding:
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 25
|
||||||
EmitInfantryOnSell:
|
EmitInfantryOnSell:
|
||||||
ActorTypes: light_inf
|
ActorTypes: light_inf
|
||||||
MustBeDestroyed:
|
MustBeDestroyed:
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ engineer:
|
|||||||
EngineerRepair:
|
EngineerRepair:
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: building, husk
|
CaptureTypes: building, husk
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
Voiced:
|
Voiced:
|
||||||
VoiceSet: EngineerVoice
|
VoiceSet: EngineerVoice
|
||||||
|
|||||||
@@ -91,3 +91,4 @@ Player:
|
|||||||
GlobalUpgradeManager:
|
GlobalUpgradeManager:
|
||||||
ResourceStorageWarning:
|
ResourceStorageWarning:
|
||||||
AdviceInterval: 26
|
AdviceInterval: 26
|
||||||
|
PlayerExperience:
|
||||||
|
|||||||
@@ -769,6 +769,7 @@ repair_pad:
|
|||||||
Interval: 10
|
Interval: 10
|
||||||
HpPerStep: 80
|
HpPerStep: 80
|
||||||
FinishRepairingNotification: UnitRepaired
|
FinishRepairingNotification: UnitRepaired
|
||||||
|
PlayerExperience: 15
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
Offset: 1,3
|
Offset: 1,3
|
||||||
RenderSprites:
|
RenderSprites:
|
||||||
|
|||||||
@@ -35,38 +35,23 @@ Container@SKIRMISH_STATS:
|
|||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Player
|
Text: Player
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 150
|
X: 230
|
||||||
Width: 80
|
Width: 120
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Faction
|
Text: Faction
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Label@SCORE:
|
||||||
Label@STANCE:
|
X: 360
|
||||||
X: 260
|
Width: 75
|
||||||
Width: 50
|
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Team
|
Text: Score
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 310
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Text: Kills
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 380
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Text: Deaths
|
|
||||||
Font: Bold
|
|
||||||
Align: Center
|
|
||||||
ScrollPanel@PLAYER_LIST:
|
ScrollPanel@PLAYER_LIST:
|
||||||
X: 20
|
X: 20
|
||||||
Y: 105
|
Y: 105
|
||||||
@@ -75,43 +60,52 @@ Container@SKIRMISH_STATS:
|
|||||||
TopBottomSpacing: 5
|
TopBottomSpacing: 5
|
||||||
ItemSpacing: 5
|
ItemSpacing: 5
|
||||||
Children:
|
Children:
|
||||||
|
ScrollItem@TEAM_TEMPLATE:
|
||||||
|
BaseName: scrollheader
|
||||||
|
Width: PARENT_RIGHT - 27
|
||||||
|
Height: 20
|
||||||
|
X: 2
|
||||||
|
Visible: false
|
||||||
|
Children:
|
||||||
|
Label@TEAM:
|
||||||
|
X: 2
|
||||||
|
Y: 0-2
|
||||||
|
Width: 160
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Label@TEAM_SCORE:
|
||||||
|
X: 360
|
||||||
|
Y: 0-2
|
||||||
|
Width: 75
|
||||||
|
Height: 20
|
||||||
|
Font: Bold
|
||||||
|
Align: Right
|
||||||
Container@PLAYER_TEMPLATE:
|
Container@PLAYER_TEMPLATE:
|
||||||
Width: PARENT_RIGHT-27
|
Width: PARENT_RIGHT-27
|
||||||
Height: 25
|
Height: 25
|
||||||
X: 2
|
X: 2
|
||||||
Y: 0
|
|
||||||
Children:
|
Children:
|
||||||
Label@NAME:
|
Label@NAME:
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
ClientTooltipRegion@CLIENT_REGION:
|
ClientTooltipRegion@CLIENT_REGION:
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
Template: INGAME_CLIENT_TOOLTIP
|
Template: INGAME_CLIENT_TOOLTIP
|
||||||
X: 10
|
X: 10
|
||||||
Width: 150
|
Width: 210
|
||||||
Height: 25
|
Height: 25
|
||||||
Image@FACTIONFLAG:
|
Image@FACTIONFLAG:
|
||||||
X: 159
|
X: 230
|
||||||
Y: 6
|
Y: 6
|
||||||
Width: 32
|
Width: 32
|
||||||
Height: 16
|
Height: 16
|
||||||
Label@FACTION:
|
Label@FACTION:
|
||||||
X: 195
|
X: 264
|
||||||
Width: 65
|
Width: 86
|
||||||
Height: 25
|
Height: 25
|
||||||
Label@TEAM:
|
Label@SCORE:
|
||||||
X: 260
|
X: 360
|
||||||
Width: 50
|
Width: 75
|
||||||
Height: 25
|
Height: 25
|
||||||
Align: Center
|
Align: Right
|
||||||
Label@KILLS:
|
|
||||||
X: 310
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
Label@DEATHS:
|
|
||||||
X: 380
|
|
||||||
Width: 70
|
|
||||||
Height: 25
|
|
||||||
Align: Center
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Logic: ObserverStatsLogic
|
Logic: ObserverStatsLogic
|
||||||
X: 25
|
X: 25
|
||||||
Y: 50
|
Y: 50
|
||||||
Width: 950
|
Width: 1025
|
||||||
Height: 500
|
Height: 500
|
||||||
Background: dialog
|
Background: dialog
|
||||||
Children:
|
Children:
|
||||||
@@ -54,30 +54,30 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Label@POWER_HEADER:
|
Label@POWER_HEADER:
|
||||||
X: 425
|
X: 425
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 80
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Power
|
Text: Power
|
||||||
Label@KILLS_HEADER:
|
Label@KILLS_HEADER:
|
||||||
X: 505
|
X: 485
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Kills
|
Text: Kills
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS_HEADER:
|
Label@DEATHS_HEADER:
|
||||||
X: 565
|
X: 545
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Deaths
|
Text: Deaths
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED_HEADER:
|
Label@ASSETS_DESTROYED_HEADER:
|
||||||
X: 625
|
X: 605
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Destroyed
|
Text: Destroyed
|
||||||
@@ -85,15 +85,23 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Label@ASSETS_LOST_HEADER:
|
Label@ASSETS_LOST_HEADER:
|
||||||
X: 685
|
X: 685
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Lost
|
Text: Lost
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN_HEADER:
|
Label@EXPERIENCE_HEADER:
|
||||||
X: 805
|
X: 765
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 95
|
||||||
|
Height: 25
|
||||||
|
Font: Bold
|
||||||
|
Text: Experience
|
||||||
|
Align: Right
|
||||||
|
Label@ACTIONS_MIN_HEADER:
|
||||||
|
X: 860
|
||||||
|
Y: 40
|
||||||
|
Width: 90
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Actions/min
|
Text: Actions/min
|
||||||
@@ -316,33 +324,39 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Width: 80
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Label@KILLS:
|
Label@KILLS:
|
||||||
X: 475
|
X: 455
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS:
|
Label@DEATHS:
|
||||||
X: 535
|
X: 515
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED:
|
Label@ASSETS_DESTROYED:
|
||||||
X: 595
|
X: 575
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_LOST:
|
Label@ASSETS_LOST:
|
||||||
X: 660
|
X: 655
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Align: Right
|
||||||
|
Label@EXPERIENCE:
|
||||||
|
X: 735
|
||||||
|
Y: 0
|
||||||
|
Width: 95
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN:
|
Label@ACTIONS_MIN:
|
||||||
X: 775
|
X: 830
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 90
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ BADR:
|
|||||||
Interval: 2
|
Interval: 2
|
||||||
-EjectOnDeath:
|
-EjectOnDeath:
|
||||||
RejectsOrders:
|
RejectsOrders:
|
||||||
|
GivesExperience:
|
||||||
|
Experience: 1000
|
||||||
|
|
||||||
BADR.Bomber:
|
BADR.Bomber:
|
||||||
Inherits: ^Plane
|
Inherits: ^Plane
|
||||||
@@ -72,6 +74,8 @@ BADR.Bomber:
|
|||||||
RejectsOrders:
|
RejectsOrders:
|
||||||
RenderSprites:
|
RenderSprites:
|
||||||
Image: badr
|
Image: badr
|
||||||
|
GivesExperience:
|
||||||
|
Experience: 1000
|
||||||
|
|
||||||
MIG:
|
MIG:
|
||||||
Inherits: ^Plane
|
Inherits: ^Plane
|
||||||
|
|||||||
43
mods/ra/rules/campaign-disable-experience.yaml
Normal file
43
mods/ra/rules/campaign-disable-experience.yaml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
^ExistsInWorld:
|
||||||
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 0
|
||||||
|
|
||||||
|
^Building:
|
||||||
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
E6:
|
||||||
|
Captures:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
SPY:
|
||||||
|
Infiltrates:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
MECH:
|
||||||
|
Captures:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
THF:
|
||||||
|
Infiltrates:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
HIJACKER:
|
||||||
|
Captures:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
SPEN:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
SYRD:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
FIX:
|
||||||
|
RepairsUnits:
|
||||||
|
PlayerExperience: 0
|
||||||
|
|
||||||
|
TRUK:
|
||||||
|
SupplyTruck:
|
||||||
|
PlayerExperience: 0
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
AppearsOnRadar:
|
AppearsOnRadar:
|
||||||
CombatDebugOverlay:
|
CombatDebugOverlay:
|
||||||
GivesExperience:
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 1
|
||||||
ScriptTriggers:
|
ScriptTriggers:
|
||||||
UpgradeManager:
|
UpgradeManager:
|
||||||
Huntable:
|
Huntable:
|
||||||
@@ -449,6 +450,7 @@
|
|||||||
UpdatesPlayerStatistics:
|
UpdatesPlayerStatistics:
|
||||||
GivesBuildableArea:
|
GivesBuildableArea:
|
||||||
RepairableBuilding:
|
RepairableBuilding:
|
||||||
|
PlayerExperience: 25
|
||||||
EngineerRepairable:
|
EngineerRepairable:
|
||||||
AcceptsSupplies:
|
AcceptsSupplies:
|
||||||
WithMakeAnimation:
|
WithMakeAnimation:
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ E6:
|
|||||||
RepairsBridges:
|
RepairsBridges:
|
||||||
ExternalCaptures:
|
ExternalCaptures:
|
||||||
Type: building
|
Type: building
|
||||||
|
PlayerExperience: 25
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
Voiced:
|
Voiced:
|
||||||
VoiceSet: EngineerVoice
|
VoiceSet: EngineerVoice
|
||||||
@@ -209,6 +210,7 @@ SPY:
|
|||||||
Voice: Move
|
Voice: Move
|
||||||
Infiltrates:
|
Infiltrates:
|
||||||
Types: SpyInfiltrate
|
Types: SpyInfiltrate
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
-WithInfantryBody:
|
-WithInfantryBody:
|
||||||
WithDisguisingInfantryBody:
|
WithDisguisingInfantryBody:
|
||||||
@@ -240,6 +242,8 @@ SPY.England:
|
|||||||
Prerequisites: ~infantry.england, dome, ~tent, ~techlevel.medium
|
Prerequisites: ~infantry.england, dome, ~tent, ~techlevel.medium
|
||||||
Valued:
|
Valued:
|
||||||
Cost: 250
|
Cost: 250
|
||||||
|
GivesExperience:
|
||||||
|
Experience: 500
|
||||||
DisguiseToolTip:
|
DisguiseToolTip:
|
||||||
Name: British Spy
|
Name: British Spy
|
||||||
RenderSprites:
|
RenderSprites:
|
||||||
@@ -354,6 +358,7 @@ MECH:
|
|||||||
Voice: Move
|
Voice: Move
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: husk
|
CaptureTypes: husk
|
||||||
|
PlayerExperience: 25
|
||||||
WithInfantryBody:
|
WithInfantryBody:
|
||||||
AttackSequence: repair
|
AttackSequence: repair
|
||||||
StandSequences: stand
|
StandSequences: stand
|
||||||
@@ -424,6 +429,7 @@ THF:
|
|||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
Infiltrates:
|
Infiltrates:
|
||||||
InfiltrateTypes: Cash
|
InfiltrateTypes: Cash
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
Voiced:
|
Voiced:
|
||||||
VoiceSet: ThiefVoice
|
VoiceSet: ThiefVoice
|
||||||
@@ -451,6 +457,7 @@ HIJACKER:
|
|||||||
PipType: Yellow
|
PipType: Yellow
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: vehicle
|
CaptureTypes: vehicle
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
Voiced:
|
Voiced:
|
||||||
VoiceSet: ThiefVoice
|
VoiceSet: ThiefVoice
|
||||||
|
|||||||
@@ -81,3 +81,4 @@ Player:
|
|||||||
Image: iconchevrons
|
Image: iconchevrons
|
||||||
Sequence: veteran
|
Sequence: veteran
|
||||||
ResourceStorageWarning:
|
ResourceStorageWarning:
|
||||||
|
PlayerExperience:
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ SPEN:
|
|||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
FinishRepairingNotification: UnitRepaired
|
FinishRepairingNotification: UnitRepaired
|
||||||
|
PlayerExperience: 15
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
Power:
|
Power:
|
||||||
@@ -225,6 +226,7 @@ SYRD:
|
|||||||
-EmitInfantryOnSell:
|
-EmitInfantryOnSell:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
FinishRepairingNotification: UnitRepaired
|
FinishRepairingNotification: UnitRepaired
|
||||||
|
PlayerExperience: 15
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
Power:
|
Power:
|
||||||
@@ -1569,6 +1571,7 @@ FIX:
|
|||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
Interval: 10
|
Interval: 10
|
||||||
FinishRepairingNotification: UnitRepaired
|
FinishRepairingNotification: UnitRepaired
|
||||||
|
PlayerExperience: 15
|
||||||
WithRepairAnimation:
|
WithRepairAnimation:
|
||||||
Power:
|
Power:
|
||||||
Amount: -30
|
Amount: -30
|
||||||
|
|||||||
@@ -488,6 +488,7 @@ TRUK:
|
|||||||
Range: 4c0
|
Range: 4c0
|
||||||
SupplyTruck:
|
SupplyTruck:
|
||||||
Payload: 500
|
Payload: 500
|
||||||
|
PlayerExperience: 50
|
||||||
SpawnActorOnDeath:
|
SpawnActorOnDeath:
|
||||||
Actor: moneycrate
|
Actor: moneycrate
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Logic: ObserverStatsLogic
|
Logic: ObserverStatsLogic
|
||||||
X: 25
|
X: 25
|
||||||
Y: 50
|
Y: 50
|
||||||
Width: 950
|
Width: 1025
|
||||||
Height: 500
|
Height: 500
|
||||||
Background: dialog
|
Background: dialog
|
||||||
Children:
|
Children:
|
||||||
@@ -54,30 +54,30 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Label@POWER_HEADER:
|
Label@POWER_HEADER:
|
||||||
X: 425
|
X: 425
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 80
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Power
|
Text: Power
|
||||||
Label@KILLS_HEADER:
|
Label@KILLS_HEADER:
|
||||||
X: 505
|
X: 485
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Kills
|
Text: Kills
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS_HEADER:
|
Label@DEATHS_HEADER:
|
||||||
X: 565
|
X: 545
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Deaths
|
Text: Deaths
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED_HEADER:
|
Label@ASSETS_DESTROYED_HEADER:
|
||||||
X: 625
|
X: 605
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Destroyed
|
Text: Destroyed
|
||||||
@@ -85,15 +85,23 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Label@ASSETS_LOST_HEADER:
|
Label@ASSETS_LOST_HEADER:
|
||||||
X: 685
|
X: 685
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Lost
|
Text: Lost
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN_HEADER:
|
Label@EXPERIENCE_HEADER:
|
||||||
X: 805
|
X: 765
|
||||||
Y: 40
|
Y: 40
|
||||||
Width: 40
|
Width: 95
|
||||||
|
Height: 25
|
||||||
|
Font: Bold
|
||||||
|
Text: Experience
|
||||||
|
Align: Right
|
||||||
|
Label@ACTIONS_MIN_HEADER:
|
||||||
|
X: 860
|
||||||
|
Y: 40
|
||||||
|
Width: 90
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Text: Actions/min
|
Text: Actions/min
|
||||||
@@ -316,33 +324,39 @@ Background@INGAME_OBSERVERSTATS_BG:
|
|||||||
Width: 80
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Label@KILLS:
|
Label@KILLS:
|
||||||
X: 475
|
X: 455
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@DEATHS:
|
Label@DEATHS:
|
||||||
X: 535
|
X: 515
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 60
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_DESTROYED:
|
Label@ASSETS_DESTROYED:
|
||||||
X: 595
|
X: 575
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ASSETS_LOST:
|
Label@ASSETS_LOST:
|
||||||
X: 660
|
X: 655
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 60
|
Width: 80
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Align: Right
|
||||||
|
Label@EXPERIENCE:
|
||||||
|
X: 735
|
||||||
|
Y: 0
|
||||||
|
Width: 95
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
Label@ACTIONS_MIN:
|
Label@ACTIONS_MIN:
|
||||||
X: 775
|
X: 830
|
||||||
Y: 0
|
Y: 0
|
||||||
Width: 40
|
Width: 90
|
||||||
Height: PARENT_BOTTOM
|
Height: PARENT_BOTTOM
|
||||||
Align: Right
|
Align: Right
|
||||||
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
UpdatesPlayerStatistics:
|
UpdatesPlayerStatistics:
|
||||||
CombatDebugOverlay:
|
CombatDebugOverlay:
|
||||||
GivesExperience:
|
GivesExperience:
|
||||||
|
PlayerExperienceModifier: 1
|
||||||
ScriptTriggers:
|
ScriptTriggers:
|
||||||
UpgradeManager:
|
UpgradeManager:
|
||||||
Huntable:
|
Huntable:
|
||||||
@@ -125,6 +126,7 @@
|
|||||||
Capturable:
|
Capturable:
|
||||||
RepairableBuilding:
|
RepairableBuilding:
|
||||||
IndicatorPalette: mouse
|
IndicatorPalette: mouse
|
||||||
|
PlayerExperience: 25
|
||||||
WithDeathAnimation:
|
WithDeathAnimation:
|
||||||
DeathSequence: dead
|
DeathSequence: dead
|
||||||
UseDeathTypeSuffix: false
|
UseDeathTypeSuffix: false
|
||||||
|
|||||||
@@ -210,6 +210,7 @@ GAHPAD:
|
|||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
Reservable:
|
Reservable:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
|
PlayerExperience: 15
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
WithIdleOverlay@PLATFORM:
|
WithIdleOverlay@PLATFORM:
|
||||||
Sequence: idle-platform
|
Sequence: idle-platform
|
||||||
@@ -256,6 +257,7 @@ GADEPT:
|
|||||||
Range: 5c0
|
Range: 5c0
|
||||||
Reservable:
|
Reservable:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
|
PlayerExperience: 15
|
||||||
RallyPoint:
|
RallyPoint:
|
||||||
Palette: mouse
|
Palette: mouse
|
||||||
IsPlayerPalette: false
|
IsPlayerPalette: false
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ MHIJACK:
|
|||||||
-Crushable:
|
-Crushable:
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: Vehicle
|
CaptureTypes: Vehicle
|
||||||
|
PlayerExperience: 50
|
||||||
RevealsShroud:
|
RevealsShroud:
|
||||||
Range: 6c0
|
Range: 6c0
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
|
|||||||
@@ -215,6 +215,7 @@ NAHPAD:
|
|||||||
PrimaryBuilding:
|
PrimaryBuilding:
|
||||||
Reservable:
|
Reservable:
|
||||||
RepairsUnits:
|
RepairsUnits:
|
||||||
|
PlayerExperience: 15
|
||||||
ProductionBar:
|
ProductionBar:
|
||||||
WithIdleOverlay@PLATFORM:
|
WithIdleOverlay@PLATFORM:
|
||||||
Sequence: idle-platform
|
Sequence: idle-platform
|
||||||
|
|||||||
@@ -52,3 +52,4 @@ Player:
|
|||||||
PlayerStatistics:
|
PlayerStatistics:
|
||||||
PlaceSimpleBeacon:
|
PlaceSimpleBeacon:
|
||||||
ResourceStorageWarning:
|
ResourceStorageWarning:
|
||||||
|
PlayerExperience:
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ ENGINEER:
|
|||||||
RepairNotification: BridgeRepaired
|
RepairNotification: BridgeRepaired
|
||||||
Captures:
|
Captures:
|
||||||
CaptureTypes: building
|
CaptureTypes: building
|
||||||
|
PlayerExperience: 50
|
||||||
-AutoTarget:
|
-AutoTarget:
|
||||||
-GainsExperience:
|
-GainsExperience:
|
||||||
RenderSprites:
|
RenderSprites:
|
||||||
|
|||||||
Reference in New Issue
Block a user