示例#1
0
        public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType)
        {
            DynamicFloat num = (DynamicFloat)instance;

            if (data.IsDouble)
            {
                num.isDynamic  = false;
                num.fixedValue = (float)data.AsDouble;
                return(fsResult.Success);
            }
            if (data.IsInt64)
            {
                num.isDynamic  = false;
                num.fixedValue = data.AsInt64;
                return(fsResult.Success);
            }
            if (!data.IsString)
            {
                return(fsResult.Fail("DynamicFloat fields needs to be either a '%key' or a float value"));
            }
            string asString = data.AsString;

            if (!asString.StartsWith("%"))
            {
                return(fsResult.Fail("DynamicFloat key needs to be like '%key' ."));
            }
            num.isDynamic = true;
            char[] trimChars = new char[] { '%' };
            num.dynamicKey = asString.TrimStart(trimChars);
            return(fsResult.Success);
        }
示例#2
0
        public ConfigAbilityModifier()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0f
            };

            this.Duration = num;
            num           = new DynamicFloat {
                fixedValue = 0f
            };
            this.ThinkInterval      = num;
            this.ModifierMixins     = new ConfigAbilityMixin[0];
            this.Properties         = new SortedList <string, DynamicFloat>();
            this.EntityProperties   = new SortedList <string, DynamicFloat>();
            this.OnAdded            = ConfigAbilityAction.EMPTY;
            this.OnRemoved          = ConfigAbilityAction.EMPTY;
            this.OnBeingHit         = ConfigAbilityAction.EMPTY;
            this.OnBeingHitResolved = ConfigAbilityAction.EMPTY;
            this.OnAttackLanded     = ConfigAbilityAction.EMPTY;
            this.OnThinkInterval    = ConfigAbilityAction.EMPTY;
            this.OnEvadeStart       = ConfigAbilityAction.EMPTY;
            this.OnEvadeSuccess     = ConfigAbilityAction.EMPTY;
            this.OnDefendStart      = ConfigAbilityAction.EMPTY;
            this.OnDefendSuccess    = ConfigAbilityAction.EMPTY;
            this.OnMonsterCreated   = ConfigAbilityAction.EMPTY;
            this.OnAvatarCreated    = ConfigAbilityAction.EMPTY;
            this.OnKilled           = ConfigAbilityAction.EMPTY;
            this.localID            = -1;
        }
示例#3
0
        static EvadeMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0.4f
            };

            DEFAULT_EVADE_EXTEND_INVIN = num;
        }
        public HitExplodeTracingMultiBulletsMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0.5f
            };

            this.BulletPositionDuration = num;
        }
示例#5
0
        public DelayMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 60f
            };

            this.Delay = num;
        }
        public RangeAttackProtectShieldMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 3f
            };

            this.ProtectRange      = num;
            this.DamageReduceRatio = DynamicFloat.ZERO;
            this.OnRangeAttackProtectShieldSuccessActions = ConfigAbilityAction.EMPTY;
        }
示例#7
0
        public AvatarQTEMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0.2f
            };

            this.DelayQTETimeSpan  = num;
            this.TriggerConditions = QTECondition.EMPTY;
            this.Conditions        = QTECondition.EMPTY;
            this.Predicates        = ConfigAbilityPredicate.EMPTY;
        }
示例#8
0
        static DynamicFloat()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0f
            };

            ZERO = num;
            num  = new DynamicFloat {
                fixedValue = 1f
            };
            ONE = num;
        }
示例#9
0
        public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType)
        {
            DynamicFloat num = instance as DynamicFloat;

            if (num == null)
            {
                serialized = new fsData();
                return(fsResult.Fail("Failed to convert field to DynamicFloat on serialization."));
            }
            serialized = !num.isDynamic ? new fsData((double)num.fixedValue) : new fsData("%" + num.dynamicKey);
            return(fsResult.Success);
        }
示例#10
0
        public HitExplodeBulletMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = -1f
            };

            this.AliveDuration            = num;
            this.DistinctHitExplodeHeight = DynamicFloat.ONE;
            this.BulletEffectGround       = true;
            this.ExplodeEffectGround      = true;
            this.ResetTime         = 0.4f;
            this.HitExplodeActions = ConfigAbilityAction.EMPTY;
        }
示例#11
0
        public PositionDirectionHitMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 180f
            };

            this.ForwardAngleRangeMax = num;
            this.ForwardAngleRangeMin = DynamicFloat.ZERO;
            this.BackDamageRatio      = DynamicFloat.ONE;
            this.PosAngleRangeMin     = DynamicFloat.ZERO;
            num = new DynamicFloat {
                fixedValue = 180f
            };
            this.PosAngleRangeMax = num;
            this.HitRange         = DynamicFloat.ZERO;
            this.Actions          = ConfigAbilityAction.EMPTY;
        }
示例#12
0
 private void PopulateDynamicFloat(ConfigDynamicArguments source, DynamicFloat df)
 {
     if (df.isDynamic)
     {
         object obj2 = source[df.dynamicKey];
         if (obj2 is int)
         {
             df.fixedValue = (int)obj2;
         }
         else
         {
             df.fixedValue = (float)obj2;
         }
         df.isDynamic  = false;
         df.dynamicKey = null;
     }
 }
示例#13
0
        public MonsterDefendMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 2f
            };

            this.BreakDefendAniDamageRatio = num;
            num = new DynamicFloat {
                fixedValue = 180f
            };
            this.DefendAngle              = num;
            this.DefendActionRange        = DynamicFloat.ONE;
            this.DefendActionCD           = DynamicFloat.ZERO;
            this.InDefendMaxTime          = DynamicFloat.ZERO;
            this.ShieldLightLayer         = 3;
            this.ShieldLightMax           = 1f;
            this.DefendStartActions       = ConfigAbilityAction.EMPTY;
            this.DefendActionReadyActions = ConfigAbilityAction.EMPTY;
            this.DefendSuccessActions     = ConfigAbilityAction.EMPTY;
            this.Predicates = ConfigAbilityPredicate.EMPTY;
        }
示例#14
0
        public DefendModeMonsterMixin()
        {
            DynamicFloat num = new DynamicFloat {
                fixedValue = 0.2f
            };

            this.HatredAddRateByDamage = num;
            num = new DynamicFloat {
                fixedValue = 0.05f
            };
            this.HatredAddThreholdRatioByDamage = num;
            this.HatredDecreaseInterval         = DynamicFloat.ONE;
            num = new DynamicFloat {
                fixedValue = 0.05f
            };
            this.HatredDecreateRateByInterval = num;
            this.hatredAIAreaSections         = new float[] { 0.5f };
            this.hatredAIValues = new int[] { 2, 3 };
            this.DefaultAIValue = 2;
            num = new DynamicFloat {
                fixedValue = 0.5f
            };
            this.MinAISwitchDuration = num;
        }