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); } }
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)); }
public override void Apply(GameComponent Entity, WorldManager World) { if (Entity.GetComponent <CreatureAI>().HasValue(out var creature)) { creature.CancelCurrentTask(); } }
public override void Apply(GameComponent Entity, WorldManager World) { if (Entity.GetComponent <CreatureAI>().HasValue(out var creature)) { creature.Creature.AssignRestockAllTasks(TaskPriority.Urgent, true); } }
public override void Apply(GameComponent Entity, WorldManager World) { if (Entity.GetComponent <CreatureAI>().HasValue(out var creature)) { creature.Creature.RestockAllImmediately(true); } }
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); }
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); }
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); } }
public override void Apply(GameComponent Entity, WorldManager World) { var creature = Entity.GetComponent <CreatureAI>(); if (creature == null) { return; } creature.CancelCurrentTask(); }
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); } }
public override void Apply(GameComponent Entity, WorldManager World) { var creature = Entity.GetComponent <CreatureAI>(); if (creature == null) { return; } creature.Creature.RestockAllImmediately(true); }
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); }
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); }
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)); }
public override void Apply(GameComponent Entity, WorldManager World) { var creature = Entity.GetComponent <CreatureAI>(); creature.Chat(); }