Example #1
0
    public void ShowPortalPurchaseUI(bool isShow, MoveTrigger moveTrigger = null)
    {
        if (isShow && (moveTrigger != null))
        {
            // Show PortalPurchase
            portalPurchaseTweenTrans.gameObject.SetActive(true);

            //portalPurchaseTweenTrans.startingVector = portalPurchaseTweenTrans.transform.localPosition;
            //portalPurchaseTweenTrans.endVector = inXPos_portalPurchaseUI;

            portalPurchaseTweenTrans.gameObject.transform.localPosition = inXPos_portalPurchaseUI;

            shardsAmountsToOpenPortal.text = GameStatics.GetPortalOpenCost(moveTrigger.portalType).ToString();
            CheckPortalPurchaseCostBlock(moveTrigger.portalType);

            currentSelectedPortalTrigger = moveTrigger;
        }
        else
        {
            portalPurchaseTweenTrans.startingVector = portalPurchaseTweenTrans.transform.localPosition;
            portalPurchaseTweenTrans.endVector      = outXPos_portalPurchaseUI;

            NoPortalPurchasePanel.SetActive(true);
            currentSelectedPortalTrigger = null;

            portalPurchaseTweenTrans.duration = 0.4f;
            portalPurchaseTweenTrans.Begin();
            portalPurchaseTweenTrans.defaultVector = portalPurchaseTweenTrans.startingVector;
        }


        IsShowingPortalPurchaseUI = isShow;
    }
Example #2
0
 private void Awake()
 {
     instance          = this;
     groundY           = ground.transform.position.y;
     parachuteTriggerY = parachuteTrigger.GetComponent <Collider>().bounds.center.y + parachuteTrigger.GetComponent <Collider>().bounds.extents.y;
     playerHeightY     = playerHeight.transform.position.y;
 }
Example #3
0
    public void SetInfo()
    {
        level.text = string.Format("LV.{0}", GameConfigs.SkillLevel(skillType));
        cost.text  = GameStatics.GetRequiredShardsForUpgrade(skillType).ToString();
        switch (skillType)
        {
        case GameStatics.SKILL_TYPE.MAXHP:

            int currentHPAmount = PlayerManager.Instance().PlayerStatus.MaxHP;
            expect.text = string.Format("{0} > {1}", currentHPAmount, currentHPAmount + (GameStatics.default_IncHP));

            break;

        case GameStatics.SKILL_TYPE.AIRTIME_DURATION:

            double currentDJCoolAmount = PlayerManager.Instance().PlayerStatus.AirTimeDuration;
            expect.text = string.Format("{0:0.0} > {1:0.0}", currentDJCoolAmount, currentDJCoolAmount + (GameStatics.default_IncAirTimeDuration));

            break;

        case GameStatics.SKILL_TYPE.SHARD_PULL_DIST:

            double currentSPDist = GameStatics.GetShardPullDistance();
            expect.text = string.Format("{0:0.0} > {1:0.0}", currentSPDist, currentSPDist + (GameStatics.default_IncShardsPullDistance));

            break;

        default:
            break;
        }

        SetUpgradeStatus();
    }
Example #4
0
 void CheckChase()
 {
     if (Vector3.Distance(this.transform.position, this.chasingTargetTrans.position)
         < GameStatics.GetShardPullDistance())
     {
         StartChasing();
     }
 }
Example #5
0
 private void Awake()
 {
     DontDestroyOnLoad(transform.gameObject);
     Instance        = this;
     groundLayerMask = 1 << LayerMask.NameToLayer("Ground");
     explosionPrefab = Resources.Load("Prefabs/BombingExplosion");
     boomBallObj     = Resources.Load("Prefabs/BombBall");
     playerObj       = Resources.Load("Prefabs/Player");
 }
Example #6
0
    // MonoBehaviour methods:
    private void Start()
    {
        m_Tiles = FindObjectsOfType <DragIt>();

        GameStatics.ChangePlayStatus();

        CheckLevelManagerValues();
        StartGame();
    }
Example #7
0
 void CheckPortalPurchaseCostBlock(PORTAL_TYPE portalType)
 {
     if (GameStatics.GetPortalOpenCost(portalType) < PlayerManager.Instance().PlayerStatus.CurrentMemoryShards)
     {
         // Pucharsable
         NoPortalPurchasePanel.SetActive(false);
     }
     else
     {
         NoPortalPurchasePanel.SetActive(true);
     }
 }
    private void LateUpdate()
    {
        var subSprites = Resources.LoadAll <Sprite>("Sprites/Hero/" + GameStatics.GetPlayerSpriteName(PlayerManager.Instance().CurrentPlayerSprite));

        string oldSpriteName = playerRenderer.sprite.name;
        var    newSprite     = Array.Find(subSprites, item => item.name == oldSpriteName);

        if (newSprite)
        {
            playerRenderer.sprite = newSprite;
        }

        UpdateAnimator();
    }
Example #9
0
    public void SetUpgradeStatus()
    {
        if (GameConfigs.SkillLevel(this.skillType) >= GameConfigs.MAXSkillLevel(this.skillType))
        {
            level.text = "LV.MAX";

            Color tColor = cost.color;
            tColor.a   = 0.4f;
            cost.color = tColor;

            upgradeStatus = GameStatics.UPGRADE_STATUS.MAX_LEVEL;

            switch (this.skillType)
            {
            case GameStatics.SKILL_TYPE.MAXHP:
                expect.text = PlayerManager.Instance().PlayerStatus.MaxHP.ToString();
                break;

            case GameStatics.SKILL_TYPE.AIRTIME_DURATION:
                expect.text = PlayerManager.Instance().PlayerStatus.AirTimeDuration.ToString();
                break;

            case GameStatics.SKILL_TYPE.SHARD_PULL_DIST:
                expect.text = GameStatics.GetShardPullDistance().ToString();
                break;

            default:
                break;
            }
        }
        else if (GameStatics.GetRequiredShardsForUpgrade(skillType) > PlayerManager.Instance().PlayerStatus.CurrentMemoryShards)
        {
            // 조각 부족
            Color tColor = cost.color;
            tColor.a   = 0.4f;
            cost.color = tColor;

            upgradeStatus = GameStatics.UPGRADE_STATUS.NOT_ENOUGH_SHARD;
        }
        else
        {
            // 업그레이드 가능
            Color tColor = cost.color;
            tColor.a   = 1f;
            cost.color = tColor;

            upgradeStatus = GameStatics.UPGRADE_STATUS.POSSIBLE;
        }
    }
Example #10
0
    public void OnCollideWithObject(GameObject detectedObj, Collider targetObj)
    {
        if (detectedObj.layer == LayerMask.NameToLayer("Bullet"))
        {
            BulletBase bullet = detectedObj.gameObject.GetComponentInParent <BulletBase>();

            if (targetObj.gameObject.layer == LayerMask.NameToLayer("Obstacle"))
            {
                // Bullet vs Wall
                if (bullet != null)
                {
                    // remove bullet
                    bullet.OnDestroyBullet();
                }
            }
            else if (targetObj.gameObject.layer == LayerMask.NameToLayer("Player"))
            {
                // Bullet vs Player

                if (bullet != null)
                {
                    // player damaged
                    float damage = GameStatics.GetBulletDamage(bullet.bulletType);
                    playerHealth.Value -= damage;

                    // remove bullet
                    bullet.OnDestroyBullet();
                }
            }
            else if (targetObj.gameObject.layer == LayerMask.NameToLayer("Box"))
            {
                Health boxHealth = targetObj.gameObject.GetComponentInParent <Health>();
                Wall   boxWall   = targetObj.gameObject.GetComponentInParent <Wall>();

                float damage = GameStatics.GetBulletDamage(bullet.bulletType);

                boxHealth.Damage(damage);
                boxWall.Count(bullet.bulletType);

                // Bullet vs Box
                if (bullet != null)
                {
                    // remove bullet
                    bullet.OnDestroyBullet();
                }
            }
        }
    }
Example #11
0
    public void OnDamaged(DAMAGED_TYPE damageType)
    {
        SetAirTimeFinish();
        playerStatus.CurrentHP -= GameStatics.GetDamagePoints(damageType);
        playerController.ShowDamageText(GameStatics.GetDamagePoints(damageType));
        switch (damageType)
        {
        case DAMAGED_TYPE.SPIKE:
            TopMostControl.Instance().StartGlobalLightEffect(Color.red, 1f, 0.2f);
            SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall].clip);
            break;

        case DAMAGED_TYPE.FALLING_GROUND:
            TopMostControl.Instance().StartGlobalLightEffect(Color.red, 2f, 0.4f);
            SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_fallGround], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_fallGround].clip);
            break;

        case DAMAGED_TYPE.PROJECTILE_SHOOTER1:
            TopMostControl.Instance().StartGlobalLightEffect(Color.red, 1f, 0.2f);
            SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall].clip);
            break;

        case DAMAGED_TYPE.PROJECTILE_SHOOTER2:
            TopMostControl.Instance().StartGlobalLightEffect(Color.red, 1f, 0.2f);
            SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_hitWall].clip);
            break;

        case DAMAGED_TYPE.EARTH_QUAKE:
            TopMostControl.Instance().StartGlobalLightEffect(Color.red, 2f, 0.4f);
            SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_fallGround], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_fallGround].clip);
            break;

        default:
            break;
        }

        if (onDamaged != null)
        {
            onDamaged(damageType);
        }
    }
Example #12
0
    public void OnClickPortalPurchase()
    {
        if (currentSelectedPortalTrigger != null)
        {
            if (GameStatics.GetPortalOpenCost(currentSelectedPortalTrigger.portalType) <= PlayerManager.Instance().PlayerStatus.CurrentMemoryShards)
            {
                // Open the portal
                PlayerManager.Instance().PlayerStatus.CurrentMemoryShards -= GameStatics.GetPortalOpenCost(currentSelectedPortalTrigger.portalType);
                GameConfigs.SetPortalStatus(currentSelectedPortalTrigger.portalType, true);
                GameConfigs.SetCurrentMemoryShards(PlayerManager.Instance().PlayerStatus.CurrentMemoryShards);

                currentSelectedPortalTrigger.SetPortal(true);

                StartGlobalLightEffect(Color.magenta, 4f, 0.6f);
                SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_powerUp], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_powerUp].clip);
                if (onCameraShake != null)
                {
                    onCameraShake(7);
                }
            }
        }
    }
Example #13
0
    private void OnTriggerStay2D(Collider2D collider)
    {
        if (GroundState == GroundState.air)
        {
            GroundState = GroundState.grounded;
        }

        //Trigger Sticky Function only if grounded/Sliding and touching a ground object
        if (GameStatics.IsInLayerMask(collider.gameObject.layer, GameStatics.layers["Ground"]) && groundState == GroundState.grounded && behaveState == BehaveState.slide)
        {
            //Calculate radius for distance to be sticky
            float awarenessRadius = awarenessCollider.radius * transform.localScale.x;

            //Get collisionDist between both colliders
            Vector3 closestHitPoint  = GameStatics.ClosestPointBetweenColliders(physicalCollider, collider);
            Vector3 collHitDirection = (closestHitPoint - transform.position).normalized;

            //Cast ground ray and check if hit ground
            Ray2D        groundRay    = new Ray2D(closestHitPoint, collHitDirection);
            RaycastHit2D groundRayHit = Physics2D.Raycast(groundRay.origin, groundRay.direction, awarenessRadius, GameStatics.layers["Ground"]);

            //If ground ray hit ground, stick Slugger to ground point and rotate
            if (groundRayHit.collider != null)
            {
                stickToGround(groundRayHit.point, groundRayHit.normal);
            }

            GroundState = GroundState.sticky;

            if (debugMode)
            {
                Debug.DrawRay(closestHitPoint, collHitDirection * awarenessRadius * 2, Color.yellow, 3);
            }
        }
        else if (behaveState == BehaveState.roll)
        {
            GroundState = GroundState.grounded;
        }
    }
Example #14
0
    public void CheckWin()
    {
        foreach (DragIt tile in m_Tiles)
        {
            if (tile.m_WinID != tile.m_CurrentID)
            {
                return;
            }
        }

        m_CanPlay = false;

        if (m_SelectedFirst != null)
        {
            AnimateSelectedTile(new Vector3(1, 1, 1));
        }

        int levelID = GameStatics.m_LevelID + 1;

        GameStatics.UnlockNextLevel();

        System.Action loadWinPanel = () => { m_WinPanel.SetActive(true); };
        Invoke(loadWinPanel.Method.Name, m_ShowWinPanelTime);
    }
 private void Awake()
 {
     GameStatics.Initialize();
 }
Example #16
0
    // Update is called once per frame
    void Update()
    {
        targetPos = player.transform.position;

        if (targetPos.y < GameStatics.GetCameraMinimumYAxis(StageLoader.CurrentStage))
        {
            targetPos.y = GetCameraMinimumYAxis(StageLoader.CurrentStage);
        }
        if (camFixedXAxis)
        {
            if (targetPos.x < levelMinXAxis)
            {
                targetPos.x = levelMinXAxis;
            }
            if (targetPos.x > levelMaxXAxis)
            {
                targetPos.x = levelMaxXAxis;
            }
        }

        // Stage3 Last Camera Move
        if (StageLoader.CurrentStage == 3)
        {
            if (player.transform.position.y > 1715 &&
                (player.transform.position.x > -3 && player.transform.position.x < 120))
            {
                // Last Jump
                targetPos.x = 82;
                targetPos.y = 1718;
            }
            else if (player.transform.position.y > 1700 &&
                     player.transform.position.x >= 120)
            {
                // Ending Trigger
                targetPos.x = 145;
                targetPos.y = 1720;

                if (!PlayerManager.Instance().IsTriggerEnding&& player.IsGround())
                {
                    PlayerManager.Instance().IsTriggerEnding = true;
                }
            }
        }

        // Stage 1 Tutorial
        if (GameConfigs.GetWatchedTutorial() == false)
        {
            if (StageLoader.CurrentStage == 1)
            {
                if (player.isFainting == false && player.IsGround() && TopMostControl.Instance().startShowTutorialPopup1 == false)
                {
                    TopMostControl.Instance().startShowTutorialPopup1 = true;
                    TopMostControl.Instance().PopupSingle.ShowPopup(
                        "<color=cyan>JUMP</color>",
                        "<color=yellow>Draw Finger</color> to decide the direction\n\n" +
                        "<color=yellow>Release</color> to Jump");
                }

                if (player.transform.position.x > 30 && TopMostControl.Instance().startShowTutorialPopup2 == false)
                {
                    TopMostControl.Instance().startShowTutorialPopup2 = true;
                    TopMostControl.Instance().PopupSingle.ShowPopup(
                        "<color=cyan>AIR TIME</color>",
                        "<color=yellow>Hold Touch</color> to slow time in the Air", () => {
                        TopMostControl.Instance().PopupSingle.ShowPopup(
                            "<color=cyan>DOUBLE JUMP</color>",
                            "<color=yellow>JUMP</color> in the Air time", () => {
                            GameConfigs.SetWatchedTutorial(true);
                        });
                    });
                }
            }
        }

        // Check Upgrade Status
        if (TopMostControl.Instance().GetGameUIStatus() == TOPUI_STATUS.GAMEOVER)
        {
            targetPos.y = player.transform.position.y + UpgradeUIYOffset;
        }

        if (IsShakingCamera == false)
        {
            cameraTransform.position = Vector2.Lerp(cameraTransform.position, targetPos, 0.2f);
            cameraTransform.position = new Vector3(cameraTransform.position.x, cameraTransform.position.y, -10f);
        }
    }