Ejemplo n.º 1
0
    void Start()
    {
        inputController = Camera.main.GetComponent <TutorialInputController>();
        uiController    = Camera.main.GetComponent <TutorialUIController>();
        soundController = gameObject.GetComponent <SoundController>();
        camController   = Camera.main.GetComponent <CameraController>();

        TileFactory.tileMaterial = tileMaterial;
        matrix = new Matrix(MapParser.ReadMap("Maps/tutorial"));
        MapDrawer.instantiateMap(matrix.getIterable());
        players = new List <Player> ();
        players.Add(new Player("Jugador", StatsFactory.GetStat(SlimeCoreTypes.SLOTH)));         // Test with 2 players
        //players.Add(new Player("IA Tutorial", 1, StatsFactory.GetStat(SlimeCoreTypes.SLOTH))); // Test with 2 players
        players[0].SetColor(new Color(1, 1, 1));
        //players[1].SetColor(new Color(1,0,1));
        playerSlime = SlimeFactory.instantiateSlime(players[0], new Vector2(0f, -2f));
        //SlimeFactory.instantiateSlime(players[1], new Vector2(0f,2f));
        status        = GameControllerStatus.WAITINGFORACTION;
        currentPlayer = players [0];
        uiController.UpdateRound(currentTurn + 1);
        uiController.UpdatePlayer(GetCurrentPlayer().GetColor());
        uiController.UpdateActions(playerActions, GetCurrentPlayer().actions);
        uiController.ShowBothPanels();

        InitDialogChains();
        InitMarker();
        marker.SetParentTransform(playerSlime.transform);
        marker.SetMarkerRelativeSize();
        marker.SetActive(false);
        FloatingTextController.Initialize();
    }
Ejemplo n.º 2
0
 public int GetDamageReduction()
 {
     if (elementType != null)
     {
         return((int)(StatsFactory.GetStat(elementType).maxDamageReduction *100f));
     }
     else
     {
         return(0);
     }
 }
Ejemplo n.º 3
0
 public int GetDamage()
 {
     if (elementType != null)
     {
         return(StatsFactory.GetStat(elementType).maxBaseAttack);
     }
     else
     {
         return(0);
     }
 }
Ejemplo n.º 4
0
 public int GetMovementRange()
 {
     if (elementType != null)
     {
         return(StatsFactory.GetStat(elementType).movement);
     }
     else
     {
         return(0);
     }
 }
Ejemplo n.º 5
0
 public int GetAttackRange()
 {
     if (elementType != null)
     {
         return(StatsFactory.GetStat(elementType).range);
     }
     else
     {
         return(0);
     }
 }
Ejemplo n.º 6
0
    public void ChangeElement(ElementType newElement)
    {
        if (elementType == ElementType.NONE)
        {
            elementType = newElement;
            element     = StatsFactory.GetStat(elementType);
        }
        if (elementType == ElementType.FIRE ||
            elementType == ElementType.WATER ||
            elementType == ElementType.EARTH)
        {
            switch (newElement)
            {
            case ElementType.EARTH:
                if (elementType == ElementType.FIRE)
                {
                    elementType = ElementType.LAVA;
                }
                else if (elementType == ElementType.WATER)
                {
                    elementType = ElementType.MUD;
                }
                break;

            case ElementType.FIRE:
                if (elementType == ElementType.EARTH)
                {
                    elementType = ElementType.LAVA;
                }
                else if (elementType == ElementType.WATER)
                {
                    elementType = ElementType.STEAM;
                }
                break;

            case ElementType.WATER:
                if (elementType == ElementType.FIRE)
                {
                    elementType = ElementType.STEAM;
                }
                else if (elementType == ElementType.EARTH)
                {
                    elementType = ElementType.MUD;
                }
                break;

            default:
                break;
            }
            element = StatsFactory.GetStat(elementType);
        }
    }
    private void changeInfo()
    {
        StatsContainer stats;

        if (coreSelector [currentPlayer] == 0)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.WRATH);
        }
        else if (coreSelector [currentPlayer] == 1)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.SLOTH);
        }
        else if (coreSelector [currentPlayer] == 2)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.GLUTTONY);
        }
        else if (coreSelector [currentPlayer] == 3)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.ENVY);
        }
        else if (coreSelector [currentPlayer] == 4)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.GREED);
        }
        else if (coreSelector [currentPlayer] == 5)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.LUST);
        }
        else if (coreSelector [currentPlayer] == 6)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.PRIDE);
        }
        else if (coreSelector [currentPlayer] == 7)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.INNOCENCE);
        }
        else if (coreSelector [currentPlayer] == 8)
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.ULTIMATE);              // Por ahora peta
        }
        else
        {
            stats = StatsFactory.GetStat(SlimeCoreTypes.GLUTTONY);
        }
        int dmg  = stats.maxBaseAttack;
        int hp   = stats.baseMass;
        int rng  = stats.range;
        int move = stats.movement;

        GameObject.Find("CoreInfo").GetComponent <Text> ().text = "  " + hp + "     " + dmg + "\n   " + rng + "      " + move;
    }
Ejemplo n.º 8
0
    public RawSlime(float mass, ElementType elementType, StatsContainer stats, TileData tile)
    {
        this.mass        = mass;
        this.element     = stats;
        this.elementType = elementType;
        this.actualTile  = tile;
        actualTile.SetSlimeOnTop(this);
        this.id = ID;
        ID++;

        if (stats == null)
        {
            element     = StatsFactory.GetStat(ElementType.NONE);
            elementType = ElementType.NONE;
        }
    }
Ejemplo n.º 9
0
 public RawSlime(int id, float mass, ElementType elementType, StatsContainer stats, TileData tile)
 {
     this.mass        = mass;
     this.element     = stats;
     this.elementType = elementType;
     this.actualTile  = tile;
     actualTile.SetSlimeOnTop(this);
     this.id = id;
     if (id > ID)
     {
         ID = id + 1;       // ID sempre es el maxim de tots els id de RawSlime
     }
     if (stats == null)
     {
         element     = StatsFactory.GetStat(ElementType.NONE);
         elementType = ElementType.NONE;
     }
 }
Ejemplo n.º 10
0
 public string GetElement()
 {
     if (element == StatsFactory.GetStat(ElementType.NONE))
     {
         return("Sin recubrimiento");
     }
     else if (element == StatsFactory.GetStat(ElementType.EARTH))
     {
         return("Recubrimiento de tierra");
     }
     else if (element == StatsFactory.GetStat(ElementType.FIRE))
     {
         return("Recubrimiento de fuego");
     }
     else if (element == StatsFactory.GetStat(ElementType.WATER))
     {
         return("Recubrimiento de agua");
     }
     return("Recubrimiento desconocido");
 }
Ejemplo n.º 11
0
    public void ChangeElement(ElementType newElement)
    {
        if (elementType == ElementType.NONE)
        {
            elementType = newElement;
            element     = StatsFactory.GetStat(elementType);
            canimation  = new SpriteAnimation(gameObject.GetComponent <SpriteRenderer> ());
            canimation.LoadSprites(element.picDirection, element.picCount);
            canimation.SetMode(SpriteAnimationMode.BOUNCE);
            canimation.playAnimation();
            changeScaleSlime();
        }
        if (elementType == ElementType.FIRE ||
            elementType == ElementType.WATER ||
            elementType == ElementType.EARTH)
        {
            switch (newElement)
            {
            case ElementType.EARTH:
                if (elementType == ElementType.FIRE)
                {
                    elementType = ElementType.LAVA;
                }
                else if (elementType == ElementType.WATER)
                {
                    elementType = ElementType.MUD;
                }
                break;

            case ElementType.FIRE:
                if (elementType == ElementType.EARTH)
                {
                    elementType = ElementType.LAVA;
                }
                else if (elementType == ElementType.WATER)
                {
                    elementType = ElementType.STEAM;
                }
                break;

            case ElementType.WATER:
                if (elementType == ElementType.FIRE)
                {
                    elementType = ElementType.STEAM;
                }
                else if (elementType == ElementType.EARTH)
                {
                    elementType = ElementType.MUD;
                }
                break;

            default:
                break;
            }
            element    = StatsFactory.GetStat(elementType);
            canimation = new SpriteAnimation(gameObject.GetComponent <SpriteRenderer> ());
            canimation.LoadSprites(element.picDirection, element.picCount);
            canimation.playAnimation();
            canimation.SetMode(SpriteAnimationMode.LOOP);
            changeScaleSlime();
        }

        CenterFace();
    }
Ejemplo n.º 12
0
 public void InitElementTypeNone()
 {
     elementType = ElementType.NONE;
     element     = StatsFactory.GetStat(elementType);
 }
Ejemplo n.º 13
0
        static void Main(string[] args)
        {
            #region Strategy
            //Hero heroAxe = new Hero(new Axe(damage: 90));
            //Hero heroBlade = new Hero(new Blade(damage: 95));

            //int monsterDef = 75;

            //Console.WriteLine($"Axe: {heroAxe.Attack(monsterDef)}");
            //Console.WriteLine($"Axe: {heroBlade.Attack(monsterDef)}");
            #endregion

            #region Factory Method
            //Necromancer necromancer = new Necromancer();
            //Undead undead = necromancer.RaiseUndead<Sceleton>();
            #endregion

            #region TamplateMethod

            ArmorSmith  aSmith = new ArmorSmith();
            WeaponSmith wSmith = new WeaponSmith();

            aSmith.ForgeGear();
            Console.WriteLine("Armor Ready!!!\n");

            wSmith.ForgeGear();
            Console.WriteLine("Weapon Ready!!!\n");

            #endregion

            #region Builder

            //string player = "Me";
            //string target = "Foe";
            //string world = "sand";

            //SpellDirector lol = new SpellDirector();
            //SpellBuffBuilder builder = new SpellBuffBuilder(player, target, world);
            //lol.Builder = builder;
            //lol.BuildSpell();
            //builder.GetSpell();

            #endregion

            #region Abstract Factory

            AbstractFactory statsFactory = new StatsFactory();
            IncreasePotions potion       = statsFactory.GetIncreasePotion();
            Console.WriteLine(potion.Effect);

            #endregion

            #region Singleton

            Team team = Team.GetTeam();
            team.AddMember(new TeamMember());

            #endregion

            Console.ReadLine();
        }
Ejemplo n.º 14
0
    public void tutorialFSMCheck()
    {
        List <String> texts = new List <String>();

        switch (tutorialStatus)
        {
        case TutorialFSMStatus.SELECTSLIME:
            chainTextDialog.Hide();
            texts.Add("¿Has visto que ha aparecido alrededor?\nEsas son las casillas por las que tu slime se puede mover en una acción");
            texts.Add("Prueba a moverte aquí");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(-1, -3).transform);
            });
            inputController.SetActiveInput(false);
            inputController.SetActiveMove(true);
            tutorialStatus = TutorialFSMStatus.MOVEFIRSTSLIME;
            break;

        case TutorialFSMStatus.MOVEFIRSTSLIME:
            texts.Add("Muy bien.\nAhora vuelve a donde estabas");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
            });
            inputController.SetActiveInput(true);
            inputController.SetActiveMove(true);
            marker.SetActive(true);
            marker.SetParentTransform(MapDrawer.GetTileAt(0, -2).transform);
            tutorialStatus = TutorialFSMStatus.RETURNSLIME;
            break;

        case TutorialFSMStatus.RETURNSLIME:
            texts.Add("Perfecto");
            texts.Add("¿Sabias que los slimes pueden hacer muchas mas cosas además de moverse?");
            texts.Add("Ya verás, si mantienes pulsado el slime verás que se marcan alrededor unas casillas.\nPrueba a arrastrar y soltar encima de esas casillas a ver que pasa");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(0, -1).transform);
            });
            inputController.SetActiveInput(false);
            inputController.SetActiveMove(false);
            inputController.SetActiveSplit(true);
            marker.SetActive(false);
            tutorialStatus = TutorialFSMStatus.SPLITSLIME;
            break;

        case TutorialFSMStatus.SPLITSLIME:
            texts.Add("Wow, se han separado");
            texts.Add("Como has conseguido separarte puedes ovservar que la cantidad de acciones que puedes hacer en un turno ha aumentado");
            texts.Add("Mueve el nuevo slime aquí");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(1, -2).transform);
            });
            inputController.SetActiveSplit(false);
            inputController.SetActiveInput(false);
            inputController.SetActiveMove(true);
            tutorialStatus = TutorialFSMStatus.MOVESECONDARYSLIME;
            break;

        case TutorialFSMStatus.MOVESECONDARYSLIME:
            texts.Add("Para juntar tu slime, has de hacer lo mismo que para separarlo pero sobre el slime nuevo");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveInput(true);
                inputController.SetActiveJoin(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(1, -2).transform);
            });
            tutorialStatus = TutorialFSMStatus.JOINSLIME;
            break;

        case TutorialFSMStatus.JOINSLIME:
            texts.Add("¡Cuidado! Un slime enemigo ha aparecido, prueba a atacarle");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveAttack(true);
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(0, 0).transform);
            });
            Player p = new Player("Sida", StatsFactory.GetStat(SlimeCoreTypes.INNOCENCE));
            p.SetColor(new Color(1, 0, 0));
            SlimeFactory.instantiateSlime(p, 0, 0);
            inputController.SetActiveJoin(false);
            inputController.SetActiveInput(false);
            marker.SetActive(false);
            inputController.SetActiveInput(false);
            tutorialStatus = TutorialFSMStatus.ATTACKSLIME;
            break;

        case TutorialFSMStatus.ATTACKSLIME:
            texts.Add("¿Por que no conviertes conquistas una casilla y te curas?");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveMove(true);
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(-1, -1).transform);
            });
            inputController.SetActiveJoin(false);
            inputController.SetActiveInput(false);
            inputController.SetActiveMove(false);
            marker.SetActive(false);
            tutorialStatus = TutorialFSMStatus.MOVETOCONQUER;
            break;

        case TutorialFSMStatus.MOVETOCONQUER:
            texts.Add("Ahora selecciona tu slime y vuelve a hacer click en el");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveConquer(true);
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(-1, -1).transform);
            });
            inputController.SetActiveInput(false);
            inputController.SetActiveConquer(false);
            inputController.SetActiveMove(false);
            marker.SetActive(false);
            tutorialStatus = TutorialFSMStatus.CONQUERTILE;
            break;

        case TutorialFSMStatus.CONQUERTILE:
            texts.Add("Vuelve a tocar la casilla conquistada para curarte");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                inputController.SetActiveEat(true);
                inputController.SetActiveConquer(true);
                inputController.SetActiveInput(true);
                marker.SetActive(true);
                marker.SetParentTransform(MapDrawer.GetTileAt(-1, -1).transform);
            });
            inputController.SetActiveInput(false);
            inputController.SetActiveEat(false);
            inputController.SetActiveConquer(false);
            marker.SetActive(false);
            tutorialStatus = TutorialFSMStatus.ATTACKWITHFIRE;
            break;

        case TutorialFSMStatus.ATTACKWITHFIRE:
            texts.Add("Te has curado");
            texts.Add("Ahora ya conoces las bases de SLIMERS");
            texts.Add("Explora los diferentes retos para descubrir sus verdaderos límites, si es que los tienen");
            chainTextDialog.SetTextList(texts);
            chainTextDialog.Show();
            chainTextDialog.SetOnClickFunction(() => {
                SceneManager.LoadScene(0);
            });
            inputController.SetActiveInput(false);
            inputController.SetActiveEat(false);
            inputController.SetActiveConquer(false);
            marker.SetActive(false);
            break;
        }
    }
Ejemplo n.º 15
0
    // Use this for initialization
    void Start()
    {
        /*
         * TipDialog a = new TipDialog ();
         * a.SetButtonImage(SpritesLoader.GetInstance ().GetResource ("Buttons/button_template"));
         * a.SetBackgroundImage(SpritesLoader.GetInstance ().GetResource ("Panels/emergent"));
         * a.SetInfoTextText ("Has aceptado");
         * a.Hide ();
         * TwoOptionsDialog t = new TwoOptionsDialog();
         * t.SetButtonsImage(SpritesLoader.GetInstance ().GetResource ("Buttons/button_template"));
         * t.SetBackgroundImage(SpritesLoader.GetInstance ().GetResource ("Panels/emergent"));
         * t.SetAceptButtonColor (new Color(0f,0f,1f));
         * t.SetDeclineButtonColor (new Color(1f,0f,0f));
         * t.SetOnClickAceptFunction(()=>{
         *      a.Show();
         * });
         */

        /*
         *      Time.timeScale = 1;
         *      ChainTextDialog ctd = new ChainTextDialog ();
         *      ctd.SetButtonImage(SpritesLoader.GetInstance ().GetResource ("Buttons/button_template"));
         *      ctd.SetBackgroundImage(SpritesLoader.GetInstance ().GetResource ("Panels/emergent"));
         */

        TileFactory.tileMaterial = tileMaterial;
        //InGameMarker igm = new InGameMarker ();
        //igm.SetSprite (SpritesLoader.GetInstance().GetResource("Test/testTileSlim"));
        FloatingTextController.Initialize();
        uiController    = Camera.main.GetComponent <UIController>();
        soundController = gameObject.GetComponent <SoundController>();
        camController   = Camera.main.GetComponent <CameraController>();
        conquerSprite   = SpritesLoader.GetInstance().GetResource("Tiles/conquest_flag");
        //panelTip = GameObject.Find("PanelTip"); //ja tenim el panell, per si el necessitem activar, i desactivar amb : panelTip.GetComponent<DialogInfo> ().Active (boolean);
        //textTip = GameObject.Find("TextTip"); //ja tenim el textBox, per canviar el text : textTip.GetComponent<Text> ().text = "Text nou";
        //panelTip.GetComponent<DialogInfo>().Active(false);
        //textTip.GetComponent<Text>().text = "Aquí es mostraran els diferents trucs que pot fer el jugador";
        players        = new List <Player>();
        Time.timeScale = 1f;
        if (ModosVictoria.IsDefined(typeof(ModosVictoria), GameSelection.modoVictoria))
        {
            condicionVictoria = (ModosVictoria)GameSelection.modoVictoria;
        }
        else
        {
            condicionVictoria = ModosVictoria.ASESINATO; //por defecto
        }

        MAX_TURNS = GameSelection.MAX_TURNS;

        int maxPlayers = GameSelection.playerColors.Count;

        if (maxPlayers == 0)
        {
            GameSelection.playerColors.Add(new Color(0, 0, 1));
            GameSelection.playerColors.Add(new Color(1, 0, 0));
            GameSelection.playerCores.Add(SlimeCoreTypes.SLOTH);
            GameSelection.playerCores.Add(SlimeCoreTypes.WRATH);
            GameSelection.playerIAs.Add(false);
            GameSelection.playerIAs.Add(true);
            maxPlayers = 2;
        }
        for (int i = 0; i < maxPlayers; i++)
        {
            if (GameSelection.playerIAs [i])
            {
                //players.Add(new Player("Jugador "+(i+1),StatsFactory.GetStat(GameSelection.playerCores[i])));
                Debug.Log("Ia true");
                players.Add(new Player("Jugador " + (i + 1), StatsFactory.GetStat(GameSelection.playerCores[i]), AIManager.GetAIByVictoryCondition(this, condicionVictoria)));
            }
            else
            {
                players.Add(new Player("Jugador " + (i + 1), StatsFactory.GetStat(GameSelection.playerCores[i])));
            }
            players[i].SetColor(GameSelection.playerColors[i]);
        }
        matrix = GameSelection.map;//new Matrix(11, 0.3f, 1234567);
        if (matrix == null)
        {
            matrix = new Matrix(5 * players.Count, 0.3f, Random.Range(0, 10000));
        }
        MapDrawer.instantiateMap(matrix.getIterable());
        int numSlimesPerPlayer           = 2;
        List <List <Vector2> > positions = matrix.GetPositions(players.Count, numSlimesPerPlayer);
        int j = 0;

        foreach (Player player in players)
        {
            List <Vector2> positionsSlimes = positions[j];
            foreach (Vector2 positionSlime in positionsSlimes)
            {
                SlimeFactory.instantiateSlime(player, positionSlime);
            }
            j++;
        }
        if (players.Count == 0)
        {
            players.Add(new Player("Jugador 1", StatsFactory.GetStat(SlimeCoreTypes.WRATH), AIManager.GetAIByVictoryCondition(this, condicionVictoria)));            // Test with 2 players
            players.Add(new Player("Jugador 2", StatsFactory.GetStat(SlimeCoreTypes.GLUTTONY)));
            players[0].SetColor(Color.blue);
            players[1].SetColor(Color.red);
            positions = matrix.GetPositions(players.Count, 1);
            SlimeFactory.instantiateSlime(players[0], positions[0][0]);
            SlimeFactory.instantiateSlime(players[1], positions[1][0]);
        }
        //matrix = new Matrix(MapParser.ReadMap(MapTypes.Medium));

        currentTurn   = 0;
        currentPlayer = players[0];
        playerActions = 0;

        uiController.UpdateRound(currentTurn + 1);
        uiController.UpdatePlayer(GetCurrentPlayer().GetColor());

        uiController.UpdateActions(playerActions, GetCurrentPlayer().actions);
        uiController.ShowBothPanels();
        //iniciem la informacio de game over
        totalTiles = matrix.TotalNumTiles();
        //Debug.Log("TILES TOTALS: "+ totalTiles);

        // La condicio de victoria s'assigna mes amunt, aqui nomes s'actualitzen els requisits.
        switch (condicionVictoria)
        {
        case ModosVictoria.CONQUISTA:
            //define percentage tiles to win
            if (MAX_TURNS == 0)
            {
                percentageTilesToWin = 0.25f;
            }
            else
            {
                percentageTilesToWin = 0.75f;
            }

            //Debug.Log("Porcentaje de conquista para ganar: "+percentageTilesToWin);
            break;

        case ModosVictoria.MASA:
            //define mass to win
            massToWin = 0;
            foreach (Player player in players)
            {
                if (player.GetTotalMass() > massToWin)
                {
                    massToWin = player.GetTotalMass();
                }
            }
            massToWin *= 2;
            //Debug.Log("Masa total del jugador para ganar: "+massToWin);
            break;
        }

        GameOverInfo.Init();
        AudioClip clip = SoundsLoader.GetInstance().GetResource("Sounds/MainGameTheme");

        soundController.PlayLoop(clip);
        camController.InitMaxZoom();


        status = GameControllerStatus.CHECKINGLOGIC;
    }
Ejemplo n.º 16
0
    public static Slime instantiateSlime(Player pl, int x, int y)
    {
        GameObject slimeGameObjectContainer = new GameObject("Slime " + (pl.GetNumSlimes() + 1).ToString() + " - " + pl.GetName());
        GameObject slime = new GameObject("Core");

        slime.transform.SetParent(slimeGameObjectContainer.transform);
        slime.AddComponent <SpriteRenderer>();
        slime.tag = "Slime";
        GameObject face = new GameObject("SlimeFace");

        face.AddComponent <SpriteRenderer> ();
        face.transform.SetParent(slime.transform);
        face.GetComponent <SpriteRenderer>().sortingLayerName = "TileElement";
        face.GetComponent <SpriteRenderer> ().sprite          = SpritesLoader.GetInstance().GetResource(pl.statsCoreInfo.picDirection);
        slime.AddComponent <Slime>().face                      = face;
        slime.GetComponent <SpriteRenderer>().sprite           = SpritesLoader.GetInstance().GetResource(StatsFactory.GetStat(ElementType.NONE).picDirection + 0);
        slime.GetComponent <SpriteRenderer>().sortingLayerName = "TileElement";
        slime.AddComponent <BoxCollider2D>();
        slime.AddComponent <SlimeMovement>().parent = slimeGameObjectContainer;

        pl.AddSlime(slime.GetComponent <Slime>());


        Tile    tile = MapDrawer.GetTileAt(x, y);
        Vector2 tileWorldPosition = tile.GetTileData().GetRealWorldPosition();        //MapDrawer.drawInternCoordenates(new Vector2(x0, y0));

        slimeGameObjectContainer.transform.position = new Vector3(tileWorldPosition.x, tileWorldPosition.y, 0f);
        slime.GetComponent <Slime>().SetActualTile(tile);
        slime.GetComponent <Slime> ().InitElementTypeNone();
        slime.GetComponent <Slime>().setPlayer(pl);
        slime.transform.localPosition = new Vector3(0f, 0.35f, 0f);

        slime.GetComponent <Slime>().SetId(ID);
        ID++;
        return(slime.GetComponent <Slime> ());
    }