IsPlaying() публичный Метод

public IsPlaying ( string _name = "" ) : bool
_name string
Результат bool
Пример #1
0
 void OnHitedHandler()
 {
     if (!body.IsPlaying())
     {
         isHited = false;
     }
 }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (anim.IsPlaying())
        {
            if (anim.GetCurFrameIndex() < 3)
            {
                if (isWithFire)
                {
                    fire.localPosition = firePos[anim.GetCurFrameIndex()];
                }
            }
            else
            {
                if (!isArrowOut)
                {
                    isArrowOut = true;
                    archerCtrl.ShowArrowUp(index);

                    if (isWithFire)
                    {
                        fire.gameObject.SetActive(false);
                    }

                    SoundController.Instance.PlaySound("00001");
                }
            }
        }
    }
Пример #3
0
    void OnIdleHandle()
    {
        if (!head.IsPlaying("Idle"))
        {
            head.Play("Idle");
            body.Play("Idle");
            horse.Play("Idle");
        }

        if (WarSceneController.state == WarSceneController.State.Running)
        {
            if (side == WarSceneController.WhichSide.Left)
            {
                timeTick += Time.deltaTime;
                if (timeTick >= leftGeneralIdleTime)
                {
                    timeTick = 0;
                    if (!armyAssaultFlag)
                    {
                        armyAssaultFlag = true;

                        GeneralInfo rGCtrl = Informations.Instance.GetGeneralInfo(WarSceneController.rightGeneralIdx);
                        if (gInfo.healthCur < 20 && gInfo.soldierCur + gInfo.knightCur < 10 &&
                            (rGCtrl.healthCur > 50 ||
                             rGCtrl.soldierCur + rGCtrl.knightCur > 10) &&
                            warCtrl.rightGeneral.GetState() != State.Escape)
                        {
                            warCtrl.SetArmyEscape(WarSceneController.WhichSide.Left);
                            return;
                        }

                        leftGeneralIdleTime = Random.Range(2, 10);
                        if (gInfo.soldierCur + gInfo.knightCur > 0)
                        {
                            warCtrl.SetArmyAssault(WarSceneController.WhichSide.Left);
                        }
                    }
                    else
                    {
                        SetRun();
                    }
                }
            }
        }
    }
Пример #4
0
    public void SetPause()
    {
        if (anim == null)
        {
            anim = GetComponent <exSpriteAnimation>();
        }

        if (anim != null && anim.IsPlaying())
        {
            anim.Pause();
        }
    }
Пример #5
0
 // Update is called once per frame
 void Update()
 {
     if (!anim.IsPlaying(anim.defaultAnimation.name))
     {
         timeTick += Time.deltaTime;
         if (timeTick < 0.5f)
         {
             sprite.color = new Color(1, 1, 1, 1 - timeTick * 2);
         }
         else
         {
             Destroy(gameObject);
         }
     }
 }
Пример #6
0
        public void Update()
        {
            // If the character can revive
            if (IsDead() && CanRevive())
            {
                ReviveTimeCurrent += Time.deltaTime;
                if (ReviveTimeCurrent >= ReviveTime)
                {
                    Revive();
                    ReviveTimeCurrent = 0;
                }
            }

            // If the character can regenerate
            if (CurrentHealth < TotalHealth && !IsDead() && CanRegenerate())
            {
                RegenerationTimeCurrent += Time.deltaTime;
                // Time lapsed after being hit
                if (RegenerationTimeCurrent >= RegenerationTime)
                {
                    RegenerationStepTimeCurrent += Time.deltaTime;
                    // Delay between each regeneration
                    if (RegenerationStepTimeCurrent >= RegenerationStepTime)
                    {
                        CurrentHealth += RegenerationStep;
                        UpdateHealthDisplay();
                        RegenerationStepTimeCurrent = 0;
                    }
                }
            }

            // Time calculation for delay attack time
            attackDelayTimer += Time.deltaTime;
            if (attackDelayTimer >= attackDelayTotalTime)
            {
                canAttack        = true;
                attackDelayTimer = 0;
            }

            // Attack type calculation
            //SetAttackTypeToExecute(0);

            distanceTimer += Time.deltaTime;
            if (distanceTimer >= distanceUpdateInterval)
            {
                GetDistance();
                distanceTimer = 0;
            }

            // Reset attack animation
            if (Animations != null && !Animations.IsPlaying(CurrentAnimation))
            {
                PlayingAttack    = false;
                CurrentAnimation = "";
            }

            /*
             * // Health bar timer
             * if (DisplayHealthText)
             * {
             *      healthBarTimer += Time.deltaTime;
             *      if (healthBarTimer >= Constants.DISPLAY_TEXT_HEALTH_TIME)
             *      {
             *              Destroy(HealthDisplay);
             *              DisplayHealthText = false;
             *              healthBarTimer = 0;
             *      }
             * }*/
        }
Пример #7
0
    // Update is called once per frame
    void Update()
    {
        if (WarSceneController.isGamePause)
        {
            return;
        }

        if (WarSceneController.state == WarSceneController.State.Beginning ||
            WarSceneController.state == WarSceneController.State.Menu ||
            WarSceneController.state == WarSceneController.State.End ||
            WarSceneController.state == WarSceneController.State.Assault)
        {
            return;
        }

        if (state == State.Dead)
        {
            OnDyingHandler();
            return;
        }

        if (isMagicLock)
        {
            timeCoolDownTick -= Time.deltaTime;
            if (timeCoolDownTick <= 0)
            {
                isMagicLock      = false;
                timeCoolDownTick = 0;
                anim.Resume();
            }
            return;
        }

        if (isParrying)
        {
            OnParryHandler();
        }

        if (isFighting)
        {
            OnFightingAct();
            return;
        }

        if (timeCoolDownTick > 0)
        {
            timeCoolDownTick -= Time.deltaTime;
            if (timeCoolDownTick <= 0)
            {
                timeCoolDownTick = 0;
            }
            else
            {
                return;
            }
        }

        if (isFighting || isParrying)
        {
            return;
        }

        switch (state)
        {
        case State.Idle:
        {
            if (!anim.IsPlaying("Idle"))
            {
                anim.Play("Idle");
            }

            if (CheckCanFight())
            {
                return;
            }

            RangeSolidersFightCheck();
        }
        break;

        case State.Running:
        {
            if (!anim.IsPlaying("Run"))
            {
                anim.Play("Run");
            }

            if (WarSceneController.state == WarSceneController.State.Dead)
            {
                SetRandomRun(transform.localPosition, false);
                return;
            }

            if (targetEnemy != null &&
                ((side == WarSceneController.WhichSide.Left && transform.localPosition.x - targetEnemy.localPosition.x > -100) ||
                 side == WarSceneController.WhichSide.Right && transform.localPosition.x - targetEnemy.localPosition.x < 100))
            {
                Vector3 posBK     = transform.localPosition;
                Vector3 targetPos = Vector3.zero;

                if (transform.localPosition.x > targetEnemy.localPosition.x)
                {
                    targetPos = new Vector3(targetEnemy.localPosition.x + hitDistance - locationStepX,
                                            targetEnemy.localPosition.y, targetEnemy.localPosition.z);
                }
                else
                {
                    targetPos = new Vector3(targetEnemy.localPosition.x - hitDistance + locationStepX,
                                            targetEnemy.localPosition.y, targetEnemy.localPosition.z);
                }

                int x = (int)((targetPos.x + manPosMaxX) / locationStepX);
                int y = (int)((targetPos.y + manPosMaxY) / locationStepY);
                if (warCtrl.GetLocationFlag(x, y) != 0 && warCtrl.GetLocationFlag(x, y) != index)
                {
                    SetRandomRun(targetPos, false);
                    return;
                }

                transform.localPosition = Vector3.MoveTowards(transform.localPosition,
                                                              targetPos, runSpeed * Time.deltaTime);

                if ((transform.localPosition.x > posBK.x && transform.localScale.x > 0) ||
                    (transform.localPosition.x < posBK.x && transform.localScale.x < 0))
                {
                    transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
                }

                if (transform.localPosition == targetPos)
                {
                    if (isEnemyGeneral == false ||
                        (side == WarSceneController.WhichSide.Left && (transform.localPosition.x > targetEnemy.localPosition.x ||
                                                                       (transform.localPosition.x < targetEnemy.localPosition.x &&
                                                                        Vector3.Distance(warCtrl.leftGeneral.transform.localPosition, warCtrl.rightGeneral.transform.localPosition) > 200))) ||
                        (side == WarSceneController.WhichSide.Right && (transform.localPosition.x < targetEnemy.localPosition.x ||
                                                                        (transform.localPosition.x > targetEnemy.localPosition.x &&
                                                                         Vector3.Distance(warCtrl.leftGeneral.transform.localPosition, warCtrl.rightGeneral.transform.localPosition) > 200))))
                    {
                        CheckCanFight();
                    }
                    else
                    {
                        SetRandomRun(targetPos, false);
                    }
                }
            }
            else
            {
                Vector3 pos = transform.localPosition;

                if (side == WarSceneController.WhichSide.Left)
                {
                    pos = new Vector3(pos.x + runSpeed * Time.deltaTime, pos.y, pos.z);
                    if (transform.localScale.x > 0)
                    {
                        transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
                    }
                }
                else
                {
                    pos = new Vector3(pos.x - runSpeed * Time.deltaTime, pos.y, pos.z);
                    if (transform.localScale.x < 0)
                    {
                        transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
                    }
                }

                pos.x = Mathf.Clamp(pos.x, -WarSceneController.manPosMaxX + 100, WarSceneController.manPosMaxX - 100);
                transform.localPosition = pos;
            }

            RangeSolidersFightCheck();
        }
        break;

        case State.RandomRun:
        {
            if (!anim.IsPlaying("Run"))
            {
                anim.Play("Run");
            }

            transform.localPosition = Vector3.MoveTowards(transform.localPosition,
                                                          targetPosition, runSpeed * Time.deltaTime);
            if (transform.localPosition == targetPosition)
            {
                if (!isOnRandomRun)
                {
                    SetRun();
                }
                else
                {
                    SetRandomRun(randomRunPos, true);
                }
            }
        }
        break;

        case State.MovingBack:
        {
            if (!anim.IsPlaying("Run"))
            {
                anim.Play("Run");
            }

            Vector3 pos = transform.localPosition;
            if (side == WarSceneController.WhichSide.Left)
            {
                pos = new Vector3(pos.x - runSpeed * Time.deltaTime, pos.y, pos.z);
            }
            else
            {
                pos = new Vector3(pos.x + runSpeed * Time.deltaTime, pos.y, pos.z);
            }

            pos.x = Mathf.Clamp(pos.x, -WarSceneController.manPosMaxX + 100, WarSceneController.manPosMaxX - 100);
            transform.localPosition = pos;
        }
        break;

        case State.Escape:
            if (!anim.IsPlaying("Run"))
            {
                anim.Play("Run");
            }

            if (side == WarSceneController.WhichSide.Left)
            {
                transform.localPosition = new Vector3(transform.localPosition.x - runSpeed * Time.deltaTime,
                                                      transform.localPosition.y, transform.localPosition.z);

                if (transform.localPosition.x <= -WarSceneController.manPosMaxX + WarSceneController.locationStepX)
                {
                    Destroy(gameObject);
                    Destroy(mapPoint.gameObject);
                }
                else if (transform.localPosition.x <= -WarSceneController.manPosMaxX + 100)
                {
                    float transparent = (transform.localPosition.x + WarSceneController.manPosMaxX) / 100f;
                    anim.GetComponent <exSprite>().color = new Color(1, 1, 1, transparent);
                }
            }
            else
            {
                transform.localPosition = new Vector3(transform.localPosition.x + runSpeed * Time.deltaTime,
                                                      transform.localPosition.y, transform.localPosition.z);

                if (transform.localPosition.x >= WarSceneController.manPosMaxX - WarSceneController.locationStepX)
                {
                    Destroy(gameObject);
                    Destroy(mapPoint.gameObject);
                }
                else if (transform.localPosition.x >= WarSceneController.manPosMaxX - 100)
                {
                    float transparent = (WarSceneController.manPosMaxX - transform.localPosition.x) / 100f;
                    anim.GetComponent <exSprite>().color = new Color(1, 1, 1, transparent);
                }
            }
            break;
        }

        CheckLocationState();
    }
Пример #8
0
    void CalcDirection()
    {
        if (route == null || route.Count == 0)
        {
            return;
        }

        Vector3 target    = route[0];
        Vector3 targetDir = target - transform.position;
        Vector3 forward   = Vector3.right;
        float   angle     = Vector3.Angle(targetDir, forward);
        int     flag      = 0;

        if (angle <= 30)
        {
            flag = 0;
        }
        else if (angle > 150)
        {
            flag = 1;
        }
        else if (angle > 30 && angle <= 90)
        {
            if (target.y >= transform.position.y)
            {
                flag = 2;
            }
            else
            {
                flag = 4;
            }
        }
        else if (angle > 90 && angle <= 150)
        {
            if (target.y > transform.position.y)
            {
                flag = 3;
            }
            else
            {
                flag = 5;
            }
        }

        exSprite          moveSprite = GetComponent <exSprite>();
        exSpriteAnimation moveAnim   = GetComponent <exSpriteAnimation>();
        exSprite          flagSprite = flagCtrl.GetComponent <exSprite>();
        BoxCollider       flagCol    = flagCtrl.GetComponent <BoxCollider>();

        if (flag % 2 == 0)
        {
            if (!isHFlipped)
            {
                isHFlipped = true;
                moveSprite.HFlip();
                flagSprite.HFlip();
                flagCol.center = new Vector3(-flagCol.center.x, flagCol.center.y, flagCol.center.z);
            }
        }
        else
        {
            if (isHFlipped)
            {
                isHFlipped = false;
                moveSprite.HFlip();
                flagSprite.HFlip();
                flagCol.center = new Vector3(-flagCol.center.x, flagCol.center.y, flagCol.center.z);
            }
        }

        Vector3 pos = Vector3.zero;

        flag /= 2;

        switch (state)
        {
        case ArmyState.Running:
            animName = animNames[flag];
            pos      = flagPos[flag];
            break;

        case ArmyState.Escape:
            animName = animNames[flag + 3];
            pos      = flagPos[flag + 6];
            break;

        case ArmyState.Victory:
            animName = animNames[flag + 6];
            pos      = flagPos[flag * 3 + 9];
            break;
        }

        if (!moveAnim.IsPlaying(animName))
        {
            moveAnim.Play(animName);
        }

        if (!isHFlipped)
        {
            pos.x = -pos.x;
        }
        flagCtrl.localPosition = pos;
    }