From 20d55a1d9366c10694c9e3faac6b5f064356c20b Mon Sep 17 00:00:00 2001 From: Oliver Brakmann Date: Sat, 18 Jun 2016 17:27:24 +0200 Subject: [PATCH] Add Lua integration for PlayerExperience --- OpenRA.Mods.Common/OpenRA.Mods.Common.csproj | 1 + .../Properties/PlayerExperienceProperties.cs | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 OpenRA.Mods.Common/Scripting/Properties/PlayerExperienceProperties.cs diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 29f8b91081..fa44f8d02b 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -245,6 +245,7 @@ + diff --git a/OpenRA.Mods.Common/Scripting/Properties/PlayerExperienceProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/PlayerExperienceProperties.cs new file mode 100644 index 0000000000..87aae502f1 --- /dev/null +++ b/OpenRA.Mods.Common/Scripting/Properties/PlayerExperienceProperties.cs @@ -0,0 +1,43 @@ +#region Copyright & License Information +/* + * Copyright 2007-2016 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, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using Eluant; +using OpenRA.Mods.Common.Traits; +using OpenRA.Scripting; +using OpenRA.Traits; + +namespace OpenRA.Mods.Common.Scripting +{ + [ScriptPropertyGroup("Player")] + public class PlayerExperienceProperties : ScriptPlayerProperties, Requires + { + readonly PlayerExperience exp; + + public PlayerExperienceProperties(ScriptContext context, Player player) + : base(context, player) + { + exp = player.PlayerActor.Trait(); + } + + public int Experience + { + get + { + return exp.Experience; + } + + set + { + exp.GiveExperience(value - exp.Experience); + } + } + } +} \ No newline at end of file