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; }
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; }
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; } } }
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; } }
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; }
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); }
public void AddRangeTask(RangeTask task) { battleManager.AddRangeTask(task); }
public void AddRangeTask(RangeTask task) { pendingRangeTask.Add(task); }