Example #1
0
 public void RemoveItem(IJumper jumper)
 {
     if (_flyers.Contains(jumper))
     {
         _flyers.Remove(jumper);
     }
 }
Example #2
0
 private void OnCreatedHero(IHero hero)
 {
     _jumper           = (IJumper)hero;
     _jumper.OnJumped += (jumperJumped) => {
         _jumpSystem.AddItem(_jumper);
     };
 }
Example #3
0
        private void Move(IJumper jumper)
        {
            var tr        = jumper.transform;
            var pos       = tr.position;
            var direction = tr.forward;

            var eulerAngles = new Vector3(-_angleFly, tr.eulerAngles.y, 0);

            direction = Quaternion.Euler(eulerAngles) * Vector3.forward;
            var toPos        = pos + direction * _moveSpeed;
            var step         = _moveSpeed * Time.deltaTime;
            var nextPosition = Vector3.MoveTowards(pos, toPos, step);

            var maxY = _area.position.y + _area.lossyScale.y / 2;

            if (nextPosition.y > maxY)
            {
                nextPosition.y = maxY;
            }
            tr.position = nextPosition;

            var localPosition = tr.localPosition;

            localPosition.z  = 0;
            tr.localPosition = localPosition;
        }
Example #4
0
 /// <summary>
 /// We get the player from its tag.
 /// </summary>
 void Start()
 {
     MovingController         = GetComponent <AdvancedMovementController>();
     JumpingController        = GetComponent <AdvancedMovementController>();
     PlayerMovementController = GetComponent <AdvancedMovementController>();
     Transmitter = GetComponent <Transmitter>();
     ActionBank  = GetComponent <ActionBank>();
 }
Example #5
0
 public void AddItem(IJumper jumper)
 {
     if (!_flyers.Contains(jumper))
     {
         _flyers.Add(jumper);
         jumper.OnStopedJump += StopedJump;
         jumper.OnDestroyed  += () => { _flyers.Remove(jumper); };
     }
 }
Example #6
0
        private void Awake()
        {
            Application.quitting += HandleQuit;

            //NOTE: Silly me, forgot that default unity inspector apparently doesn't show
            //controls for interfaces - just hacking this together automagically.
            Gravity = GetComponent <IGravity>();
            Jumper  = GetComponent <IJumper>();
            Mover   = GetComponent <IMover>();
            Aimer   = GetComponent <IAimer>();
        }
Example #7
0
        private void OnEnable()
        {
            Grounder      = new Grounder(this);
            _mover        = new NewMover(this);
            _jumper       = new NewJumper(this);
            _playerLocker = new PlayerLocker(this);
            _glider       = new Glider(this);
            _attacker     = new BasicAttacker(this);

            Rigidbody.drag = PlayerParameters.BaseDrag;
            _canDash       = true;

            Grounder.Tick();
        }
Example #8
0
        static void Main(string[] args)
        {
            JumpFactory jumpFactory = new JumpFactory();

            IJumper car = jumpFactory.getJump("car");

            car.Jump();

            IJumper horse = jumpFactory.getJump("horse");

            horse.Jump();

            IJumper parachuter = jumpFactory.getJump("parachuter");

            parachuter.Jump();

            Console.ReadLine();
        }
Example #9
0
        private void Awake()
        {
            AttackerTimer.SetTimer(_playerParameters.TimeBetweenAttacks);
            _waitForSecondsDash = new WaitForSeconds(_playerParameters.TimeBetweenDashes);

            Grounder      = new Grounder(this);
            LifeSystem    = new LifeSystem(this);
            _mover        = new NewMover(this);
            _jumper       = new Jumper(this);
            _playerLocker = new PlayerLocker(this);
            _glider       = new Glider(this);
            _attacker     = new BasicAttacker(this);
            _wallJumper   = new WallJumper(this);

            Rigidbody = this.GetComponent <Rigidbody2D>();

            // _attackerList = new List<IAttacker>();
            // _attackerList.Add(new BasicAttacker(this));
            // _attackerList.Add(new StrongAttacker(this));
        }
Example #10
0
 private void StopedJump(IJumper jumper)
 {
     RemoveItem(jumper);
     jumper.OnStopedJump -= StopedJump;
 }
Example #11
0
 public IJumper AddJumper(IJumper jumper)
 {
     Snakes.Add(jumper);
     return(jumper);
 }