コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: FactionViewState.cs プロジェクト: Rod995/dwarfcorp
        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);
        }