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); }
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); }
public FastProperty(PropertyInfo property) { getter = property.CreateFastGetter <TObject, TValue>(); setter = property.CreateFastSetter <TObject, TValue>(); }