Example #1
0
        void t_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                //LogInfor.GetLogger<TimerLogger>().WriteInfo(_baseKey.Format() + " - Start job", "", "");

                if (UnitContainer != null)
                {
                    //Store the info of timer
                    if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_PATTERN))
                    {
                        this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_PATTERN, null);
                    }
                    if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_TIME))
                    {
                        this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_TIME, t.Interval.ToString());
                    }

                    UnitContainer.InvokeALL(this.Parameters);
                }
            }
            catch
            {
            }
            finally
            {
                //Collect garbage manually
                GC.Collect();
                GC.WaitForFullGCComplete();
                //Raise event manually
                t.Enabled = true;
                //LogInfor.GetLogger<TimerLogger>().WriteInfo(_baseKey.Format() + " - Left time[" + (t.Interval / 100).ToString() + "s]", "", "");
            }
        }
 public PlayerMainControl(Player pl, UnitContainer Unit, UIUnitInfo unitUI, PersistentDataUnitUI dataUI)
 {
     m_Player    = pl;
     m_Unit      = Unit;
     m_UI        = new UIControl(unitUI, dataUI);
     m_UI.Target = () => { return(m_Unit.TF); };
 }
Example #3
0
 public void die(Unit unit)
 {
     MoveContainer.getInstance().Remove(unit);
     CollisionContainer.getInstance().Remove(unit);
     DrawContainer.getInstance().Remove(unit);
     UnitContainer.getInstance().Remove(unit);
     unit._currentRound.removeUnit(unit);
 }
Example #4
0
 private void Start()
 {
     m_Container = GetComponent <UnitContainer>();
     m_Container.LifeControl.DeathEvent        += (arg1, arg2) => { SetState(TypeState.Death); };
     m_Container.LifeControl.ResurrectionEvent += (arg1, arg2) => { SetState(TypeState.Idle); };
     InitStates();
     SetLayer(1, 0f);
 }
Example #5
0
 public void subscribe()   //Singleton anti-pattern :(
 {
     state = UnitStateFactory.Instance.create("unit-alive");
     DrawContainer.getInstance().Add(this);
     MoveContainer.getInstance().Add(this);
     CollisionContainer.getInstance().Add(this);
     UnitContainer.getInstance().Add(this);
     _currentRound.registerUnit(this);
 }
    public Player GetPlayer(UnitContainer unit)
    {
        if (unit.IsNullOrDestroy())
        {
            return(null);
        }
        var control = GetPlayerControl(unit);

        return(control == null ? null : control.Player);
    }
Example #7
0
 protected override void InnerInit(UnitContainer unit)
 {
     base.InnerInit(unit);
     m_AttackControl.Init(m_Unit.TF);
     m_AttackControl.AttackEvents   += OnClickAttack;
     m_Unit.UnitControl.AttackEvent += () => { m_SendData.Attack.AttackID++; };
     m_Unit.LifeControl.DeathEvent  += (sender, arg) => { if (IsServer)
                                                          {
                                                              m_SendData.LifeID++;
                                                          }
     };
 }
Example #8
0
 public void Dispose()
 {
     Finish();
     if (DebugContainer != null)
     {
         DebugContainer.Dispose();
     }
     if (UnitContainer != null)
     {
         UnitContainer.Dispose();
     }
     _isInitialized = false;
 }
 public PlayerMainControl GetPlayerControl(UnitContainer unit)
 {
     if (unit.IsNullOrDestroy())
     {
         return(null);
     }
     for (int i = m_PlayerControls.Count - 1; i >= 0; i--)
     {
         if (m_PlayerControls[i].Unit == unit)
         {
             return(m_PlayerControls[i]);
         }
     }
     return(null);
 }
 protected override void InnerInit(UnitContainer unit)
 {
     base.InnerInit(unit);
     m_Unit.UnitControl.AttackEvent += () => { if (IsServer)
                                               {
                                                   m_SendData.Attack.AttackID++;
                                               }
     };
     m_Unit.LifeControl.DeathEvent += (sender, arg) => { if (IsServer)
                                                         {
                                                             m_SendData.LifeID++;
                                                         }
     };
     m_Unit.MoveControl.BlockPos = true;
     m_Unit.MoveControl.BlockRot = true;
 }
        public override void Run()
        {
            var baseKey = new JobMessage()
            {
                Category = "01", Name = this.Name, BaseKey = Guid.NewGuid()
            };

            //the time at which the job will run
            var currentBaseTimePoint = DateTime.Now.Date.Add(startSpan);

            var baseDate = DateTime.Now <= currentBaseTimePoint?currentBaseTimePoint.AddDays(-1) : currentBaseTimePoint;

            while (_running)
            {
                var nextDay = baseDate.AddDays(1);
                //current data is greater than baseDate if the job is running slowly
                while (nextDay < DateTime.Now)
                {
                    baseDate = nextDay;
                    nextDay  = nextDay.AddDays(1);
                }
                var baseTime = nextDay - baseDate;

                if (!TimePending.Pending(baseTime, baseDate, baseKey))
                {
                    if (UnitContainer != null && _running)
                    {
                        //Store the info of timer
                        if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_PATTERN))
                        {
                            this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_PATTERN, null);
                        }
                        if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_TIME))
                        {
                            this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_TIME, Parameters["jobTime"]);
                        }

                        UnitContainer.InvokeALL(this.Parameters);
                    }
                    baseDate = nextDay;
                    GC.Collect();
                    GC.WaitForFullGCComplete();
                }
            }
        }
        private void _run()
        {
            if (UnitContainer != null && _running)
            {
                //Store the info of timer
                if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_PATTERN))
                {
                    this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_PATTERN, JobTimeFormatter.Pattern);
                }
                if (!this.Parameters.AllKeys.Contains(JobDictionary.JOB_INTERNAL_TIMER_TIME))
                {
                    this.Parameters.Add(JobDictionary.JOB_INTERNAL_TIMER_TIME, JobTimeFormatter.RawTime);
                }

                UnitContainer.InvokeALL(this.Parameters);
            }
            GC.Collect();
            GC.WaitForFullGCComplete();
        }
Example #13
0
 public static int TestMain(IEnumerable <string> args)
 {
     System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions();
     try
     {
         using (UnitContainer container = new UnitContainer())
         {
             using (TestRunner runner = new TestRunner(container))
             {
                 runner.Run(args);
                 return(runner.ExitCode);
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error in Test Harness!");
         Console.WriteLine(ex.ToString());
         return(101);
     }
 }
Example #14
0
    void Spawn()
    {
        UnitContainer container = GameObject.FindObjectOfType <UnitContainer>();

        for (int y = 0; y < unitSpawningInfo.height; y++)
        {
            for (int x = 0; x < unitSpawningInfo.width; x++)
            {
                Color pixelColor = unitSpawningInfo.GetPixel(x, y);

                foreach (ColorToPrefav m in colorMappings)
                {
                    if (pixelColor == m.color)
                    {
                        Unit newUnit = m.prefav.GetComponent <Unit>();

                        GameObject newObject = Instantiate(m.prefav, new Vector3(x, y, 0), Quaternion.identity, container.transform);
                        container.unitList.Add(newUnit);
                    }
                }
            }
        }
    }
Example #15
0
 public void doAction(Game game)
 {
     InputContainer.getInstance().Add(new ShootInput(game, UnitContainer.getInstance().objects));
 }
Example #16
0
 public void Init(UnitContainer unit)
 {
     InnerInit(unit);
     ExternInit();
 }
Example #17
0
 protected virtual void InnerInit(UnitContainer unit)
 {
     m_Unit = unit;
 }
 PlayerMainControl Create(Player player, TypePlayer type, UnitContainer unit)
 {
     return(new PlayerMainControl(player, unit, ManagerUnitUI.GetUnitUI(), ManagerUnitUI.GetPersistentDataUI(type)));
 }
 void Awake()
 {
     m_Unit = GetComponentInChildren <UnitContainer>();
     Weapon = GetComponentInChildren <PropertiesWeapon>();
 }
 private void Awake()
 {
     m_Unit = GetComponentInChildren <UnitContainer>();
 }
Example #21
0
 public void SetMainTarget(GameObject target)
 {
     m_Target = target.GetComponent <UnitContainer>();
 }
Example #22
0
 private void OnDestroy()
 {
     m_Target = null;
     m_Targets.Clear();
 }
 void Awake()
 {
     m_Unit    = GetComponentInChildren <UnitContainer>();
     m_Renders = GetComponentsInChildren <Renderer>();
 }
 // Use this for initialization
 void Start()
 {
     units = UnitContainer.Load(filePath);
 }