コード例 #1
0
 public void GoToMapScreen(SaveFile Current)
 {
     SoundLoader.Play("sb-type.wav", false).volume = .5f;
     SaveFileManager.SetCurrentSaveFile(Current);
     Current.FullLoad();
     SceneManager.LoadScene("MapScreen");
 }
コード例 #2
0
    // Start is called before the first frame update
    void Start()
    {
        GameInitialization.Initialize();
        scrollRegion = GetComponent <ScrollRect>();
        var bhav = GameObject.Find("EventSystem").GetComponent <MainMenuBehavior>();

        sampleButton = scrollRegion.content.transform.GetChild(0).gameObject.GetComponent <Button>();
        ButtonStyler.Style(sampleButton);
        playerNameField = transform.parent.transform.GetChild(4).gameObject;
        var saveFiles  = StinkyFile.Save.SaveFile.GetAllSaves();
        int lastHeight = 0;

        foreach (var save in saveFiles)
        {
            if (save.SaveFileInfo.IsBackup)
            {
                continue;
            }
            MakeButton(save.SaveFileInfo.PlayerName, ref lastHeight,
                       delegate
            {
                saveFileMode = false;
                playerNameField.SetActive(false);
                if (save == selected)
                {
                    bhav.GoToMapScreen(save);
                }
                else
                {
                    SoundLoader.Play("sb-type.wav", false).volume = .5f;
                    selected = save;
                    save.FullLoad();
                    SaveFileInfoPopulate.PopulateInfo(save);
                }
            });
        }
        var createButton = MakeButton("Create New Save File", ref lastHeight, delegate
        {
#if false
            if (!saveFileMode)
            {
                SaveFileInfoPopulate.PopulateInfo(null);
                playerNameField.SetActive(true);
                createButton.transform.GetChild(0).GetComponent <Text>().text = "OK";
                return;
            }
            var text = playerNameField.transform.GetChild(1).GetChild(1).GetComponent <Text>();
#endif
            var name = DateTime.Today.ToShortDateString();
            var save = new SaveFile(name);
            bhav.GoToMapScreen(save);
        });

        MakeButton("Go Back", ref lastHeight,
                   delegate
        {
            bhav.CloseSaveSelect();
        });
        (scrollRegion.content.transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, lastHeight);
    }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        if (MovementScript == null)
        {
            return;
        }
        if (!MovementScript.IsMoving && CanMove)
        {
            bool blockMotion = false;
            switch (Direction)
            {
            case StinkyFile.SRotation.NORTH:
                blockMotion = !MovementScript.WalkToTile(MovementScript.TileX, MovementScript.TileY - 1);
                break;

            case StinkyFile.SRotation.SOUTH:
                blockMotion = !MovementScript.WalkToTile(MovementScript.TileX, MovementScript.TileY + 1);
                break;

            case StinkyFile.SRotation.EAST:
                blockMotion = !MovementScript.WalkToTile(MovementScript.TileX + 1, MovementScript.TileY);
                break;

            case StinkyFile.SRotation.WEST:
                blockMotion = !MovementScript.WalkToTile(MovementScript.TileX - 1, MovementScript.TileY);
                break;
            }
            if (blockMotion)
            {
                IsDestoryed = true;
                CanMove     = false;
                GetComponent <Renderer>().enabled = false; // make invisible
            }
        }
        if (timeSinceDestroyed > timeUntilDelete)
        {
            Destroy(gameObject);
        }
        else if (IsDestoryed)
        {
            if (!effectPlayed)
            {
                particleSystem?.Play();
                SoundLoader.Play("teleport.wav", true);
                effectPlayed = true;
            }
            timeSinceDestroyed += Time.deltaTime;
        }
    }
コード例 #4
0
    bool TryMove(TileMovingObjectScript TileObject, StinkyFile.SRotation Direction)
    {
        bool motionResult = TileObject.MoveInDirection(Direction, 1, 7);

        if (motionResult)
        {
            soundEffects.Play(0);
            var rotator = TileObject.GetComponentInChildren <AngleRotator>();
            if (rotator != null)
            {
                rotator.Rotate(Direction);
            }
        }
        return(motionResult);
    }
コード例 #5
0
ファイル: Player.cs プロジェクト: JDrocks450/KrabbyQuestEmu
    public static void KillAllPlayers()
    {
        var targetPlayer = GameObject.Find("Spongebob");

        if (targetPlayer != null)
        {
            var animator = targetPlayer.GetComponentInChildren <Animator>();
            animator.enabled = true;
            animator.Play("Die");
        }
        targetPlayer = GameObject.Find("Patrick");
        if (targetPlayer != null)
        {
            var animator = targetPlayer.GetComponentInChildren <Animator>();
            animator.enabled = true;
            animator.Play("Die");
        }
        SoundLoader.Play("sb-death.wav", true);
        dying = true;
    }
コード例 #6
0
    void PlayerEnteredTile(TileMovingObjectScript TileObject)
    {
        if (TileObject.SpecialObjectIgnore)
        {
            return;
        }
        var   rotator      = TileObject.GetComponentInChildren <AngleRotator>();
        bool  motionResult = false;
        float motionspeed  = 7f;

        switch (BlockComponent.DataBlock.Rotation)
        {
        case StinkyFile.SRotation.NORTH:
            motionResult = TileObject.WalkToTile(TileObject.TileX, TileObject.TileY - 1, motionspeed);
            break;

        case StinkyFile.SRotation.SOUTH:
            motionResult = TileObject.WalkToTile(TileObject.TileX, TileObject.TileY + 1, motionspeed);
            break;

        case StinkyFile.SRotation.WEST:
            motionResult = TileObject.WalkToTile(TileObject.TileX - 1, TileObject.TileY, motionspeed);
            break;

        case StinkyFile.SRotation.EAST:
            motionResult = TileObject.WalkToTile(TileObject.TileX + 1, TileObject.TileY, motionspeed);
            break;
        }
        soundEffects.Play(0);
        if (!motionResult && TileObject.TryGetComponent <Player>(out _))
        {
            Player.KillAllPlayers();
            return;
        }
        if (rotator != null)
        {
            rotator.Rotate(BlockComponent.DataBlock.Rotation);
        }
    }
コード例 #7
0
ファイル: Player.cs プロジェクト: JDrocks450/KrabbyQuestEmu
    // Update is called once per frame
    void Update()
    {
        if (dying)
        {
            float deathTime = 2.5f;
            dyingTimer += Time.deltaTime;
            if (dyingTimer >= deathTime)
            {
                LevelObjectManager.ReloadLevel(); // reset the level
                dying      = false;
                dyingTimer = 0f;
            }
            return;         // prevent player control when dying.
        }
        _ = TileMoveScript; // force update of component
        PlayerEnum updatingPlayer = PlayerName == "spongebob" ? PlayerEnum.SPONGEBOB : PlayerEnum.PATRICK;
        bool       currentPlayer  = (PlayerName == "spongebob" && CurrentPlayer == PlayerEnum.SPONGEBOB) ||
                                    (PlayerName == "patrick" && CurrentPlayer == PlayerEnum.PATRICK);

        if (updatingPlayer == swappingPlayer && playerSwapping) // this frame is the update frame after swapping
        {
            playerSwapping = false;
        }
        if (currentPlayer)
        {
            Current = this;
            if (!IsMoving)
            {
                if (Input.GetKey(KeyCode.W)) // forward
                {
                    WalkToTile(TileX, TileY - 1);
                    rotator.Rotate(SRotation.NORTH);
                }
                else if (Input.GetKey(KeyCode.S)) // backward
                {
                    WalkToTile(TileX, TileY + 1);
                    rotator.Rotate(SRotation.SOUTH);
                }
                else if (Input.GetKey(KeyCode.A)) // left
                {
                    WalkToTile(TileX - 1, TileY);
                    rotator.Rotate(SRotation.WEST);
                }
                else if (Input.GetKey(KeyCode.D)) // right
                {
                    WalkToTile(TileX + 1, TileY);
                    rotator.Rotate(SRotation.EAST);
                }
                if (Input.GetKeyDown(KeyCode.Q))
                {
                    TileMoveScript.NoClip = !TileMoveScript.NoClip; // no clip toggle
                }
                if (Input.GetKeyDown(KeyCode.K))
                {
                    KillAllPlayers(); // kill me now
                }
            }
            if (Input.GetKeyDown(KeyCode.Space) && !playerSwapping)
            {
                swappingPlayer = CurrentPlayer;
                switch (CurrentPlayer) // switch current player
                {
                case PlayerEnum.SPONGEBOB:
                    CurrentPlayer = PlayerEnum.PATRICK;     // patrick
                    break;

                case PlayerEnum.PATRICK:
                    CurrentPlayer = PlayerEnum.SPONGEBOB;     // spongebob
                    break;
                }
                SoundLoader.Play("teleport.wav", false);
                playerSwapping = true;
            }
        }
    }
コード例 #8
0
 public void Destroy()
 {
     soundEffects.Play(0);
     Destroy(gameObject);
 }
コード例 #9
0
 public void OpenSaveSelect()
 {
     SoundLoader.Play("sb-type.wav", false).volume = .5f;
     GameObject.Find("Canvas").transform.GetChild(1).gameObject.SetActive(true);
 }
コード例 #10
0
 void OnLevelLoaded()
 {
     SoundLoader.Play("sb-enter.wav", true); // play level open chime
     GameObject.Find("GameCamera").GetComponent <Animator>().Play("Level Open");
     screenBlocker.SetActive(false);
 }