#region Copyright & License Information /* * Copyright 2007-2015 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.Mods.Common.Activities; using OpenRA.Mods.Common.Traits; using OpenRA.Scripting; using OpenRA.Traits; namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("Movement")] public class MobileProperties : ScriptActorProperties, Requires { readonly Mobile mobile; public MobileProperties(ScriptContext context, Actor self) : base(context, self) { mobile = self.Trait(); } [ScriptActorPropertyActivity] [Desc("Moves within the cell grid. closeEnough defines an optional range " + "(in cells) that will be considered close enough to complete the activity.")] public void Move(CPos cell, int closeEnough = 0) { Self.QueueActivity(new Move(Self, cell, WRange.FromCells(closeEnough))); } [ScriptActorPropertyActivity] [Desc("Moves within the cell grid, ignoring lane biases.")] public void ScriptedMove(CPos cell) { Self.QueueActivity(new Move(Self, cell)); } [ScriptActorPropertyActivity] [Desc("Moves from outside the world into the cell grid")] public void MoveIntoWorld(CPos cell) { Self.QueueActivity(mobile.MoveIntoWorld(Self, cell, mobile.ToSubCell)); } [ScriptActorPropertyActivity] [Desc("Leave the current position in a random direction.")] public void Scatter() { Self.Trait().Nudge(Self, Self, true); } } }