Пример #1
0
 public static void Postfix(Pilot ___curPilot, SimGameState ___simState, List <SGBarracksSkillPip> pips, int originalSkill, int curSkill, int idx, bool isLocked)
 {
     if ((___curPilot.pilotDef.PilotTags.Contains("pilot_fatigued") && settings.FatigueReducesSkills) ||
         (settings.InjuriesHurt && (___curPilot.Injuries > 0 || ___curPilot.pilotDef.PilotTags.Contains("pilot_lightinjury"))))
     {
         SGBarracksSkillPip.PurchaseState purchaseState = SGBarracksSkillPip.PurchaseState.Unselected;
         if (originalSkill > idx)
         {
             purchaseState = SGBarracksSkillPip.PurchaseState.Purchased;
         }
         else if (curSkill > idx)
         {
             purchaseState = SGBarracksSkillPip.PurchaseState.Selected;
         }
         bool flag = false;
         if (isLocked && (idx + 1 == pips.Count || curSkill == idx + 1))
         {
             flag = true;
         }
         if (pips[idx].Ability != null)
         {
             bool flag2 = ___simState.CanPilotTakeAbility(___curPilot.pilotDef, pips[idx].Ability, pips[idx].SecondTierAbility);
             bool flag3 = ___curPilot.pilotDef.abilityDefNames.Contains(pips[idx].Ability.Description.Id);
             pips[idx].Set(purchaseState, (curSkill == idx || curSkill == idx + 1) && !isLocked, curSkill == idx, true, isLocked && flag);
             pips[idx].SetActiveAbilityVisible(flag2 || flag3);
         }
         pips[idx].Set(purchaseState, (curSkill == idx || curSkill == idx + 1) && !isLocked, curSkill == idx, true, isLocked && flag);
     }
 }