//エンドレスモード時のターン表示 public static void DisplayTurn() { turnComponent.text = TurnAndPhase.CheckEndlessTurn() + "ターン"; turnComponent.enabled = true; turnBackComponent.enabled = true; homeComponent.enabled = true; }
void OnMouseExit() { Status.PlayerStatus(false); if (!TurnAndPhase.OnField() && TurnAndPhase.OnPlayer()) { Floor.ResetPanel(); } }
//マウスオーバ void OnMouseEnter() { Music.PlaySE(Music.Clip.Dun); Status.PlayerStatus(true); if (!TurnAndPhase.OnField() && TurnAndPhase.OnPlayer()) { Floor.ShowSelecting(Unit.playerPosition, Unit.SumParameter(-1, Unit.StatusName.DIS)); } }
//UI用マウス操作 //*他のとこでも流用できるかもかも public void OnPointerEnter(PointerEventData eventData) { if (!TurnAndPhase.OnAction()) { Music.PlaySE(Music.Clip.Over); ChangeColor(0); Status.CommandStatus(true, type, variety); } }
//テキストの表示 public static void ShowLog(int num) { textComponent.text = logText[num]; timer = 0; VisibleObject(true); //文字表示だけは更新しておく turnComponent.text = TurnAndPhase.CheckEndlessTurn() + "ターン"; }
//マウスオーバ void OnMouseEnter() { Music.PlaySE(Music.Clip.Dun); Status.EnemyStatus(true, enemyID); if (!TurnAndPhase.OnField() && TurnAndPhase.OnPlayer()) { Floor.ShowSelecting(Unit.GetEnemyGamePosition(enemyID), Unit.enemyParameterList[enemyID][(int)Unit.StatusName.DIS]); } }
//バフをかける public void BuffPlayer() { action = (int)Action.Buff; TurnAndPhase.StartAction(); Log.ShowLog(4); Status.PowerUpPlayer(); animator.SetTrigger("BuffTrigger"); swingFlag = true; timer = 0; }
// Update is called once per frame void Update() { Vector2 vec = Input.mousePosition; //ホイール押下中のみカメラ移動 if (Input.GetMouseButton((int)Click.Wheel)) { transPosition = vec - position; GameCamera.TrackMouse(); } if (Input.GetMouseButtonUp((int)Click.Wheel)) { GameCamera.TrackStop(); } //右クリック if (Input.GetMouseButtonDown((int)Click.Right)) { if (!CheckMouseOutMenu()) { //メニュー上ならコマンドをソート Menu.SortMenu(); } else { if (TurnAndPhase.OnField()) { if (GameCamera.DoTrackPlayer()) { //コマンド中ならキャンセル TurnAndPhase.CancelAction(); } else { GameCamera.TrackPlayer(); } } else { //それ以外ならカメラをプレイヤーに返す GameCamera.TrackPlayer(); } } } float scroll = Input.GetAxis("Mouse ScrollWheel"); if (CheckMouseOutMenu()) { GameCamera.FrontBehind(scroll); } position = vec; }
//敵のターン開始 public void FightEnemy() { //死んでるか if (dead) { Unit.TurnEnemy(false); return; } //移動の必要性 if (enemyVerstion == 4 && bossMove == 0) { int other = 0; for (int i = 0; i < 5; i++) { if (Unit.DeadEnemy(i)) { other++; } } if (other > 3) { bossMove++; FightEnemy(); return; } if (Unit.playerPosition.x > 5 && Unit.playerPosition.x < 9 && Unit.playerPosition.y > 0 && Unit.playerPosition.y < 7) { AttackEnemy(); return; } bossMove++; } float dis = enemyVerstion == 4 ? 2f : 1f; if (Vector2.Distance(Unit.GetEnemyGamePosition(enemyID), Unit.playerPosition) > dis) { TurnAndPhase.SetEnemyCommand(TurnAndPhase.Type.Move); Floor.ShowSelecting(Unit.GetEnemyGamePosition(enemyID), Unit.enemyParameterList[enemyID][(int)Unit.StatusName.DIS]); root.Clear(); Floor.NearPlayer(ref root); Unit.ChangePosition(enemyID, root[0]); moveCounter = 0; rootCounter = root.Count; FollowRoot(root[rootCounter - 1]); action = (int)Action.Move; animator.SetBool("EnemyMove", true); Music.PlaySELoop(Music.Clip.Walk); } else { AttackEnemy(); } }
public void OnPointerClick(PointerEventData eventData) { if (eventData.button != PointerEventData.InputButton.Left) { return; } if (!TurnAndPhase.OnAction()) { SendMessage("ActionCommand"); } }
//移動開始 public void MovePlayer(List <Vector2> list) { root = list; moveCounter = 0; rootCounter = root.Count; action = (int)Action.Move; TurnAndPhase.StartAction(); FollowRoot(list[rootCounter - 1]); animator.SetBool("PlayerMove", true); Music.PlaySELoop(Music.Clip.Dash); }
void OnMouseDown() { if (TurnAndPhase.OnAction()) { return; } if (!Mouse.CheckMouseOutMenu()) { return; } if (mode) { switch (TurnAndPhase.type) { case (int)TurnAndPhase.Type.Move: if (Unit.playerPosition == grid) { break; } Unit.playerPosition = grid; GameCamera.TrackPlayer(); player.SendMessage("MovePlayer", root); break; case (int)TurnAndPhase.Type.Attack: if (Unit.GetEnemyNum(grid) == -1) { break; } player.SendMessage("AttackPlayer", grid); break; case (int)TurnAndPhase.Type.Buff: player.SendMessage("BuffPlayer"); break; case (int)TurnAndPhase.Type.Debuff: if (Unit.GetEnemyNum(grid) == -1) { break; } player.SendMessage("DebuffPlayer", grid); break; case (int)TurnAndPhase.Type.Extra: Unit.playerPosition = grid; GameCamera.TrackDig(); CutIn.StartCut(player); //player.SendMessage("ExtraPlayer"); break; } } }
//デバフをかける public void DebuffPlayer(Vector2 vecGame) { action = (int)Action.Debuff; TurnAndPhase.StartAction(); Log.ShowLog(5); FollowRoot(vecGame); Unit.ChangeDirectionEnemy(vecGame); enemyVec = vecGame; animator.SetTrigger("DebuffTrigger"); swingFlag = true; timer = 0; }
// Use this for initialization void Start() { ReadWrite.SceneReader(KEY); Log.InitGameID(KEY); Unit.Init(KEY); SummonCursor(); SummonFloor(); TurnAndPhase.InitVariable(); GameCamera.SetCamera(); Music.Init(0); timer = 0; firstAnim = false; lastAnim = false; }
//エネミー追加 private static void AddEnemy(int ver, int x, int y, bool dig) { int id = enemyParameterList.Count; Vector2 vec = new Vector2(x, y); int[] param = ReadWrite.GetEnemyParameter(ver); //enemyParameterList.Add(ReadWrite.GetEnemyParameter(ver)); if (gameKey == 5 - 1) { int turn = TurnAndPhase.CheckEndlessTurn() + 1; if (turn % 10 == 0) { param[(int)StatusName.HP] += 50 * (turn / 10 - 1); param[(int)StatusName.ATK] += 5 * (turn / 10 - 1); param[(int)StatusName.DEF] += 10 * (turn / 10 - 1); param[(int)StatusName.CDEX] += Mathf.Min(95, 2 * (turn / 10 - 1)); param[(int)StatusName.CPOW] += 10 * (turn / 10 - 1); /* * enemyParameterList[id][(int)StatusName.HP] += 50 * (turn / 10 - 1); * enemyParameterList[id][(int)StatusName.ATK] += 5 * (turn / 10 - 1); * enemyParameterList[id][(int)StatusName.DEF] += 10 * (turn / 10 - 1); * enemyParameterList[id][(int)StatusName.CDEX] += Mathf.Min(95, 2 * (turn / 10 - 1)); * enemyParameterList[id][(int)StatusName.CPOW] += 10 * (turn / 10 - 1); */ } else if (turn % 3 == 0) { param[(int)StatusName.HP] += 10 * (turn / 3 - 1); param[(int)StatusName.ATK] += 2 * (turn / 3 - 1); param[(int)StatusName.DEF] += 2 * (turn / 5 - 1); param[(int)StatusName.CPOW] += 5 * (turn / 10 - 1); /* * enemyParameterList[id][(int)StatusName.HP] += 10 * (turn / 3 - 1); * enemyParameterList[id][(int)StatusName.ATK] += 2 * (turn / 3 - 1); * enemyParameterList[id][(int)StatusName.DEF] += 2 * (turn / 5 - 1); * enemyParameterList[id][(int)StatusName.CPOW] += 5 * (turn / 10 - 1); */ } } enemyParameterList.Add(param); enemyStatusList.Add(MakeStatus(enemyParameterList[id])); enemyPositionList.Add(vec); SummonEnemy(id, ver, vec, dig); }
//識別ごとの行動 public void ActionCommand() { int[] eff; TurnAndPhase.SetCommand(commandNum, type, variety); switch (type) { case (int)TurnAndPhase.Type.TurnEnd: TurnAndPhase.EndAction(); break; case (int)TurnAndPhase.Type.Attack: eff = ReadWrite.CallCommandEffect(type, variety); Floor.ShowSelecting(Unit.playerPosition, eff[1]); break; case (int)TurnAndPhase.Type.Move: eff = ReadWrite.CallCommandEffect(type, variety); Floor.ShowSelecting(Unit.playerPosition, Unit.SumParameter(-1, Unit.StatusName.DIS) + eff[0]); break; case (int)TurnAndPhase.Type.Buff: Floor.ShowSelecting(Unit.playerPosition, 0); GameCamera.TrackPlayer(); break; case (int)TurnAndPhase.Type.Debuff: eff = ReadWrite.CallCommandEffect(type, variety); Floor.ShowSelecting(Unit.playerPosition, eff[2]); break; case (int)TurnAndPhase.Type.Extra: eff = ReadWrite.CallCommandEffect(type, variety); switch (eff[0]) { case 0: Floor.ShowSelecting(Unit.playerPosition, 0); GameCamera.TrackPlayer(); break; case 1: Floor.ShowTeleport(); break; } break; } }
//エクストラ行動 public void ExtraPlayer() { int[] eff = ReadWrite.CallCommandEffect(TurnAndPhase.type, TurnAndPhase.variety); switch (eff[0]) { case 0: action = (int)Action.Buff; Log.ShowLog(4); Status.PowerUpPlayer(); animator.SetTrigger("BuffTrigger"); break; case 1: action = (int)Action.Dig; break; } TurnAndPhase.StartAction(); swingFlag = true; timer = 0; }
//エネミー行動順制御 public static void TurnEnemy(bool first) { if (DeadPlayer()) { Log.EndDeclaration(0); return; } if (first) { actionEnemyNum = 0; newEnemy = false; } else { actionEnemyNum++; if (actionEnemyNum >= GetPositionListLength()) { if (newEnemy) { TurnAndPhase.EndEnemy(); return; } newEnemy = AddEndlessEnemy(); if (newEnemy) { enemyList[actionEnemyNum].GetComponent <Enemy>().AppearEnemy(); } else { TurnAndPhase.EndEnemy(); } return; } } Status.VisibleDamage(false); enemyList[actionEnemyNum].GetComponent <Enemy>().FightEnemy(); }
//攻撃開始 public void AttackEnemy() { //攻撃範囲内にいるか float dis = enemyVerstion == 4 ? 2f : 1f; if (Vector2.Distance(Unit.GetEnemyGamePosition(enemyID), Unit.playerPosition) <= dis) { TurnAndPhase.SetEnemyCommand(TurnAndPhase.Type.None); if (enemyVerstion == 4) { Floor.ShowBossEnemyATK(Unit.GetEnemyGamePosition(enemyID), (int)dis); } else { Floor.ShowSelecting(Unit.GetEnemyGamePosition(enemyID), (int)dis); } action = (int)Action.Attack; Log.ShowLog(3); timer = 0; FollowRoot(Unit.playerPosition); Unit.ChangeDirectionPlayer(enemyID); animator.SetTrigger("AttackTrigger"); swingFlag = true; } else { if (enemyVerstion == 4 && doubleAttack == 0) { doubleAttack++; FightEnemy(); return; } doubleAttack--; Unit.TurnEnemy(false); } }
//エンドレスエネミー private static bool AddEndlessEnemy() { if (gameKey != 5 - 1) { return(false); } int turn = TurnAndPhase.CheckEndlessTurn() + 1; if (turn != 0 && (turn % 3 == 0 || turn % 10 == 0)) { //出現位置上下左右パターン for (int i = 0; i < 4; i++) { endlessCounter++; if (endlessCounter > 3) { endlessCounter = 0; } if (CheckEndlessPosition()) { int version; if (turn % 10 == 0) { version = 4; } else { version = Random.Range(0, 3); } AddEnemy(version, (int)endlessPosition[endlessCounter].x, (int)endlessPosition[endlessCounter].y, true); return(true); } } } return(false); }
//コマンド終了時の処理 private void FinishCommand() { action = (int)Action.None; TurnAndPhase.EndAction(); Floor.ResetPanel(); }