Exemple #1
0
    FishData CompileUserData(string userData)
    {
        FishData playerFish = new FishData();

        string[] playerData = userData.Split(';');

        string[] playerArray = playerData[0].Split(',');

        playerFish.playerID   = playerArray[0];
        playerFish.playerName = playerArray [1];
        playerFish.xPosition  = float.Parse(playerArray [2]) / scaleFactor;
        playerFish.yPosition  = float.Parse(playerArray [3]) / scaleFactor;
        playerFish.fishAngle  = float.Parse(playerArray [4]);
        playerFish.colorCode  = int.Parse(playerArray [5]);
        playerFish.fishSkin   = playerArray [6];
        playerFish.level      = int.Parse(playerArray [7]);

        FishParameterData levelData = DefaultParameterManager.Instance.GetFishParameterData(playerFish.fishSkin, playerFish.level);

        if (levelData != null)
        {
            playerFish.width  = levelData.totalSize;
            playerFish.height = levelData.totalSize;
        }

        playerFish.experience           = float.Parse(playerArray [8]);
        playerFish.buffType             = int.Parse(playerArray[9]);
        playerFish.buffTime             = float.Parse(playerArray[10]);
        playerFish.isInPredatorRange    = int.Parse(playerArray [11]);      // == 1 ? true : false;
        playerFish.isTargetedByPredator = int.Parse(playerArray[12]) == 1 ? true : false;
        playerFish.isBoost    = int.Parse(playerArray[13]) == 1 ? true : false;
        playerFish.boostValue = float.Parse(playerArray [14]);

        //playerFish.isTargetedByPredator = true;
        //playerFish.isInPredatorRange = true;

        if (playerData.Length > 1)
        {
            for (int i = 1; i < playerData.Length; i++)
            {
                FishBodyData bodyData    = new FishBodyData();
                string[]     rawBodyData = playerData[i].Split(',');
                bodyData.xPosition = float.Parse(rawBodyData[0]) / scaleFactor;
                bodyData.yPosition = float.Parse(rawBodyData[1]) / scaleFactor;
                bodyData.width     = float.Parse(rawBodyData[2]) / scaleFactor;
                bodyData.height    = float.Parse(rawBodyData[3]) / scaleFactor;
                playerFish.bodies.Add(bodyData);
            }
        }

        localPos = new Vector2(playerFish.xPosition, playerFish.yPosition);

        if (playerID != playerArray [0])
        {
            Debug.LogError("ERROR - ID does not match");
        }


        return(playerFish);
    }
Exemple #2
0
    private void UpdateViewPort(FishData playerDaata)
    {
        FishParameterData data = DefaultParameterManager.Instance.GetFishParameterData(playerDaata.fishSkin, playerDaata.level);
        //Debug.Log("Fish level " + playerDaata.level);
        float cam = 0.8f;

        if (data != null)
        {
            cam = data.cameraSize;
        }

        mainCameraUI.GetComponent <Camera>().orthographicSize = cam;
    }
Exemple #3
0
    void PlaceOpponent(string opponentData)
    {
        //Debug.Log ("Opponent = " + opponentData);
        string[] opponentDetails = opponentData.Split(';');
        string[] opponentArray   = opponentDetails[0].Split(',');
        FishData fish            = new FishData();

        fish.playerID   = opponentArray [0];
        fish.playerName = opponentArray [1];
        fish.xPosition  = float.Parse(opponentArray [2]) / scaleFactor;
        fish.yPosition  = float.Parse(opponentArray [3]) / scaleFactor;
        fish.fishAngle  = float.Parse(opponentArray [4]);
        fish.colorCode  = int.Parse(opponentArray [5]);
        fish.fishSkin   = opponentArray [6];
        fish.level      = int.Parse(opponentArray [7]);
        //Read fish width and height from default parameter
        FishParameterData levelData = DefaultParameterManager.Instance.GetFishParameterData(fish.fishSkin, fish.level);

        if (levelData != null)
        {
            fish.width  = levelData.totalSize;
            fish.height = levelData.totalSize;
        }

        fish.buffType = int.Parse(opponentArray[8]);
        fish.buffTime = int.Parse(opponentArray[9]);
        fish.isBoost  = int.Parse(opponentArray[10]) == 1 ? true : false;

        if (opponentDetails.Length > 1)
        {
            for (int i = 1; i < opponentDetails.Length; i++)
            {
                FishBodyData bodyData    = new FishBodyData();
                string[]     rawBodyData = opponentDetails[i].Split(',');
                bodyData.xPosition = float.Parse(rawBodyData[0]) / scaleFactor;
                bodyData.yPosition = float.Parse(rawBodyData[1]) / scaleFactor;
                bodyData.width     = float.Parse(rawBodyData[2]) / scaleFactor;
                bodyData.height    = float.Parse(rawBodyData[3]) / scaleFactor;
                fish.bodies.Add(bodyData);
            }
        }

        if (playerID != opponentArray [0])
        {
            listOpponentData.Add(fish);
        }
    }
Exemple #4
0
    public void UpdateOcculstion(FishData data)
    {
        FishParameterData fishParam    = DefaultParameterManager.Instance.GetFishParameterData(data.fishSkin, data.level);
        float             diagonalView = Vector2.Distance(Vector2.zero, new Vector2(fishParam.viewWidth, fishParam.viewHeight));
        float             viewRadius   = diagonalView / 2.0f;

        //Update occulsion of obstacle
        UpdateChidVisibility(parentObstacle, viewRadius + 1.0f);
        //Update occulsion of hiding place
        UpdateChidVisibility(parentHidingPlace, viewRadius + 2.0f);
        //Update occulsion of water ripple
        float rippleSize = TileGenerator.Instance.rippleSize;

        UpdateChidVisibility(TileGenerator.Instance.parentWaterRipple, viewRadius + rippleSize);
        //Update occulsion of tile
        UpdateChidVisibility(TileGenerator.Instance.parentTile, viewRadius + 1.5f);
    }
Exemple #5
0
    private bool CheckDeathFish(FishData enemyFish, FishData playerFish)
    {
        fishParamData = DefaultParameterManager.Instance.GetFishParameterData(playerFish.fishSkin, playerFish.level);
        float xMax = fishParamData.viewWidth / 2;
        float yMax = fishParamData.viewHeight / 2;

        float xDiff = Mathf.Abs(playerFish.xPosition - enemyFish.xPosition);
        float yDiff = Mathf.Abs(playerFish.yPosition - enemyFish.yPosition);

        if (xDiff < xMax && yDiff < yMax)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
    /// <summary>
    /// Call This Function when you want to generate a random bubble for the designated Player Fish
    /// </summary>
    private IEnumerator GenerateRandomBubble(FishData playerFish)
    {
        fishParamData = DefaultParameterManager.Instance.GetFishParameterData(playerFish.fishSkin, playerFish.level);
        float xRandom = fishParamData.viewWidth / 2;
        float yRandom = fishParamData.viewHeight / 2;

        xRandom = Random.Range(-xRandom, xRandom);
        yRandom = Random.Range(-yRandom, yRandom);

        GameObject bubble = Instantiate(bubblePrefab) as GameObject;

        bubble.transform.position = new Vector3(playerFish.xPosition + xRandom, playerFish.yPosition + yRandom, 1);
        float randomScale = Random.Range(0.015f, 0.075f);

        bubble.transform.localScale = new Vector3(randomScale, randomScale);
        bubble.transform.SetParent(gameObject.transform);
        yield return(new WaitForSeconds(0.3f));

        bubble.GetComponent <MeshRenderer> ().enabled = true;
        StartCoroutine(TimelyDelete(bubble));
    }
    void SetDefaultParameterData(string jsonText)
    {
        var jsonData = Json.Deserialize(jsonText) as Dictionary <string, object>;
        Dictionary <string, object> data = null;

        if (NetworkConfig.IsUsingEncryption)
        {
            var enc = jsonData [TAG_DATA] as string;
            data = Json.Deserialize(AES.Decrypt(enc)) as Dictionary <string, object>;
        }
        else
        {
            data = jsonData[TAG_DATA] as Dictionary <string, object>;
        }

        foodSize = 2.0f * JsonUtility.GetFloat(data, TAG_FOOD_SIZE) / EssentialData.scaleFactor;
        //Load fishes parameter data
        skinLevelsData = new Dictionary <string, List <FishParameterData> >();
//		skinColorData = new Dictionary<string, List<string>> ();

        var skins = data[TAG_FISH_SIZE] as List <object>;

        for (int i = 0; i < skins.Count; i++)
        {
            var    skinData   = skins[i] as Dictionary <string, object>;
            string skinName   = JsonUtility.GetString(skinData, TAG_SKIN);
            var    levelsData = skinData[TAG_LEVELS] as List <object>;
            List <FishParameterData> fishParameters = new List <FishParameterData>();
            for (int fi = 0; fi < levelsData.Count; fi++)
            {
                var fishLevelData           = levelsData[fi] as Dictionary <string, object>;
                FishParameterData fishLevel = new FishParameterData(fishLevelData);
                fishParameters.Add(fishLevel);
            }

            skinLevelsData.Add(skinName, fishParameters);

//			List<string> colorData = new List<string> ();

            var colors = skinData[TAG_COLOR_CODE] as List <object>;
            for (int ci = 0; ci < colors.Count; ci++)
            {
//				colorData.Add (colors [ci].ToString());

                HSVData colorHSVData = new HSVData();

                string colorString = colors [ci].ToString();
                colorHSVData.colorHSVCodeId = colorString;
                colorHSVData.fishSkin       = skinName;

                listHSVColorData.Add(colorHSVData);
//				Debug.Log ("skiname " + skinName + ", " + colorString + " ~ " + listHSVColorData.Count);
            }

            //Debug.Log (skinName);
//			skinColorData.Add (skinName, colorData);
        }

        //Load Predator Parameter Data
        predatorParameter = new List <PredatorParameterData>();
        var predators = data[TAG_PREDATOR_SIZE] as List <object>;

        for (int i = 0; i < predators.Count; i++)
        {
            var rawPredatorData = predators[i] as Dictionary <string, object>;
            PredatorParameterData predatorData = new PredatorParameterData(rawPredatorData);
            predatorParameter.Add(predatorData);
        }
    }