Esempio n. 1
0
 //Returns clinet progression for Multiplayer
 public static ClinetEnemyProgression GetCP(BoltEntity e)
 {
     if (e == null)
     {
         return(null);
     }
     if (clinetProgressions.ContainsKey(e))
     {
         ClinetEnemyProgression cp = clinetProgressions[e];
         if (Time.time <= cp.creationTime + ClinetEnemyProgression.LifeTime)
         {
             return(cp);
         }
         else
         {
             clinetProgressions.Remove(e);
             return(null);
         }
     }
     if (!GameSetup.IsMpClient)
     {
         return(new ClinetEnemyProgression(e));
     }
     if (Time.time > LastAskedTime + AskFrequency)
     {
         Network.NetworkManager.SendLine("EE" + e.networkId.PackedValue.ToString() + ";", Network.NetworkManager.Target.OnlyServer);
         LastAskedTime = Time.time;
     }
     return(null);
 }
        //Returns clinet progression for Singleplayer
        public static ClinetEnemyProgression GetCP(Transform tr)
        {
            if (spProgression.ContainsKey(tr.root))
            {
                ClinetEnemyProgression cp = spProgression[tr.root];
                if (Time.time <= cp.creationTime + ClinetEnemyProgression.LifeTime)
                {
                    return(cp);
                }
                else
                {
                    spProgression.Remove(tr.root);
                }
            }
            else
            {
                EnemyProgression p = tr.root.GetComponent <EnemyProgression>();
                if (p == null)
                {
                    p = tr.root.GetComponentInChildren <EnemyProgression>();
                }

                if (p != null)
                {
                    ClinetEnemyProgression cpr = new ClinetEnemyProgression(tr.root);
                    spProgression.Add(tr.root, cpr);
                    return(cpr);
                }
                else
                {
                    {
                        mutantScriptSetup setup = tr.root.GetComponentInChildren <mutantScriptSetup>();
                        if (setup == null)
                        {
                            setup = tr.root.GetComponent <mutantScriptSetup>();
                        }
                        if (setup != null)
                        {
                            p = setup.health.gameObject.AddComponent <EnemyProgression>();
                            if (p != null)
                            {
                                p._Health = setup.health;
                                p._AI     = setup.ai;
                                p.entity  = setup.GetComponent <BoltEntity>();
                                p.setup   = setup;
                            }
                        }
                    }
                }
            }
            return(null);
        }
 //Returns clinet progression for Multiplayer
 public static ClinetEnemyProgression GetCP(BoltEntity e)
 {
     if (e == null)
     {
         return(null);
     }
     if (clinetProgressions.ContainsKey(e))
     {
         ClinetEnemyProgression cp = clinetProgressions[e];
         if (Time.time <= cp.creationTime + ClinetEnemyProgression.LifeTime)
         {
             return(cp);
         }
         else
         {
             clinetProgressions.Remove(e);
             return(null);
         }
     }
     if (!GameSetup.IsMpClient)
     {
         return(new ClinetEnemyProgression(e));
     }
     if (Time.time > LastAskedTime + AskFrequency)
     {
         using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream())
         {
             using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream))
             {
                 w.Write(6);
                 w.Write(e.networkId.PackedValue);
                 w.Close();
             }
             ChampionsOfForest.Network.NetworkManager.SendLine(answerStream.ToArray(), ChampionsOfForest.Network.NetworkManager.Target.OnlyServer);
             answerStream.Close();
         }
         LastAskedTime = Time.time;
     }
     return(null);
 }