示例#1
0
    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--;
            }
        }
    }
示例#2
0
    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--;
            }
        }
    }
示例#3
0
    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;
    }
示例#4
0
    //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();
        }
示例#6
0
    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;
    }
示例#7
0
    // 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();
    }
示例#8
0
    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;
    }
示例#9
0
    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());
        }
    }