internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Broker", 1); return; case 2: return; case 3: careerHistory.Title = "Experienced Broker"; character.Skills.Add("Streetwise", 1); return; case 4: return; case 5: return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: character.Skills.Add("Vacc Suit", 1); return; case 2: return; case 3: var skillList = new SkillTemplateCollection(); skillList.Add("Profession", "Belter"); skillList.Add("Mechanic"); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } return; case 4: return; case 5: return; case 6: return; } }
/// <summary> /// Titles the table. /// </summary> /// <param name="character">The character.</param> /// <param name="careerHistory">The career history.</param> /// <param name="dice">The dice.</param> internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Freelancer"; character.Skills.Add("Electronics", "Comms", 1); return; case 2: careerHistory.Title = "Staff Writer"; character.Skills.Add("Investigate", 1); return; case 3: return; case 4: careerHistory.Title = "Correspondent"; character.Skills.Add("Persuade", 1); return; case 5: return; case 6: careerHistory.Title = "Senior Correspondent"; character.SocialStanding += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Wastrel"; return; case 1: return; case 2: careerHistory.Title = "Ingrate"; character.Skills.Add("Carouse", 1); return; case 3: return; case 4: careerHistory.Title = "Black Sheep"; character.Skills.Add("Persuade", 1); return; case 5: return; case 6: careerHistory.Title = "Scoundrel"; character.Skills.Add("Jack-of-all-Trades", 1); return; } }
internal void UpdateTitle(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: var skillList = new SkillTemplateCollection(SpecialtiesFor("Athletics")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } return; case 3: return; case 4: character.Skills.Add("Advocate"); return; case 5: return; case 6: character.Endurance += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Dexterity += 1; return; case 2: return; case 3: character.Strength += 1; return; case 4: return; case 5: careerHistory.Title = "Famous Performer"; character.SocialStanding += 1; return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: careerHistory.Title = "Survivor"; { var skillList = new SkillTemplateCollection("Survival", "Streetwise"); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; case 2: return; case 3: careerHistory.Title = "Witch"; character.Skills.Add("Deception", 1); return; case 4: return; case 5: return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Manager"; character.Skills.Add("Admin", 1); return; case 3: return; case 4: careerHistory.Title = "Senior Manager"; character.Skills.Add("Advocate", 1); return; case 5: return; case 6: careerHistory.Title = "Director"; character.SocialStanding += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Settler"; character.Skills.Add("Survival", 1); return; case 3: return; case 4: careerHistory.Title = "Explorer"; character.Skills.Add("Navigation", 1); return; case 5: return; case 6: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Gun Combat")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Scout"; character.Skills.Add("Vacc Suit", 1); return; case 2: return; case 3: careerHistory.Title = "Senior Scout"; var skillList = new SkillTemplateCollection(SpecialtiesFor("Pilot")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } return; case 4: return; case 5: return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Wastrel"; return; case 1: return; case 2: careerHistory.Title = "Ingrate"; character.Skills.Add("Carouse", 1); return; case 3: return; case 4: careerHistory.Title = "Black Sheep"; character.Skills.Add("Persuade", 1); return; case 5: return; case 6: careerHistory.Title = "Scoundrel"; character.Skills.Add("Jack-of-all-Trades", 1); return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Assistant"; return; case 1: careerHistory.Title = "Clerk"; character.Skills.Add("Admin", 1); return; case 2: careerHistory.Title = "Supervisor"; return; case 3: careerHistory.Title = "Manager"; character.Skills.Add("Advocate", 1); return; case 4: careerHistory.Title = "Chief"; return; case 5: careerHistory.Title = "Director"; character.Skills.Add("Leadership", 1); return; case 6: careerHistory.Title = "Minister"; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Persuade", 1); return; case 2: return; case 3: var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Gun Combat")); skillList.AddRange(SpecialtiesFor("Melee")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); return; case 4: return; case 5: character.Skills.Add("Streetwise", 1); return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: character.Skills.Add("Survival", 1); return; case 2: careerHistory.Title = "Warrior"; character.Skills.Add("Melee", "Blade", 1); return; case 3: return; case 4: careerHistory.Title = "Chieftain"; character.Skills.Add("Leadership", 1); return; case 5: return; case 6: careerHistory.Title = "Warlord"; return; } }
/// <summary> /// Titles the table. /// </summary> /// <param name="character">The character.</param> /// <param name="careerHistory">The career history.</param> /// <param name="dice">The dice.</param> internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Freelancer"; character.Skills.Add("Electronics", "Comms", 1); return; case 2: careerHistory.Title = "Staff Writer"; character.Skills.Add("Investigate", 1); return; case 3: return; case 4: careerHistory.Title = "Correspondent"; character.Skills.Add("Persuade", 1); return; case 5: return; case 6: careerHistory.Title = "Senior Correspondent"; character.SocialStanding += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Persuade", 1); return; case 2: return; case 3: careerHistory.Title = "Experienced Trader"; character.Skills.Add("Jack-of-all-Trades", 1); return; case 4: return; case 5: return; case 6: return; } }
private bool AttemptCommission(Character character, Dice dice, CareerHistory careerHistory) { var commissionDM = character.SocialStandingDM + character.CurrentTermBenefits.AdvancementDM + character.CurrentTermBenefits.CommissionDM + (1 - careerHistory.Terms); character.CurrentTermBenefits.FreeCommissionRoll = false; character.CurrentTermBenefits.CommissionDM = 0; if (dice.RollHigh(commissionDM, 8)) { character.AddHistory($"Commissioned in {Career}/{Assignment}"); careerHistory.CommissionRank = 1; UpdateTitle(character, dice, careerHistory); return(true); } else { character.AddHistory($"Attempt at commissioned failed."); return(false); } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Settler"; character.Skills.Add("Survival", 1); return; case 3: return; case 4: careerHistory.Title = "Explorer"; character.Skills.Add("Navigation", 1); return; case 5: return; case 6: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Gun Combat")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Persuade", 1); return; case 2: return; case 3: var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Gun Combat")); skillList.AddRange(SpecialtiesFor("Melee")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); return; case 4: return; case 5: character.Skills.Add("Streetwise", 1); return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Stealth", 1); return; case 2: return; case 3: character.Skills.Add("Streetwise", 1); return; case 4: return; case 5: character.Skills.Add("Recon", 1); return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Agent"; character.Skills.Add("Deception", 1); return; case 2: careerHistory.Title = "Field Agent"; character.Skills.Add("Investigate", 1); return; case 3: return; case 4: careerHistory.Title = "Special Agent"; var skillList = new SkillTemplateCollection(SpecialtiesFor("Gun Combat")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); return; case 5: careerHistory.Title = "Assistant Director"; return; case 6: careerHistory.Title = "Director"; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Technician"; { var skillList = new SkillTemplateCollection(SpecialtiesFor("Profession")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 3: return; case 4: careerHistory.Title = "Craftsman"; character.Skills.Add("Mechanic", 1); return; case 5: return; case 6: careerHistory.Title = "Master Technician"; { var skillList = new SkillTemplateCollection(SpecialtiesFor("Engineer")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; case 2: character.Skills.Add("Electronics", "Computers", 1); return; case 3: character.Skills.Add("Investigate", 1); return; case 4: return; case 5: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); //look for a level 0 to increase skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 2); } else { //look for a level 1 to increase skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); skillList.RemoveOverlap(character.Skills, 2); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 2); } } } return; case 6: return; } }
protected void UpdateTitle(Character character, Dice dice, CareerHistory careerHistory) { var oldTitle = character.Title; TitleTable(character, careerHistory, dice); var newTitle = careerHistory.Title; if (oldTitle != newTitle && newTitle != null) { character.AddHistory($"Is now a {newTitle}"); character.Title = newTitle; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Lackey"; return; case 1: careerHistory.Title = "Henchman"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Pilot")); skillList.AddRange(SpecialtiesFor("Gunner")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 2: careerHistory.Title = "Corporal"; return; case 3: careerHistory.Title = "Sergeant"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Gun Combat")); skillList.AddRange(SpecialtiesFor("Melee")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 4: careerHistory.Title = "Lieutenant"; return; case 5: careerHistory.Title = "Leader"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Engineer")); skillList.Add("Navigation"); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 6: careerHistory.Title = "Captain"; return; } }
protected void UpdateTitle(Character character, Dice dice, CareerHistory careerHistory) { var oldTitle = character.Title; TitleTable(character, careerHistory, dice); var newTitle = careerHistory.Title; if (oldTitle != newTitle && newTitle != null) { character.AddHistory($"Is now a {newTitle}"); character.Title = newTitle; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Marine"; return; case 1: { var skills = new SkillTemplateCollection(); skills.AddRange(SpecialtiesFor("Gun Combat")); skills.RemoveOverlap(character.Skills, 1); if (skills.Count > 0) { character.Skills.Add(dice.Choose(skills), 1); } } return; case 2: careerHistory.Title = "Captain"; character.Skills.Add("Leadership", 1); return; case 3: return; case 4: return; case 5: careerHistory.Title = "Force Commander"; { var skills = new SkillTemplateCollection(); skills.AddRange(SpecialtiesFor("Tatics")); skills.RemoveOverlap(character.Skills, 1); if (skills.Count > 0) { character.Skills.Add(dice.Choose(skills), 1); } } return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: careerHistory.Title = "Initiate"; character.Skills.Add("Science", "Psionicology"); return; case 2: return; case 3: careerHistory.Title = "Acolyte"; { var skills = new SkillTemplateCollection(); skills.AddRange(Book.PsionicTalents); skills.RemoveOverlap(character.Skills, 1); if (skills.Count > 0) { character.Skills.Add(dice.Choose(skills), 1); } } return; case 4: return; case 5: return; case 6: careerHistory.Title = "Master"; { var skills = new SkillTemplateCollection(); skills.AddRange(Book.PsionicTalents); skills.RemoveOverlap(character.Skills, 1); if (skills.Count > 0) { character.Skills.Add(dice.Choose(skills), 1); } } return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 2: character.Skills.Add("Electronics", "Computers", 1); return; case 3: character.Skills.Add("Investigate", 1); return; case 4: return; case 5: { var skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); //look for a level 0 to increase skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 2); else { //look for a level 1 to increase skillList = new SkillTemplateCollection(SpecialtiesFor("Science")); skillList.RemoveOverlap(character.Skills, 2); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 2); } } return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Technician"; { var skillList = new SkillTemplateCollection(SpecialtiesFor("Profession")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; case 3: return; case 4: careerHistory.Title = "Craftsman"; character.Skills.Add("Mechanic", 1); return; case 5: return; case 6: careerHistory.Title = "Master Technician"; { var skillList = new SkillTemplateCollection(SpecialtiesFor("Engineer")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Crewman"; return; case 1: careerHistory.Title = "Senior Crewman"; character.Skills.Add("Mechanic", 1); return; case 2: careerHistory.Title = "4th Officer"; return; case 3: careerHistory.Title = "3rd Officer"; return; case 4: careerHistory.Title = "2nd Officer"; var skillList = new SkillTemplateCollection(SpecialtiesFor("Pilot")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } return; case 5: careerHistory.Title = "1st Officer"; character.SocialStanding += 1; return; case 6: careerHistory.Title = "Captain"; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Agent"; character.Skills.Add("Deception", 1); return; case 2: careerHistory.Title = "Field Agent"; character.Skills.Add("Investigate", 1); return; case 3: return; case 4: careerHistory.Title = "Special Agent"; var skillList = new SkillTemplateCollection(SpecialtiesFor("Gun Combat")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } return; case 5: careerHistory.Title = "Assistant Director"; return; case 6: careerHistory.Title = "Director"; return; } }
internal override void Run(Character character, Dice dice) { CareerHistory careerHistory; if (!character.CareerHistory.Any(pc => pc.Career == "Retired")) { character.AddHistory($"Retired at age {character.Age}"); careerHistory = new CareerHistory("Retired", null, 0); character.CareerHistory.Add(careerHistory); } else { careerHistory = character.CareerHistory.Single(pc => pc.Career == "Retired"); } careerHistory.Terms += 1; Event(character, dice); character.LastCareer = careerHistory; character.Age += 4; character.NextTermBenefits.MustEnroll = "Retired"; }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Art")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) { character.Skills.Add(dice.Choose(skillList), 1); } } return; case 2: return; case 3: character.Skills.Add("Investigate", 1); return; case 4: return; case 5: careerHistory.Title = "Famous Artist"; character.SocialStanding += 1; return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Rookie"; return; case 1: careerHistory.Title = "Corporal"; character.Skills.Add("Streetwise", 1); return; case 2: careerHistory.Title = "Sergeant"; return; case 3: careerHistory.Title = "Detective"; return; case 4: careerHistory.Title = "Lieutenant"; character.Skills.Add("Investigate", 1); return; case 5: careerHistory.Title = "Chief"; character.Skills.Add("Admin", 1); return; case 6: careerHistory.Title = "Commissioner"; character.SocialStanding += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: character.Skills.Add("Stealth", 1); return; case 2: return; case 3: character.Skills.Add("Streetwise", 1); return; case 4: return; case 5: character.Skills.Add("Recon", 1); return; case 6: return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Assistant"; return; case 1: careerHistory.Title = "Clerk"; character.Skills.Add("Admin", 1); return; case 2: careerHistory.Title = "Supervisor"; return; case 3: careerHistory.Title = "Manager"; character.Skills.Add("Advocate", 1); return; case 4: careerHistory.Title = "Chief"; return; case 5: careerHistory.Title = "Director"; character.Skills.Add("Leadership", 1); return; case 6: careerHistory.Title = "Minister"; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Intern"; return; case 1: careerHistory.Title = "3rd Secretary"; character.Skills.Add("Admin", 1); return; case 2: careerHistory.Title = "2nd Secretary"; return; case 3: careerHistory.Title = "1st Secretary"; character.Skills.Add("Advocate", 1); return; case 4: careerHistory.Title = "Counsellor"; return; case 5: careerHistory.Title = "Minister"; character.Skills.Add("Diplomat", 1); return; case 6: careerHistory.Title = "Ambassador"; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 1: return; case 2: careerHistory.Title = "Manager"; character.Skills.Add("Admin", 1); return; case 3: return; case 4: careerHistory.Title = "Senior Manager"; character.Skills.Add("Advocate", 1); return; case 5: return; case 6: careerHistory.Title = "Director"; character.SocialStanding += 1; return; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { if (careerHistory.CommissionRank == 0) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Crewman"; return; case 1: careerHistory.Title = "Able Spacehand"; character.Skills.Add("Mechanic", 1); return; case 2: careerHistory.Title = "Petty Officer, 3rd class"; character.Skills.Add("Vacc Suit", 1); return; case 3: careerHistory.Title = "Petty Officer, 2nd class"; return; case 4: careerHistory.Title = "Petty Officer, 1st class"; character.Endurance += 1; return; case 5: careerHistory.Title = "Chief Petty Officer"; return; case 6: careerHistory.Title = "Master Chief"; return; } } else { switch (careerHistory.CommissionRank) { case 1: careerHistory.Title = "Ensign"; character.Skills.Add("Melee", "Blade", 1); return; case 2: careerHistory.Title = "Sublieutenant"; character.Skills.Add("Leadership", 1); return; case 3: careerHistory.Title = "Lieutenant"; return; case 4: careerHistory.Title = "Commander"; character.Skills.Add("Tactics", "Military", 1); return; case 5: careerHistory.Title = "Captain"; if (character.SocialStanding < 10) { character.SocialStanding = 10; } else { character.SocialStanding += 1; } return; case 6: careerHistory.Title = "Admiral"; if (character.SocialStanding < 12) { character.SocialStanding = 12; } else { character.SocialStanding += 1; } return; } } }
internal override void Run(Character character, Dice dice) { CareerHistory careerHistory; if (!character.CareerHistory.Any(pc => pc.Name == Name)) { character.AddHistory($"Became a {Assignment} at age {character.Age}"); BasicTrainingSkills(character, dice, character.CareerHistory.Count == 0); careerHistory = new CareerHistory(Name, Assignment, 0); character.CareerHistory.Add(careerHistory); } else { if (!character.CareerHistory.Any(pc => pc.Assignment == Assignment)) { character.AddHistory($"Switched to {Assignment} at age {character.Age}"); careerHistory = new CareerHistory(Name, Assignment, 0); //TODO: Carry-over rank? character.CareerHistory.Add(careerHistory); } else if (character.LastCareer?.Assignment == Assignment) { character.AddHistory($"Continued as {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } else { character.AddHistory($"Returned to {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } var skillTables = new List <SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); dice.Choose(skillTables)(character, dice); } careerHistory.Terms += 1; if (character.Parole == null) { character.Parole = dice.D(6) + 4; } var survived = dice.RollHigh(character.GetDM(SurvivalAttribute) + character.NextTermBenefits.SurvivalDM, SurvivalTarget); if (survived) { character.BenefitRolls += 1; Event(character, dice); var advancementRoll = dice.D(2, 6); advancementRoll += character.GetDM(AdvancementAttribute) + character.CurrentTermBenefits.AdvancementDM; if (advancementRoll > AdvancementTarget) { careerHistory.Rank += 1; character.AddHistory($"Promoted to rank {careerHistory.Rank}"); UpdateTitle(character, careerHistory, dice); //advancement skill var skillTables = new List <SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); dice.Choose(skillTables)(character, dice); } if (character.NextTermBenefits.MusterOut) { //must have escaped due to event roll. } else if (advancementRoll > character.Parole) { character.NextTermBenefits.MusterOut = true; character.AddHistory("Paroled from prison."); } else { character.NextTermBenefits.MustEnroll = "Prisoner"; } } else { character.NextTermBenefits.MustEnroll = "Prisoner"; Mishap(character, dice); } character.LastCareer = careerHistory; character.Age += 4; }
internal override void Run(Character character, Dice dice) { CareerHistory careerHistory; if (!character.CareerHistory.Any(pc => pc.Name == Name)) { character.AddHistory($"Became a {Assignment} at age {character.Age}"); BasicTrainingSkills(character, dice, character.CareerHistory.Count == 0); careerHistory = new CareerHistory(Name, Assignment, 0); character.CareerHistory.Add(careerHistory); UpdateTitle(character, dice, careerHistory); } else { if (!character.CareerHistory.Any(pc => pc.Assignment == Assignment)) { character.AddHistory($"Switched to {Assignment} at age {character.Age}"); careerHistory = new CareerHistory(Name, Assignment, 0); character.CareerHistory.Add(careerHistory); if (!RankCarryover) //then this is a new career { UpdateTitle(character, dice, careerHistory); BasicTrainingSkills(character, dice, false); } } else if (character.LastCareer?.Assignment == Assignment) { character.AddHistory($"Continued as {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } else { character.AddHistory($"Returned to {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } var skillTables = new List<SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); if (character.Education >= AdvancedEductionMin) skillTables.Add(AdvancedEducation); dice.Choose(skillTables)(character, dice); } careerHistory.Terms += 1; if (RankCarryover) { careerHistory.Rank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.Rank); careerHistory.CommissionRank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.CommissionRank); } var survived = dice.RollHigh(character.GetDM(SurvivalAttribute) + character.NextTermBenefits.SurvivalDM, SurvivalTarget); if (survived) { character.BenefitRolls += 1; Event(character, dice); var advancementRoll = dice.D(2, 6); if (advancementRoll == 12) { character.AddHistory("Forced to continue current assignment"); character.NextTermBenefits.MustEnroll = Assignment; } advancementRoll += character.GetDM(AdvancementAttribute) + character.CurrentTermBenefits.AdvancementDM; if (advancementRoll <= careerHistory.Terms) { character.AddHistory("Forced to muster out."); character.NextTermBenefits.MusterOut = true; } if (advancementRoll > AdvancementTarget) { careerHistory.Rank += 1; character.AddHistory($"Promoted to rank {careerHistory.Rank}"); UpdateTitle(character, dice, careerHistory); //advancement skill var skillTables = new List<SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); if (character.Education >= AdvancedEductionMin) skillTables.Add(AdvancedEducation); dice.Choose(skillTables)(character, dice); } } else { character.NextTermBenefits.MusterOut = true; Mishap(character, dice); } character.LastCareer = careerHistory; character.Age += 4; }
internal abstract void TitleTable(Character character, CareerHistory careerHistory, Dice dice);
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { if (careerHistory.CommissionRank == 0) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Private"; character.Skills.Add(dice.Choose(SpecialtiesFor("Gun Combat")), 1); return; case 1: careerHistory.Title = "Lance Corporal"; character.Skills.Add("Recon", 1); return; case 2: careerHistory.Title = "Corporal"; return; case 3: careerHistory.Title = "Lance Sergeant"; character.Skills.Add("Leadership", 1); return; case 4: careerHistory.Title = "Sergeant"; return; case 5: careerHistory.Title = "Gunnery Sergeant"; return; case 6: careerHistory.Title = "Sergeant Major"; return; } } else { switch (careerHistory.CommissionRank) { case 1: careerHistory.Title = "Lieutenant"; character.Skills.Add("Leadership", 1); return; case 2: careerHistory.Title = "Captain"; return; case 3: careerHistory.Title = "Major"; character.Skills.Add("Tactics", "Military", 1); return; case 4: careerHistory.Title = "Lieutenant Colonel"; return; case 5: careerHistory.Title = "Colonel"; return; case 6: careerHistory.Title = "General"; if (character.SocialStanding < 10) character.SocialStanding = 10; else character.SocialStanding += 1; return; } } }
private bool AttemptCommission(Character character, Dice dice, CareerHistory careerHistory) { var commissionDM = character.SocialStandingDM + character.CurrentTermBenefits.AdvancementDM + character.CurrentTermBenefits.CommissionDM + (1 - careerHistory.Terms); character.CurrentTermBenefits.FreeCommissionRoll = false; character.CurrentTermBenefits.CommissionDM = 0; if (dice.RollHigh(commissionDM, 8)) { character.AddHistory($"Commissioned in {Name}/{Assignment}"); careerHistory.CommissionRank = 1; UpdateTitle(character, dice, careerHistory); return true; } else { character.AddHistory($"Attempt at commissioned failed."); return false; } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { if (careerHistory.CommissionRank == 0) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Marine"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Gun Combat")); skillList.Add("Melee", "Blade"); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 1: careerHistory.Title = "Lance Corporal"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Gun Combat")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 2: careerHistory.Title = "Corporal"; return; case 3: careerHistory.Title = "Lance Sergeant"; character.Skills.Add("Leadership", 1); return; case 4: careerHistory.Title = "Sergeant"; return; case 5: careerHistory.Title = "Gunnery Sergeant"; character.Endurance += 1; return; case 6: careerHistory.Title = "Sergeant Major"; return; } } else { switch (careerHistory.CommissionRank) { case 1: careerHistory.Title = "Lieutenant"; character.Skills.Add("Leadership", 1); return; case 2: careerHistory.Title = "Captain"; return; case 3: careerHistory.Title = "Force Commander"; { var skillList = new SkillTemplateCollection(); skillList.AddRange(SpecialtiesFor("Tatics")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); } return; case 4: careerHistory.Title = "Lieutenant Colonel"; return; case 5: careerHistory.Title = "Colonel"; if (character.SocialStanding < 10) character.SocialStanding = 10; else character.SocialStanding += 1; return; case 6: careerHistory.Title = "Brigadier"; return; } } }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { switch (careerHistory.Rank) { case 0: return; case 1: careerHistory.Title = "Scout"; character.Skills.Add("Vacc Suit", 1); return; case 2: return; case 3: careerHistory.Title = "Senior Scout"; var skillList = new SkillTemplateCollection(SpecialtiesFor("Pilot")); skillList.RemoveOverlap(character.Skills, 1); if (skillList.Count > 0) character.Skills.Add(dice.Choose(skillList), 1); return; case 4: return; case 5: return; case 6: return; } }
public bool UpdateEmployeeCH(CareerHistory careerHistory) { _db.CareerHistories.Update(careerHistory); return(Save()); }
internal override void Run(Character character, Dice dice) { CareerHistory careerHistory; if (!character.CareerHistory.Any(pc => pc.Name == Name)) { character.AddHistory($"Became a {Assignment} at age {character.Age}"); BasicTraining(character, dice, character.CareerHistory.Count == 0); careerHistory = new CareerHistory(Name, Assignment, 0); character.CareerHistory.Add(careerHistory); UpdateTitle(character, dice, careerHistory); } else { if (!character.CareerHistory.Any(pc => pc.Assignment == Assignment)) { character.AddHistory($"Switched to {Assignment} at age {character.Age}"); careerHistory = new CareerHistory(Name, Assignment, 0); character.CareerHistory.Add(careerHistory); } else if (character.LastCareer?.Assignment == Assignment) { character.AddHistory($"Continued as {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } else { character.AddHistory($"Returned to {Assignment} at age {character.Age}"); careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment); } var skillTables = new List<SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); if (character.Education >= AdvancedEductionMin) skillTables.Add(AdvancedEducation); if (careerHistory.CommissionRank > 0) skillTables.Add(OfficerTraining); dice.Choose(skillTables)(character, dice); } careerHistory.Terms += 1; character.LastCareer = careerHistory; //rank carry-over careerHistory.Rank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.Rank); careerHistory.CommissionRank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.CommissionRank); //Early commission, possibly from military academy. if (careerHistory.CommissionRank == 0 && character.CurrentTermBenefits.FreeCommissionRoll) { AttemptCommission(character, dice, careerHistory); } var survived = dice.RollHigh(character.GetDM(SurvivalAttribute) + character.NextTermBenefits.SurvivalDM, SurvivalTarget); if (survived) { character.BenefitRolls += 1; Event(character, dice); var totalTermsInCareer = character.CareerHistory.Where(pc => pc.Name == Name).Sum(c => c.Terms); //Not all people will attempt a commission even when possible var attemptCommission = (totalTermsInCareer == 1 || character.SocialStanding >= 9) && dice.D(100) < Book.OddsOfSuccess(character, "Soc", 8 - character.CurrentTermBenefits.CommissionDM); var commissionEarned = false; if (careerHistory.CommissionRank == 0 && (attemptCommission || character.CurrentTermBenefits.FreeCommissionRoll)) commissionEarned = AttemptCommission(character, dice, careerHistory); if (!commissionEarned) { //try for advancement only if failed to earn a commission. var advancementRoll = dice.D(2, 6); if (advancementRoll == 12) { character.AddHistory("Forced to continue current assignment"); character.NextTermBenefits.MustEnroll = Assignment; } advancementRoll += character.GetDM(AdvancementAttribute) + character.CurrentTermBenefits.AdvancementDM; if (advancementRoll <= careerHistory.Terms) { character.AddHistory("Forced to muster out."); character.NextTermBenefits.MusterOut = true; } if (advancementRoll > AdvancementTarget) { if (careerHistory.CommissionRank > 0) { careerHistory.CommissionRank += 1; character.AddHistory($"Promoted to officer rank {careerHistory.CommissionRank}"); } else { careerHistory.Rank += 1; character.AddHistory($"Promoted to rank {careerHistory.Rank}"); } UpdateTitle(character, dice, careerHistory); //advancement skill var skillTables = new List<SkillTable>(); skillTables.Add(PersonalDevelopment); skillTables.Add(ServiceSkill); skillTables.Add(AssignmentSkills); if (character.Education >= AdvancedEductionMin) skillTables.Add(AdvancedEducation); if (careerHistory.CommissionRank > 0) skillTables.Add(OfficerTraining); dice.Choose(skillTables)(character, dice); } } } else { character.NextTermBenefits.MusterOut = true; Mishap(character, dice); } character.Age += 4; }
internal override void TitleTable(Character character, CareerHistory careerHistory, Dice dice) { if (careerHistory.CommissionRank == 0) { switch (careerHistory.Rank) { case 0: careerHistory.Title = "Crewman"; return; case 1: careerHistory.Title = "Able Spacehand"; character.Skills.Add("Mechanic", 1); return; case 2: careerHistory.Title = "Petty Officer, 3rd class"; character.Skills.Add("Vacc Suit", 1); return; case 3: careerHistory.Title = "Petty Officer, 2nd class"; return; case 4: careerHistory.Title = "Petty Officer, 1st class"; character.Endurance += 1; return; case 5: careerHistory.Title = "Chief Petty Officer"; return; case 6: careerHistory.Title = "Master Chief"; return; } } else { switch (careerHistory.CommissionRank) { case 1: careerHistory.Title = "Ensign"; character.Skills.Add("Melee", "Blade", 1); return; case 2: careerHistory.Title = "Sublieutenant"; character.Skills.Add("Leadership", 1); return; case 3: careerHistory.Title = "Lieutenant"; return; case 4: careerHistory.Title = "Commander"; character.Skills.Add("Tactics", "Military", 1); return; case 5: careerHistory.Title = "Captain"; if (character.SocialStanding < 10) character.SocialStanding = 10; else character.SocialStanding += 1; return; case 6: careerHistory.Title = "Admiral"; if (character.SocialStanding < 12) character.SocialStanding = 12; else character.SocialStanding += 1; return; } } }