private void ReturnCreature(CreatureAI creature) { var owner = creature.World.Factions.Factions[OwnerFaction]; owner.Minions.Add(creature); creature.CancelCurrentTask(); creature.GetRoot().SetFlagRecursive(GameComponent.Flag.Active, true); creature.GetRoot().SetFlagRecursive(GameComponent.Flag.Visible, true); }
private void DestroyCreature(CreatureAI creature) { if (!creature.Active) { return; } var owner = creature.World.Factions.Factions[OwnerFaction]; owner.Minions.Remove(creature); if (creature.World.Master.SelectedMinions.Contains(creature)) { creature.World.Master.SelectedMinions.Remove(creature); } creature.GetRoot().SetFlagRecursive(GameComponent.Flag.Active, false); creature.GetRoot().SetFlagRecursive(GameComponent.Flag.Visible, false); }
private void AddCreature(CreatureAI employee, WidgetListView column, List <CreatureAI> creaturesA, List <CreatureAI> creaturesB) { var bar = Root.ConstructWidget(new Widget { Background = new TileReference("basic", 0), TriggerOnChildClick = true, OnClick = (sender, args) => { creaturesA.Remove(employee); creaturesB.Add(employee); ReconstructColumns(); } }); var employeeSprite = employee.GetRoot().GetComponent <LayeredSprites.LayeredCharacterSprite>(); if (employeeSprite != null) { bar.AddChild(new EmployeePortrait { AutoLayout = AutoLayout.DockLeft, MinimumSize = new Point(48, 40), MaximumSize = new Point(48, 40), Sprite = employeeSprite.GetLayers(), AnimationPlayer = new AnimationPlayer(employeeSprite.Animations["IdleFORWARD"]) }); } var title = employee.Stats.Title ?? employee.Stats.CurrentLevel.Name; bar.AddChild(new Widget { AutoLayout = AutoLayout.DockFill, TextVerticalAlign = VerticalAlign.Center, MinimumSize = new Point(128, 64), Text = (employee.Stats.FullName) + " (" + title + ")" }); column.AddItem(bar); }