public MiniFactionPanelHelper(SG_Stores_MiniFactionWidget widget)
        {
            Widget       = widget;
            MainTraverse = new Traverse(widget);

            FactionIcon         = MainTraverse.Field <Image>("FactionIcon").Value;
            FactionTooltip      = MainTraverse.Field <HBSTooltip>("FactionTooltip").Value;
            ratingIcon          = MainTraverse.Field <SGReputationRatingIcon>("ratingIcon").Value;
            ReputationBonusText = MainTraverse.Field <LocalizableText>("ReputationBonusText").Value;
        }
Exemplo n.º 2
0
            public static void Postfix(SG_Stores_MiniFactionWidget __instance, FactionValue theFaction, FactionValue ___owningFactionValue, LocalizableText ___ReputationBonusText)
            {
                if (GlobalVars.sim == null)
                {
                    return;
                }
                var sellBonus = 0f;

                var curPilots = new List <string>();

                curPilots.Add(GlobalVars.sim.Commander.FetchGUID());
                foreach (var p in GlobalVars.sim.PilotRoster)
                {
                    SpecHolder.HolderInstance.AddToMaps(p);
                    curPilots.Add(p.FetchGUID());
                }

                foreach (var pKey in curPilots)
                {
                    if (SpecHolder.HolderInstance.OpForSpecMap.ContainsKey(pKey))
                    {
                        foreach (var spec in SpecHolder.HolderInstance.OpForSpecMap[pKey])
                        {
                            var opSpec =
                                SpecManager.ManagerInstance.OpForSpecList.FirstOrDefault(x => x.OpForSpecID == spec);
                            if (opSpec != null && opSpec.storeBonus.ContainsKey(___owningFactionValue.Name))
                            {
                                sellBonus += opSpec.storeBonus[___owningFactionValue.Name];
                                ModInit.modLog.LogMessage($"Current sell multiplier from specs: {sellBonus}");
                            }
                        }
                    }
                }

                if (sellBonus == 0f)
                {
                    return;
                }
                ___ReputationBonusText.AppendTextAndRefresh(", {0}% Sell Bonus", new object[]
                {
                    Mathf.RoundToInt(sellBonus * 100f)
                });
            }