本文整理汇总了C#中Character.GetDM方法的典型用法代码示例。如果您正苦于以下问题:C# Character.GetDM方法的具体用法?C# Character.GetDM怎么用?C# Character.GetDM使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Character
的用法示例。
在下文中一共展示了Character.GetDM方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OddsOfSuccess
public static int OddsOfSuccess(Character character, string attributeName, int target)
{
var dm = character.GetDM(attributeName);
return OddsOfSuccess(target - dm);
}
示例2: Run
internal override void Run(Character character, Dice dice)
{
CareerHistory careerHistory;
if (!character.CareerHistory.Any(pc => pc.Name == Name))
{
character.AddHistory($"Became a {Assignment} at age {character.Age}");
BasicTraining(character, dice, character.CareerHistory.Count == 0);
careerHistory = new CareerHistory(Name, Assignment, 0);
character.CareerHistory.Add(careerHistory);
UpdateTitle(character, dice, careerHistory);
}
else
{
if (!character.CareerHistory.Any(pc => pc.Assignment == Assignment))
{
character.AddHistory($"Switched to {Assignment} at age {character.Age}");
careerHistory = new CareerHistory(Name, Assignment, 0);
character.CareerHistory.Add(careerHistory);
}
else if (character.LastCareer?.Assignment == Assignment)
{
character.AddHistory($"Continued as {Assignment} at age {character.Age}");
careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment);
}
else
{
character.AddHistory($"Returned to {Assignment} at age {character.Age}");
careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment);
}
var skillTables = new List<SkillTable>();
skillTables.Add(PersonalDevelopment);
skillTables.Add(ServiceSkill);
skillTables.Add(AssignmentSkills);
if (character.Education >= AdvancedEductionMin)
skillTables.Add(AdvancedEducation);
if (careerHistory.CommissionRank > 0)
skillTables.Add(OfficerTraining);
dice.Choose(skillTables)(character, dice);
}
careerHistory.Terms += 1;
character.LastCareer = careerHistory;
//rank carry-over
careerHistory.Rank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.Rank);
careerHistory.CommissionRank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.CommissionRank);
//Early commission, possibly from military academy.
if (careerHistory.CommissionRank == 0 && character.CurrentTermBenefits.FreeCommissionRoll)
{
AttemptCommission(character, dice, careerHistory);
}
var survived = dice.RollHigh(character.GetDM(SurvivalAttribute) + character.NextTermBenefits.SurvivalDM, SurvivalTarget);
if (survived)
{
character.BenefitRolls += 1;
Event(character, dice);
var totalTermsInCareer = character.CareerHistory.Where(pc => pc.Name == Name).Sum(c => c.Terms);
//Not all people will attempt a commission even when possible
var attemptCommission = (totalTermsInCareer == 1 || character.SocialStanding >= 9) && dice.D(100) < Book.OddsOfSuccess(character, "Soc", 8 - character.CurrentTermBenefits.CommissionDM);
var commissionEarned = false;
if (careerHistory.CommissionRank == 0 && (attemptCommission || character.CurrentTermBenefits.FreeCommissionRoll))
commissionEarned = AttemptCommission(character, dice, careerHistory);
if (!commissionEarned)
{
//try for advancement only if failed to earn a commission.
var advancementRoll = dice.D(2, 6);
if (advancementRoll == 12)
{
character.AddHistory("Forced to continue current assignment");
character.NextTermBenefits.MustEnroll = Assignment;
}
advancementRoll += character.GetDM(AdvancementAttribute) + character.CurrentTermBenefits.AdvancementDM;
if (advancementRoll <= careerHistory.Terms)
{
character.AddHistory("Forced to muster out.");
character.NextTermBenefits.MusterOut = true;
}
if (advancementRoll > AdvancementTarget)
{
if (careerHistory.CommissionRank > 0)
{
careerHistory.CommissionRank += 1;
character.AddHistory($"Promoted to officer rank {careerHistory.CommissionRank}");
}
else
{
careerHistory.Rank += 1;
character.AddHistory($"Promoted to rank {careerHistory.Rank}");
//.........这里部分代码省略.........
示例3: Run
internal override void Run(Character character, Dice dice)
{
CareerHistory careerHistory;
if (!character.CareerHistory.Any(pc => pc.Name == Name))
{
character.AddHistory($"Became a {Assignment} at age {character.Age}");
BasicTrainingSkills(character, dice, character.CareerHistory.Count == 0);
careerHistory = new CareerHistory(Name, Assignment, 0);
character.CareerHistory.Add(careerHistory);
UpdateTitle(character, dice, careerHistory);
}
else
{
if (!character.CareerHistory.Any(pc => pc.Assignment == Assignment))
{
character.AddHistory($"Switched to {Assignment} at age {character.Age}");
careerHistory = new CareerHistory(Name, Assignment, 0);
character.CareerHistory.Add(careerHistory);
if (!RankCarryover) //then this is a new career
{
UpdateTitle(character, dice, careerHistory);
BasicTrainingSkills(character, dice, false);
}
}
else if (character.LastCareer?.Assignment == Assignment)
{
character.AddHistory($"Continued as {Assignment} at age {character.Age}");
careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment);
}
else
{
character.AddHistory($"Returned to {Assignment} at age {character.Age}");
careerHistory = character.CareerHistory.Single(pc => pc.Assignment == Assignment);
}
var skillTables = new List<SkillTable>();
skillTables.Add(PersonalDevelopment);
skillTables.Add(ServiceSkill);
skillTables.Add(AssignmentSkills);
if (character.Education >= AdvancedEductionMin)
skillTables.Add(AdvancedEducation);
dice.Choose(skillTables)(character, dice);
}
careerHistory.Terms += 1;
if (RankCarryover)
{
careerHistory.Rank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.Rank);
careerHistory.CommissionRank = character.CareerHistory.Where(c => c.Name == Name).Max(c => c.CommissionRank);
}
var survived = dice.RollHigh(character.GetDM(SurvivalAttribute) + character.NextTermBenefits.SurvivalDM, SurvivalTarget);
if (survived)
{
character.BenefitRolls += 1;
Event(character, dice);
var advancementRoll = dice.D(2, 6);
if (advancementRoll == 12)
{
character.AddHistory("Forced to continue current assignment");
character.NextTermBenefits.MustEnroll = Assignment;
}
advancementRoll += character.GetDM(AdvancementAttribute) + character.CurrentTermBenefits.AdvancementDM;
if (advancementRoll <= careerHistory.Terms)
{
character.AddHistory("Forced to muster out.");
character.NextTermBenefits.MusterOut = true;
}
if (advancementRoll > AdvancementTarget)
{
careerHistory.Rank += 1;
character.AddHistory($"Promoted to rank {careerHistory.Rank}");
UpdateTitle(character, dice, careerHistory);
//advancement skill
var skillTables = new List<SkillTable>();
skillTables.Add(PersonalDevelopment);
skillTables.Add(ServiceSkill);
skillTables.Add(AssignmentSkills);
if (character.Education >= AdvancedEductionMin)
skillTables.Add(AdvancedEducation);
dice.Choose(skillTables)(character, dice);
}
}
else
{
character.NextTermBenefits.MusterOut = true;
Mishap(character, dice);
}
character.LastCareer = careerHistory;
//.........这里部分代码省略.........