Added some power functions

This commit is contained in:
abcdefg30
2014-11-14 15:26:55 +01:00
parent 71fa6b2aed
commit 0899b26874
2 changed files with 74 additions and 0 deletions

View File

@@ -408,6 +408,7 @@
<Compile Include="Scripting\Properties\HealthProperties.cs" />
<Compile Include="Scripting\Properties\CombatProperties.cs" />
<Compile Include="Scripting\Properties\DiplomacyProperties.cs" />
<Compile Include="Scripting\Properties\PowerProperties.cs" />
<Compile Include="Scripting\Global\MapGlobal.cs" />
<Compile Include="Scripting\Global\PlayerGlobal.cs" />
<Compile Include="Scripting\Global\UtilsGlobal.cs" />

View File

@@ -0,0 +1,73 @@
#region Copyright & License Information
/*
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System;
using Eluant;
using OpenRA.Mods.Common.Power;
using OpenRA.Scripting;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Scripting
{
[ScriptPropertyGroup("Power")]
public class PlayerPowerProperties : ScriptPlayerProperties, Requires<PowerManagerInfo>
{
readonly PowerManager pm;
public PlayerPowerProperties(ScriptContext context, Player player)
: base(context, player)
{
pm = player.PlayerActor.Trait<PowerManager>();
}
[Desc("Returns the total of the power the player has.")]
public int PowerProvided
{
get { return pm.PowerProvided; }
}
[Desc("Returns the power used by the player.")]
public int PowerDrained
{
get { return pm.PowerDrained; }
}
[Desc("Returns the player's power state " +
"(\"Normal\", \"Low\" or \"Critical\").")]
public string PowerState
{
get { return pm.PowerState.ToString(); }
}
[Desc("Triggers low power for the chosen amount of ticks.")]
public void TriggerPowerOutage(int ticks)
{
pm.TriggerPowerOutage(ticks);
}
}
[ScriptPropertyGroup("Power")]
public class ActorPowerProperties : ScriptActorProperties, Requires<PowerInfo>
{
readonly PowerInfo pi;
public ActorPowerProperties(ScriptContext context, Actor self)
: base(context, self)
{
pi = self.Info.Traits.GetOrDefault<PowerInfo>();
}
[Desc("Returns the power drained/provided by this actor.")]
public int Power
{
get { return pi.Amount; }
}
}
}