// Bound uniques. These uniques are generated at the same time as their map. public void init_Prisoner(Actor newCivilian) { #if DEBUG if (null != PoliceStationPrisoner) { throw new InvalidOperationException("only call UniqueActors::init_Prisoner once"); } #endif newCivilian.Name = "The Prisoner Who Should Not Be"; for (int index = 0; index < newCivilian.Inventory.MaxCapacity; ++index) { newCivilian.Inventory.AddAll(GameItems.ARMY_RATION.instantiate()); } PoliceStationPrisoner = new UniqueActor(newCivilian, true); }
public void init_JasonMyers() { #if DEBUG if (null != JasonMyers) { throw new InvalidOperationException("only call UniqueActors::init_JasonMyers once"); } #endif Actor named = GameActors.JasonMyers.CreateNamed(GameFactions.ThePsychopaths, "Jason Myers", 0); named.IsUnique = true; named.Doll.AddDecoration(DollPart.SKIN, GameImages.ACTOR_JASON_MYERS); named.StartingSkill(Skills.IDs.TOUGH, 3); named.StartingSkill(Skills.IDs.STRONG, 3); named.StartingSkill(Skills.IDs.AGILE, 3); named.StartingSkill(Skills.IDs.HIGH_STAMINA, 3); named.Inventory.AddAll(new ItemMeleeWeapon(GameItems.UNIQUE_JASON_MYERS_AXE)); JasonMyers = new UniqueActor(named, true, false, GameMusics.INSANE); }
// Free/unbound uniques. These are not assigned to a specific map at the time the map is generated. // VAPORWARE: Father Time's day job was running a martial arts dojo. Make him a shop owner for one; would change his status to a bound unique. // VAPORWARE: Father Time is elderly. However, he's not deconditioned so shouldn't be using a standard elderly civilian model private void init_FatherTime(BaseTownGenerator tgen) // unused parameter...haven't decided on full item complement yet. { #if DEBUG if (null != FatherTime) { throw new InvalidOperationException("only call UniqueActors::init_FatherTime once"); } #endif Actor named = GameActors.MaleCivilian.CreateNamed(GameFactions.TheCivilians, "Father Time", 0); named.IsUnique = true; named.Doll.AddDecoration(DollPart.SKIN, GameImages.ACTOR_FATHER_TIME); named.StartingSkill(Skills.IDs.HAULER, 3); named.StartingSkill(Skills.IDs.MARTIAL_ARTS, 5); // to get the most out of his scythe named.StartingSkill(Skills.IDs.AGILE, 5); named.StartingSkill(Skills.IDs.HIGH_STAMINA, 5); named.Inventory.AddAll(new ItemMeleeWeapon(GameItems.UNIQUE_FATHER_TIME_SCYTHE)); named.Inventory.AddAll(GameItems.ARMY_RATION.instantiate()); // Doesn't want to be a target, so only one ration FatherTime = new UniqueActor(named, false, true, null, "You hear new year's music."); // XXX \todo GameMusics.FATHER_TIME_THEME_SONG (Auld Lang Syne?) }