void Update()
    {
        for (int i = musics.Count - 1; i >= 0; i--)
        {
            if (musics [i].GetComponent <AudioSource> ().volume < 1)
            {
                musics [i].GetComponent <AudioSource> ().volume += Mathf.Min(Time.deltaTime, 0.2f) / 4f;
            }

            if ((musics [i].GetComponent <AudioSource> ().time == musics [i].GetComponent <AudioSource> ().clip.length) &&
                !musics [i].GetComponent <AudioSource> ().isPlaying)
            {
                GamePullController.DestroyAudio(musics[i]);
                musics.RemoveAt(i);
            }
        }

        for (int i = sounds.Count - 1; i >= 0; i--)
        {
            if ((sounds [i].GetComponent <AudioSource> ().time == sounds [i].GetComponent <AudioSource> ().clip.length) &&
                !sounds [i].GetComponent <AudioSource> ().isPlaying)
            {
                GamePullController.DestroyAudio(sounds[i]);
                sounds.RemoveAt(i);
            }
        }
    }
Beispiel #2
0
 public void Destroy()
 {
     GamePullController.DestroyImage(healthBarRed);
     GamePullController.DestroyImage(healthBarGreen);
     healthBarRed   = null;
     healthBarGreen = null;
 }
    public GUIButtonAlpha(string _texture, float?leftPos, float?topPos, float?rightPos, float?botPos, float widthInPixels, float heightInPixels, float _layer = 0, bool _useScale = false) : base(false)
    {
        gameObject = GamePullController.CreateButtonAlpha();
        animation  = new ObjectAnimation(gameObject);

        layer    = _layer;
        useScale = _useScale;

        textureName  = _texture;
        sizeInPixels = new Vector2(widthInPixels, heightInPixels);

        if (leftPos != null)
        {
            left = leftPos;
        }
        if (topPos != null)
        {
            top = topPos;
        }

        if (rightPos != null)
        {
            right = rightPos;
        }

        if (botPos != null)
        {
            bottom = botPos;
        }

        isClickable = true;

        GUIController.Add(gameObject, this);
    }
    public static Transform CreateText(ref TextMesh textObject)
    {
        GameObject text = GamePullController.CreateText();

        textObject = text.GetComponent <TextMesh> ();
        return(text.transform);
    }
Beispiel #5
0
 public void Destroy()
 {
     UpdateController.StopAllTimers();
     UpdateController.toFixedUpdate = null;
     UpdateController.toUpdate      = null;
     GamePullController.Destroy();
 }
Beispiel #6
0
    public void Destroy(bool createTowerPlace = true)
    {
        if (createTowerPlace)
        {
            GameObject towerPlace = GamePullController.CreateImage();
            towerPlace.GetComponent <BoxCollider> ().enabled = true;

            switch (color)
            {
            case TeamColor.Red:
                GameController.towerPlacesRed.Add(towerPlace);
                break;

            case TeamColor.Blue:
                GameController.towerPlacesBlue.Add(towerPlace);
                break;
            }
            towerPlace.transform.position = towerPlacePosition;
            towerPlace.GetComponent <Renderer>().material.mainTexture
                = Resources.Load("Textures/Towers/TowerPlace" + color) as Texture;
            towerPlace.transform.localScale = new Vector3(3.08f * Settings.FhdToHD, 4.13f * Settings.FhdToHD, 1);
            towerPlace.name = "TowerPlace" + color;
        }

        GameController.towers.Remove(this);
        GameController.towersDictionary.Remove(gameObject);
        GamePullController.DestroyImage(gameObject);
    }
Beispiel #7
0
 public GUIText()
 {
     gameObject = GamePullController.CreateText();
     OnLanguageChange();
     GUIController.Add(this);
     isClickable = false;
 }
Beispiel #8
0
 public override void Destroy()
 {
     GamePullController.DestroyButton(gameObject);
     animation.Destroy();
     isStatic = false;
     GUIController.Remove(gameObject, this);
 }
 public void Destroy()
 {
     OptionsController.instance.Destroy();
     UpdateController.StopAllTimers();
     UpdateController.toFixedUpdate = null;
     UpdateController.toUpdate      = null;
     GamePullController.Destroy();
 }
Beispiel #10
0
 public GUIImage(bool make = true)
 {
     if (make)
     {
         gameObject = GamePullController.CreateImage();
         GUIController.Add(this);
         isClickable = false;
     }
 }
    public void ClearSounds()
    {
        foreach (var s in sounds)
        {
            GamePullController.DestroyAudio(s);
        }

        sounds.Clear();
    }
    public GUIButtonAlpha() : base(false)
    {
        gameObject = GamePullController.CreateButtonAlpha();
        animation  = new ObjectAnimation(gameObject);

        isClickable = true;

        GUIController.Add(gameObject, this);
    }
Beispiel #13
0
    public HealthBar()
    {
        healthBarRed   = GamePullController.CreateImage();
        healthBarGreen = GamePullController.CreateImage();

        healthBarRed.GetComponent <Renderer> ().material.mainTexture   = ResourcesController.Load("Textures/HealthBars/HealthBarRed") as Texture;
        healthBarGreen.GetComponent <Renderer> ().material.mainTexture = ResourcesController.Load("Textures/HealthBars/HealthBarGreen") as Texture;

        healthBarRed.transform.localScale   = new Vector3(size.x, size.y, 1);
        healthBarGreen.transform.localScale = new Vector3(size.x, size.y, 1);

        health = 1;
    }
 public void Destroy()
 {
     cogwheel1.rotation = 0;
     cogwheel2.rotation = 0;
     cogwheel3.rotation = 0;
     cogwheel1          = null;
     cogwheel2          = null;
     cogwheel3          = null;
     UpdateController.StopAllTimers();
     UpdateController.toFixedUpdate = null;
     UpdateController.toUpdate      = null;
     GamePullController.Destroy();
 }
Beispiel #15
0
    public override void Destroy()
    {
        if (isExpensive)
        {
            GamePullController.DestroyImageAlphaExpensive(gameObject);
        }
        else
        {
            GamePullController.DestroyImageAlpha(gameObject);
        }

        GUIController.Remove(this);
    }
Beispiel #16
0
    public GUIImageAlpha(bool _isExpensive = false) : base(false)
    {
        if (isExpensive)
        {
            gameObject = GamePullController.CreateImageAlphaExpensive();
        }
        else
        {
            gameObject = GamePullController.CreateImageAlpha();
        }

        isExpensive = _isExpensive;
        GUIController.Add(this);
    }
Beispiel #17
0
    public Missile(string _towerType, Texture _texture, Vector2 _position, Vector2 _size, float _damage, float _speed, Killable _target)
    {
        towerType = _towerType;

        gameObject = GamePullController.CreateImage();
        GameController.missiles.Add(this);

        mapPosition = _position;
        damage      = _damage;
        target      = _target;
        texture     = _texture;
        size        = _size;
        speed       = _speed;
        layer       = _target.layer;
    }
Beispiel #18
0
    public Bomb(Vector2 position)
    {
        gameObject = GamePullController.CreateImage();
        texture    = Resources.Load("Textures/UserInterface/Bomb") as Texture;

        animation = new ObjectAnimation(gameObject);
        animation.Load("Bomb");
        animation.Play(-2);

        size        = new Vector2(1, 1);
        mapPosition = position;
        layer       = 0.5f;

        BombsController.bombs.Add(this);
    }
Beispiel #19
0
    public void Destroy()
    {
        if (rootImage != null)
        {
            rootImage.Destroy();
        }

        GameController.unitsToDestroy.Add(this);
        GamePullController.DestroyImage(gameObject);
        objectAnimation.Destroy();
        GameController.unitsDictionary.Remove(gameObject);
        gameObject      = null;
        objectAnimation = null;
        healthBar       = null;
        shadow          = null;
    }
Beispiel #20
0
    protected override void Kill()
    {
        if (isKilling)
        {
            return;
        }

        isKilling = true;
        objectAnimation.Load((Random.value > 0.5f?"Bang":"BangNoFire"), 20);
        objectAnimation.Play(-1, Destroy);
        gameObject.transform.localScale = new Vector3(1.5f, 1.5f, 1);

        if (shadow != null)
        {
            GamePullController.DestroyImage(shadow);
        }
    }
    public GameObject CreateAudio(string name, bool isLoop = false, bool isMusic = false)
    {
        var audio = GamePullController.CreateAudio();

        audio.GetComponent <AudioSource> ().clip = ResourcesController.Load("Audio/" + name) as AudioClip;
        audio.GetComponent <AudioSource> ().loop = isLoop;
        audio.GetComponent <AudioSource> ().Play();

        (isMusic?musics:sounds).Add(audio);

        audio.GetComponent <AudioSource> ().mute = (isMusic && !Settings.music) || (!isMusic && !Settings.sounds);

        if (isMusic)
        {
            audio.GetComponent <AudioSource> ().volume = 0;
        }

        return(audio);
    }
Beispiel #22
0
    public Tower(string _type, Colorable.TeamColor _color)
    {
        reloadTime = 0.6f;
        type       = _type;
        color      = _color;

        gameObject = GamePullController.CreateImage();
        animation  = new ObjectAnimation(gameObject);

        gameObject.name += "Tower";
        gameObject.GetComponent <BoxCollider> ().enabled = true;

        texture = Resources.Load("Textures/Towers/" + type + "Tower") as Texture;

        attackAnimaton     = type + "TowerAttack";
        attackAnimatonTime = 0.2f;

        try {
            damage      = BalanceSettings.damage [type];
            damageDelta = BalanceSettings.deltaDamage [type];
            attackRange = BalanceSettings.attackRange [type];
            attackSpeed = BalanceSettings.attackSpeed [type];
        } catch (Exception) {
            Debug.LogError("Wrong tower type: " + type);
        }

        layer = 6;
        size  = new Vector2(texture.width / 50f, texture.height / 50f) / 2f * Settings.FhdToHD;

        GameController.towers.Add(this);
        GameController.towersDictionary.Add(gameObject, this);

        buffs = new Dictionary <Buff, float> (GameController.buffs[color]);

        foreach (var buff in TowersSettings.Buffs(type))
        {
            buffs.Add((Buff)Enum.Parse(typeof(Buff), buff), 1);
        }
    }
    private void Create()
    {
        if (UpdateController.themeName != "GlobalMapTheme")
        {
            if (UpdateController.theme != null)
            {
                AudioController.instance.RemoveAudio(UpdateController.theme);
            }

            UpdateController.theme     = AudioController.instance.CreateAudio("GlobalMapTheme", true, true);
            UpdateController.themeName = "GlobalMapTheme";
        }

        var background0 = new GUIImage();

        background0.texture          = Resources.Load("Interface/StartMenu/Background0") as Texture;
        background0.layer            = -5;
        background0.sizeInMeters     = new Vector2(-1, -1);
        background0.positionInMeters = new Vector2(0, 0) * Settings.FhdToHD;

        var background1 = new GUIImage();

        background1.texture          = Resources.Load("Interface/StartMenu/Background1") as Texture;
        background1.layer            = -3;
        background1.sizeInMeters     = new Vector2(-1, -1);
        background1.positionInMeters = new Vector2(0, 0) * Settings.FhdToHD;

        var greenWater = new GUIButtonAlpha();

        greenWater.texture          = Resources.Load("Interface/StartMenu/GreenWater") as Texture;
        greenWater.layer            = -4;
        greenWater.sizeInMeters     = new Vector2(-1, -1);
        greenWater.positionInMeters = new Vector2(16.73f, -7.5f) * Settings.FhdToHD;
        greenWater.gameObject.name += "Through";
        greenWater.OnClick          = (t) => {
            MakeBubble();
        };

        var red = new GUIImage();

        red.texture          = Resources.Load("Interface/StartMenu/Red") as Texture;
        red.layer            = -4;
        red.sizeInMeters     = new Vector2(-1, -1);
        red.positionInMeters = new Vector2(-3.94f, -0.25f) * Settings.FhdToHD;

        var green = new GUIImage();

        green.texture          = Resources.Load("Interface/StartMenu/Green") as Texture;
        green.layer            = -4;
        green.sizeInMeters     = new Vector2(-1, -1);
        green.positionInMeters = new Vector2(6.02f, -0.25f) * Settings.FhdToHD;



        var redHotspot = new GUIImage();

        redHotspot.texture          = Resources.Load("Interface/StartMenu/Hotspot") as Texture;
        redHotspot.layer            = -3.9f;
        redHotspot.sizeInMeters     = new Vector2(-1, -1);
        redHotspot.positionInMeters = new Vector2(-4.24f, -0.19f) * Settings.FhdToHD;

        var greenHotspot = new GUIImage();

        greenHotspot.texture          = Resources.Load("Interface/StartMenu/Hotspot") as Texture;
        greenHotspot.layer            = -3.9f;
        greenHotspot.sizeInMeters     = new Vector2(-1, -1);
        greenHotspot.positionInMeters = new Vector2(5.73f, -0.19f) * Settings.FhdToHD;

        startArrow                  = new GUIImage();
        startArrow.texture          = Resources.Load("Interface/StartMenu/Arrow1") as Texture;
        startArrow.layer            = -3.8f;
        startArrow.sizeInMeters     = new Vector2(-1, -1);
        startArrow.positionInMeters = new Vector2(1.06f, -2.22f) * Settings.FhdToHD;

        secondArrow                  = new GUIImage();
        secondArrow.texture          = Resources.Load("Interface/StartMenu/Arrow0") as Texture;
        secondArrow.layer            = -3.8f;
        secondArrow.sizeInMeters     = new Vector2(-1, -1);
        secondArrow.positionInMeters = new Vector2(-6.9f, 7.74f) * Settings.FhdToHD;

        start                  = new GUIButton();
        start.texture          = Resources.Load("$" + Settings.language + "/Interface/StartMenu/Start") as Texture;
        start.layer            = -2;
        start.sizeInMeters     = new Vector2(-1, -1);
        start.positionInMeters = new Vector2(1.08f, -5.3f) * Settings.FhdToHD;
        start.OnButtonDown     = (t) => {
            start.texture = Resources.Load("$" + Settings.language + "/Interface/StartMenu/StartPushed") as Texture;
        };
        start.OnButtonUp = (t) => {
            start.texture = Resources.Load("$" + Settings.language + "/Interface/StartMenu/Start") as Texture;
        };
        start.OnClick = (t) => {
            if (!GamePullController.isPreordered)
            {
                var toPreorder = new List <GamePullController.PreoderItem> ();

                toPreorder.Add(new GamePullController.PreoderItem("GUIImage", 70, () => {}));
                toPreorder.Add(new GamePullController.PreoderItem("Text", 10, () => {}));
                toPreorder.Add(new GamePullController.PreoderItem("GUIImageAlpha", 4, () => {}));
                //toPreorder.Add (new GamePullController.PreoderItem ("Audio", 0, () => {}));

                GamePullController.Preorder(toPreorder, (done, total) => {
                    loaded = done * 1f / total;
                }, () => {
                    isNextSceneLoaded = true;
                });
            }
            else
            {
                UpdateController.LaunchIt(10, 0.02f, (q) => {
                    loaded = q / 9f;
                }, () => {
                    isNextSceneLoaded = true;
                });
            }
        };


        cogwheel1                  = new GUIImage();
        cogwheel1.texture          = Resources.Load("Interface/StartMenu/Cogwheel1") as Texture;
        cogwheel1.layer            = -4.9f;
        cogwheel1.sizeInMeters     = new Vector2(-1, -1);
        cogwheel1.positionInMeters = new Vector2(16.52f, 7.42f) * Settings.FhdToHD;

        cogwheel2                  = new GUIImage();
        cogwheel2.texture          = Resources.Load("Interface/StartMenu/Cogwheel2") as Texture;
        cogwheel2.layer            = -4;
        cogwheel2.sizeInMeters     = new Vector2(-1, -1);
        cogwheel2.positionInMeters = new Vector2(13.82f, 3.25f) * Settings.FhdToHD;

        cogwheel3                  = new GUIImage();
        cogwheel3.texture          = Resources.Load("Interface/StartMenu/Cogwheel0") as Texture;
        cogwheel3.layer            = -4;
        cogwheel3.sizeInMeters     = new Vector2(-1, -1);
        cogwheel3.positionInMeters = new Vector2(9.38f, 9.05f) * Settings.FhdToHD;


        text                  = new GUIImage();
        text.texture          = Resources.Load("$" + Settings.language + "/Interface/StartMenu/Text") as Texture;
        text.layer            = -2;
        text.sizeInMeters     = new Vector2(-1, -1);
        text.positionInMeters = new Vector2(-14.63f, 7.67f) * Settings.FhdToHD;


        var englishBox = new GUIButton();

        englishBox.texture          = Resources.Load("$English/Interface/StartMenu/Box") as Texture;
        englishBox.layer            = -2;
        englishBox.sizeInMeters     = new Vector2(-1, -1);
        englishBox.positionInMeters = new Vector2(-14.63f, 0.5f) * Settings.FhdToHD;
        englishBox.OnButtonDown     = (t) => {
            englishBox.texture = Resources.Load("$English/Interface/StartMenu/BoxPushed") as Texture;
        };
        englishBox.OnButtonUp = (t) => {
            englishBox.texture = Resources.Load("$English/Interface/StartMenu/Box") as Texture;
        };
        englishBox.OnClick = (t) => {
            if (Settings.language == "English")
            {
                return;
            }

            RotateSecondArrow();
            Settings.language = "English";
            UpdateLanguage();
        };

        var russianBox = new GUIButton();

        russianBox.texture          = Resources.Load("$Russian/Interface/StartMenu/Box") as Texture;
        russianBox.layer            = -2;
        russianBox.sizeInMeters     = new Vector2(-1, -1);
        russianBox.positionInMeters = new Vector2(-14.63f, -4.8f) * Settings.FhdToHD;
        russianBox.OnButtonDown     = (t) => {
            russianBox.texture = Resources.Load("$Russian/Interface/StartMenu/BoxPushed") as Texture;
        };
        russianBox.OnButtonUp = (t) => {
            russianBox.texture = Resources.Load("$Russian/Interface/StartMenu/Box") as Texture;
        };
        russianBox.OnClick = (t) => {
            if (Settings.language == "Russian")
            {
                return;
            }

            RotateSecondArrow();
            Settings.language = "Russian";
            UpdateLanguage();
        };


        selection                  = new GUIImage();
        selection.texture          = Resources.Load("Interface/StartMenu/Selection") as Texture;
        selection.layer            = -1.5f;
        selection.sizeInMeters     = new Vector2(-1, -1);
        selection.positionInMeters = new Vector2(-14.613f, 1.78f) * Settings.FhdToHD;

        UpdateLanguage();

        UpdateController.Timer(0.1f, () => {
            new OptionsController(() => {
                Application.Quit();
            }, null, false);
        });

        loadingPosition           = 0;
        loaded                    = 0;
        cogwheelsRotation         = 0;
        secondArrowRotation       = 0;
        secondArrowTargetRotation = 0;
        secondArrowSpeed          = 0.2f;
        secondArrowCooldown       = secondArrowMaxCooldown;
        bubblesCooldown           = bubblesMaxCooldown;
    }
Beispiel #24
0
 private void Destroy()
 {
     GameController.missilesToDestroy.Add(this);
     GamePullController.DestroyImage(gameObject);
 }
    private static void ParseMap(string map)
    {
        var maps = map.Split('|');

        int i = 0;

        GameController.RoadRed  = new List <List <Vector3> >();
        GameController.RoadBlue = new List <List <Vector3> >();

        for (int q = 0; q < 6; q++)
        {
            GameController.RoadRed.Add(new List <Vector3>());

            int lng = int.Parse(maps[i]);

            i++;
            for (int p = 0; p < lng; p++)
            {
                GameController.RoadRed[q].Add(ParseRoad(maps[i]));

                i++;
            }
        }


        for (int q = 0; q < 6; q++)
        {
            GameController.RoadBlue.Add(new List <Vector3>());

            int lng = int.Parse(maps[i]);
            i++;
            for (int p = 0; p < lng; p++)
            {
                GameController.RoadBlue[q].Add(ParseRoad(maps[i]));
                i++;
            }
        }


        Logger.LogList(GameController.RoadBlue);
        Logger.LogList(GameController.RoadRed);

        for (; i < maps.Length - 1; i += 7)
        {
            switch (maps[i])
            {
            case "Layer":


                GameObject mapPlane = GamePullController.CreateImage();

                float x, y, w, h;
                w = float.Parse(maps[i + 5]);
                h = float.Parse(maps[i + 6]);
                x = float.Parse(maps[i + 3]);
                y = float.Parse(maps[i + 4]);
                mapPlane.transform.position   = new Vector3(x, int.Parse(maps[i + 1]), y);
                mapPlane.transform.localScale = new Vector3(w, h, 1);
                mapPlane.name = "Map";
                mapPlane.GetComponent <Renderer>().material.mainTexture = Resources.Load("Levels/Level" + level + "/" + maps[i + 2].Split('.')[0]) as Texture;

                if (maps[i + 2].Split('.')[0] == "Map")
                {
                    GameController.mapWidth  = w;
                    GameController.mapHeight = h;
                }

                break;

            case "Tower":

                GameObject towerPlace = GamePullController.CreateImage();
                towerPlace.gameObject.GetComponent <BoxCollider> ().enabled = true;

                switch (maps[i + 2])
                {
                case "Red":
                    GameController.towerPlacesRed.Add(towerPlace);
                    break;

                case "Blue":
                    GameController.towerPlacesBlue.Add(towerPlace);
                    break;
                }

                towerPlace.transform.position = new Vector3(float.Parse(maps[i + 3]), float.Parse(maps[i + 1]), float.Parse(maps[i + 4]));
                towerPlace.GetComponent <Renderer>().material.mainTexture
                    = Resources.Load("Textures/Towers/TowerPlace" + maps[i + 2]) as Texture;
                towerPlace.transform.localScale = new Vector3(3.08f * Settings.FhdToHD, 4.13f * Settings.FhdToHD, 1);
                towerPlace.name = "TowerPlace" + maps[i + 2];
                break;

            default:

                /*
                 * PointObject pointObject = new PointObject (PointObject.PointObjectType.Road, 0.6f, 0.6f,
                 *                                         new Vector2 (float.Parse (maps[i+3]), float.Parse (maps[i+4])), maps[i] + maps[i+2]);
                 */
                break;
            }
        }
    }
 public override void Destroy()
 {
     GamePullController.DestroyButtonAlpha(gameObject);
     animation.Destroy();
     GUIController.Remove(gameObject, this);
 }
Beispiel #27
0
 public void Destroy()
 {
     animation.Destroy();
     GamePullController.DestroyImage(gameObject);
     BombsController.bombs.Remove(this);
 }
Beispiel #28
0
 public override void Destroy()
 {
     GUIController.Remove(this);
     GamePullController.DestroyText(gameObject);
     gameObject = null;
 }
Beispiel #29
0
 public override void Destroy()
 {
     GamePullController.DestroyImage(gameObject);
     isStatic = false;
     GUIController.Remove(this);
 }
 public void RemoveAudio(GameObject audio)
 {
     musics.Remove(audio);
     sounds.Remove(audio);
     GamePullController.DestroyAudio(audio);
 }