Exemplo n.º 1
0
    public void SwitchToSelected(GPlayerChess chess)
    {
        switch (inputState)
        {
        case InputState.Skill:
            selectedSkill = null;
            selectedChess.CancelSkill();
            selectTask.bPaused = false;
            curTask.Abort();
            curTask = null;
            break;

        case InputState.Selected:
            curTask.Abort();
            curTask = null;
            Select(chess);
            break;

        case InputState.ReadyToSelect:
            Select(chess);
            break;

        default:
            Debug.LogError("ErrorState");
            break;
        }
        ;
        curTask = CreateMoveCommand(chess);
        curTask.CreateFloorHUD(new Color(0, 1, 0, 0.8f));
        curTask.Begin();
        inputState = InputState.Selected;
    }
Exemplo n.º 2
0
    public void SwitchToReadyToSelect()
    {
        switch (inputState)
        {
        case InputState.Skill:
            selectedSkill = null;
            selectedChess.CancelSkill();
            selectTask.bPaused = false;
            goto case InputState.Selected;

        case InputState.Selected:
            curTask.Abort();
            curTask = null;
            DeSelect();
            break;

        case InputState.None:
            selectTask.bPaused = false;
            break;

        case InputState.ReadyToSelect:
            return;

        default:
            Debug.LogError("ErrorState");
            break;
        }
        ;
        inputState = InputState.ReadyToSelect;
    }
Exemplo n.º 3
0
    private void UpdateRangeTask()
    {
        int taskCount = pendingRangeTask.Count;

        for (int i = taskCount - 1; i >= 0; --i)
        {
            RangeTask task  = pendingRangeTask[i];
            float     range = task.InternalUpdate();
            if (range > 0)
            {
                RangeBulletEliminate(task.rangePos, range, task.getPoint);
                if (task.enemyDamage > 0)
                {
                    RangeEnemyDamage(task.rangePos, range, task.enemyDamage);
                }
            }
            if (pendingRangeTask[i].Expired())
            {
                pendingRangeTask.RemoveAt(i);
            }
            else
            {
                pendingRangeTask[i] = task;
            }
        }
    }
Exemplo n.º 4
0
    private void DoDeath()
    {
        float a = playerRenderer.color.a;

        a -= deathAlphaDelta * Time.timeScale;
        if (a > 0)
        {
            transform.localScale += deathScaleDelta * Time.timeScale;
            playerRenderer.color  = new Color(1, 1, 1, a);
        }
        else
        {
            RangeTask newTask = new RangeTask(transform.position, deathEliminateDelay, deathEliminateDuration, deathEliminateRadiusSpeed, false, deathEliminateDamage);
            BattleStageManager.Instance.AddRangeTask(newTask);
            transform.position   = new Vector3(0, rebornStartHeight);
            transform.localScale = Vector3.one;
            playerRenderer.color = Color.white;
            subWeapon.gameObject.SetActive(true);
            subWeapon.transform.position = transform.position;
            reborn = true;

            playerMgr.playerLife  = Mathf.Max(playerMgr.playerLife - 1, 0);
            playerMgr.playerSpell = 3;
        }
    }
Exemplo n.º 5
0
    public void SwitchToSkill(PlayerSkill skill)
    {
        switch (inputState)
        {
        case InputState.Selected:
        case InputState.Skill:
            curTask.Abort();
            curTask = null;
            break;

        default:
            Debug.LogError("ErrorState");
            break;
        }
        ;
        selectTask.bPaused = true;
        curTask            = skill.CallGetPlayerInput();
        selectedChess.PrepareSkill(skill);
        curTask.CreateFloorHUD(new Color(0, 1, 1, 0.8f));
        curTask.Begin();
        inputState = InputState.Skill;
    }
Exemplo n.º 6
0
    protected RangeTask GetInputTargets(params SkillTarget[] targetType)
    {
        Func <int, GActor, bool> checker =
            (index, target) =>
        {
            switch (targetType[index])
            {
            case SkillTarget.Chess:
                return(target is GChess);

            case SkillTarget.Floor:
                return(target is GFloor);

            case SkillTarget.Actor:
                return(true);

            case SkillTarget.PlayerChess:
                return(target is GPlayerChess);

            case SkillTarget.ExceptSelfChess:
                return(target is GChess && target != owner);

            case SkillTarget.EnemyChess:
                return(target is GAIChess);

            case SkillTarget.EmptyFloor:
                return(target is GFloor && GridManager.instance.GetChess(target.location) == null);

            default:
                throw new NotImplementedException();
            }
        };
        var res = new RangeTask(GetSelectRange, (t) => PlayerControlManager.instance.PerformChessSkill(owner as GPlayerChess, this, t), targetType.Length, checker);

        res.eTaskAbort.AddListener(OnCancel);
        return(res);
    }
Exemplo n.º 7
0
 public void AddRangeTask(RangeTask task)
 {
     battleManager.AddRangeTask(task);
 }
Exemplo n.º 8
0
 public void AddRangeTask(RangeTask task)
 {
     pendingRangeTask.Add(task);
 }