Esempio n. 1
0
 //make swork pick-up floating jumpPad
 public static void PickUpFloatingPad()
 {
     foreach (SwkSwork swork in AllSworks)
     {
         if (swork.CurrentState != SwkSwork.SworkStates.TargetInPlay)
         {
             continue;                                                         //skip swork if not in play
         }
         if (swork.Carrying)
         {
             continue;
         }
         foreach (SwkJumpPad jumpPad in AllJumpPads)
         {
             if (jumpPad.CurrentState != SwkJumpPad.JumpPadStates.Floating)
             {
                 continue;                                                           //skip jumpPad if not floating
             }
             if (Vector3.Distance(jumpPad.JmpPTran.position, swork.SwkTran.position) > SwkGame.Tweaks.JumpPad.ActivateJumpPadRange)
             {
                 continue;                  //skip jumppad if out-of-range
             }
             PickUpJumpPad(swork, jumpPad); //pick up jump
             _recentlyPickedUp = jumpPad;   //
             return;
         }
     }
 }
Esempio n. 2
0
        // makes 'jumpPad' a child of 'swork' and moves into position
        private static void PickUpJumpPad(SwkSwork swork, SwkJumpPad jumpPad)
        {
            jumpPad.JmpPTran.parent        = swork.transform;
            _desiredPos                    = Vector3.zero;
            _desiredPos.x                  = SwkGame.Tweaks.JumpPad.CarryPositionX;
            _desiredPos.y                  = SwkGame.Tweaks.JumpPad.CarryPositionY;
            jumpPad.JmpPTran.localPosition = _desiredPos;

            swork.Carrying = true;
            jumpPad.MakeCarrying();
        }
Esempio n. 3
0
        //explode swork
        public static void ExplodeTargetSwork(Transform holdingArea)
        {
            //explode targer
            if (CurrentTargetSwork.Carrying)
            {
                if (CurrentTargetSwork.OnGround)
                {
                }  //drop carrying
                else
                {
                }  //float carrying
            }
            CurrentGameState.CurrentControlState = GameState.ControlState.ManualControl;
            CurrentCamera.Focused = false;

            //explode nearby sworks
            foreach (SwkSwork swork in AllSworks)
            {
                if (swork.CurrentState != SwkSwork.SworkStates.TargetInPlay)
                {
                    continue;                                                          //check if possible for swork to explode
                }
                if (Vector3.Distance(CurrentTargetSwork.SwkTran.position, swork.SwkTran.position) > SwkGame.Tweaks.Swork.SworkExplosionEffectRange)
                {
                    continue;                                                                                                                                 //check if within range
                }
                if (swork.GetInstanceID() == CurrentTargetSwork.GetInstanceID())
                {
                    continue;                                                             //chat that 'isn't' target swork
                }
                if (swork.Carrying)
                {
                    //drop carrying
                }

                swork.MakeStandby(holdingArea.position);
            }

            //explode nearby jumppads
            foreach (SwkJumpPad jumpPad in AllJumpPads)
            {
                if (jumpPad.CurrentState == SwkJumpPad.JumpPadStates.Floating)
                {
                    continue;
                }
                if (Vector3.Distance(CurrentTargetSwork.SwkTran.position, jumpPad.JmpPTran.position) > SwkGame.Tweaks.Swork.SworkExplosionEffectRange)
                {
                    continue;
                }

                jumpPad.MakeFloating();
                StoredJumpPad = jumpPad;

                CurrentGameState.CurrentControlState = GameState.ControlState.WaitingForNextPickup;
            }


            StandBySworksQueue.Enqueue(CurrentTargetSwork);
            CurrentTargetSwork.MakeStandby(holdingArea.position);

            CurrentTargetSwork = null;
        }