Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
        internal override void BasicTrainingSkills(Character character, Dice dice, bool all)
        {
            var roll = dice.D(6);

            if (all || roll == 1)
            {
                if (all)
                {
                    character.Skills.AddRange(SpecialtiesFor("Drive"));
                    character.Skills.Add("Vacc Suit");
                }
                else
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Drive"));
                    skillList.Add("Vacc Suit");
                    skillList.RemoveOverlap(character.Skills, 0);
                    if (skillList.Count > 0)
                        character.Skills.Add(dice.Choose(skillList));
                }
            }

            if (all || roll == 2)
                character.Skills.AddRange(SpecialtiesFor("Athletics"));
            if (all || roll == 3)
                character.Skills.AddRange(SpecialtiesFor("Gun Combat"));
            if (all || roll == 4)
                character.Skills.Add("Recon");
            if (all || roll == 5)
                character.Skills.AddRange(SpecialtiesFor("Melee"));
            if (all || roll == 6)
                character.Skills.AddRange(SpecialtiesFor("Heavy Weapons"));
        }
Ejemplo n.º 4
0
 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;
     }
 }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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 = "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;
            }
        }
Ejemplo n.º 8
0
        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;
            }
        }
Ejemplo n.º 9
0
 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;
     }
 }
Ejemplo n.º 10
0
        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:
            {
                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;
            }
        }
Ejemplo n.º 12
0
        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;
            }
        }
Ejemplo n.º 13
0
        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;
            }
        }
Ejemplo n.º 14
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
            case 1:
                Injury(character, dice, true);
                return;

            case 2:
                character.AddHistory("Arrested");
                character.NextTermBenefits.MustEnroll = "Prisoner";
                return;

            case 3:
                character.AddHistory("Betrayed by a friend. One of your Contacts or Allies betrays you, ending your career. That Contact or Ally becomes a Rival or Enemy.");
                if (dice.D(2, 6) == 2)
                {
                    character.NextTermBenefits.MustEnroll = "Prisoner";
                }
                return;

            case 4:
                character.AddHistory("A job goes wrong, forcing you to flee off-planet. ");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Deception");
                    skillList.Add("Pilot", "Small Craft");
                    skillList.Add("Pilot", "Spacecraft");
                    skillList.Add("Athletics", "Dexterity");
                    skillList.AddRange(SpecialtiesFor("Gunner"));
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }

                return;

            case 5:
                character.AddHistory("A police detective or rival criminal forces you to flee and vows to hunt you down. Gain an Enemy.");
                return;

            case 6:
                Injury(character, dice, false);
                return;
            }
        }
Ejemplo n.º 15
0
        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;
            }
        }
Ejemplo n.º 16
0
        internal override void BasicTrainingSkills(Character character, Dice dice, bool all)
        {
            var roll = dice.D(6);

            if (all || roll == 1)
            {
                if (all)
                {
                    character.Skills.AddRange(SpecialtiesFor("Drive"));
                    character.Skills.Add("Vacc Suit");
                }
                else
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Drive"));
                    skillList.Add("Vacc Suit");
                    skillList.RemoveOverlap(character.Skills, 0);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList));
                    }
                }
            }

            if (all || roll == 2)
            {
                character.Skills.AddRange(SpecialtiesFor("Athletics"));
            }
            if (all || roll == 3)
            {
                character.Skills.AddRange(SpecialtiesFor("Gun Combat"));
            }
            if (all || roll == 4)
            {
                character.Skills.Add("Recon");
            }
            if (all || roll == 5)
            {
                character.Skills.AddRange(SpecialtiesFor("Melee"));
            }
            if (all || roll == 6)
            {
                character.Skills.AddRange(SpecialtiesFor("Heavy Weapons"));
            }
        }
 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;
     }
 }
Ejemplo n.º 18
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
            case 1:
                Injury(character, dice, true);
                return;

            case 2:
                character.AddHistory("Bankrupted by a rival. Gain the other trader as a Rival.");
                character.BenefitRolls = 0;
                return;

            case 3:
                character.AddHistory("A sudden war destroys your trade routes and contacts, forcing you to flee that region of space.");
                character.AddHistory("Gain rebels as Enemy");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Gun Combat"));
                    skillList.AddRange(SpecialtiesFor("Pilot"));
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 4:
                character.AddHistory("Your ship or starport is destroyed by criminals. Gain them as an Enemy.");
                return;

            case 5:
                character.AddHistory("Imperial trade restrictions force you out of business.");
                character.NextTermBenefits.EnlistmentDM.Add("Rogue", 100);
                return;

            case 6:
                character.AddHistory("A series of bad deals and decisions force you into bankruptcy. You salvage what you can.");
                character.BenefitRolls += 1;
                return;
            }
        }
Ejemplo n.º 19
0
        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;
            }
        }
Ejemplo n.º 21
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
            case 1:
                Injury(character, dice, true);
                return;

            case 2:
                character.AddHistory("Expose or are involved in a scandal of some sort.");
                return;

            case 3:
                character.AddHistory("Public opinion turns on you.");
                character.SocialStanding += -1;
                return;

            case 4:
                character.AddHistory("You are betrayed by a peer. One Ally or Contact becomes a Rival or Enemy");
                return;

            case 5:
                character.AddHistory("An investigation, tour, project or expedition goes wrong, stranding you far from home.");
                var skillList = new SkillTemplateCollection();
                skillList.Add("Survival");
                skillList.AddRange(SpecialtiesFor("Pilot"));
                skillList.Add("Persuade");
                skillList.Add("Streetwise");
                skillList.RemoveOverlap(character.Skills, 1);
                if (skillList.Count > 0)
                {
                    character.Skills.Add(dice.Choose(skillList), 1);
                }

                return;

            case 6:
                character.AddHistory("You are forced out because of censorship or controversy. What truth did you get too close to?");
                character.NextTermBenefits.QualificationDM += 2;
                return;
            }
        }
Ejemplo n.º 22
0
        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;
            }
        }
Ejemplo n.º 23
0
        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;
            }
        }
Ejemplo n.º 24
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
                case 1:
                    Injury(character, dice, true);
                    return;
                case 2:
                    character.AddHistory("A disaster leaves several injured, and others blame you, forcing you to leave your career. Gain a Rival.");
                    Injury(character, dice);
                    return;
                case 3:
                    character.AddHistory("A disaster or war strikes.");
                    if (!dice.RollHigh(character.Skills.BestSkillLevel("Stealth", "Deception"), 8))
                        Injury(character, dice);

                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("The planetary government interferes with your research for political or religious reasons. You continue working secretely.");
                        character.SocialStanding += -2;
                    }
                    else
                    {
                        character.AddHistory("The planetary government interferes with your research for political or religious reasons. You continue working openly and gain an Enemy.");
                    }
                    character.Skills.Increase(dice.Choose(SpecialtiesFor("Science")));
                    character.NextTermBenefits.MusterOut = false;
                    return;

                case 4:
                    character.AddHistory("An expedition or voyage goes wrong, leaving you stranded in the wilderness.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Survival");
                        skillList.Add("Athletics", "Dexterity");
                        skillList.Add("Athletics", "Endurance");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 5:
                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Your work is sabotaged by unknown parties. You may salvage what you can and give up.");
                        character.BenefitRolls += 1;
                    }
                    else
                    {
                        character.AddHistory("Your work is sabotaged by unknown parties. You start again from scratch.");
                        character.BenefitRolls = 0;
                        character.NextTermBenefits.MusterOut = false;
                    }
                    return;
                case 6:
                    character.AddHistory("A rival researcher blackens your name or steals your research. Gain a Rival.");
                    character.NextTermBenefits.MusterOut = false;
                    return;
            }
        }
Ejemplo n.º 25
0
        internal override void Run(Character character, Dice dice)
        {
            character.LongTermBenefits.MayEnrollInSchool = false;

            character.AddHistory($"Entered University at age {character.Age}");

            var skillChoices = new SkillTemplateCollection();
            skillChoices.Add("Admin");
            skillChoices.Add("Advocate");
            skillChoices.Add("Animals", "Training");
            skillChoices.Add("Animals", "Veterinary");
            skillChoices.AddRange(SpecialtiesFor("Art"));
            skillChoices.Add("Astrogation");
            skillChoices.AddRange(SpecialtiesFor("Electronics"));
            skillChoices.AddRange(SpecialtiesFor("Engineer"));
            skillChoices.AddRange(SpecialtiesFor("Language"));
            skillChoices.Add("Medic");
            skillChoices.Add("Navigation");
            skillChoices.AddRange(SpecialtiesFor("Profession"));
            skillChoices.AddRange(SpecialtiesFor("Science"));

            //Remove skills we already have at level 1
            skillChoices.RemoveOverlap(character.Skills, 1);

            var skillA = dice.Pick(skillChoices);
            character.Skills.Add(skillA, 1);

            //Remove skills we already have at level 0
            skillChoices.RemoveOverlap(character.Skills, 0);

            var skillB = dice.Pick(skillChoices);
            character.Skills.Add(skillB);

            character.Age += 4;
            character.Education += 1;
            character.EducationHistory = new EducationHistory();
            character.EducationHistory.Name = "University";

            Book.PreCareerEvents(character, dice, skillA.Name, skillB.Name);

            var graduation = dice.D(2, 6) + character.IntellectDM + character.CurrentTermBenefits.GraduationDM;
            if (graduation < 7)
            {
                character.AddHistory("Dropped out of university.");
                character.EducationHistory.Status = "Failed";
            }
            else
            {
                int bonus;
                if (graduation >= 11)
                {
                    character.EducationHistory.Status = "Honors";
                    character.AddHistory($"Graduated with honors at age {character.Age}.");
                    bonus = 2;
                }
                else
                {
                    character.EducationHistory.Status = "Graduated";
                    character.AddHistory($"Graduated at age {character.Age}.");
                    bonus = 1;
                }

                character.Education += 2;

                character.Skills.Increase(skillA, 1);
                character.Skills.Increase(skillB, 1);

                character.NextTermBenefits.FreeCommissionRoll = true;
                character.NextTermBenefits.CommissionDM = bonus;
                character.LongTermBenefits.EnlistmentDM.Add("Agent", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Army", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Corporate", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Journalist", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Marines", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Navy", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Scholar", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Scouts", bonus);
            }
        }
Ejemplo n.º 26
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
                case 1:
                    Injury(character, dice, true);
                    return;
                case 2:
                    character.AddHistory("Bankrupted by a rival. Gain the other trader as a Rival.");
                    character.BenefitRolls = 0;
                    return;
                case 3:
                    character.AddHistory("A sudden war destroys your trade routes and contacts, forcing you to flee that region of space.");
                    character.AddHistory("Gain rebels as Enemy");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Gun Combat"));
                        skillList.AddRange(SpecialtiesFor("Pilot"));
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;

                case 4:
                    character.AddHistory("Your ship or starport is destroyed by criminals. Gain them as an Enemy.");
                    return;
                case 5:
                    character.AddHistory("Imperial trade restrictions force you out of business.");
                    character.NextTermBenefits.EnlistmentDM.Add("Rogue", 100);
                    return;
                case 6:
                    character.AddHistory("A series of bad deals and decisions force you into bankruptcy. You salvage what you can.");
                    character.BenefitRolls += 1;
                    return;
            }
        }
Ejemplo n.º 27
0
 public void UnusualLifeEvent(Character character, Dice dice)
 {
     switch (dice.D(6))
     {
         case 1:
             character.AddHistory("Encounter a Psionic institute.");
             TestPsionic(character, dice);
             return;
         case 2:
             character.AddHistory("Spend time with an alien race. Gain a contact.");
             var skillList = new SkillTemplateCollection(SpecialtiesFor("Science"));
             skillList.RemoveOverlap(character.Skills, 1);
             if (skillList.Count > 0)
                 character.Skills.Add(dice.Choose(skillList), 1);
             return;
         case 3:
             character.AddHistory("Find an Alien Artifact.");
             return;
         case 4:
             character.AddHistory("Amnesia.");
             return;
         case 5:
             character.AddHistory("Contact with Government.");
             return;
         case 6:
             character.AddHistory("Find Ancient Technology.");
             return;
     }
 }
Ejemplo n.º 28
0
        public void PreCareerEvents(Character character, Dice dice, params string[] skills)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    character.AddHistory("Contacted by an underground psionic group");
                    character.LongTermBenefits.MayTestPsi = true;
                    return;
                case 3:
                    character.AddHistory("Suffered a deep tragedy.");
                    character.CurrentTermBenefits.GraduationDM = -100;
                    return;
                case 4:
                    character.AddHistory("A prank goes horribly wrong.");
                    var roll = dice.D(2, 6) + character.SocialStandingDM;

                    if (roll >= 8)
                        character.AddHistory("Gain a Rival.");
                    else if (roll > 2)
                        character.AddHistory("Gain an Enemy.");
                    else
                        character.NextTermBenefits.MustEnroll = "Prisoner";
                    return;
                case 5:
                    character.AddHistory("Spent the college years partying.");
                    character.Skills.Add("Carouse", 1);
                    return;
                case 6:
                    character.AddHistory($"Made lifelong friends. Gain {dice.D(3)} Allies.");
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    if (dice.RollHigh(character.SocialStandingDM, 8))
                    {
                        character.AddHistory("Become leader in social movement.");
                        character.AddHistory("Gain an Ally and an Enemy.");
                    }
                    else
                        character.AddHistory("Join a social movement.");
                    return;
                case 9:
                    {
                        var skillList = new SkillTemplateCollection(m_RandomSkills);
                        skillList.RemoveOverlap(character.Skills, 0);

                        if (skillList.Count > 0)
                        {
                            var skill = dice.Choose(skillList);
                            character.Skills.Add(skill);
                            character.AddHistory($"Study {skill} as a hobby.");
                        }
                    }
                    return;
                case 10:

                    if (dice.RollHigh(9))
                    {
                        var skill = dice.Choose(skills);
                        character.Skills.Increase(skill, 1);
                        character.AddHistory($"Expand the field of {skill}, but gain a Rival in your former tutor.");
                    }
                    return;
                case 11:
                    character.AddHistory("War breaks out, triggering a mandatory draft.");
                    if (dice.RollHigh(character.SocialStandingDM, 9))
                        character.AddHistory("Used social standing to avoid the draft.");
                    else
                    {
                        character.CurrentTermBenefits.GraduationDM -= 100;
                        if (dice.D(2) == 1)
                        {
                            character.AddHistory("Fled from the draft.");
                            character.NextTermBenefits.MustEnroll = "Drifter";
                        }
                        else
                        {
                            var roll2 = dice.D(6);
                            if (roll2 <= 3)
                                character.NextTermBenefits.MustEnroll = "Army";
                            else if (roll2 <= 5)
                                character.NextTermBenefits.MustEnroll = "Marine";
                            else
                                character.NextTermBenefits.MustEnroll = "Navy";
                        }
                    }
                    return;
                case 12:
                    character.AddHistory("Widely recognized.");
                    character.SocialStanding += 1;
                    return;
            }
        }
Ejemplo n.º 29
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("Trapped behind enemy lines.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Survival");
                    skillList.Add("Stealth");
                    skillList.Add("Deception");
                    skillList.Add("Streetwise");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 4:
                character.AddHistory("Assigned to the security staff of a space station.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Vacc Suit");
                    skillList.Add("Athletics", "Dexterity");
                    character.Skills.Increase(dice.Choose(skillList));
                }

                return;

            case 5:
                character.AddHistory($"Advanced training in a specialist field");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(RandomSkills);
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 6:
                character.AddHistory("Assigned to an assault on an enemy fortress.");
                if (dice.RollHigh(character.Skills.BestSkillLevel("Gun Combat", "Melee"), 8))
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Tactics", "Military");
                    skillList.Add("Leadership");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                else
                {
                    character.AddHistory("Injured");
                    switch (dice.D(3))
                    {
                    case 1:
                        character.Strength -= 1;
                        return;

                    case 2:
                        character.Dexterity -= 1;
                        return;

                    case 3:
                        character.Endurance -= 1;
                        return;
                    }
                }
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("On the front lines of a planetary assault and occupation.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Recon");
                    skillList.AddRange(SpecialtiesFor("Gun Combat"));
                    skillList.Add("Leadership");
                    skillList.Add("Electronics", "Comms");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 9:
                character.AddHistory("A mission goes disastrously wrong due to your commander’s error or incompetence, but you survive.");
                if (dice.D(2) == 1)
                {
                    character.AddHistory("Report commander and gain an Enemy.");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                }
                else
                {
                    character.AddHistory("Cover for the commander and gain an Ally.");
                }
                return;

            case 10:
                character.AddHistory("Assigned to a black ops mission.");
                character.CurrentTermBenefits.AdvancementDM += 2;

                return;

            case 11:
                character.AddHistory("Commanding officer takes an interest in your career.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Add("Tactics", "Military", 1);
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Display heroism in battle.");

                character.CurrentTermBenefits.AdvancementDM += 100;                         //also applies to commission rolls

                if (character.LastCareer.CommissionRank == 0)
                {
                    character.CurrentTermBenefits.FreeCommissionRoll = true;
                }

                return;
            }
        }
Ejemplo n.º 30
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                if (dice.D(2) == 1)
                {
                    character.AddHistory("Smuggle illegal items onto a planet.");
                    if (dice.RollHigh(character.Skills.BestSkillLevel("Deception", "Persuade"), 8))
                    {
                        character.Skills.Add("Streetwise", 1);
                        character.BenefitRolls += 1;
                    }
                }
                else
                {
                    character.AddHistory("Refuse to smuggle illegal items onto a planet. Gain an Enemy.");
                }
                return;

            case 4:
            {
                var skillList = new SkillTemplateCollection();
                skillList.AddRange(SpecialtiesFor("Profession"));
                skillList.AddRange(SpecialtiesFor("Electronics"));
                skillList.AddRange(SpecialtiesFor("Engineer"));
                skillList.AddRange(SpecialtiesFor("Animals"));
                skillList.AddRange(SpecialtiesFor("Science"));
                skillList.RemoveOverlap(character.Skills, 1);
                if (skillList.Count > 0)
                {
                    character.Skills.Add(dice.Choose(skillList), 1);
                }
            }

                return;

            case 5:
                if (dice.RollHigh(character.Skills.BestSkillLevel("Gambler", "Broker"), 8))
                {
                    character.AddHistory($"Risk your fortune on a possibility lucrative deal and win.");
                    character.BenefitRolls *= 2;
                }
                else
                {
                    character.BenefitRolls = 0;
                }
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Broker");
                    skillList.Add("Gambler");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                return;

            case 6:
                character.AddHistory("Make an unexpected connection outside your normal circles. Gain a Contact.");
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("Embroiled in legal trouble.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Advocate");
                    skillList.Add("Admin");
                    skillList.Add("Diplomat");
                    skillList.Add("Investigate");
                }
                if (dice.D(2, 6) == 2)
                {
                    character.NextTermBenefits.MusterOut  = true;
                    character.NextTermBenefits.MustEnroll = "Prisoner";
                }
                return;

            case 9:
                character.AddHistory("Given advanced training in a specialist field");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    dice.Choose(character.Skills).Level += 1;
                }
                return;

            case 10:
                character.AddHistory("A good deal ensures you are living the high life for a few years.");
                character.BenefitRollDMs.Add(1);
                return;

            case 11:
                character.AddHistory("Befriend a useful ally in one sphere. Gain an Ally.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Add("Carouse", 1);
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Your business or ship thrives.");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 31
0
        internal void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                return;

            case 3:
                if (dice.RollHigh(character.Skills.BestSkillLevel("Stealth", "Deception"), 10))
                {
                    character.AddHistory("Escaped from prison.");
                    character.NextTermBenefits.MusterOut = true;
                }
                else
                {
                    character.AddHistory("Failed to escaped from prison.");
                    character.Parole += 2;
                }
                return;

            case 4:
                character.AddHistory("Assigned to difficult or backbreaking labour.");
                if (dice.RollHigh(character.EnduranceDM, 8))
                {
                    character.Parole += -1;
                    var skills = new SkillTemplateCollection();
                    skills.AddRange(SpecialtiesFor("Athletics"));
                    skills.Add("Mechanic");
                    skills.Add("Melee", "Unarmed");
                    skills.RemoveOverlap(character.Skills, 1);
                    if (skills.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skills), 1);
                    }
                }
                else
                {
                    character.Parole += 1;
                }
                return;

            case 5:
                if (dice.RollHigh(character.Skills.BestSkillLevel("Persuade", "Melee"), 8))
                {
                    character.AddHistory("Joined a prison gang");
                    character.LongTermBenefits.PrisonSurvivalDM += 1;
                    character.Parole += 1;

                    var skills = new SkillTemplateCollection();
                    skills.Add("Deception");
                    skills.Add("Persuade");
                    skills.Add("Stealth");
                    skills.Add("Melee", "Unarmed");
                    skills.RemoveOverlap(character.Skills, 1);
                    if (skills.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skills), 1);
                    }
                }
                else
                {
                    character.AddHistory("Offended a prison gang you tried to join. Gain an Enemy.");
                }
                return;

            case 6:
                character.AddHistory("Vocational Training.");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    character.Skills.Increase(dice.Choose(RandomSkills), 1);
                }
                return;

            case 7:
                switch (dice.D(6))
                {
                case 1:
                    character.AddHistory("A riot engulfs the prison.");
                    if (dice.D(6) <= 2)
                    {
                        Injury(character, dice);
                    }
                    else
                    {
                        character.AddHistory("Loot the guards/other prisoners.");
                        character.BenefitRolls += 1;
                    }
                    return;

                case 2:
                    character.AddHistory("Make friends with another inmate; gain them as a Contact.");
                    return;

                case 3:
                    character.AddHistory("You gain a new Rival among the inmates or guards.");
                    return;

                case 4:
                    var oldParole = character.Parole;
                    character.Parole = dice.D(6) + 4;

                    if (oldParole > character.Parole)
                    {
                        character.AddHistory("You are moved to a lower security prison.");
                    }
                    else if (oldParole == character.Parole)
                    {
                        character.AddHistory("You are moved to a different prison.");
                    }
                    else
                    {
                        character.AddHistory("You are moved to a higher security prison.");
                    }
                    return;

                case 5:
                    character.AddHistory("Good Behaviour.");
                    character.Parole += -2;
                    return;

                case 6:
                    character.AddHistory("Attacked by another prisoner.");
                    if (!dice.RollHigh(character.Skills.GetLevel("Melee", "Unarmed"), 8))
                    {
                        Injury(character, dice);
                    }
                    return;
                }
                return;

            case 8:
                character.AddHistory("Parole hearing.");
                character.Parole += -1;
                return;

            case 9:
                character.AddHistory("Hire a new lawyer.");
                var advocate = dice.D(6) - 2;
                if (dice.RollHigh(advocate, 8))
                {
                    character.Parole -= dice.D(6);
                }
                return;

            case 10:
                character.AddHistory("Special Duty.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Admin");
                    skillList.Add("Advocate");
                    skillList.Add("Electronics", "Computers");
                    skillList.Add("Steward");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                return;

            case 11:
                character.AddHistory("The warden takes an interest in your case.");
                character.Parole += -2;
                return;

            case 12:
                if (dice.RollHigh(8))
                {
                    character.AddHistory("Saved a guard or prison officer. Gain an Ally.");
                    character.Parole += -2;
                }
                else
                {
                    character.AddHistory("Attmped but failed to save a guard or prison officer.");
                    Injury(character, dice, false);
                }
                return;
            }
        }
Ejemplo n.º 32
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Refused to perform research that goes against your conscience.");
                    }
                    else
                    {
                        character.AddHistory($"Agreed to perform research that goes against your conscience. Gain {dice.D(3)} Enemies.");
                        character.BenefitRolls += 1;

                        var skillList = new SkillTemplateCollection(SpecialtiesFor("Science"));
                        character.Skills.Increase(dice.Pick(skillList));
                        character.Skills.Increase(dice.Pick(skillList)); //pick 2

                    }
                    return;
                case 4:
                    character.AddHistory("Assigned to work on a secret project for a patron or organisation.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Medic");
                        skillList.AddRange(SpecialtiesFor("Science"));
                        skillList.AddRange(SpecialtiesFor("Engineer"));
                        skillList.AddRange(SpecialtiesFor("Electronics"));
                        skillList.Add("Investigate");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 5:
                    character.AddHistory($"Win a prestigious prize for your work.");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 6:
                    character.AddHistory("Advanced training in a specialist field.");
                    if (dice.RollHigh(character.EducationDM, 8))
                    {
                        var skillList = new SkillTemplateCollection(RandomSkills);
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    {
                        if (dice.D(2) == 1)
                        {
                            if (dice.RollHigh(character.Skills.BestSkillLevel("Deception", "Admin"), 8))
                            {
                                character.AddHistory("Cheated in some fashion, advancing your career and research by stealing another’s work, using an alien device, taking a shortcut and so forth.");
                                character.BenefitRollDMs.Add(2);
                                dice.Choose(character.Skills).Level += 1;
                            }
                            else
                            {
                                character.AddHistory("Caught cheating in some fashion, advancing your career and research by stealing another’s work, using an alien device, taking a shortcut and so forth.");
                                character.BenefitRolls += -1;
                                Mishap(character, dice);
                            }
                            character.AddHistory("Gain an Enemy");
                        }
                        else
                        {
                            character.AddHistory("Refuse to join a cheat in some fashion.");
                        }

                    }
                    return;
                case 9:
                    character.AddHistory("Make a breakthrough in your field.");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                    return;
                case 10:
                    character.AddHistory("Entangled in a bureaucratic or legal morass that distracts you from your work.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Admin");
                        skillList.Add("Advocate");
                        skillList.Add("Persuade");
                        skillList.Add("Diplomat");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 11:
                    character.AddHistory("Work for an eccentric but brilliant mentor, who becomes an Ally.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Increase(dice.Choose(SpecialtiesFor("Science")));
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Work leads to a considerable breakthrough.");
                    character.CurrentTermBenefits.AdvancementDM += 100;
                    return;
            }
        }
Ejemplo n.º 33
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                if (dice.D(2) == 1)
                {
                    character.AddHistory("Refused a challenge to a duel for your honour and standing.");
                    character.SocialStanding += -1;
                }
                else
                {
                    if (dice.RollHigh(character.Skills.GetLevel("Melee", "Blade"), 8))
                    {
                        character.SocialStanding += 1;
                    }
                    else
                    {
                        character.SocialStanding += -1;
                        Injury(character, dice);
                    }

                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Melee", "Blade)");
                    skillList.Add("Leadership");
                    skillList.AddRange(SpecialtiesFor("Tactics"));
                    skillList.Add("Deception");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                return;

            case 4:
                character.AddHistory("time as a ruler or playboy gives you a wide range of experiences.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Animals", "Handling");
                    skillList.AddRange(SpecialtiesFor("Art"));
                    skillList.Add("Carouse");
                    skillList.Add("Streetwise");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 5:
                character.AddHistory($"Inherit a gift from a rich relative.");
                character.BenefitRollDMs.Add(1);
                return;

            case 6:
                character.AddHistory("Become deeply involved in politics on your world of residence, becoming a player in the political intrigues of government. Gain a Rival.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Advocate");
                    skillList.Add("Admin");
                    skillList.Add("Diplomacy");
                    skillList.Add("Persuade");
                    character.Skills.Increase(dice.Choose(skillList));
                }

                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
            {
                if (dice.D(2) == 1)
                {
                    if (dice.RollHigh(character.Skills.BestSkillLevel("Deception", "Persuade"), 8))
                    {
                        character.AddHistory("Join a successful conspiracy of nobles.");
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Deception");
                        skillList.Add("Persuade");
                        skillList.AddRange(SpecialtiesFor("Tactics"));
                        skillList.Add("Carouse");
                        character.Skills.Increase(dice.Choose(skillList));
                    }
                    else
                    {
                        character.AddHistory("Join a conspiracy of nobles that were caught.");
                        Mishap(character, dice);
                    }
                }
                else
                {
                    character.AddHistory("Refuse to join a conspiracy of nobles. Gain an Enemy.");
                }
            }
                return;

            case 9:
                character.AddHistory("Your reign is acclaimed by all as being fair and wise – or in the case of a dilettante, you sponge off your family’s wealth a while longer. Gain either a jealous relative or an unhappy subject as an Enemy.");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 10:
                character.AddHistory("You manipulate and charm your way through high society. Gain a Rival and an Ally.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Carouse");
                    skillList.Add("Diplomat");
                    skillList.Add("Persuade");
                    skillList.Add("Steward");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                return;

            case 11:
                character.AddHistory("You make an alliance with a powerful and charismatic noble, who becomes an Ally.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Increase("Leadership");
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Your efforts do not go unnoticed by the Imperium.");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 34
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:

                    if (dice.RollHigh(character.Skills.BestSkillLevel("Investigate", "Art"), 8))
                    {
                        character.AddHistory("Invited to take part in a controversial event or exhibition that improves your social standing.");
                        character.SocialStanding += 1;
                    }
                    else
                    {
                        character.AddHistory("Invited to take part in a controversial event or exhibition that injures your social standing.");
                        character.SocialStanding += -1;
                    }
                    return;
                case 4:
                    character.AddHistory("Join homeworld’s celebrity circles");

                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Carouse");
                        skillList.Add("Persuade");
                        skillList.Add("Steward");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                        else
                            character.AddHistory("Gain a contact");
                    }

                    return;
                case 5:
                    character.AddHistory($"Works is especially well received and popular, making you a minor celebrity");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 6:
                    character.AddHistory($"Gain a patron in the arts. Gain an Ally");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:

                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Refused to criticise a questionable political leader on your homeworld.");
                    }
                    else
                    {
                        character.AddHistory("Criticised a questionable political leader on your homeworld, causing his downfall. Gain an Enemy");
                        dice.Choose(character.Skills).Level += 1;
                        if (!dice.RollHigh(character.Skills.BestSkillLevel("Art", "Persuade"), 8))
                            Mishap(character, dice);
                    }
                    return;
                case 9:
                    character.AddHistory($"Go on a tour of the sector, visiting several worlds. Gain {dice.D(3)} Contacts.");
                    return;
                case 10:
                    character.AddHistory("One of your pieces of art is stolen, and the investigation brings you into the criminal underworld.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Streetwise");
                        skillList.Add("Investigate");
                        skillList.Add("Recon");
                        skillList.Add("Stealth");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 11:
                    //character.AddHistory("As an artist, you lead a strange and charmed life.");
                    UnusualLifeEvent(character, dice);
                    return;
                case 12:
                    character.AddHistory("Win a prestigious prize.");
                    character.CurrentTermBenefits.AdvancementDM += 100;
                    return;
            }
        }
Ejemplo n.º 35
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
                case 1:
                    Injury(character, dice, true);
                    return;
                case 2:
                    character.AddHistory("Arrested");
                    character.NextTermBenefits.MustEnroll = "Prisoner";
                    return;
                case 3:
                    character.AddHistory("Betrayed by a friend. One of your Contacts or Allies betrays you, ending your career. That Contact or Ally becomes a Rival or Enemy.");
                    if (dice.D(2, 6) == 2)
                    {
                        character.NextTermBenefits.MustEnroll = "Prisoner";
                    }
                    return;

                case 4:
                    character.AddHistory("A job goes wrong, forcing you to flee off-planet. ");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Deception");
                        skillList.Add("Pilot", "Small Craft");
                        skillList.Add("Pilot", "Spacecraft");
                        skillList.Add("Athletics", "Dexterity");
                        skillList.AddRange(SpecialtiesFor("Gunner"));
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    return;
                case 5:
                    character.AddHistory("A police detective or rival criminal forces you to flee and vows to hunt you down. Gain an Enemy.");
                    return;
                case 6:
                    Injury(character, dice, false);
                    return;
            }
        }
Ejemplo n.º 36
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    character.AddHistory("Arrested and charged.");
                    switch (dice.D(2))
                    {
                        case 1:
                            if (dice.RollHigh(character.Skills.GetLevel("Advocate"), 8))
                            {
                                character.AddHistory("Successfully defended self.");
                            }
                            else
                            {
                                character.AddHistory("Failed to defend self. Gain an Enemy and go to prison.");
                                character.NextTermBenefits.MustEnroll = "Prisoner";
                            }
                            return;
                        case 2:
                            character.AddHistory("Hired a lawyer to beat the charges.");
                            character.BenefitRolls += -1;
                            return;
                    }
                    return;
                case 4:
                    character.AddHistory("Involved in the planning of an impressive heist.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Electronics"));
                        skillList.Add("Mechanic");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    return;
                case 5:
                    character.AddHistory("Crime pays off. Gain victim as Enemy.");
                    character.BenefitRollDMs.Add(2);
                    return;
                case 6:
                    switch (dice.D(2))
                    {
                        case 1:
                            character.AddHistory("Backstab a fellow rogue for personal gain.");
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                        case 2:
                            character.AddHistory("Refuse to backstab a fellow rogue for personal gain. Gain an Ally");
                            return;
                    }
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    character.AddHistory("You spend months in the dangerous criminal underworld.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Streetwise");
                        skillList.Add("Stealth");
                        skillList.AddRange(SpecialtiesFor("Melee"));
                        skillList.AddRange(SpecialtiesFor("Gun Combat"));
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 9:
                    character.AddHistory("Involved in a feud with a rival criminal organization.");
                    if (dice.RollHigh(character.Skills.BestSkillLevel("Stealth", "Gun Combat"), 8))
                        character.BenefitRolls += 1;
                    else
                        Injury(character, dice);
                    return;
                case 10:
                    character.AddHistory("Involved in a gambling ring. ");
                    character.Skills.Add("Gambler", 1);
                    if (character.BenefitRolls > 0)
                    {
                        if (dice.RollHigh(character.Skills.GetLevel("Gambler"), 8))
                            character.BenefitRolls = (int)Math.Ceiling(1.5 * character.BenefitRolls);
                        else
                            character.BenefitRolls = 0;
                    }
                    return;
                case 11:
                    character.AddHistory("A crime lord considers you his protégé.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Add("Tactics", "Military", 1);
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("You commit a legendary crime.");
                    character.CurrentTermBenefits.AdvancementDM += 100;
                    return;
            }
        }
Ejemplo n.º 37
0
        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;
            }
        }
Ejemplo n.º 38
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("Psionic abilities make you uncomfortable to be around. One contact or ally becomes a rival.");
                return;

            case 4:
                character.AddHistory("Spent time mastering mind and body.");
                {
                    var skills = new SkillTemplateCollection();
                    skills.Add("Stealth");
                    skills.Add("Survival");
                    skills.AddRange(SpecialtiesFor("Athletics"));
                    skills.AddRange(SpecialtiesFor("Art"));
                    skills.RemoveOverlap(character.Skills, 1);
                    if (skills.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skills), 1);
                    }
                }
                return;

            case 5:
                if (dice.D(2) == 1)
                {
                    character.AddHistory("Refuse to misuse powers for personal gain.");
                    return;
                }
                else
                {
                    if (dice.RollHigh(character.PsiDM, 8))
                    {
                        character.AddHistory("Use powers for personal gain.");
                        if (dice.D(2) == 1)
                        {
                            character.BenefitRolls += 1;
                        }
                        else
                        {
                            character.SocialStanding += 1;
                        }
                    }
                    else
                    {
                        character.AddHistory("Attempt to use powers for personal gain, but it backfires.");
                        character.SocialStanding -= 1;
                    }
                    return;
                }

            case 6:
                character.AddHistory("Gain a contact outside of normal circles.");
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("Psionic strength increases.");
                character.Psi += 1;
                return;

            case 9:
                character.AddHistory("Advanced training in a specialist field.");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    var skills = new SkillTemplateCollection(Book.RandomSkills);
                    skills.RemoveOverlap(character.Skills, 1);
                    if (skills.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skills), 1);
                    }
                }
                return;

            case 10:
                character.AddHistory("Pick up potentially useful information using your psychic powers");
                character.BenefitRollDMs.Add(1);
                return;

            case 11:
                character.AddHistory("Gain a mentor");
                character.CurrentTermBenefits.AdvancementDM += 4;
                return;

            case 12:
                character.AddHistory("Achieve a new level of discipline in your powers");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 39
0
 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;
     }
 }
Ejemplo n.º 40
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    character.AddHistory("You join a gambling circle on board.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Gambler");
                        skillList.Add("Deception");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);

                        if (dice.RollHigh(character.Skills.GetLevel("Gambler"), 8))
                            character.BenefitRolls += 1;
                        else
                            character.BenefitRolls += -1;
                    }

                    return;
                case 4:
                    character.AddHistory("Special assignment or duty on board ship.");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 5:
                    character.AddHistory($"Advanced training in a specialist field");
                    if (dice.RollHigh(character.EducationDM, 8))
                        dice.Choose(character.Skills).Level += 1;
                    return;
                case 6:
                    character.AddHistory("Vessel participates in a notable military engagement.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Electronics"));
                        skillList.AddRange(SpecialtiesFor("Engineer"));
                        skillList.AddRange(SpecialtiesFor("Gunner"));
                        skillList.AddRange(SpecialtiesFor("Pilot"));
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    character.AddHistory("Vessel participates in a diplomatic mission.");
                    if (dice.D(2) == 1)
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Recon");
                        skillList.Add("Diplomat");
                        skillList.Add("Steward");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    else
                        character.AddHistory("Gain a contact.");

                    return;
                case 9:
                    character.AddHistory("You foil an attempted crime on board, such as mutiny, sabotage, smuggling or conspiracy. Gain an Enemy.");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                    return;
                case 10:
                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Abuse your position for profit");
                        character.BenefitRolls += 1;
                    }
                    else
                    {
                        character.AddHistory("Refuse to abuse your position for profit");
                        character.CurrentTermBenefits.AdvancementDM += 2;
                    }
                    return;
                case 11:
                    character.AddHistory("Commanding officer takes an interest in your career.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Add("Tactics", "Military", 1);
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Display heroism in battle, saving the whole ship.");

                    character.CurrentTermBenefits.AdvancementDM += 100; //also applies to commission rolls

                    if (character.LastCareer.CommissionRank == 0)
                        character.CurrentTermBenefits.FreeCommissionRoll = true;

                    return;
            }
        }
Ejemplo n.º 41
0
        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;
                }
            }
        }
Ejemplo n.º 42
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("Political upheaval strikes your homeworld, and you are caught up in the revolution.");

                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Advocate");
                    skillList.Add("Persuade");
                    skillList.Add("Explosives");
                    skillList.Add("Streetwise");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }

                if (dice.RollHigh(8))
                {
                    character.CurrentTermBenefits.AdvancementDM += 2;
                }
                else
                {
                    character.NextTermBenefits.SurvivalDM += -2;
                }
                return;

            case 4:
                character.AddHistory("Spent time maintaining and using heavy vehicles.");
                var skills = new SkillTemplateCollection();
                skills.Add("Mechanic");
                skills.AddRange(SpecialtiesFor("Drive"));
                skills.AddRange(SpecialtiesFor("Electronics"));
                skills.AddRange(SpecialtiesFor("Flyer"));
                skills.AddRange(SpecialtiesFor("Engineer"));
                character.Skills.Increase(dice.Choose(skills));
                return;

            case 5:
                character.AddHistory("Your business expands, your corporation grows, or the colony thrives.");
                character.BenefitRollDMs.Add(1);
                return;

            case 6:
                character.AddHistory("Advanced training in a specialist field.");
                if (dice.RollHigh(character.EducationDM, 10))
                {
                    var skillList = new SkillTemplateCollection(RandomSkills);
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("You learn something you should not have – a corporate secret, a political scandal – which you can profit from illegally.");
                character.BenefitRollDMs.Add(1);
                switch (dice.D(3))
                {
                case 1:
                    character.Skills.Add("Streetwise", 1);
                    return;

                case 2:
                    character.Skills.Add("Deception", 1);
                    return;

                case 3:
                    character.AddHistory("Gain a criminal contact.");
                    return;
                }
                return;

            case 9:
                character.AddHistory("You are rewarded for your diligence or cunning.");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 10:
                character.AddHistory("You gain experience in a technical field as a computer operator or surveyor.");

                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Electronics"));
                    skillList.AddRange(SpecialtiesFor("Engineer"));
                    character.Skills.Increase(dice.Choose(skillList));
                }
                return;

            case 11:
                character.AddHistory("You befriend a superior in the corporation or the colony.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Add("Diplomat", 1);
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("You rise to a position of power in your colony or corporation.");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 43
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    character.AddHistory("Assigned to a planet with a hostile or wild environment.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Vacc Suit");
                        skillList.AddRange(SpecialtiesFor("Engineer"));
                        skillList.Add("Animals", "Handling");
                        skillList.Add("Animals", "Training");
                        skillList.Add("Recon");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 4:
                    character.AddHistory("Assigned to an urbanised planet torn by war.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Stealth");
                        skillList.Add("Streetwise");
                        skillList.Add("Persuade");
                        skillList.Add("Recon");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    return;
                case 5:
                    character.AddHistory($"Given a special assignment or duty in your unit.");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 6:
                    character.AddHistory("Thrown into a brutal ground war");
                    if (dice.RollHigh(character.EducationDM, 8))
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Gun Combat"));
                        skillList.Add("Leadership");
                        character.Skills.Increase(dice.Choose(skillList));
                    }
                    else
                    {
                        Injury(character, dice);
                    }
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    character.AddHistory("Advanced training in a specialist field");
                    if (dice.RollHigh(character.EducationDM, 8))
                        dice.Choose(character.Skills).Level += 1;
                    return;
                case 9:
                    character.AddHistory("Surrounded and outnumbered by the enemy, you hold out until relief arrives. ");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                    return;
                case 10:
                    character.AddHistory("Assigned to a peacekeeping role.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Admin");
                        skillList.Add("Admin");
                        skillList.Add("Deception");
                        skillList.Add("Recon");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 11:
                    character.AddHistory("Commanding officer takes an interest in your career.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Add("Tactics", "Military", 1);
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Display heroism in battle.");

                    character.CurrentTermBenefits.AdvancementDM += 100; //also applies to commission rolls

                    if (character.LastCareer.CommissionRank == 0)
                        character.CurrentTermBenefits.FreeCommissionRoll = true;

                    return;
            }
        }
Ejemplo n.º 44
0
        internal override void Run(Character character, Dice dice)
        {
            character.LongTermBenefits.MayEnrollInSchool = false;

            character.AddHistory($"Entered University at age {character.Age}");

            var skillChoices = new SkillTemplateCollection();

            skillChoices.Add("Admin");
            skillChoices.Add("Advocate");
            skillChoices.Add("Animals", "Training");
            skillChoices.Add("Animals", "Veterinary");
            skillChoices.AddRange(SpecialtiesFor("Art"));
            skillChoices.Add("Astrogation");
            skillChoices.AddRange(SpecialtiesFor("Electronics"));
            skillChoices.AddRange(SpecialtiesFor("Engineer"));
            skillChoices.AddRange(SpecialtiesFor("Language"));
            skillChoices.Add("Medic");
            skillChoices.Add("Navigation");
            skillChoices.AddRange(SpecialtiesFor("Profession"));
            skillChoices.AddRange(SpecialtiesFor("Science"));


            //Remove skills we already have at level 1
            skillChoices.RemoveOverlap(character.Skills, 1);

            var skillA = dice.Pick(skillChoices);

            character.Skills.Add(skillA, 1);


            //Remove skills we already have at level 0
            skillChoices.RemoveOverlap(character.Skills, 0);

            var skillB = dice.Pick(skillChoices);

            character.Skills.Add(skillB);


            character.Age                  += 4;
            character.Education            += 1;
            character.EducationHistory      = new EducationHistory();
            character.EducationHistory.Name = "University";


            Book.PreCareerEvents(character, dice, skillA.Name, skillB.Name);

            var graduation = dice.D(2, 6) + character.IntellectDM + character.CurrentTermBenefits.GraduationDM;

            if (graduation < 7)
            {
                character.AddHistory("Dropped out of university.");
                character.EducationHistory.Status = "Failed";
            }
            else
            {
                int bonus;
                if (graduation >= 11)
                {
                    character.EducationHistory.Status = "Honors";
                    character.AddHistory($"Graduated with honors at age {character.Age}.");
                    bonus = 2;
                }
                else
                {
                    character.EducationHistory.Status = "Graduated";
                    character.AddHistory($"Graduated at age {character.Age}.");
                    bonus = 1;
                }

                character.Education += 2;

                character.Skills.Increase(skillA, 1);
                character.Skills.Increase(skillB, 1);

                character.NextTermBenefits.FreeCommissionRoll = true;
                character.NextTermBenefits.CommissionDM       = bonus;
                character.LongTermBenefits.EnlistmentDM.Add("Agent", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Army", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Corporate", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Journalist", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Marines", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Navy", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Scholar", bonus);
                character.LongTermBenefits.EnlistmentDM.Add("Scouts", bonus);
            }
        }
Ejemplo n.º 45
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("You join a gambling circle on board.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Gambler");
                    skillList.Add("Deception");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    if (dice.RollHigh(character.Skills.GetLevel("Gambler"), 8))
                    {
                        character.BenefitRolls += 1;
                    }
                    else
                    {
                        character.BenefitRolls += -1;
                    }
                }

                return;

            case 4:
                character.AddHistory("Special assignment or duty on board ship.");
                character.BenefitRollDMs.Add(1);
                return;

            case 5:
                character.AddHistory($"Advanced training in a specialist field");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    dice.Choose(character.Skills).Level += 1;
                }
                return;

            case 6:
                character.AddHistory("Vessel participates in a notable military engagement.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Electronics"));
                    skillList.AddRange(SpecialtiesFor("Engineer"));
                    skillList.AddRange(SpecialtiesFor("Gunner"));
                    skillList.AddRange(SpecialtiesFor("Pilot"));
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("Vessel participates in a diplomatic mission.");
                if (dice.D(2) == 1)
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Recon");
                    skillList.Add("Diplomat");
                    skillList.Add("Steward");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                else
                {
                    character.AddHistory("Gain a contact.");
                }

                return;

            case 9:
                character.AddHistory("You foil an attempted crime on board, such as mutiny, sabotage, smuggling or conspiracy. Gain an Enemy.");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 10:
                if (dice.D(2) == 1)
                {
                    character.AddHistory("Abuse your position for profit");
                    character.BenefitRolls += 1;
                }
                else
                {
                    character.AddHistory("Refuse to abuse your position for profit");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                }
                return;

            case 11:
                character.AddHistory("Commanding officer takes an interest in your career.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Add("Tactics", "Military", 1);
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Display heroism in battle, saving the whole ship.");

                character.CurrentTermBenefits.AdvancementDM += 100;     //also applies to commission rolls

                if (character.LastCareer.CommissionRank == 0)
                {
                    character.CurrentTermBenefits.FreeCommissionRoll = true;
                }

                return;
            }
        }
Ejemplo n.º 46
0
 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;
         }
     }
 }
Ejemplo n.º 47
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Smuggle illegal items onto a planet.");
                        if (dice.RollHigh(character.Skills.BestSkillLevel("Deception", "Persuade"), 8))
                        {
                            character.Skills.Add("Streetwise", 1);
                            character.BenefitRolls += 1;
                        }
                    }
                    else
                        character.AddHistory("Refuse to smuggle illegal items onto a planet. Gain an Enemy.");
                    return;
                case 4:
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Profession"));
                        skillList.AddRange(SpecialtiesFor("Electronics"));
                        skillList.AddRange(SpecialtiesFor("Engineer"));
                        skillList.AddRange(SpecialtiesFor("Animals"));
                        skillList.AddRange(SpecialtiesFor("Science"));
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }

                    return;
                case 5:
                    if (dice.RollHigh(character.Skills.BestSkillLevel("Gambler", "Broker"), 8))
                    {
                        character.AddHistory($"Risk your fortune on a possibility lucrative deal and win.");
                        character.BenefitRolls *= 2;
                    }
                    else
                    {
                        character.BenefitRolls = 0;
                    }
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Broker");
                        skillList.Add("Gambler");
                        character.Skills.Increase(dice.Choose(skillList));
                    }
                    return;
                case 6:
                    character.AddHistory("Make an unexpected connection outside your normal circles. Gain a Contact.");
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    character.AddHistory("Embroiled in legal trouble.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Advocate");
                        skillList.Add("Admin");
                        skillList.Add("Diplomat");
                        skillList.Add("Investigate");
                    }
                    if (dice.D(2, 6) == 2)
                    {
                        character.NextTermBenefits.MusterOut = true;
                        character.NextTermBenefits.MustEnroll = "Prisoner";
                    }
                    return;
                case 9:
                    character.AddHistory("Given advanced training in a specialist field");
                    if (dice.RollHigh(character.EducationDM, 8))
                        dice.Choose(character.Skills).Level += 1;
                    return;
                case 10:
                    character.AddHistory("A good deal ensures you are living the high life for a few years.");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 11:
                    character.AddHistory("Befriend a useful ally in one sphere. Gain an Ally.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Add("Carouse", 1);
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Your business or ship thrives.");
                    character.CurrentTermBenefits.AdvancementDM += 100;
                    return;
            }
        }
Ejemplo n.º 48
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    character.AddHistory("Trapped behind enemy lines.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Survival");
                        skillList.Add("Stealth");
                        skillList.Add("Deception");
                        skillList.Add("Streetwise");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 4:
                    character.AddHistory("Assigned to the security staff of a space station.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Vacc Suit");
                        skillList.Add("Athletics", "Dexterity");
                        character.Skills.Increase(dice.Choose(skillList));
                    }

                    return;
                case 5:
                    character.AddHistory($"Advanced training in a specialist field");
                    if (dice.RollHigh(character.EducationDM, 8))
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(RandomSkills);
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 6:
                    character.AddHistory("Assigned to an assault on an enemy fortress.");
                    if (dice.RollHigh(character.Skills.BestSkillLevel("Gun Combat", "Melee"), 8))
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Tactics", "Military");
                        skillList.Add("Leadership");
                        character.Skills.Increase(dice.Choose(skillList));
                    }
                    else
                    {
                        character.AddHistory("Injured");
                        switch (dice.D(3))
                        {
                            case 1:
                                character.Strength -= 1;
                                return;
                            case 2:
                                character.Dexterity -= 1;
                                return;
                            case 3:
                                character.Endurance -= 1;
                                return;
                        }
                    }
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    character.AddHistory("On the front lines of a planetary assault and occupation.");
                    {

                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Recon");
                        skillList.AddRange(SpecialtiesFor("Gun Combat"));
                        skillList.Add("Leadership");
                        skillList.Add("Electronics", "Comms");
                        skillList.RemoveOverlap(character.Skills, 1);
                        if (skillList.Count > 0)
                            character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    return;
                case 9:
                    character.AddHistory("A mission goes disastrously wrong due to your commander’s error or incompetence, but you survive.");
                    if (dice.D(2) == 1)
                    {
                        character.AddHistory("Report commander and gain an Enemy.");
                        character.CurrentTermBenefits.AdvancementDM += 2;
                    }
                    else
                    {
                        character.AddHistory("Cover for the commander and gain an Ally.");
                    }
                    return;
                case 10:
                    character.AddHistory("Assigned to a black ops mission.");
                    character.CurrentTermBenefits.AdvancementDM += 2;

                    return;
                case 11:
                    character.AddHistory("Commanding officer takes an interest in your career.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Add("Tactics", "Military", 1);
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Display heroism in battle.");

                    character.CurrentTermBenefits.AdvancementDM += 100; //also applies to commission rolls

                    if (character.LastCareer.CommissionRank == 0)
                        character.CurrentTermBenefits.FreeCommissionRoll = true;

                    return;
            }
        }
Ejemplo n.º 49
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("An investigation takes on a dangerous turn.");

                if (dice.RollHigh(character.Skills.BestSkillLevel("Investigate", "Streetwise"), 8))
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Deception");
                    skillList.Add("Jack-of-All-Trades");
                    skillList.Add("Persuade");
                    skillList.Add("Tactics");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                else
                {
                    Mishap(character, dice);
                }
                return;

            case 4:
                character.AddHistory("Rewarded for a successful mission.");
                character.BenefitRollDMs.Add(1);
                return;

            case 5:
                character.AddHistory($"Established a network of contacts. Gain {dice.D(3)} contacts.");
                return;

            case 6:
                character.AddHistory("Advanced training in a specialist field.");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    dice.Choose(character.Skills).Level += 1;
                }
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
            {
                character.AddHistory("Go undercover to investigate an enemy.");

                var career = dice.Choose(m_Careers);

                if (dice.RollHigh(character.Skills.GetLevel("Deception"), 8))
                {
                    career.Event(character, dice);
                    career.AssignmentSkills(character, dice);
                }
                else
                {
                    career.Mishap(character, dice);
                }
            }
                return;

            case 9:
                character.AddHistory("You go above and beyond the call of duty.");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 10:
                character.AddHistory("Given specialist training in vehicles.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Drive"));
                    skillList.AddRange(SpecialtiesFor("Flyer"));
                    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 11:
                character.AddHistory("Befriended by a senior agent.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Increase("Investigate");
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Uncover a major conspiracy against your employers.");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 50
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:
                character.AddHistory("Assigned to a planet with a hostile or wild environment.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Vacc Suit");
                    skillList.AddRange(SpecialtiesFor("Engineer"));
                    skillList.Add("Animals", "Handling");
                    skillList.Add("Animals", "Training");
                    skillList.Add("Recon");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 4:
                character.AddHistory("Assigned to an urbanised planet torn by war.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Stealth");
                    skillList.Add("Streetwise");
                    skillList.Add("Persuade");
                    skillList.Add("Recon");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }

                return;

            case 5:
                character.AddHistory($"Given a special assignment or duty in your unit.");
                character.BenefitRollDMs.Add(1);
                return;

            case 6:
                character.AddHistory("Thrown into a brutal ground war");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.AddRange(SpecialtiesFor("Gun Combat"));
                    skillList.Add("Leadership");
                    character.Skills.Increase(dice.Choose(skillList));
                }
                else
                {
                    Injury(character, dice);
                }
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:
                character.AddHistory("Advanced training in a specialist field");
                if (dice.RollHigh(character.EducationDM, 8))
                {
                    dice.Choose(character.Skills).Level += 1;
                }
                return;

            case 9:
                character.AddHistory("Surrounded and outnumbered by the enemy, you hold out until relief arrives. ");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 10:
                character.AddHistory("Assigned to a peacekeeping role.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Admin");
                    skillList.Add("Admin");
                    skillList.Add("Deception");
                    skillList.Add("Recon");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 11:
                character.AddHistory("Commanding officer takes an interest in your career.");
                switch (dice.D(2))
                {
                case 1:
                    character.Skills.Add("Tactics", "Military", 1);
                    return;

                case 2:
                    character.CurrentTermBenefits.AdvancementDM += 4;
                    return;
                }
                return;

            case 12:
                character.AddHistory("Display heroism in battle.");

                character.CurrentTermBenefits.AdvancementDM += 100;     //also applies to commission rolls

                if (character.LastCareer.CommissionRank == 0)
                {
                    character.CurrentTermBenefits.FreeCommissionRoll = true;
                }

                return;
            }
        }
Ejemplo n.º 51
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
            case 2:
                Mishap(character, dice);
                character.NextTermBenefits.MusterOut = false;
                return;

            case 3:

                if (dice.RollHigh(character.Skills.BestSkillLevel("Investigate", "Art"), 8))
                {
                    character.AddHistory("Invited to take part in a controversial event or exhibition that improves your social standing.");
                    character.SocialStanding += 1;
                }
                else
                {
                    character.AddHistory("Invited to take part in a controversial event or exhibition that injures your social standing.");
                    character.SocialStanding += -1;
                }
                return;

            case 4:
                character.AddHistory("Join homeworld’s celebrity circles");

                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Carouse");
                    skillList.Add("Persuade");
                    skillList.Add("Steward");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                    else
                    {
                        character.AddHistory("Gain a contact");
                    }
                }

                return;

            case 5:
                character.AddHistory($"Works is especially well received and popular, making you a minor celebrity");
                character.BenefitRollDMs.Add(1);
                return;

            case 6:
                character.AddHistory($"Gain a patron in the arts. Gain an Ally");
                character.CurrentTermBenefits.AdvancementDM += 2;
                return;

            case 7:
                LifeEvent(character, dice);
                return;

            case 8:

                if (dice.D(2) == 1)
                {
                    character.AddHistory("Refused to criticise a questionable political leader on your homeworld.");
                }
                else
                {
                    character.AddHistory("Criticised a questionable political leader on your homeworld, causing his downfall. Gain an Enemy");
                    dice.Choose(character.Skills).Level += 1;
                    if (!dice.RollHigh(character.Skills.BestSkillLevel("Art", "Persuade"), 8))
                    {
                        Mishap(character, dice);
                    }
                }
                return;

            case 9:
                character.AddHistory($"Go on a tour of the sector, visiting several worlds. Gain {dice.D(3)} Contacts.");
                return;

            case 10:
                character.AddHistory("One of your pieces of art is stolen, and the investigation brings you into the criminal underworld.");
                {
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Streetwise");
                    skillList.Add("Investigate");
                    skillList.Add("Recon");
                    skillList.Add("Stealth");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                    {
                        character.Skills.Add(dice.Choose(skillList), 1);
                    }
                }
                return;

            case 11:
                //character.AddHistory("As an artist, you lead a strange and charmed life.");
                UnusualLifeEvent(character, dice);
                return;

            case 12:
                character.AddHistory("Win a prestigious prize.");
                character.CurrentTermBenefits.AdvancementDM += 100;
                return;
            }
        }
Ejemplo n.º 52
0
 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;
     }
 }
Ejemplo n.º 53
0
        internal override void Event(Character character, Dice dice)
        {
            switch (dice.D(2, 6))
            {
                case 2:
                    Mishap(character, dice);
                    character.NextTermBenefits.MusterOut = false;
                    return;
                case 3:
                    character.AddHistory("An investigation takes on a dangerous turn.");

                    if (dice.RollHigh(character.Skills.BestSkillLevel("Investigate", "Streetwise"), 8))
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.Add("Deception");
                        skillList.Add("Jack-of-All-Trades");
                        skillList.Add("Persuade");
                        skillList.Add("Tactics");
                        character.Skills.Increase(dice.Choose(skillList));
                    }
                    else
                    {
                        Mishap(character, dice);
                    }
                    return;
                case 4:
                    character.AddHistory("Rewarded for a successful mission.");
                    character.BenefitRollDMs.Add(1);
                    return;
                case 5:
                    character.AddHistory($"Established a network of contacts. Gain {dice.D(3)} contacts.");
                    return;
                case 6:
                    character.AddHistory("Advanced training in a specialist field.");
                    if (dice.RollHigh(character.EducationDM, 8))
                    {
                        dice.Choose(character.Skills).Level += 1;
                    }
                    return;
                case 7:
                    LifeEvent(character, dice);
                    return;
                case 8:
                    {
                        character.AddHistory("Go undercover to investigate an enemy.");

                        var career = dice.Choose(m_Careers);

                        if (dice.RollHigh(character.Skills.GetLevel("Deception"), 8))
                        {
                            career.Event(character, dice);
                            career.AssignmentSkills(character, dice);
                        }
                        else
                        {
                            career.Mishap(character, dice);
                        }
                    }
                    return;
                case 9:
                    character.AddHistory("You go above and beyond the call of duty.");
                    character.CurrentTermBenefits.AdvancementDM += 2;
                    return;
                case 10:
                    character.AddHistory("Given specialist training in vehicles.");
                    {
                        var skillList = new SkillTemplateCollection();
                        skillList.AddRange(SpecialtiesFor("Drive"));
                        skillList.AddRange(SpecialtiesFor("Flyer"));
                        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 11:
                    character.AddHistory("Befriended by a senior agent.");
                    switch (dice.D(2))
                    {
                        case 1:
                            character.Skills.Increase("Investigate");
                            return;
                        case 2:
                            character.CurrentTermBenefits.AdvancementDM += 4;
                            return;
                    }
                    return;
                case 12:
                    character.AddHistory("Uncover a major conspiracy against your employers.");
                    character.CurrentTermBenefits.AdvancementDM += 100;
                    return;
            }
        }
Ejemplo n.º 54
0
        internal override void Mishap(Character character, Dice dice)
        {
            switch (dice.D(6))
            {
                case 1:
                    Injury(character, dice, true);
                    return;
                case 2:
                    character.AddHistory("Expose or are involved in a scandal of some sort.");
                    return;
                case 3:
                    character.AddHistory("Public opinion turns on you.");
                    character.SocialStanding += -1;
                    return;

                case 4:
                    character.AddHistory("You are betrayed by a peer. One Ally or Contact becomes a Rival or Enemy");
                    return;
                case 5:
                    character.AddHistory("An investigation, tour, project or expedition goes wrong, stranding you far from home.");
                    var skillList = new SkillTemplateCollection();
                    skillList.Add("Survival");
                    skillList.AddRange(SpecialtiesFor("Pilot"));
                    skillList.Add("Persuade");
                    skillList.Add("Streetwise");
                    skillList.RemoveOverlap(character.Skills, 1);
                    if (skillList.Count > 0)
                        character.Skills.Add(dice.Choose(skillList), 1);

                    return;
                case 6:
                    character.AddHistory("You are forced out because of censorship or controversy. What truth did you get too close to?");
                    character.NextTermBenefits.QualificationDM += 2;
                    return;
            }
        }