public void GenerateExit() { for (int i = 0; i < 1; i++) { Vector2 exit = GetExitCoordination(); if (fieldEventFlag[(int)exit.x, (int)exit.y] == 0) { Vector3 eventPosition = new Vector3( -2.5f + (int)exit.x * (5 / (mapSize.x - 1)) + (-(int)exit.x + mapSize.x / 2) * -(mapSize.x - 6) / 15, 0.15f, -2.5f + (int)exit.y * (5 / (mapSize.y - 1)) + (-(int)exit.y + mapSize.y / 2) * -(mapSize.y - 6) / 15 ); eventPosition.y = 0.16f; Transform newTile = Instantiate(fieldExit, eventPosition, Quaternion.Euler(Vector3.right * 0)) as Transform; //newTile.localScale = Vector3.one * 0.3f; newTile.rotation = Quaternion.Euler(new Vector3(0, 90, 0)); fieldEventContainer[(int)exit.x, (int)exit.y] = newTile; fieldEventFlag[(int)exit.x, (int)exit.y] = FieldEventType.Exit; PlayerPrefsX.SetVector2(PrefsEntity.Exit, exit); } else { i--; } } }
public static void GenerateEvent(Transform eventType, FieldEventType eventFlag, int numOfEvent) { for (int i = 0; i < numOfEvent; i++) { Vector2 eventCoordination = GetEventCoordination(i, eventType); if (eventCoordination == new Vector2(-1, -1)) { continue; } if (fieldEventFlag[(int)eventCoordination.x, (int)eventCoordination.y] == 0 & eventCoordination != new Vector2(PlayerPrefs.GetInt(PrefsEntity.CurrentX), PlayerPrefs.GetInt(PrefsEntity.CurrentY))) { Vector3 eventPosition = new Vector3( -2.5f + (int)eventCoordination.x * (5 / (mapSize.x - 1)) + (-(int)eventCoordination.x + mapSize.x / 2) * -(mapSize.x - 6) / 15, 0.15f, -2.5f + (int)eventCoordination.y * (5 / (mapSize.y - 1)) + (-(int)eventCoordination.y + mapSize.y / 2) * -(mapSize.y - 6) / 15 ); Quaternion eventRotation = Quaternion.Euler(new Vector3(0, 0, 0)); /* Object Offset * Box : 0.07 */ /* Object Angle * Box : -45 */ switch (eventFlag) { case FieldEventType.Box: eventPosition.y = 0.07f; eventRotation = Quaternion.Euler(new Vector3(0, -45, 0)); break; case FieldEventType.Trap: eventPosition.y = 0.07f; eventRotation = Quaternion.Euler(new Vector3(0, -45, 0)); break; case FieldEventType.Enemy: eventPosition.y = -0.7f; break; default: break; } Transform newTile = Instantiate(eventType, eventPosition, eventRotation) as Transform; //newTile.localScale = Vector3.one * 0.3f; //TODO : Set Rotation v fieldEventContainer[(int)eventCoordination.x, (int)eventCoordination.y] = newTile; fieldEventFlag[(int)eventCoordination.x, (int)eventCoordination.y] = eventFlag; PlayerPrefsX.SetVector2(eventType.name + i.ToString(), eventCoordination); //Debug.Log(eventCoordination.ToString()); PlayerPrefs.SetString(eventCoordination.ToString(), eventType.name + i.ToString()); } else { i--; } } }
private void OccurTrap(ref FieldEventType eventFlag, ref Transform eventObject) { Debug.Log("Trap"); Vector2 eventCoordination = new Vector2(currentX, currentY); PlayerPrefsX.SetVector2(PlayerPrefs.GetString(eventCoordination.ToString()), new Vector2(-1, -1)); DestroyImmediate(eventObject.gameObject); switch (currentLevel) { case 0: TrapNormal(); break; case 1: TrapHard(); break; case 2: TrapHell(); break; } Utility.ObjectVisibility(controlBlocker, true); Utility.ObjectVisibility(trapPanel, true); eventFlag = FieldEventType.Nothing; }
//TODO : Seperate entrance and character public void GenerateEntrance() { for (int i = 0; i < 1; i++) { Vector2 entrance = GetEntranceCoordination(); //Debug.Log((int)mapSize.x + ", " + (int)mapSize.y); //Debug.Log(x + ",, " + y); if (fieldEventFlag[(int)entrance.x, (int)entrance.y] == 0) { Vector3 eventPosition = new Vector3( -2.5f + (int)entrance.x * (5 / (mapSize.x - 1)) + (-(int)entrance.x + mapSize.x / 2) * -(mapSize.x - 6) / 15, 0.15f, -2.5f + (int)entrance.y * (5 / (mapSize.y - 1)) + (-(int)entrance.y + mapSize.y / 2) * -(mapSize.y - 6) / 15 ); Transform newTile = Instantiate(fieldEntrance, eventPosition, Quaternion.Euler(Vector3.right * 0)) as Transform; //newTile.localScale = Vector3.one * 0.3f; if (!PlayerPrefsX.GetBool(PrefsEntity.SaveFlag)) // Not saved : Entrance = Start Position { PlayerPrefs.SetInt(PrefsEntity.StartX, (int)entrance.x); PlayerPrefs.SetInt(PrefsEntity.StartY, (int)entrance.y); PlayerPrefs.SetInt(PrefsEntity.CurrentX, (int)entrance.x); PlayerPrefs.SetInt(PrefsEntity.CurrentY, (int)entrance.y); } PlayerPrefsX.SetVector2(PrefsEntity.Entrance, entrance); fieldEventContainer[(int)entrance.x, (int)entrance.y] = newTile; fieldEventFlag[(int)entrance.x, (int)entrance.y] = FieldEventType.Entrance; } else { i--; } } }
public override void OnEnter() { for (int i = 0; i < keys.Length; i++) { if (!keys[i].IsNone || !keys[i].Value.Equals("")) { string key = keys[i].Value; FsmVar fsmVar = values[i]; switch (fsmVar.Type) { case VariableType.Int: PlayerPrefs.SetInt(key, fsmVar.IsNone ? 0 : (int)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Float: PlayerPrefs.SetFloat(key, fsmVar.IsNone ? 0f : (float)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Bool: PlayerPrefsX.SetBool(key, fsmVar.IsNone ? false : (bool)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Color: PlayerPrefsX.SetColor(key, fsmVar.IsNone ? Color.black : (Color)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Quaternion: PlayerPrefsX.SetQuaternion(key, fsmVar.IsNone ? Quaternion.identity : (Quaternion)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Rect: PlayerPrefsX.SetRect(key, fsmVar.IsNone ? new Rect(0f, 0f, 0f, 0f) : (Rect)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Vector2: PlayerPrefsX.SetVector2(key, fsmVar.IsNone ? Vector2.zero : (Vector2)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.Vector3: PlayerPrefsX.SetVector3(key, fsmVar.IsNone ? Vector3.zero : (Vector3)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; case VariableType.String: PlayerPrefs.SetString(key, fsmVar.IsNone ? "" : (string)PlayMakerUtils.GetValueFromFsmVar(this.Fsm, fsmVar)); break; default: LogError("PlayerPrefsx does not support saving " + fsmVar.Type); break; } } } Finish(); }
private void OccurBox(ref FieldEventType eventFlag, ref Transform eventObject) { Debug.Log("Box"); Vector2 eventCoordination = new Vector2(currentX, currentY); PlayerPrefsX.SetVector2(PlayerPrefs.GetString(eventCoordination.ToString()), new Vector2(-1, -1)); DestroyImmediate(eventObject.gameObject); Utility.ObjectVisibility(controlBlocker, true); Utility.ObjectVisibility(boxPanel, true); eventFlag = FieldEventType.Nothing; }
// 0 = No event, 1 = Entrance, 2 = Exit, 3 = Enemy, 4 = Trap, 5 = Event, 6 = Box private void OccurEnemy(ref FieldEventType eventFlag, ref Transform eventObject) { Debug.Log("Enemy"); Vector2 eventCoordination = new Vector2(currentX, currentY); PlayerPrefsX.SetVector2(PlayerPrefs.GetString(eventCoordination.ToString()), new Vector2(-1, -1)); //Debug.Log(PlayerPrefs.GetString(eventCoordination.ToString())); //Debug.Log(fieldEventContainer[currentX, currentY].name); DestroyImmediate(eventObject.gameObject); eventFlag = FieldEventType.Nothing; //Debug.Log("St X : " + PlayerPrefs.GetInt(PrefsEntity.StartX) + " St Y : " + PlayerPrefs.GetInt(PrefsEntity.StartY)); LoadingManager.LoadSceneFieldToBattle(); }
private void OccurJail(ref FieldEventType eventFlag, ref Transform eventObject) { Debug.Log("Jail"); Vector2 eventCoordination = new Vector2(currentX, currentY); PlayerPrefsX.SetVector2(PlayerPrefs.GetString(eventCoordination.ToString()), new Vector2(-1, -1)); DestroyImmediate(eventObject.gameObject); switch (currentLevel) { case 0: EventNormal(); break; case 1: EventHard(); break; case 2: EventHell(); break; } eventFlag = FieldEventType.Nothing; }
public void GenerateBridge() { string holderName = "Generated Bridge"; if (transform.Find(holderName)) { DestroyImmediate(transform.Find(holderName).gameObject); } Transform mapHolder = new GameObject(holderName).transform; mapHolder.parent = transform; GameObject[] fieldTileArr = GameObject.FindGameObjectsWithTag("FieldTile"); for (int i = 0; i < adjList.Length; i++) { adjList[i].Clear(); fieldBridgeContainer[i].Clear(); } List <string> fieldBridgeFlag = new List <string>(); Vector3 bridgeCoordination; //Bridge generate //For test int debugBridge = PlayerPrefs.GetInt(PrefsEntity.BridgeCount, 35); //Original : fieldTileArr.Length + Random.Range(-2, 4) for (int i = 0; i < GenerateBridgeCount(); i++) { Vector2 tile = GetBridgeCoordinate(i, fieldTileArr); if (fieldBridgeFlag.Contains(((int)tile.x).ToString() + ((int)tile.y).ToString()) | fieldBridgeFlag.Contains(((int)tile.y).ToString() + ((int)tile.x).ToString())) { i--; continue; } PlayerPrefsX.SetVector2(PrefsEntity.Bridge + i.ToString(), tile); adjList[(int)tile.x].Add((int)tile.y); adjList[(int)tile.y].Add((int)tile.x); bridgeCoordination = (fieldTileArr[(int)tile.x].transform.position + fieldTileArr[(int)tile.y].transform.position) / 2; int bridgeRotationFactor = (Mathf.Abs((int)tile.x - (int)tile.y) == 1) ? 0 : 1; Quaternion bridgeRotation = Quaternion.Euler(new Vector3(0, bridgeRotationFactor * 90, 0)); Transform bridgeTile = Instantiate(fieldBridgePrefab, bridgeCoordination, bridgeRotation) as Transform; bridgeTile.localScale = new Vector3( (11 / (mapSize.x - 1)) * (1 - outlinePercent * 2), (11 / (mapSize.y - 1)) * (1 - outlinePercent * 2), 1.8f); try { bridgeTile.gameObject.SetActive(fieldBridgeVisibility[(int)tile.x, (int)tile.y]); bridgeTile.gameObject.SetActive(fieldBridgeVisibility[(int)tile.y, (int)tile.x]); } catch (System.Exception e) { Debug.Log(e.Message); } //Debug.Log((int)tile.x + ", " + (int)tile.y + " : " + fieldBridgeVisibility[(int)tile.x, (int)tile.y]); fieldBridgeContainer[(int)tile.x].Add(bridgeTile); fieldBridgeContainer[(int)tile.y].Add(bridgeTile); bridgeTile.parent = mapHolder; fieldBridgeFlag.Add(((int)tile.x).ToString() + ((int)tile.y).ToString()); } }