コード例 #1
0
    void LateStart()
    {
        if (!string.IsNullOrEmpty(SpritePath))
        {
            Image img = GetComponent <Image>();
            if (img != null)
            {
                img.sprite = SpriteRegistry.Get(SpritePath);
                if (SetNativeSize)
                {
                    img.SetNativeSize();
                }
            }

            ParticleSystem psys = GetComponent <ParticleSystem>();
            if (psys != null)
            {
                ParticleSystemRenderer prender = GetComponent <ParticleSystemRenderer>();
                prender.material.mainTexture = SpriteRegistry.Get(SpritePath).texture;
            }
        }

        if (!string.IsNullOrEmpty(SoundPath))
        {
            AudioSource aSrc = GetComponent <AudioSource>();
            aSrc.clip = AudioClipRegistry.Get(SoundPath);
            aSrc.loop = Loop;
        }
    }
コード例 #2
0
ファイル: UIController.cs プロジェクト: ethan3329/Unitale
    // Use this for initialization
    private void Start()
    {
        textmgr = GameObject.Find("TextManager").GetComponent <TextManager>();
        textmgr.setEffect(new TwitchEffect(textmgr));
        encounter = FindObjectOfType <LuaEnemyEncounter>();

        fightBtn        = GameObject.Find("FightBt").GetComponent <Image>();
        fightBtn.sprite = SpriteRegistry.Get("UI/Buttons/fightbt_0");
        actBtn          = GameObject.Find("ActBt").GetComponent <Image>();
        actBtn.sprite   = SpriteRegistry.Get("UI/Buttons/actbt_0");
        itemBtn         = GameObject.Find("ItemBt").GetComponent <Image>();
        itemBtn.sprite  = SpriteRegistry.Get("UI/Buttons/itembt_0");
        mercyBtn        = GameObject.Find("MercyBt").GetComponent <Image>();
        mercyBtn.sprite = SpriteRegistry.Get("UI/Buttons/mercybt_0");

        ArenaSizer.instance.ResizeImmediate(ArenaSizer.UIWidth, ArenaSizer.UIHeight);
        PlayerController.instance.setControlOverride(true);
        fightUI = GameObject.Find("FightUI").GetComponent <FightUIController>();
        fightUI.gameObject.SetActive(false);

        bindEncounterScriptInteraction();
        encounter.CallOnSelfOrChildren("EncounterStarting");
        if (state == UIState.NONE)
        {
            SwitchState(UIState.ACTIONSELECT);
        }
    }
コード例 #3
0
    // Sets an animation for this instance with a frame timer
    public void SetAnimation(string[] spriteNames, float frametime)
    {
        Vector2 pivot = img.GetComponent <RectTransform>().pivot;

        Keyframe[] kfArray = new Keyframe[spriteNames.Length];
        for (int i = 0; i < spriteNames.Length; i++)
        {
            kfArray[i] = new Keyframe(SpriteRegistry.Get(spriteNames[i]), spriteNames[i].ToLower());
        }
        if (keyframes == null)
        {
            if (img.GetComponent <KeyframeCollection>())
            {
                keyframes         = img.GetComponent <KeyframeCollection>();
                keyframes.enabled = true;
            }
            else
            {
                keyframes     = img.AddComponent <KeyframeCollection>();
                keyframes.spr = this;
            }
        }
        else
        {
            keyframes.enabled = true;
        }
        keyframes.loop = loop;
        keyframes.Set(kfArray, frametime);
        UpdateAnimation();
        img.GetComponent <RectTransform>().pivot = pivot;
    }
コード例 #4
0
 public static void Launch()
 {
     //GameObject.Find("player").GetComponent<Image>().sprite = null;
     Camera.main.GetComponent <AudioSource>().clip             = AudioClipRegistry.GetMusic("mus_gameover");
     GameObject.Find("GameOver").GetComponent <Image>().sprite = SpriteRegistry.Get("UI/spr_gameoverbg_0");
     GameObject.FindObjectOfType <GameOverBehavior>().StartDeath(null, null);
 }
コード例 #5
0
ファイル: StaticInits.cs プロジェクト: spacecatprime/Unitale
    public void initAll()
    {
        if (!Initialized)
        {
            Stopwatch sw = new Stopwatch(); //benchmarking terrible loading times
            sw.Start();
            ScriptRegistry.init();
            sw.Stop();
            UnityEngine.Debug.Log("Script registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            SpriteRegistry.init();
            sw.Stop();
            UnityEngine.Debug.Log("Sprite registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            AudioClipRegistry.init();
            sw.Stop();
            UnityEngine.Debug.Log("Audio clip registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            SpriteFontRegistry.init();
            sw.Stop();
            UnityEngine.Debug.Log("Sprite font registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();
        }
        LateUpdater.init(); // must be last; lateupdater's initialization is for classes that depend on the above registries
        MusicManager.src = Camera.main.GetComponent <AudioSource>();
    }
コード例 #6
0
    // Use this for initialization
    void Start()
    {
        if (!SaveLoad.started)
        {
            StaticInits.Start();
            SaveLoad.Start();
            new ControlPanel();
            new PlayerCharacter();
            #if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
            if (GlobalControls.crate)
            {
                Misc.WindowName = ControlPanel.instance.WinodwBsaisNmae;
            }
            else
            {
                Misc.WindowName = ControlPanel.instance.WindowBasisName;
            }
            #endif
            SaveLoad.LoadAlMighty();
            LuaScriptBinder.Set(null, "ModFolder", MoonSharp.Interpreter.DynValue.NewString("@Title"));
            UnitaleUtil.AddKeysToMapCorrespondanceList();
        }
        Camera.main.GetComponent <AudioSource>().clip = AudioClipRegistry.GetMusic("mus_intro");
        Camera.main.GetComponent <AudioSource>().Play();
        if (imagePaths.Length != textsToDisplay.Length)
        {
            throw new Exception("You need to have the same number of images and lines of text.");
        }
        text = GameObject.FindObjectOfType <TextManager>();
        img  = GameObject.Find("CutsceneImages").GetComponent <Image>();
        text.SetVerticalSpacing(6);
        text.SetHorizontalSpacing(6);
        if (SpriteRegistry.Get("Intro/mask") != null)
        {
            mask = true;
            GameObject.Find("Mask").GetComponent <Image>().sprite = SpriteRegistry.Get("Intro/mask");
            GameObject.Find("Mask").GetComponent <Image>().color  = new Color(1, 1, 1, 1);
        }

        TextMessage[] mess = new TextMessage[textsToDisplay.Length];
        for (int i = 0; i < mess.Length; i++)
        {
            mess[i] = new TextMessage("[waitall:2]" + textsToDisplay[i], false, false);
        }
        text.SetTextQueue(mess);
        img.sprite = SpriteRegistry.Get("Intro/" + imagePaths[0]);
        img.SetNativeSize();
        if (specialEffects[0] != string.Empty)
        {
            try { ApplyEffect((Effect)Enum.Parse(typeof(Effect), specialEffects[currentIndex].ToUpper())); }
            catch { UnitaleUtil.DisplayLuaError("IntroManager", "The effect " + specialEffects[currentIndex] + " doesn't exist."); }
        }
        if (goToNextDirect[0] == "Y")
        {
            timer = 0.5f;
        }
    }
コード例 #7
0
    public static void InitAll(bool shaders = false)
    {
        if (!Initialized && (!GlobalControls.isInFight || GlobalControls.modDev))
        {
            //UnitaleUtil.createFile();
            Stopwatch sw = new Stopwatch(); //benchmarking terrible loading times
            sw.Start();
            ScriptRegistry.Init();
            sw.Stop();
            UnityEngine.Debug.Log("Script registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            SpriteRegistry.Init();
            sw.Stop();
            UnityEngine.Debug.Log("Sprite registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            AudioClipRegistry.Init();
            sw.Stop();
            UnityEngine.Debug.Log("Audio clip registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            sw.Start();
            SpriteFontRegistry.Init();
            sw.Stop();
            UnityEngine.Debug.Log("Sprite font registry loading time: " + sw.ElapsedMilliseconds + "ms");
            sw.Reset();

            if (shaders)
            {
                sw.Start();
                ShaderRegistry.Init();
                sw.Stop();
                UnityEngine.Debug.Log("Shader registry loading time: " + sw.ElapsedMilliseconds + "ms");
                sw.Reset();
            }
        }
        else
        {
            Initialized = true;
        }
        LateUpdater.Init(); // must be last; lateupdater's initialization is for classes that depend on the above registries
        MusicManager.src = Camera.main.GetComponent <AudioSource>();
        SendLoaded();
        //CurrENCOUNTER = ENCOUNTER;
        //CurrMODFOLDER = MODFOLDER;
    }
コード例 #8
0
ファイル: UIController.cs プロジェクト: ethan3329/Unitale
    private void Awake()
    {
        fightB1 = SpriteRegistry.Get("UI/Buttons/fightbt_1");
        actB1   = SpriteRegistry.Get("UI/Buttons/actbt_1");
        itemB1  = SpriteRegistry.Get("UI/Buttons/itembt_1");
        mercyB1 = SpriteRegistry.Get("UI/Buttons/mercybt_1");

        sndSelect  = AudioClipRegistry.GetSound("menumove");
        sndConfirm = AudioClipRegistry.GetSound("menuconfirm");

        arenaParent  = GameObject.Find("arena_border_outer");
        canvasParent = GameObject.Find("Canvas");
        uiAudio      = GetComponent <AudioSource>();
        uiAudio.clip = sndSelect;

        instance = this;
    }
コード例 #9
0
ファイル: StaticInits.cs プロジェクト: hl4hck/CreateYourFrisk
 public static void Start()
 {
     if (!firstInit)
     {
         firstInit = true;
         SpriteRegistry.Start();
         AudioClipRegistry.Start();
         SpriteFontRegistry.Start();
     }
     if (MODFOLDER == null || MODFOLDER == "")
     {
         MODFOLDER = EDITOR_MODFOLDER;
     }
     //if (CurrMODFOLDER != MODFOLDER || CurrENCOUNTER != ENCOUNTER)
     InitAll();
     Initialized = true;
 }
コード例 #10
0
    public void SetTexture(string name, string sprite)
    {
        int property = IndexProperty(name, false);

        if (string.IsNullOrEmpty(sprite))
        {
            throw new CYFException("shader.SetTexture: The second argument, the texture, needs to be the name of an image in your Sprites folder.");
        }

        Sprite spr = SpriteRegistry.Get(sprite);

        if (spr == null)
        {
            throw new CYFException("The sprite Sprites/" + sprite + ".png doesn't exist.");
        }
        material.SetTexture(property, spr.texture);
    }
コード例 #11
0
 public static void Start()
 {
     if (!firstInit)
     {
         firstInit = true;
         SpriteRegistry.Start();
         AudioClipRegistry.Start();
         SpriteFontRegistry.Start();
         ShaderRegistry.Start();
     }
     if (string.IsNullOrEmpty(MODFOLDER))
     {
         MODFOLDER = EDITOR_MODFOLDER;
     }
     //if (CurrMODFOLDER != MODFOLDER || CurrENCOUNTER != ENCOUNTER)
     InitAll();
     Initialized = true;
 }
コード例 #12
0
    public void SetAnimation(string[] spriteNames, float frametime)
    {
        Keyframe[] kfArray = new Keyframe[spriteNames.Length];
        for (int i = 0; i < spriteNames.Length; i++)
        {
            kfArray[i] = new Keyframe(SpriteRegistry.Get(spriteNames[i]));
        }
        if (keyframes == null)
        {
            keyframes     = img.gameObject.AddComponent <KeyframeCollection>();
            keyframes.spr = this;
        }
        else
        {
            keyframes.enabled = true;
        }

        keyframes.Set(kfArray, frametime);
    }
コード例 #13
0
    //I know, there's WAY too much parameters in here, but I don't have the choice right now.
    //If I find a way to get the Table's text from DynValues, I'll gladly reduce the number of
    //parameters of this, but right now, even if it is very painful to enter directly 6 or 10 parameters,
    //I don't find a proper way to do this. (Erm...plus, I have to say that if I put arrays into this,
    //you'll have to write braces in the function, so just think that I give you a favor xP)
    /// <summary>
    /// Permits to display an image on the screen at given dimensions, position and color
    /// </summary>
    /// <param name="path"></param>
    /// <param name="id"></param>
    /// <param name="posX"></param>
    /// <param name="posY"></param>
    /// <param name="toneR"></param>
    /// <param name="toneG"></param>
    /// <param name="toneB"></param>
    /// <param name="toneA"></param>
    [CYFEventFunction] public void DispImg(string path, int id, float posX, float posY, int toneR = 255, int toneG = 255, int toneB = 255, int toneA = 255)
    {
        GameObject image;
        bool       newImage = false;

        if (GameObject.Find("Image" + id) != null)
        {
            image = GameObject.Find("Image" + id);
        }
        else
        {
            newImage   = true;
            image      = Object.Instantiate(Resources.Load <GameObject>("Prefabs/ImageEvent"));
            image.name = "Image" + id;
            image.tag  = "Event";
            image.GetComponent <RectTransform>().SetParent(GameObject.Find("Canvas OW").transform);
            EventManager.instance.spriteControllers.Add("Image" + id, new LuaSpriteController(image.GetComponent <Image>()));
        }

        image.GetComponent <Image>().sprite = SpriteRegistry.Get(path);
        if (image.GetComponent <Image>().sprite == null)
        {
            throw new CYFException("Screen.DispImg: The sprite given doesn't exist.");
        }
        if (toneR < 0 || toneR > 255 || toneR % 1 != 0 || toneG < 0 || toneG > 255 || toneG % 1 != 0 || toneB < 0 || toneB > 255 || toneB % 1 != 0)
        {
            throw new CYFException("Screen.DispImg: You can't input a value out of [0; 255] for a color value, as it is clamped from 0 to 255.\nThe number have to be an integer.");
        }

        if (toneA >= 0 && toneA <= 255 && toneR % 1 == 0)
        {
            image.GetComponent <Image>().color = new Color32((byte)toneR, (byte)toneG, (byte)toneB, (byte)toneA);
        }
        image.GetComponent <RectTransform>().sizeDelta = image.GetComponent <Image>().sprite.bounds.size * 100;
        image.GetComponent <RectTransform>().position  = (Vector2)Camera.main.transform.position + new Vector2(posX - 320, posY - 240);

        if (newImage)
        {
            EventManager.instance.events.Add(image);
        }

        appliedScript.Call("CYFEventNextCommand");
    }
コード例 #14
0
    public static void SwapSpriteFromFile(MonoBehaviour target, string filename)
    {
        try
        {
            Sprite newSprite = SpriteRegistry.Get(filename);
            if (newSprite == null)
            {
                newSprite = fromFile(FileLoader.pathToModFile("Sprites/" + filename + ".png"));
                SpriteRegistry.Set(filename, newSprite);
            }

            Image img = target.GetComponent <Image>();
            img.sprite = newSprite;
            //enemyImg.SetNativeSize();
            img.rectTransform.sizeDelta = new Vector2(newSprite.texture.width, newSprite.texture.height);
        }
        catch (Exception)
        {
            // TODO do something I guess
        }
    }
コード例 #15
0
ファイル: GameOverInit.cs プロジェクト: spacecatprime/Unitale
 void Start()
 {
     Camera.main.GetComponent <AudioSource>().clip             = AudioClipRegistry.GetMusic("mus_gameover");
     GameObject.Find("GameOver").GetComponent <Image>().sprite = SpriteRegistry.Get("UI/spr_gameoverbg_0");
     GameObject.FindObjectOfType <GameOverBehavior>().StartDeath();
 }
コード例 #16
0
    private void LateStart()
    {
        if (this == null)
        {
            return;
        }
        //bool hasError = false;
        if ((done || !handleDictErrors) && (doneFromLoadedScene || handleDictErrors))
        {
            return;
        }
        if (!done && handleDictErrors)
        {
            done = true;
        }
        else
        {
            doneFromLoadedScene = true;
        }
        bool currHandleDictErrors = handleDictErrors;

        if (!string.IsNullOrEmpty(SpritePath))
        {
            Image                  img  = GetComponent <Image>();
            SpriteRenderer         img2 = GetComponent <SpriteRenderer>();
            ParticleSystemRenderer img3 = GetComponent <ParticleSystemRenderer>();
            if (img != null)
            {
                img.sprite = SpriteRegistry.Get(SpritePath);
                if (img.sprite == null && currHandleDictErrors)
                {
                    UnitaleUtil.DisplayLuaError("AutoloadResourcesFromRegistry", "You tried to load the sprite \"" + SpritePath + "\", but it doesn't exist.");
                    return;
                }
                //if (img.sprite == null)
                //hasError = true;
                if (img.sprite != null)
                {
                    //img.sprite.name = SpritePath.ToLower(); TODO: Find a way to store the sprite's path
                    if (SetNativeSize)
                    {
                        img.SetNativeSize();
                        if (!UnitaleUtil.IsOverworld)
                        {
                            img.rectTransform.localScale = new Vector3(1, 1, 1);
                            img.rectTransform.sizeDelta  = new Vector2(img.sprite.texture.width, img.sprite.texture.height);
                        }
                        else
                        {
                            img.rectTransform.localScale = new Vector3(100, 100, 1);
                            img.rectTransform.sizeDelta  = new Vector2(img.sprite.texture.width / 100f, img.sprite.texture.height / 100f);
                        }
                    }
                }
            }
            else if (img2 != null)
            {
                img2.sprite = SpriteRegistry.Get(SpritePath);
                if (img2.sprite == null && currHandleDictErrors)
                {
                    UnitaleUtil.DisplayLuaError("AutoloadResourcesFromRegistry", "You tried to load the sprite \"" + SpritePath + "\", but it doesn't exist.");
                    return;
                }
                //if (img2.sprite == null)
                //hasError = true;
                if (img2.sprite != null)
                {
                    //img2.sprite.name = SpritePath.ToLower();
                    if (SetNativeSize)
                    {
                        if (!UnitaleUtil.IsOverworld)
                        {
                            img2.transform.localScale = new Vector3(1, 1, 1);
                            img2.GetComponent <RectTransform>().sizeDelta = new Vector2(img2.sprite.texture.width, img2.sprite.texture.height);
                        }
                        else
                        {
                            img2.transform.localScale = new Vector3(100, 100, 1);
                            img2.GetComponent <RectTransform>().sizeDelta = new Vector2(img2.sprite.texture.width / 100f, img2.sprite.texture.height / 100f);
                        }
                    }
                }
            }
            else if (img3 != null)
            {
                img3.material.mainTexture = SpriteRegistry.Get(SpritePath).texture;
            }
            else
            {
                throw new CYFException("The GameObject " + gameObject.name + " doesn't have an Image, Sprite Renderer or Particle System component.");
            }
        }

        /*
         * if (!string.IsNullOrEmpty(SoundPath) && !hasError) {
         *  AudioSource aSrc = GetComponent<AudioSource>();
         *  aSrc.clip = AudioClipRegistry.Get(SoundPath);
         *  aSrc.loop = Loop;
         * }
         */
        handleDictErrors = true;
    }
コード例 #17
0
    public void StartDeath(string[] newDeathText = null, string newDeathMusic = null)
    {
        PlayerOverworld.audioCurrTime = 0;
        if (!UnitaleUtil.IsOverworld)
        {
            UIController.instance.encounter.EndWave(true);
            autolinebreakstate = EnemyEncounter.script.GetVar("autolinebreak").Boolean;
            EnemyEncounter.script.SetVar("autolinebreak", DynValue.NewBoolean(true));
            transform.position = new Vector3(transform.position.x - Misc.cameraX, transform.position.y - Misc.cameraY, transform.position.z);
        }
        else
        {
            autolinebreakstate = true;
        }

        deathText  = newDeathText;
        deathMusic = newDeathMusic;

        //Reset the camera's position
        Misc.MoveCameraTo(0, 0);

        playerZ = 130;
        if (UnitaleUtil.IsOverworld)
        {
            playerParent = transform.parent.parent;
            playerIndex  = transform.parent.GetSiblingIndex();
            // transform.parent.SetParent(null);
        }
        else
        {
            playerParent = transform.parent;
            playerIndex  = transform.GetSiblingIndex();
            transform.SetParent(null);
        }

        if (UnitaleUtil.IsOverworld)
        {
            /* transform.parent.position = new Vector3(transform.parent.position.x - GameObject.Find("Main Camera OW").transform.position.x - 320,
             *                                      transform.parent.position.y - GameObject.Find("Main Camera OW").transform.position.y - 240, transform.parent.position.z); */
            battleCamera = GameObject.Find("Main Camera OW");
            battleCamera.SetActive(false);
            GetComponent <SpriteRenderer>().enabled = true; // stop showing the player
        }
        else
        {
            UIController.instance.encounter.gameOverStance = true;
            GetComponent <PlayerController>().invulTimer   = 0;
            GetComponent <Image>().enabled = true; // abort the blink animation if it was playing
            battleCamera = GameObject.Find("Main Camera");
            battleCamera.SetActive(false);

            battleContainer = GameObject.Find("Canvas");
            battleContainer.GetComponent <Canvas>().enabled = false;
        }

        // remove all bullets if in retrocompatibility mode
        if (GlobalControls.retroMode)
        {
            foreach (LuaProjectile p in FindObjectsOfType <LuaProjectile>())
            {
                BulletPool.instance.Requeue(p);
            }
        }

        /*battleContainer = new GameObject("BattleContainer");
         * foreach (Transform go in UnitaleUtil.GetFirstChildren(null, false))
         *  if (go.name != battleContainer.name &&!go.GetComponent<LuaEnemyEncounter>() && go.name != Player.name &&!go.name.Contains("AudioChannel"))
         *      go.SetParent(battleContainer.transform);
         * battleContainer.SetActive(false);*/

        if (UnitaleUtil.IsOverworld)
        {
            gameOverContainerOw.SetActive(true);
        }
        else
        {
            gameOverContainer.SetActive(true);
        }
        ScreenResolution.BoxCameras(Screen.fullScreen);

        Camera.main.GetComponent <AudioSource>().clip             = AudioClipRegistry.GetMusic("mus_gameover");
        GameObject.Find("GameOver").GetComponent <Image>().sprite = SpriteRegistry.Get("UI/spr_gameoverbg_0");

        if (UnitaleUtil.IsOverworld)
        {
            utHeart      = Instantiate(GameObject.Find("utHeart"));
            heartColor   = utHeart.GetComponent <Image>().color;
            heartColor.a = 1;
        }
        else
        {
            heartColor = gameObject.GetComponent <Image>().color;
            gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform);
        }

        //if (overworld)
        //    gameObject.transform.SetParent(GameObject.Find("Canvas OW").transform);
        //else
        PlayerCharacter.instance.HP = PlayerCharacter.instance.MaxHP;
        if (UnitaleUtil.IsOverworld)
        {
            gameObject.transform.GetComponent <SpriteRenderer>().enabled = false;// gameObject.transform.parent.SetParent(GameObject.Find("Canvas GameOver").transform);
        }
        else
        {
            gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform);
            UIStats.instance.setHP(PlayerCharacter.instance.MaxHP);
        }
        brokenHeartPrefab = Resources.Load <GameObject>("Prefabs/heart_broken");
        if (SpriteRegistry.GENERIC_SPRITE_PREFAB == null)
        {
            SpriteRegistry.GENERIC_SPRITE_PREFAB = Resources.Load <Image>("Prefabs/generic_sprite");
        }
        heartShardPrefab = SpriteRegistry.GENERIC_SPRITE_PREFAB.gameObject;
        reviveText       = GameObject.Find("ReviveText").GetComponent <TextManager>();
        reviveText.SetCaller(EnemyEncounter.script);
        reviveFade = GameObject.Find("ReviveFade").GetComponent <Image>();
        reviveFade.transform.SetAsLastSibling();
        gameOverTxt = GameObject.Find("TextParent").GetComponent <TextManager>();
        gameOverTxt.SetCaller(EnemyEncounter.script);
        gameOverImage = GameObject.Find("GameOver").GetComponent <Image>();
        if (UnitaleUtil.IsOverworld)
        {
            /*
             * heartPos = new Vector3(GetComponent<RectTransform>().position.x - transform.parent.position.x,
             *                     GetComponent<RectTransform>().position.y + (GetComponent<RectTransform>().sizeDelta.y / 2) - transform.parent.position.y,
             *                     GetComponent<RectTransform>().position.z + 100010);
             */
            heartPos = new Vector3((transform.parent.position.x - GameObject.Find("Canvas OW").transform.position.x) + 320,
                                   ((transform.parent.position.y + (GetComponent <RectTransform>().sizeDelta.y / 2)) - GameObject.Find("Canvas OW").transform.position.y) + 240,
                                   GetComponent <RectTransform>().position.z + 100010);
        }
        else
        {
            heartPos = gameObject.GetComponent <RectTransform>().position;
        }
        gameOverMusic = Camera.main.GetComponent <AudioSource>();
        started       = true;
    }
コード例 #18
0
    public void StartDeath(string[] deathText = null, string deathMusic = null)
    {
        PlayerOverworld.audioCurrTime = 0;
        if (!UnitaleUtil.IsOverworld)
        {
            UIController.instance.encounter.EndWave(true);
            autolinebreakstate = LuaEnemyEncounter.script.GetVar("autolinebreak").Boolean;
            LuaEnemyEncounter.script.SetVar("autolinebreak", MoonSharp.Interpreter.DynValue.NewBoolean(true));
        }
        else
        {
            autolinebreakstate = true;
        }

        this.deathText  = deathText;
        this.deathMusic = deathMusic;

        playerZ = 130;
        if (UnitaleUtil.IsOverworld)
        {
            playerParent = transform.parent.parent;
            playerIndex  = transform.parent.GetSiblingIndex();
            transform.parent.SetParent(null);
        }
        else
        {
            playerParent = transform.parent;
            playerIndex  = transform.GetSiblingIndex();
            transform.SetParent(null);
        }

        if (UnitaleUtil.IsOverworld)
        {
            transform.parent.position = new Vector3(transform.parent.position.x - GameObject.Find("Main Camera OW").transform.position.x - 320,
                                                    transform.parent.position.y - GameObject.Find("Main Camera OW").transform.position.y - 240, transform.parent.position.z);
            battleCamera = GameObject.Find("Main Camera OW");
            battleCamera.SetActive(false);
            GetComponent <SpriteRenderer>().enabled = true; // stop showing the player
        }
        else
        {
            UIController.instance.encounter.gameOverStance = true;
            GetComponent <PlayerController>().invulTimer   = 0;
            GetComponent <Image>().enabled = true; // abort the blink animation if it was playing
            battleCamera = GameObject.Find("Main Camera");
            battleCamera.SetActive(false);
        }

        /*battleContainer = new GameObject("BattleContainer");
         * foreach (Transform go in UnitaleUtil.GetFirstChildren(null, false))
         *  if (go.name != battleContainer.name &&!go.GetComponent<LuaEnemyEncounter>() && go.name != Player.name &&!go.name.Contains("AudioChannel"))
         *      go.SetParent(battleContainer.transform);
         * battleContainer.SetActive(false);*/

        if (UnitaleUtil.IsOverworld)
        {
            gameOverContainerOw.SetActive(true);
        }
        else
        {
            gameOverContainer.SetActive(true);
        }

        Camera.main.GetComponent <AudioSource>().clip             = AudioClipRegistry.GetMusic("mus_gameover");
        GameObject.Find("GameOver").GetComponent <Image>().sprite = SpriteRegistry.Get("UI/spr_gameoverbg_0");

        if (UnitaleUtil.IsOverworld)
        {
            utHeart      = Instantiate(GameObject.Find("utHeart"));
            heartColor   = utHeart.GetComponent <Image>().color;
            heartColor.a = 1;
        }
        else
        {
            heartColor = gameObject.GetComponent <Image>().color;
            gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform);
        }

        //if (overworld)
        //    gameObject.transform.SetParent(GameObject.Find("Canvas OW").transform);
        //else
        if (UnitaleUtil.IsOverworld)
        {
            gameObject.transform.parent.SetParent(GameObject.Find("Canvas GameOver").transform);
        }
        else
        {
            gameObject.transform.SetParent(GameObject.Find("Canvas GameOver").transform);
        }
        PlayerCharacter.instance.HP = PlayerCharacter.instance.MaxHP;
        brokenHeartPrefab           = Resources.Load <GameObject>("Prefabs/heart_broken");
        if (SpriteRegistry.GENERIC_SPRITE_PREFAB == null)
        {
            SpriteRegistry.GENERIC_SPRITE_PREFAB = Resources.Load <Image>("Prefabs/generic_sprite");
        }
        heartShardPrefab = SpriteRegistry.GENERIC_SPRITE_PREFAB.gameObject;
        reviveText       = GameObject.Find("ReviveText").GetComponent <TextManager>();
        reviveFade       = GameObject.Find("ReviveFade").GetComponent <Image>();
        reviveFade.transform.SetAsLastSibling();
        gameOverTxt   = GameObject.Find("TextParent").GetComponent <TextManager>();
        gameOverImage = GameObject.Find("GameOver").GetComponent <Image>();
        if (UnitaleUtil.IsOverworld)
        {
            heartPos = new Vector3(GetComponent <RectTransform>().position.x, GetComponent <RectTransform>().position.y + GetComponent <RectTransform>().sizeDelta.y / 2, GetComponent <RectTransform>().position.z);
        }
        else
        {
            heartPos = gameObject.GetComponent <RectTransform>().position;
        }
        gameOverMusic = Camera.main.GetComponent <AudioSource>();
        started       = true;
    }
コード例 #19
0
    // Update is called once per frame
    void Update()
    {
        timer += Time.deltaTime;
        //Effect update
        if (CheckEffect() && !start && !finish && !fadeMusic)
        {
            UpdateEffect();
        }
        //Stop the intro
        if (Input.anyKeyDown && !Input.GetKeyDown(KeyCode.F4))
        {
            Camera.main.GetComponent <AudioSource>().Stop();
            Camera.main.GetComponent <AudioSource>().volume = 1;
            SceneManager.LoadScene("TitleScreen");
        }
        //Fade out
        if (finish && !fadeMusic && !CheckEffect())
        {
            if (timer < 1.75f && !pause)
            {
                pause = true;
            }

            if (timer < 1.75f && timer > 1 && !sameImage)
            {
                img.color = new Color(img.color.r, img.color.g, img.color.b, (-timer + 1.75f) * 4 / 3);
            }
            else if (timer > 1.75f && pause)
            {
                pause     = false;
                timer     = 0.0f;
                finish    = false;
                img.color = new Color(img.color.r, img.color.g, img.color.b, 0);
                //Check end of intro
                if (text.AllLinesComplete())
                {
                    fadeMusic = true;
                    text.DestroyChars();
                }
                else
                {
                    img.sprite = SpriteRegistry.Get("Intro/" + imagePaths[++currentIndex]);
                    img.SetNativeSize();
                    img.rectTransform.pivot    = new Vector2(0.5f, 0.5f);
                    img.rectTransform.position = new Vector2(320, 240);
                    timerEffect = 0.0f;
                    if (specialEffects[currentIndex] != string.Empty)
                    {
                        try { ApplyEffect((Effect)Enum.Parse(typeof(Effect), specialEffects[currentIndex])); }
                        catch { UnitaleUtil.DisplayLuaError("IntroManager", "The effect " + specialEffects[currentIndex] + " doesn't exist."); }
                    }
                    text.NextLineText();
                    start = true;
                }
            }
            //Fade in
        }
        else if (start && !fadeMusic)
        {
            if (timer < 0.5f && !sameImage)
            {
                img.color = new Color(img.color.r, img.color.g, img.color.b, 2 * timer);
            }
            else
            {
                start     = false;
                img.color = new Color(img.color.r, img.color.g, img.color.b, 1);
                timer     = 0.0f;
                if (currentIndex != textsToDisplay.Length - 1)
                {
                    if (goToNextDirect[currentIndex + 1] == "Y")
                    {
                        sameImage = true;
                    }
                    else if (goToNextDirect[currentIndex + 1] == "N")
                    {
                        sameImage = false;
                    }
                    else if (imagePaths[currentIndex] == imagePaths[currentIndex + 1])
                    {
                        sameImage = true;
                    }
                    else
                    {
                        sameImage = false;
                    }
                }
                else
                {
                    sameImage = false;
                }
            }
            //End of intro
        }
        else if (fadeMusic)
        {
            if (timer < 1)
            {
                Camera.main.GetComponent <AudioSource>().volume = 1 - timer;
            }
            else
            {
                Camera.main.GetComponent <AudioSource>().Stop();
                Camera.main.GetComponent <AudioSource>().volume = 1;
                SceneManager.LoadScene("TitleScreen");
            }
            //End of current page
        }
        else if (text.LineComplete() && !start && !CheckEffect())
        {
            finish = true;
            timer  = 0;
        }
    }
コード例 #20
0
    // Sets an animation for this instance with a frame timer
    public void SetAnimation(string[] spriteNames, float frametime, string prefix = "")
    {
        if (spriteNames == null)
        {
            throw new CYFException("sprite.SetAnimation: The first argument (list of images) is nil.\n\nSee the documentation for proper usage.");
        }
        if (spriteNames.Length == 0)
        {
            throw new CYFException("sprite.SetAnimation: No sequence of animations was provided (animation table is empty).");
        }
        if (frametime < 0)
        {
            throw new CYFException("sprite.SetAnimation: An animation can not have negative speed!");
        }
        if (frametime == 0)
        {
            throw new CYFException("sprite.SetAnimation: An animation can not play at 0 frames per second!");
        }

        if (prefix != "")
        {
            while (prefix.StartsWith("/"))
            {
                prefix = prefix.Substring(1);
            }

            if (!prefix.EndsWith("/"))
            {
                prefix += "/";
            }

            for (int i = 0; i < spriteNames.Length; i++)
            {
                spriteNames[i] = prefix + spriteNames[i];
            }
        }

        Vector2 pivot = img.GetComponent <RectTransform>().pivot;

        Keyframe[] kfArray = new Keyframe[spriteNames.Length];
        for (int i = 0; i < spriteNames.Length; i++)
        {
            // at least one sprite in the sequence was unable to be loaded
            if (SpriteRegistry.Get(spriteNames[i]) == null)
            {
                throw new CYFException("sprite.SetAnimation: Failed to load sprite with the name \"" + spriteNames[i] + "\". Are you sure it is spelled correctly?");
            }

            kfArray[i] = new Keyframe(SpriteRegistry.Get(spriteNames[i]), spriteNames[i].ToLower());
        }
        if (keyframes == null)
        {
            if (img.GetComponent <KeyframeCollection>())
            {
                keyframes         = img.GetComponent <KeyframeCollection>();
                keyframes.enabled = true;
            }
            else
            {
                keyframes     = img.AddComponent <KeyframeCollection>();
                keyframes.spr = this;
            }
        }
        else
        {
            keyframes.enabled = true;
        }
        keyframes.loop = loop;
        keyframes.Set(kfArray, frametime);
        UpdateAnimation();
        img.GetComponent <RectTransform>().pivot = pivot;
    }
コード例 #21
0
ファイル: SpriteUtil.cs プロジェクト: yxy-123/CreateYourFrisk
    public static void SwapSpriteFromFile(Component target, string filename, int bubbleID = -1)
    {
        try {
            if (bubbleID != -1)
            {
                FileInfo fi = new FileInfo(Path.ChangeExtension(FileLoader.pathToModFile("Sprites/" + filename + ".png"), "xml"));
                if (!fi.Exists)
                {
                    fi = new FileInfo(Path.ChangeExtension(FileLoader.pathToDefaultFile("Sprites/" + filename + ".png"), "xml"));
                }
                if (fi.Exists)
                {
                    XmlDocument xmld = new XmlDocument();
                    xmld.Load(fi.FullName);
                    if (xmld["spritesheet"] != null && "single".Equals(xmld["spritesheet"].GetAttribute("type")))
                    {
                        if (!UnitaleUtil.IsOverworld)
                        {
                            UIController.instance.encounter.EnabledEnemies[bubbleID].bubbleWidth = ParseUtil.GetFloat(xmld["spritesheet"].GetElementsByTagName("width").Count > 0
                                ? xmld["spritesheet"].GetElementsByTagName("width")[0].InnerText
                                : xmld["spritesheet"].GetElementsByTagName("wideness")[0].InnerText);
                        }
                    }
                }
                else
                {
                    UIController.instance.encounter.EnabledEnemies[bubbleID].bubbleWidth = 0;
                }
            }
        } catch (Exception) {
            UIController.instance.encounter.EnabledEnemies[bubbleID].bubbleWidth = 0;
        }
        Sprite newSprite = SpriteRegistry.Get(filename);

        if (newSprite == null)
        {
            if (filename.Length == 0)
            {
                Debug.LogError("SwapSprite: Filename is empty!");
                return;
            }
            newSprite = FromFile(FileLoader.pathToModFile("Sprites/" + filename + ".png"));
            if (newSprite == null)
            {
                throw new CYFException("The sprite Sprites/" + filename + ".png doesn't exist.");
            }
            SpriteRegistry.Set(filename, newSprite);
        }

        Image img = target.GetComponent <Image>();

        if (!img)
        {
            SpriteRenderer img2  = target.GetComponent <SpriteRenderer>();
            Vector2        pivot = img2.GetComponent <RectTransform>().pivot;
            img2.sprite = newSprite;
            img2.GetComponent <RectTransform>().sizeDelta = new Vector2(newSprite.texture.width, newSprite.texture.height);
            img2.GetComponent <RectTransform>().pivot     = pivot;
        }
        else
        {
            Vector2 pivot = img.rectTransform.pivot;
            img.sprite = newSprite;
            //enemyImg.SetNativeSize();
            img.rectTransform.sizeDelta = new Vector2(newSprite.texture.width, newSprite.texture.height);
            img.rectTransform.pivot     = pivot;
        }
    }