public override bool OnMouseDown(Surface s, Model m, Point square, Point offset, MouseButtons mb) { if (mb == MouseButtons.Left) selected = m.ActorsAt(square).Where(a => a is IOrderTarget).FirstOrDefault(); if (mb == MouseButtons.Right && selected != null) ((IOrderTarget)selected).AcceptOrder( square ); return true; }
public void SetActor(Actor a) { if (a == null) { Visible = false; return; } propertyGrid1.SelectedObject = a; Text = string.Format("{0} ({1})", a.Name, a.GetType().Name); Visible = true; }
public void AddActor(Actor a) { addedActors.Add(a); }
public void RemoveActor(Actor a) { if (!removedActors.Contains(a)) removedActors.Add(a); }
public static Order Use(Actor b) { return a => { b.Use(a); return true; }; }
public bool CanSee(Actor other) { // todo: real occlusion! this is just a cone test var dir = MakeDirection(Position.ToSquare(), other.Position.ToSquare(), Direction); return (dir == Direction || (dir + 1) % 8 == Direction || (dir + 7) % 8 == Direction); }
public virtual void Use(Actor user) { }