Files
OpenRA/OpenRA.Mods.RA/Crates/CloakCrateAction.cs
Paul Chote 1e53434e45 Simplify cloak crate behavior.
This removes the runtime trait addition which
prevented Cloak from being cached.

The CloakCrateAction in D2K was never used, so
has also been removed.
2013-08-22 19:29:05 +12:00

43 lines
1.1 KiB
C#

#region Copyright & License Information
/*
* Copyright 2007-2011 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 OpenRA.FileFormats;
using OpenRA.Mods.RA;
using OpenRA.Traits;
namespace OpenRA.Mods.RA.Crates
{
public class CloakCrateActionInfo : CrateActionInfo
{
public override object Create(ActorInitializer init) { return new CloakCrateAction(init.self, this); }
}
public class CloakCrateAction : CrateAction
{
public CloakCrateAction(Actor self, CloakCrateActionInfo info)
: base(self, info) { }
public override int GetSelectionShares(Actor collector)
{
var cloak = collector.TraitOrDefault<Cloak>();
if (cloak == null || !cloak.AcceptsCloakCrate)
return 0;
return base.GetSelectionShares(collector);
}
public override void Activate(Actor collector)
{
collector.Trait<Cloak>().ReceivedCloakCrate(collector);
base.Activate(collector);
}
}
}