Example #1
0
 public StatusEffectControl(GameInstance owner, Action<StatusEffectEntity2> onAttach, Action<StatusEffectEntity2> onDetach)
 {
     this.objectHolder = owner;
     this.stat = owner.Stat;
     this.onAttach = onAttach;
     this.onDetach = onDetach;
 }
Example #2
0
        public void SetUp()
        {
            var fileName = Path.GetTempPath() + Guid.NewGuid();

            _db     = new LiteDatabase(fileName);
            _server = new StatServer(_db);
            _server.Start("http://+:8081/");
        }
Example #3
0
    public void AddBuff(int buffID, StatServer firerStat, Buff.Handle onBuff, Buff.Handle onDebuff)
    {
        StatusEffectEntity2 buffEntity = TableLoader.GetTable<StatusEffectEntity2>().Get(buffID);
        CheckBuffType(buffEntity);

        Buff buff = new Buff(buffEntity, firerStat, onBuff, onDebuff);
        AddBuff(buff);
    }
Example #4
0
 public virtual Action GenerateAction(StatServer stat)
 {
     string pattern = actionPattern;
     if (!string.IsNullOrEmpty(animationName))
     {
         pattern = string.Format("Motion({0}; {1})", animationName, pattern);
     }
     return ActionPattern.Create(pattern).Generate(stat);
 }
Example #5
0
        public void SetUp()
        {
            client = new Client.Client("http://127.0.0.1:8080/");
            server = new StatServer();
            server.ClearDatabaseAndCache();
            var prefix = "http://+:8080/";

            new Thread(() => server.Start(prefix)).Start();
        }
Example #6
0
 public static Action Generate(string actionPattern, StatServer stat, params object[] args)
 {
     ActionPattern pattern = Create(actionPattern);
     if (pattern != null)
     {
         return pattern.Generate(stat, args);
     }
     return null;
 }
        private static void RunServer(Options options)
        {
            using (var server = new StatServer(1))
            {
                server.Start(options.Prefix);

                System.Console.ReadKey(true);
            }
        }
Example #8
0
File: Buff.cs Project: pb0/ID0_Test
 private static Dictionary<Enum, float> ParseStatMod(string[] token, Type targetStatType, StatServer firerStat)
 {
     Dictionary<Enum, float> statMod = new Dictionary<Enum, float>();
     for (int i = 0; i < token.Length; i++)
     {
         string[] keyValue = token[i].Split("=".ToCharArray(), 2);
         Enum key = EnumTool.Parse(targetStatType, keyValue[0]) as Enum;
         float value = StatCalc.Calc(keyValue[1], firerStat);
         statMod.Add(key, value);
     }
     return statMod;
 }
Example #9
0
 static string ApplyStat(string actionPattern, StatServer stat)
 {
     while (actionPattern.Contains("["))
     {
         int startIndex = actionPattern.IndexOf("[");
         int endIndex = actionPattern.IndexOf("]", startIndex);
         string strStatType = actionPattern.Substring(startIndex + 1, endIndex - startIndex - 1);
         Enum statType = EnumTool.Parse(strStatType) as Enum;
         float statValue = stat.Get(statType);
         actionPattern = actionPattern.Replace(actionPattern.Substring(startIndex, endIndex - startIndex + 1), statValue.ToString());
     }
     return actionPattern;
 }
Example #10
0
    public static float Calc(string expr, StatServer statHolder)
    {
        expr = expr.Trim();
        Assert.IsTrue(HasValidSquareBrackets(expr), "has invalid brackets \n" + expr);

        var bracketedTokens = ExportBracketedTokens(expr).Distinct();
        Assert.IsTrue(bracketedTokens.All(x => EnumTool.Parse(x) != null), "has invalid enum token \n" + expr);
        Assert.IsTrue(bracketedTokens.All(x => statHolder.ContainsKey(EnumTool.Parse(x) as Enum)));

        var statTable = bracketedTokens.ToDictionary(x => string.Format("[{0}]", x), x => statHolder.Get(EnumTool.Parse(x) as Enum));
        foreach (var entity in statTable)
        {
            expr = expr.Replace(entity.Key, entity.Value.ToString());
        }
        return SimpleCalc.Calc(expr);
    }
Example #11
0
 public void AddBuff(int buffID, StatServer firerStat, Buff.Handle onBuff, Buff.Handle onDebuff)
 {
     if (Constants.Instance.Editor.VerifyData)
     {
         try
         {
             buffControl.AddBuff(buffID, firerStat, onBuff, onDebuff);
         }
         catch(Exception e)
         {
             Debug.LogError("error on buff: " + buffID);
             throw e;
         }
     }
     else
     {
         buffControl.AddBuff(buffID, firerStat, onBuff, onDebuff);
     }
 }
Example #12
0
File: Buff.cs Project: pb0/ID0_Test
    public Buff(StatusEffectEntity2 entity, StatServer firerStat, Handle OnBuff, Handle OnDebuff)
    {
        statusEffectEntity = entity;
        name = "Buff" + entity.statusEffectCode;
        duration = entity.expireTime > 0 ? entity.expireTime : float.MaxValue;
        this.spawnEffect = entity.spawnVFX;
        this.spawnSound = entity.spawnSFX;
        this.OnBuff = OnBuff;
        this.OnDebuff = OnDebuff;

        if (!string.IsNullOrEmpty(entity.targetStat))
        {
            Type targetStatType = Type.GetType(entity.targetStat);
            if (targetStatType != null)
            {
                string strStatMod = StringTool.RemoveWhiteSpace(entity.statMod);
                string[] modTokens = strStatMod.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                statMod = ParseStatMod(modTokens, targetStatType, firerStat);
            }
        }
    }
Example #13
0
        public void Start(string[] args)
        {
            m_Parameters = ParameterParse.ParseArguments(args, false /* firstOpFlag */, true /* multipleFiles */);
            foreach (KeyValuePair <string, string> kvp in m_Parameters)
            {
                switch (kvp.Key)
                {
                case "-o":
                case "--output":
                    m_outFile = kvp.Value;
                    break;

                case "--verbose":
                    m_ParamVerbose++;
                    break;

                case ParameterParse.LAST_PARAM:
                    m_inFiles = kvp.Value;
                    break;

                case ParameterParse.ERROR_PARAM:
                    // if we get here, the parser found an error
                    Logger.Log("Parameter error: " + kvp.Value);
                    Logger.Log(Invocation());
                    return;

                default:
                    Logger.Log("ERROR: UNKNOWN PARAMETER: " + kvp.Key);
                    Logger.Log(Invocation());
                    return;
                }
            }

            GlobalRecordCollection globalCollection = new GlobalRecordCollection();

            // Read in all log records into approriate structure type for each log line
            if (!String.IsNullOrEmpty(m_inFiles))
            {
                string[] files = m_inFiles.Split(',');
                foreach (string fileName in files)
                {
                    if (fileName.Substring(0, connName.Length) == connName)
                    {
                        List <Records> syncConn = StatSyncConnector.Read(fileName);
                        globalCollection.Add(syncConn);
                    }
                    else if (fileName.Substring(0, sceneName.Length) == sceneName)
                    {
                        List <Records> syncConn = StatScene.Read(fileName);
                        globalCollection.Add(syncConn);
                    }
                    else if (fileName.Substring(0, serverName.Length) == serverName)
                    {
                        List <Records> syncConn = StatServer.Read(fileName);
                        globalCollection.Add(syncConn);
                    }
                    else
                    {
                        Logger.Log("No handler for file {0}", fileName);
                    }
                }
            }

            // Compute the number of buckets based on the log records. Compute min and max.
            double[] bucketTimes = ComputeBuckets(globalCollection, 10 /* bucket size in seconds */);
            long     numBuckets  = bucketTimes.Length;

            if (numBuckets > 0)
            {
                List <Records>[] buckets = DistributeToBucketArray(globalCollection, numBuckets);

                GenerateOutput(globalCollection, buckets, bucketTimes);
            }
        }
Example #14
0
    public Action Generate(StatServer stat, params object[] args)
    {
        if (patternType == ActionPatternType.Action)
        {
            string modifiedStrValue = ApplyStat(strValue, stat);
            modifiedStrValue = string.Format(modifiedStrValue, args);
            string[] param = null;

            if (list != null)
            {
                param = list.ToArray();
            }
            return new ActionSingle(target, type, SimpleCalc.Calc(modifiedStrValue), param);
        }
        if (patternType == ActionPatternType.Vector)
        {
            float speedX = SimpleCalc.Calc(ApplyStat(list[0], stat));
            float speedY = SimpleCalc.Calc(ApplyStat(list[1], stat));
            float gravity = SimpleCalc.Calc(ApplyStat(list[2], stat));
            bool toLeft = bool.Parse(list[3]);
            return new ActionVector(target, speedX, speedY, gravity, toLeft);
        }
        if (patternType == ActionPatternType.Projectile)
        {
            int? projectileId = Cast.To<int>(strValue);
            Action action = children[0].Generate(stat, args);
            return new ActionProjectile(projectileId.Value, action);
        }
        if (patternType == ActionPatternType.Delegate)
        {
            return new ActionDelegate(target, strValue);
        }
        if (patternType == ActionPatternType.Motion)
        {
            string animationName = strValue;
            Action action = children[0].Generate(stat, args);
            return new ActionMotion(animationName, action);
        }
        if (patternType == ActionPatternType.Sequence || patternType == ActionPatternType.Exclusive)
        {
            ActionSequence ret = patternType == ActionPatternType.Exclusive ? new ActionExclusive() : new ActionSequence();
            foreach (var entity in children)
            {
                ret.Add(entity.Generate(stat, args));
            }
            return ret;
        }
        return null;
    }
Example #15
0
 public void SetUp()
 {
     server = new StatServer();
     server.Start(Prefix);
 }