public NonPlayerDwarf(ComponentManager manager, CreatureStats stats, Faction faction, string name, Vector3 position) : base(manager, stats, faction, name) { Physics = new Physics(manager, "Dwarf", Matrix.CreateTranslation(position), new Vector3(0.5f, 0.5f, 0.5f), new Vector3(0.0f, -0.25f, 0.0f), 1.0f, 1.0f, 0.999f, 0.999f, new Vector3(0, -10, 0)); Physics.AddChild(this); Stats.Gender = Mating.RandomGender(); Stats.VoicePitch = DwarfFactory.GetRandomVoicePitch(Stats.Gender); Physics.Orientation = Physics.OrientMode.RotateY; CreateCosmeticChildren(Manager); Physics.AddChild(new EnemySensor(Manager, "EnemySensor", Matrix.Identity, new Vector3(10, 5, 10), Vector3.Zero)); Physics.AddChild(new CreatureAI(Manager, "Non Player Dwarf AI", Sensor)); Physics.AddChild(new Inventory(Manager, "Inventory", Physics.BoundingBox.Extents(), Physics.LocalBoundingBoxOffset)); Physics.Tags.Add("Dwarf"); Physics.AddChild(new Flammable(Manager, "Flames")); Stats.FullName = TextGenerator.GenerateRandom("$firstname", " ", "$lastname"); Stats.FindAdjustment("base stats").Size = 5; AI.Movement.CanClimbWalls = true; // Why isn't this a flag like the below? AI.Movement.SetCost(MoveType.ClimbWalls, 50.0f); AI.Movement.SetSpeed(MoveType.ClimbWalls, 0.15f); AI.Biography = Applicant.GenerateBiography(AI.Stats.FullName, Stats.Gender); Stats.Money = (decimal)MathFunctions.Rand(0, 150); }
public Dwarf(ComponentManager manager, CreatureStats stats, Faction faction, string name, Vector3 position) : base(manager, stats, faction, name) { Physics = new Physics(manager, "Dwarf", Matrix.CreateTranslation(position), new Vector3(0.5f, 0.5f, 0.5f), new Vector3(0.0f, -0.25f, 0.0f), 1.0f, 1.0f, 0.999f, 0.999f, new Vector3(0, -10, 0)); Physics.AddChild(this); Stats.Gender = Mating.RandomGender(); Physics.Orientation = Physics.OrientMode.RotateY; CreateCosmeticChildren(Manager); Physics.AddChild(new EnemySensor(Manager, "EnemySensor", Matrix.Identity, new Vector3(10, 5, 10), Vector3.Zero)); Physics.AddChild(new DwarfAI(Manager, "Dwarf AI", Sensor)); Physics.AddChild(new Inventory(Manager, "Inventory", Physics.BoundingBox.Extents(), Physics.LocalBoundingBoxOffset)); Physics.AddChild(new Equipment(Manager)); Physics.Tags.Add("Dwarf"); Physics.AddChild(new Flammable(Manager, "Flames")); Stats.FullName = TextGenerator.GenerateRandom("$firstname", " ", "$lastname"); Stats.FindAdjustment("base stats").Size = 5; Stats.CanEat = 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, 0.01f); AI.Movement.SetCost(MoveType.ExitVehicle, 0.01f); 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(TaskCategory.Dig)) { AI.Movement.SetCan(MoveType.Dig, true); } AI.Biography = Applicant.GenerateBiography(AI.Stats.FullName, Stats.Gender); Stats.Money = (decimal)MathFunctions.Rand(0, 150); 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.BoundingBoxPos)) 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"; }
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")); }