public void CommandComplete(TurnBasedCharacterTemplate template)
 {
     if (template == null || template.TurnBased.ActionPoints == 0)
     {
         if (_current != null)
         {
             _current.Entity.Post(new EndTurnEvent(_current.Entity));
             if (_current.IsPlayer())
             {
                 World.Get <PlayerTurnBasedSystem>().TurnEnd(_current);
             }
             else
             {
                 World.Get <NpcTurnBasedSystem>().TurnEnd(_current);
             }
         }
         _turnTemplates.Run(_findCurrentFastest);
         if (_current == null)
         {
             NewTurn();
         }
     }
     else
     {
         if (_current != template)
         {
             _current = template;
             StartTurn();
         }
         else
         {
             RunTurn();
         }
     }
 }
Example #2
0
 public void OnPeriodicUpdate()
 {
     for (int i = 0; i < _occupiedCells.Count; i++)
     {
         _occupiedCells[i].Occupied = null;
     }
     _occupiedCells.Clear();
     _templateList.Run(_del);
 }
Example #3
0
 public void OnSystemUpdate(float dt, float unscaledDt)
 {
     if (_flyingList == null)
     {
         _flyingList = EntityController.GetTemplateList <FlyingTemplate>();
     }
     if (_flyingList != null)
     {
         _flyingList.Run(_del);
     }
 }
 public void OnFixedSystemUpdate(float dt)
 {
     if (_moverList != null)
     {
         _moverList.Run(_moverDel);
     }
     if (_frozen)
     {
         CheckRigidbodies();
     }
 }
Example #5
0
 public void OnPeriodicUpdate()
 {
     if (_occupyTemplates == null)
     {
         _occupyTemplates = EntityController.GetTemplateList <UnitOccupyingCellTemplate>();
     }
     if (Game.GameActive && !Game.Paused)
     {
         _sensorTemplates.Run(_sensorDel);
         _unitySensorTemplates.Run(_unitySensorDel);
     }
 }
Example #6
0
 public void OnSystemUpdate(float dt, float unscaledDt)
 {
     for (int i = _moveTweens.Count - 1; i >= 0; i--)
     {
         _moveTweens[i].Entity.Post(new SetTransformPosition(_moveTweens[i].Tr, _moveTweens[i].Tween.Get()));
         if (_moveTweens[i].Entity.Tags.Contain(EntityTags.RotateToMoveTarget))
         {
             var speed          = _moveTweens[i].Entity.Get <RotationSpeed>()?.Speed ?? 10;
             var targetRotation = Quaternion.LookRotation(_moveTweens[i].Tween.EndValue - _moveTweens[i].Tr.position);
             var rotation       = Quaternion.RotateTowards(_moveTweens[i].Tr.rotation, targetRotation, speed * TimeManager.DeltaTime);
             _moveTweens[i].Entity.Post(new SetTransformRotation(_moveTweens[i].Tr, rotation));
         }
         if (!_moveTweens[i].Tween.Active)
         {
             FinishMove(_moveTweens[i].Entity, _moveTweens[i].Tween.EndValue);
             _moveTweens.RemoveAt(i);
         }
     }
     _forwardMovers.Run(_forwardDel);
     _rotators.Run(_rotateDel);
     _simpleMovers.Run(_simpleDel);
     _arcMovers.Run(_arcDel);
 }
 public void OnFixedSystemUpdate(float dt)
 {
     _flyingList.Run(_del);
 }
Example #8
0
 public void OnSystemUpdate(float dt, float unscaledDt)
 {
     _list.Run(_del);
 }