コード例 #1
0
        public static void ImplementPromotion(GameComponent Entity, WorldManager World) // Todo: This logic is duplicated
        {
            if (Entity.GetComponent <CreatureAI>().HasValue(out var employee))
            {
                var prevLevel = employee.Stats.CurrentLevel;
                employee.Stats.LevelUp(employee.Creature);
                if (employee.Stats.Title == prevLevel.Name)
                {
                    employee.Stats.Title = employee.Stats.CurrentLevel.Name;
                }

                if (employee.Stats.CurrentLevel.HealingPower > prevLevel.HealingPower)
                {
                    World.MakeAnnouncement(String.Format("{0}'s healing power increased to {1}!", employee.Stats.FullName, employee.Stats.CurrentLevel.HealingPower));
                }

                if (employee.Stats.CurrentLevel.ExtraWeapons.Count > prevLevel.ExtraWeapons.Count)
                {
                    World.MakeAnnouncement(String.Format("{0} learned to cast {1}!", employee.Stats.FullName, employee.Stats.CurrentLevel.ExtraWeapons.Last().Name));
                }

                SoundManager.PlaySound(ContentPaths.Audio.change, 0.5f);
                employee.Creature.AddThought("I got promoted recently.", new TimeSpan(3, 0, 0, 0), 20.0f);
            }
        }
コード例 #2
0
ファイル: ChatCommand.cs プロジェクト: hhy5277/dwarfcorp
        public override bool CanBeAppliedTo(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            if (creature == null)
            {
                return(false);
            }
            var thoughts = Entity.GetComponent <DwarfThoughts>();

            if (thoughts == null)
            {
                return(false);
            }
            return(World.PlayerFaction.Minions.Contains(creature));
        }
コード例 #3
0
 public override void Apply(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
     {
         creature.CancelCurrentTask();
     }
 }
コード例 #4
0
 public override void Apply(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
     {
         creature.Creature.AssignRestockAllTasks(TaskPriority.Urgent, true);
     }
 }
コード例 #5
0
 public override void Apply(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
     {
         creature.Creature.RestockAllImmediately(true);
     }
 }
コード例 #6
0
        public override void Apply(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            World.PlayerFaction.Minions.Remove(creature);
            World.PersistentData.SelectedMinions.Remove(creature);
            Entity.GetRoot().Delete();
            SoundManager.PlaySound(ContentPaths.Audio.change, 0.5f);
        }
コード例 #7
0
        public override bool CanBeAppliedTo(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            if (creature == null)
            {
                return(false);
            }
            return(World.PlayerFaction.Minions.Contains(creature) && creature.CurrentTask != null);
        }
コード例 #8
0
 public override bool CanBeAppliedTo(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
     {
         return(World.PlayerFaction.Minions.Contains(creature) && creature.Stats.IsOverQualified);
     }
     else
     {
         return(false);
     }
 }
コード例 #9
0
        public override void Apply(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            if (creature == null)
            {
                return;
            }

            creature.CancelCurrentTask();
        }
コード例 #10
0
 public override bool CanBeAppliedTo(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
     {
         return(World.PlayerFaction.Minions.Contains(creature) && creature.Creature.Inventory.Resources.Any());
     }
     else
     {
         return(false);
     }
 }
コード例 #11
0
        public override void Apply(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            if (creature == null)
            {
                return;
            }

            creature.Creature.RestockAllImmediately(true);
        }
コード例 #12
0
        public override void Apply(GameComponent Entity, WorldManager World) // Todo: This logic is duplicated
        {
            var Employee  = Entity.GetComponent <CreatureAI>();
            var prevLevel = Employee.Stats.CurrentLevel;

            Employee.Stats.LevelUp(Employee.Creature);
            if (Employee.Stats.CurrentLevel.HealingPower > prevLevel.HealingPower)
            {
                World.MakeAnnouncement(String.Format("{0}'s healing power increased to {1}!", Employee.Stats.FullName, Employee.Stats.CurrentLevel.HealingPower));
            }

            if (Employee.Stats.CurrentLevel.ExtraWeapons.Count > prevLevel.ExtraWeapons.Count)
            {
                World.MakeAnnouncement(String.Format("{0} learned to cast {1}!", Employee.Stats.FullName, Employee.Stats.CurrentLevel.ExtraWeapons.Last().Name));
            }
            SoundManager.PlaySound(ContentPaths.Audio.change, 0.5f);
            Employee.Creature.AddThought("I got promoted recently.", new TimeSpan(3, 0, 0, 0), 20.0f);
        }
コード例 #13
0
        public override void Apply(GameComponent Entity, WorldManager World)
        {
            if (Entity.GetComponent <CreatureAI>().HasValue(out var creature))
            {
                var screen = World.UserInterface.Gui.RenderData.VirtualScreen;
                World.UserInterface.Gui.ShowMinorPopup(new AllowedTaskFilter
                {
                    Employee    = creature,
                    Tag         = "selected-employee-allowable-tasks",
                    AutoLayout  = AutoLayout.DockFill,
                    MinimumSize = new Point(256, 256),
                    Border      = "border-fancy",
                    Rect        = new Rectangle(screen.Center.X - 128, screen.Center.Y - 128, 256, 256)
                });
            }

            base.Apply(Entity, World);
        }
コード例 #14
0
ファイル: ChatCommand.cs プロジェクト: sodomon2/dwarfcorp
 public override bool CanBeAppliedTo(GameComponent Entity, WorldManager World)
 {
     if (Entity.GetComponent <CreatureAI>().HasValue(out var creature) && Entity.GetComponent <DwarfThoughts>().HasValue(out var thoughts))
     {
         return(World.PlayerFaction.Minions.Contains(creature));
     }
コード例 #15
0
ファイル: ChatCommand.cs プロジェクト: hhy5277/dwarfcorp
        public override void Apply(GameComponent Entity, WorldManager World)
        {
            var creature = Entity.GetComponent <CreatureAI>();

            creature.Chat();
        }