public void RegisterEntity(RulesetEntity rulesetEntity)
        {
            try
            {
                if (rulesetEntity is RulesetItem)
                {
                    var ri = rulesetEntity as RulesetItem;
                    Main.Log($"RegisterEntity: Type= {rulesetEntity.GetType().FullName}, Name={ri?.ItemDefinition?.Name}, Guid={ri?.ItemDefinition?.GUID}");
                }
                else if (rulesetEntity is RulesetItemProperty)
                {
                    var ri = rulesetEntity as RulesetItemProperty;
                    Main.Log($"RegisterEntity: Type= {rulesetEntity.GetType().FullName}, Name={ri?.FeatureDefinition?.Name}, Guid={ri?.FeatureDefinition?.GUID}");
                }
                else
                {
                    Main.Log($"RegisterEntity: Type={rulesetEntity.GetType().FullName}, {rulesetEntity?.Name}");
                }

                RulesetEntities.Add(rulesetEntity.Guid, rulesetEntity);
            }
            catch (Exception ex)
            {
                Main.Log($"RegisterEntity: {ex}");
            }
        }
        public void UnregisterEntity(RulesetEntity rulesetEntity)
        {
            Main.Log($"UnregisterEntity: {rulesetEntity?.Guid}");

            if (rulesetEntity != null)
            {
                RulesetEntities.Remove(rulesetEntity.Guid);
            }
        }
예제 #3
0
        internal static void Postfix(RulesetEntity __instance, string attributeName, ref int __result)
        {
            var hero = __instance as RulesetCharacterHero;

            if (hero != null)// && hero.HasClass("MyClass"))
            {
                var originalResult = __result;

                switch (attributeName)
                {
                case "AHE:1":
                case "ADE:1":
                    __result = 1;
                    break;

                case "AHE:2":
                case "ADE:2":
                    __result = 1;
                    break;

                case "AHE:3":
                case "ADE:3":
                    __result = 2;
                    break;

                case "AHE:4":
                case "ADE:4":
                    __result = 2;
                    break;

                case "AHE:5":
                case "ADE:5":
                    __result = 3;
                    break;

                case "AHE:6":
                case "ADE:6":
                    __result = 3;
                    break;

                case "AHE:7":
                case "ADE:7":
                    __result = 4;
                    break;
                }

                Main.Log($"Get '{attributeName}' for '{hero.Name}'.  Original value={originalResult}, new value={__result}.");
            }
        }
예제 #4
0
        public static void Prefix(RulesetEntity __instance, IAttributesSerializer serializer,
                                  IVersionProvider versionProvider)
        {
            string name;

            try
            {
                name = __instance.Name;
            }
            catch (NullReferenceException)
            {
                name = "exception";
            }

            Main.Log($"RE_SA: Name={name}, Guid={__instance.Guid}, Att cnt={__instance.Attributes?.Count ?? 0}");
        }
 public void SwapEntities(RulesetEntity oldRulesetEntity, RulesetEntity newRulesetEntity)
 {
 }
 public bool TryGetEntityByGuid(ulong guid, out RulesetEntity rulesetEntity)
 {
     Main.Log($"TryGetEntityByGuid: {guid}");
     return(RulesetEntities.TryGetValue(guid, out rulesetEntity));
 }
 public void SwapEntities(RulesetEntity oldRulesetEntity, RulesetEntity newRulesetEntity)
 {
     // Nothing to do
 }