public void Hire(Applicant currentApplicant) { List<Room> rooms = GetRooms().Where(room => room.RoomData.Name == "BalloonPort").ToList(); if (rooms.Count == 0) { return; } Economy.CurrentMoney -= currentApplicant.Level.Pay*4; Dwarf newMinion = EntityFactory.GenerateDwarf( rooms.First().GetBoundingBox().Center() + Vector3.UnitY * 15, Components, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, this, PlayState.PlanService, "Player", currentApplicant.Class, currentApplicant.Level.Index).GetChildrenOfType<Dwarf>().First(); newMinion.Stats.CurrentClass = currentApplicant.Class; newMinion.Stats.LevelIndex = currentApplicant.Level.Index - 1; newMinion.Stats.LevelUp(); newMinion.Stats.FullName = currentApplicant.Name; newMinion.AI.AddMoney(currentApplicant.Level.Pay * 4); PlayState.AnnouncementManager.Announce("New Hire!" ,currentApplicant.Name + " was hired as a " + currentApplicant.Level.Name, newMinion.AI.ZoomToMe); }
public void Initialize(EmployeeClass dwarfClass) { Stats.Gender = Mating.RandomGender(); Physics.Orientation = Physics.OrientMode.RotateY; CreateDwarfSprite(dwarfClass, Manager); Physics.AddChild(new EnemySensor(Manager, "EnemySensor", Matrix.Identity, new Vector3(20, 5, 20), Vector3.Zero)); Physics.AddChild(new CreatureAI(Manager, "Dwarf AI", Sensors, PlanService)); Attacks = new List <Attack>() { new Attack(Stats.CurrentClass.Attacks[0]) }; Physics.AddChild(new Inventory(Manager, "Inventory", Physics.BoundingBox.Extents(), Physics.LocalBoundingBoxOffset)); Physics.Tags.Add("Dwarf"); Physics.AddChild(new ParticleTrigger("blood_particle", Manager, "Death Gibs", Matrix.Identity, Vector3.One, Vector3.Zero) { TriggerOnDeath = true, TriggerAmount = 1, BoxTriggerTimes = 10, SoundToPlay = ContentPaths.Entities.Dwarf.Audio.dwarfhurt1, }); Physics.AddChild(new Flammable(Manager, "Flames")); Physics.AddChild(Shadow.Create(0.75f, Manager)); NoiseMaker.Noises["Hurt"] = new List <string> { ContentPaths.Audio.Oscar.sfx_ic_dwarf_hurt_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_hurt_2, }; NoiseMaker.Noises["Ok"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_3 }; NoiseMaker.Noises["Die"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_death }; NoiseMaker.Noises["Pleased"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_pleased }; NoiseMaker.Noises["Tantrum"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_3, }; NoiseMaker.Noises["Jump"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_jump }; NoiseMaker.Noises["Climb"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_3 }; MinimapIcon minimapIcon = Physics.AddChild(new MinimapIcon(Manager, new NamedImageFrame(ContentPaths.GUI.map_icons, 16, 0, 0))) as MinimapIcon; Stats.FullName = TextGenerator.GenerateRandom("$firstname", " ", "$lastname"); Stats.Size = 5; Stats.CanSleep = true; Stats.CanEat = true; Stats.CanGetBored = true; AI.Movement.CanClimbWalls = true; // Why isn't this a flag like the below? AI.Movement.SetCan(MoveType.Teleport, true); AI.Movement.SetCost(MoveType.Teleport, 1.0f); AI.Movement.SetSpeed(MoveType.Teleport, 10.0f); AI.Movement.SetCost(MoveType.ClimbWalls, 50.0f); AI.Movement.SetSpeed(MoveType.ClimbWalls, 0.15f); AI.Movement.SetCan(MoveType.EnterVehicle, true); AI.Movement.SetCan(MoveType.ExitVehicle, true); AI.Movement.SetCan(MoveType.RideVehicle, true); AI.Movement.SetCost(MoveType.EnterVehicle, 1.0f); AI.Movement.SetCost(MoveType.ExitVehicle, 1.0f); AI.Movement.SetCost(MoveType.RideVehicle, 0.01f); AI.Movement.SetSpeed(MoveType.RideVehicle, 3.0f); AI.Movement.SetSpeed(MoveType.EnterVehicle, 1.0f); AI.Movement.SetSpeed(MoveType.ExitVehicle, 1.0f); if (AI.Stats.IsTaskAllowed(Task.TaskCategory.Dig)) { AI.Movement.SetCan(MoveType.Dig, true); } AI.TriggersMourning = true; AI.Biography = Applicant.GenerateBiography(AI.Stats.FullName, Stats.Gender); Species = "Dwarf"; Status.Money = (decimal)MathFunctions.Rand(0, 150); Physics.AddChild(new VoxelRevealer(Manager, Physics, 5)).SetFlag(Flag.ShouldSerialize, false); Physics.AddChild(new DwarfThoughts(Manager, "Thoughts")); }
public void Initialize(EmployeeClass dwarfClass) { Gender = Mating.RandomGender(); Physics.Orientation = Physics.OrientMode.RotateY; CreateSprite(dwarfClass, Manager); Hands = Physics.AddChild(new Grabber("hands", Manager, Matrix.Identity, new Vector3(0.1f, 0.1f, 0.1f), Vector3.Zero)) as Grabber; Sensors = Physics.AddChild(new EnemySensor(Manager, "EnemySensor", Matrix.Identity, new Vector3(20, 5, 20), Vector3.Zero)) as EnemySensor; AI = Physics.AddChild(new CreatureAI(Manager, "Dwarf AI", Sensors, PlanService)) as CreatureAI; Attacks = new List <Attack>() { new Attack(Stats.CurrentClass.Attacks[0]) }; Inventory = Physics.AddChild(new Inventory(Manager, "Inventory", Physics.BoundingBox.Extents(), Physics.LocalBoundingBoxOffset)) as Inventory; Physics.Tags.Add("Dwarf"); Physics.AddChild(new ParticleTrigger("blood_particle", Manager, "Death Gibs", Matrix.Identity, Vector3.One, Vector3.Zero) { TriggerOnDeath = true, TriggerAmount = 1, BoxTriggerTimes = 10, SoundToPlay = ContentPaths.Entities.Dwarf.Audio.dwarfhurt1, }); Physics.AddChild(new Flammable(Manager, "Flames")); Physics.AddChild(Shadow.Create(0.75f, Manager)); NoiseMaker.Noises["Hurt"] = new List <string> { ContentPaths.Audio.Oscar.sfx_ic_dwarf_hurt_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_hurt_2, }; NoiseMaker.Noises["Ok"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_ok_3 }; NoiseMaker.Noises["Die"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_death }; NoiseMaker.Noises["Pleased"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_pleased }; NoiseMaker.Noises["Tantrum"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_tantrum_3, }; NoiseMaker.Noises["Jump"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_jump }; NoiseMaker.Noises["Climb"] = new List <string>() { ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_1, ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_2, ContentPaths.Audio.Oscar.sfx_ic_dwarf_climb_3 }; MinimapIcon minimapIcon = Physics.AddChild(new MinimapIcon(Manager, new NamedImageFrame(ContentPaths.GUI.map_icons, 16, 0, 0))) as MinimapIcon; Stats.FullName = TextGenerator.GenerateRandom("$firstname", " ", "$lastname"); Stats.Size = 5; Stats.CanSleep = true; Stats.CanEat = true; AI.Movement.CanClimbWalls = true; AI.Movement.SetCost(MoveType.ClimbWalls, 50.0f); AI.Movement.SetSpeed(MoveType.ClimbWalls, 0.15f); AI.TriggersMourning = true; AI.Biography = Applicant.GenerateBiography(AI.Stats.FullName, Gender); Species = "Dwarf"; Physics.AddChild(new VoxelRevealer(Manager, Physics, 5)).SetFlag(Flag.ShouldSerialize, false); }
void dialog_OnHired(Applicant applicant) { EmployeeSelector.ClearItems(); foreach (CreatureAI creature in Faction.Minions) { EmployeeSelector.AddItem(creature.Stats.FullName); } }
protected virtual void OnOnHired(Applicant applicant) { HiredDelegate handler = OnHired; if (handler != null) handler(applicant); }
public void GenerateApplicants() { Applicants = new List<Applicant>(); foreach (KeyValuePair<JobLibrary.JobType, EmployeeClass> employeeType in JobLibrary.Classes) { for (int i = 0; i < 5; i++) { Applicant applicant = new Applicant(); applicant.GenerateRandom(employeeType.Value, 0); Applicants.Add(applicant); } } }
public void SetApplicant(Applicant applicant) { NameLabel.Text = applicant.Name; PositionLabel.Text = applicant.Class.Name; PayLabel.Text = "Wage: " + applicant.Level.Pay.ToString("C") + " / day"; BonusLabel.Text = "Signing Bonus: " + (applicant.Level.Pay*4).ToString("C"); LetterLabel.Text = applicant.CoverLetter; HomeTownLabel.Text = "Hometown: " + applicant.HomeTown; FormerPositionLabel.Text = "Last Job: " + applicant.FormerProfession; }