示例#1
0
        static private void FixExistingBlueprintFacts()
        {
            FastGetter classes_Getter = Helpers.CreateFieldGetter <ContextRankConfig>("m_Class");
            FastSetter classes_Setter = Helpers.CreateFieldSetter <ContextRankConfig>("m_Class");

            foreach (string factId in config.FactsWithContextRankConfig)
            {
                BlueprintUnitFact fact = library.Get <BlueprintUnitFact>(factId);
                foreach (ContextRankConfig comp in fact.GetComponents <ContextRankConfig>())
                {
                    if (comp.IsBasedOnClassLevel)
                    {
                        BlueprintCharacterClass[] classes = classes_Getter(comp) as BlueprintCharacterClass[];
                        if (classes == null)
                        {
                            throw new Exception($"Error! get null classes for IsBasedOnClassLevel ContextRankConfig named {fact.name}!");
                        }
                        List <BlueprintCharacterClass> classesList = classes.ToList <BlueprintCharacterClass>();
                        if (classesList.Contains(wizard))
                        {
                            classesList.Add(ArcanistClass.arcanist);
                        }
                        classes_Setter(comp, classesList.ToArray());
                    }
                }
            }
        }
 static bool Prepare()
 {
     IsStartedSetter = Accessors.CreateSetter <KingdomTask, bool>("IsStarted");
     StartedOnSetter = Accessors.CreateSetter <KingdomTask, int>("StartedOn");
     OnTaskChanged   = Accessors.CreateInvoker <KingdomTask, object>("OnTaskChanged");
     return(true);
 }
示例#3
0
        static private void FixResources()
        {
            FastGetter Amount_Getter = Helpers.CreateFieldGetter <BlueprintAbilityResource>("m_MaxAmount");
            FastSetter Amount_Setter = Helpers.CreateFieldSetter <BlueprintAbilityResource>("m_MaxAmount");

            foreach (string resId in config.ResourcesIds)
            {
                var res    = library.Get <BlueprintAbilityResource>(resId);
                var amount = Amount_Getter(res);
                Helpers.SetField(amount, "Class", new BlueprintCharacterClass[] { wizard, ArcanistClass.arcanist });
                Amount_Setter(res, amount);
            }
        }
 static bool Prepare()
 {
     SellDiscountedBuildingGetter = Accessors.CreateGetter <SettlementState, BlueprintSettlementBuilding>("SellDiscountedBuilding");
     SellDiscountedBuildingSetter = Accessors.CreateSetter <SettlementState, BlueprintSettlementBuilding>("SellDiscountedBuilding");
     return(true);
 }
 static bool Prepare()
 {
     IsHighlightingGet = Accessors.CreateGetter <InteractionHighlightController, bool>("IsHighlighting");
     IsHighlightingSet = Accessors.CreateSetter <InteractionHighlightController, bool>("IsHighlighting");
     return(true);
 }
示例#6
0
 public FastProperty(PropertyInfo property)
 {
     getter = property.CreateFastGetter <TObject, TValue>();
     setter = property.CreateFastSetter <TObject, TValue>();
 }