Get() public static method

public static Get ( string name ) : AnimalData,
name string
return AnimalData,
Beispiel #1
0
    public void AddAnimal(string animalName)
    {
        var animalObject = gameObject.FindChild(SubObjectsNames[0]);

        AnimalObjects.Add(animalObject);

        var animalData = AnimalDatabase.Get(animalName);

        AnimalData.Add(animalData);

        SubObjectsNames.RemoveAt(0);

        var index = animalData.spriteIndex - 1;

        var row = index % 10;
        var col = index / 10;

        foreach (var r in animalObject.GetComponentsInChildren <Renderer>())
        {
            r.enabled = true;
            r.material.mainTextureOffset = new Vector2(row / 10f, 1 - col / 10f - 1 / 10f);
        }

        totemSpeed         = (int)Math.Round(AnimalData.Average(x => x.speed));
        TotemIntelligence  = AnimalData.Max(x => x.intelligence);
        TotemMaxHealth     = AnimalData.Sum(x => x.health) * 20;
        TotemCurrentHealth = TotemMaxHealth;

        if (Network.isServer)
        {
            attackTimeBuffers.Add(0);
        }

        if (AnimalObjects.Count == 1)
        {
            name = animalName;
        }
        else
        {
            name += " " + animalName;
        }
    }
    void OnGUI()
    {
        GUI.matrix = Matrix4x4.TRS(new Vector3(0, 400 * CameraMotion.PanFactor, 0), Quaternion.identity, Vector3.one);

        var textureHeight = containerStyle.normal.background.height;

        GUILayout.BeginArea(new Rect(0, Screen.height - textureHeight, containerStyle.normal.background.width, textureHeight), containerStyle);
        GUILayout.EndArea();

        GUILayout.BeginArea(new Rect(291, Screen.height - 140, 414 - 48, 162));
        GUILayout.BeginHorizontal(textBoxStyle);

        string[] words = text.Split(' ');
        for (int i = 0; i < words.Length; i++)
        {
            string word = words[i];

            if (AnimalDatabase.Get(word) == null)
            {
                GUI.color = errorTint;
            }
            else
            {
                GUI.color = successTint;
            }

            GUILayout.Label(word, textStyle);
            GUI.color = Color.white;

            if (i < words.Length - 1)
            {
                GUILayout.Space(11);
            }
            else
            {
                GUILayout.Label("|", textStyle);
            }
        }

        var thisSummoner  = TerrainGrid.Instance.Summoners[Network.isServer ? TerrainGrid.ServerPlayerId : TerrainGrid.ClientPlayerId];
        var enemySummoner = TerrainGrid.Instance.Summoners[Network.isServer ? TerrainGrid.ClientPlayerId : TerrainGrid.ServerPlayerId];

        GUILayout.EndHorizontal();
        {
            ShowHealthBar(thisSummoner, hpGoodColor, hpBadColor);
        }
        GUILayout.EndArea();

        GUI.matrix = Matrix4x4.TRS(new Vector3(0, -100 * CameraMotion.PanFactor, 0), Quaternion.identity, Vector3.one);

        GUILayout.BeginArea(new Rect(Screen.width - 414 + 48 - 20, 20, 414 - 48, 162));
        {
            ShowHealthBar(enemySummoner, hpEnemyGoodColor, hpEnemyBadColor);
        }
        GUILayout.EndArea();

        GUI.matrix = Matrix4x4.TRS(new Vector3(0, 400 * CameraMotion.PanFactor, 0), Quaternion.identity, Vector3.one);

        //GUILayout.BeginArea(new Rect(300 - 48, Screen.height - 45, 410, 25));
        //GUILayout.BeginHorizontal(hpTextStyle);

        //GUILayout.EndHorizontal();
        //GUILayout.EndArea();

        // idle : 2/3f
        // hurt : 0/3f
        // fail : 1/3f

        var offset = thisSummoner.HasTakenDamage ? 0 : thisSummoner.HasFailed ? 1 / 3f : 2 / 3f;

        GUI.DrawTextureWithTexCoords(new Rect(0, Screen.height - portraits.height, 512, portraits.height),
                                     portraits, new Rect(offset, 0, 1 / 3f, 1));

        GUI.matrix = Matrix4x4.identity;

        if (GameFlow.State == GameState.Gameplay)
        {
            // handle text entry
            Event e = Event.current;
            if (e.type == EventType.KeyDown)
            {
                if (char.IsLetter(e.character) || (e.character == ' ' && words.Length < 3 && words.Length > 0 && words[0].Trim().Length > 0))
                {
                    text += char.ToUpper(e.character);
                }
                else if (e.character == '\n')
                {
                    var validWords = words.Where(x => AnimalDatabase.Get(x) != null).Distinct(StringComparer.InvariantCultureIgnoreCase).ToList();

                    foreach (var w in validWords.ToArray())
                    {
                        foreach (var t in TerrainGrid.Instance.Totems.Values.SelectMany(x => x))
                        {
                            if (t.AnimalData.Any(x => x.name.Equals(w, StringComparison.InvariantCultureIgnoreCase)))
                            {
                                validWords.Remove(w);
                            }
                        }
                    }

                    if (words.Length != validWords.Count)
                    {
                        thisSummoner.HasFailed = true;
                        TaskManager.Instance.WaitFor(0.5f).Then(() => { thisSummoner.HasFailed = false; });
                        audio.PlayOneShot(mistakeSound);
                    }
                    else if (validWords.Count > 0)
                    {
                        audio.PlayOneShot(enterSound);
                    }

                    if (validWords.Count > 0)
                    {
                        thisSummoner.TrySpawnOnServer(validWords.ToArray());
                    }

                    //foreach(string word in words)
                    //{
                    //    if(AnimalDatabase.Get(word) != null)
                    //    {
                    //        print("awesoem word: " + word);
                    //    }
                    //}
                    text = "";
                }
                else if (e.keyCode == KeyCode.Backspace && text.Length > 0)
                {
                    text = text.Remove(text.Length - 1);
                }
            }
        }
    }