/// <summary> /// 元のドロップを置き換えてドロップを生成する /// </summary> public void MakeDrop(tDrop.Type type, int L, int D) { DestroyDrop(L, D); GameObject dropObj; switch (type) { case tDrop.Type.Circle: dropObj = Instantiate(DropCirce, Lanes[L].transform); break; case tDrop.Type.Cross: dropObj = Instantiate(DropCross, Lanes[L].transform); break; case tDrop.Type.Tryangle: dropObj = Instantiate(DropTryangle, Lanes[L].transform); break; case tDrop.Type.All: dropObj = Instantiate(DropAll, Lanes[L].transform); break; default: Debug.Log(type.ToString() + "のタイプの生成処理が書かれていません"); dropObj = Instantiate(DropCirce, Lanes[L].transform); break; } dropObj.transform.localPosition = new Vector3(0f, 0f, GetTargetZ(D)); drops[L, D] = dropObj.GetComponent <tDrop>(); }
/// <summary> /// 外部から呼び出される、ユーザー操作によって一番下の段のドロップを破壊する関数 /// </summary> /// <param name="type">破壊するドロップ</param> /// <returns>何個消したか</returns> public int DestroyUnderDrop(tDrop.Type type) { if (IsThereMovingDrop()) { return(0); } int count = 0; for (int L = 0; L < LANE_NUM; L++) { // ここの虹色消したとき、他の色どう判定するか決める。intは何を返す? if (drops[L, UNDER_DROP].type == type && isExist(L, UNDER_DROP)) { count++; DestroyDrop(L, UNDER_DROP); } } if (count == 0) { SEPlayer.Play(SE.Name.DROP_BREAK1, 0f, count / 7f + 0.7f); } else if (count == 1) { SEPlayer.Play(SE.Name.DROP_BREAK1, 0.25f); } else if (count == 2) { SEPlayer.Play(SE.Name.DROP_BREAK2, 0.18f); } return(count); }
public void Damaged(float power, tDrop.Type type) { SEPlayer.Play(SE.Name.DAMAGED, 0.42f); int num = enemyList.Count; if (targeted != null) { power = targeted.Damaged(power, type); if (targeted.hp.IsDie()) { num--; } } if (num > 0 && power > 0) { foreach (var enemy in enemyList) { if (targeted == enemy) { continue; } enemy.Damaged(power / num, type); } } }
void ButtonEffect(tDrop.Type type, int level, float power) { switch (type) { case tDrop.Type.Tryangle: TryangleEffect.Effect(level); TryangleEffect.AddPower(power); break; case tDrop.Type.Cross: CrossEffect.Effect(level); CrossEffect.AddPower(power); break; case tDrop.Type.Circle: CircleEffect.Effect(level); CircleEffect.AddPower(power); break; case tDrop.Type.All: TryangleEffect.Effect(level); CrossEffect.Effect(level); CircleEffect.Effect(level); break; } }
public float Damaged(float power, tDrop.Type type, Vector3 pos, float scale) { upperHp = hp; hp -= power; hp = Mathf.Clamp(hp, 0f, max); lowerHp = hp; switch (type) { case tDrop.Type.Circle: CircleDamage.View(power.ToString("#######"), scale); CircleDamage.transform.position = pos; break; case tDrop.Type.Cross: CrossDamage.View(power.ToString("#######"), scale); CrossDamage.transform.position = pos; break; case tDrop.Type.Tryangle: TryangleDamage.View(power.ToString("#######"), scale); TryangleDamage.transform.position = pos; break; case tDrop.Type.All: AllDamage.View(power.ToString("#######"), scale * 1.5f); AllDamage.transform.position = pos; break; } Camera.main.GetComponent <CameraShake>().Shake(); return(Mathf.Max(power - upperHp, 0f)); }
public float Damaged(float power, tDrop.Type damagedType) { SEPlayer.Play(damagedSE, 1.0f); float scale = 1f; if (damagedType == type || damagedType == tDrop.Type.All) { scale = 3f; power *= 2f; } return(hp.Damaged(power, damagedType, transform.position + new Vector3(Random.Range(-100f, 100f), Random.Range(-100f, 100f) - 50f, 0f), scale)); }
/// /////////////////////////////////////////////////// 更新処理 ////////////////////////////////////////////////////// public void PlayerDamaged(float power, tDrop.Type type) { float rate = 1f; foreach (var damaged in damagedUp) { rate *= damaged.rate; } SEPlayer.Play(SE.Name.DAMAGED, 0.42f); Vector3 pos = PlayerHP.transform.position; PlayerHP.Damaged(power * rate, type, new Vector3(pos.x + Random.Range(Screen.width / 5f, Screen.width / 5f * 4f), pos.y, pos.z), 3f); }
public void UserInput(tDrop.Type type) { if (inputed == true) { return; } inputed = true; if (state == State.WAITING_USER_INPUT) { ChangeState(State.PLAYER_ATTACK); } if (state == State.PLAYER_ATTACK) { int destroyNum = dropLane.DestroyUnderDrop(type); if (destroyNum == 0) { return; } float addPower = (Mathf.Pow(2.3f, destroyNum - 1)) * attackPowerBase; attackPower[(int)type] += addPower; ButtonEffect(type, destroyNum, addPower); } }
public void ClickedEvent() { tDrop.Type type = lane.Drops[lanePos, tDropLaneBase.DROP_NUM_ON_LANE - 1].type; battleManager.UserInput(type); }