Inheritance: MonoBehaviour
コード例 #1
0
 private void Form1_Move(object sender, EventArgs e)
 {
     GameState.Refresh();
     GameReset.Refresh();
     GameUp.Refresh();
     GameDown.Refresh();
 }
コード例 #2
0
 public void PrepareNewGame()
 {
     GameReset?.Invoke();
     foreach (IGameCellView computerGameCell in computerGameCells)
     {
         computerGameCell.ClearEvents();
         computerGameCell.cellClicked += (coordinates) => CellAttacked?.Invoke(coordinates);
     }
 }
コード例 #3
0
ファイル: GameManager.cs プロジェクト: anttiviljami/ld45
 public void ResetGame()
 {
     this.IsRunning = false;
     GameReset?.Invoke();
     UnityEngine.SceneManagement.SceneManager.LoadScene(
         UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex
         );
     this.IsRunning = true;
 }
コード例 #4
0
ファイル: GameMaster.cs プロジェクト: bmjoy/WyteEngine
 public void Initalize()
 {
     if (playerTemp != null)
     {
         Destroy(playerTemp);
     }
     IsNotFreezed = CanMove = true;
     GameReset?.Invoke(this);
     booted = false;
 }
コード例 #5
0
ファイル: GameReset.cs プロジェクト: ImCrispeh/ProgramROB
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(gameObject);
     }
     else
     {
         _instance = this;
         DontDestroyOnLoad(this);
     }
 }
コード例 #6
0
 /// <summary>
 /// プレイヤーが死んだときに呼ばれます。
 /// </summary>
 public void Initalize()
 {
     if (playerTemp != null)
     {
         Destroy(playerTemp);
     }
     Player.Life       = Player.MaxLife;
     Player.WaterPoint = PlayerData.MaxWaterPoint;
     Player.FoodPoint  = PlayerData.MaxFoodPoint;
     IsNotFreezed      = CanMove = true;
     GameReset?.Invoke(this);
     IsPostInitialized = false;
 }
コード例 #7
0
    private void Awake()
    {
        followProjectile = GameObject.FindObjectOfType(typeof(FollowProjectile)) as FollowProjectile;
        gameReset        = GameObject.FindObjectOfType(typeof(GameReset)) as GameReset;
        catapult         = GameObject.FindObjectOfType(typeof(Catapult)) as Catapult;

        catapultRigidBody = GameObject.Find("/Catapult").GetComponent <Rigidbody2D>();

        spring = GetComponent <SpringJoint2D>();

        CircleRadius = (GetComponent <Collider2D>() as CircleCollider2D).radius;

        maxStretchSquared = MaxStretch * MaxStretch;

        rb              = GetComponent <Rigidbody2D>();
        rb.mass         = 5.0f;
        rb.drag         = 0.15f;
        rb.angularDrag  = 15.0f;
        rb.gravityScale = 1.0f;
    }
コード例 #8
0
ファイル: EventSink.cs プロジェクト: panalgin/canon-booth
 public static void InvokeGameReset()
 {
     GameReset?.Invoke();
 }
コード例 #9
0
    public void Build()
    {
        firstSet = false;
        // Fetches other scripts for
        gameReset           = FindObjectOfType <GameReset>();
        adjacentBombChecker = FindObjectOfType <AdjacentBombChecker>();
        gameManager         = FindObjectOfType <GameManager>();
        floodCheck          = FindObjectOfType <FloodCheck>();
        playerControllers   = FindObjectOfType <PlayerControllers>();
        gridSizeX           = gameManager.gridSizeX;
        gridSizeZ           = gameManager.gridSizeZ;
        numberOfBombs       = gameManager.numberOfBombs;
        //bombDevide = gameManager.bombDevide;
        Grid = new int[gridSizeX, gridSizeZ];
        //numberOfBombs = ((gridSizeX * gridSizeZ) / bombDevide);
        for (int x = 0; x < gridSizeX; x++)
        {
            for (int z = 0; z < gridSizeZ; z++)
            {
                SpawnTile(x, z);
            }
        }
        // Initialize date for use in other scripts
        floodCheck.Initialize();
        adjacentBombChecker.Initialize();
        // Each tile knows their neighbors
        floodCheck.NeighbourAssigner();
        // Turns a set number of random safeTiles into bombTiles
        PlaceBombs();
        playerControllers.Initialize();
        // Checks every safe tile for bomb neighbors then adds the number to them
        adjacentBombChecker.CheckAdjacentBombs();
        // Sets the starting sprites
        foreach (TileSO singleTile in allTileSOs)
        {
            if (singleTile.numOfAdjacent == 0 && !firstSet && singleTile.type == Type.Safe)
            {
                singleTile.spriteHolder.gameObject.SetActive(true);
                singleTile.spriteHolder.sprite = singleTile.tileSprites[0];
                singleTile.spriteHolder.color  = Color.green;
                firstSet = true;
                firstTile.Add(singleTile);
                playerControllers.firstClick = false;
                playerControllers.firstTile  = firstTile;
            }
            else
            {
                singleTile.spriteHolder.gameObject.SetActive(true);
                singleTile.spriteHolder.sprite = singleTile.tileSprites[0];
                singleTile.spriteHolder.color  = Color.yellow;
            }
        }

        // Used to do 2 loops, figured just one was better
        //
        //foreach(TileSO singleTile in safeTileSOs)
        //{
        //    singleTile.spriteHolder.gameObject.SetActive(true);
        //    singleTile.spriteHolder.sprite = singleTile.tileSprites[0];
        //}
        // This was for testing purposes
        //foreach (TileSO singleSO in safeTileSOs)
        //{
        //    //singleSO.adjacentTMP.text = "[" + singleSO.coordX.ToString() + ","
        //    //    + singleSO.coordZ.ToString() + "]";
        //    singleSO.adjacentTMP.text = singleSO.numOfAdjacent.ToString();
        //    singleSO.adjacentTMP.gameObject.SetActive(true);
        //}
        //foreach(TileSO singleSO in bombTileSOs)
        //{
        //    singleSO.spriteHolder.color = Color.red;
        //    singleSO.spriteHolder.gameObject.SetActive(true);
        //}
    }
コード例 #10
0
    void Update()
    {
        if (!_startReady)
        {
            return;
        }

        float dt = Time.deltaTime;

        if (_finished)
        {
            if (Input.anyKey && Time.time - _gameTimerElapsed > LevelResumeTime)
            {
                if (_result != Result.Running && _result != Result.LostEarnings && _result != Result.LostExhaustion)
                {
                    if (LevelIdx < LevelList.Count)
                    {
                        LevelIdx++;

                        if (LevelIdx == LevelList.Count)
                        {
                            _gameTimerElapsed = Time.time;
                            GameBeaten?.Invoke(LevelResumeTime);
                        }
                        else
                        {
                            CheckStartFatigue();
                            GameReset?.Invoke();
                            InitLevel(LevelList[LevelIdx]);
                        }
                    }
                    else
                    {
                        LevelIdx     = 0;
                        StartFatigue = 0;
                        InitLevel(LevelList[LevelIdx]);
                    }
                }
                else
                {
                    StartFatigue = 0;
                    GameReset?.Invoke();
                    InitLevel(LevelList[LevelIdx]);
                }
            }
            return;
        }
        _gameTimerElapsed += dt;
        bool exhausted = _result == Result.LostExhaustion;
        int  nextRev   = 0;

        if (_gameTimerElapsed >= CurrentLevel.LevelTimeSeconds || exhausted)
        {
            if (_revenue < CurrentLevel.MinRevenue)
            {
                _result = Result.LostEarnings;
                nextRev = CurrentLevel.MinRevenue;
            }
            else if (_revenue < CurrentLevel.GoodRevenue)
            {
                _result = Result.WonBase;
                nextRev = CurrentLevel.GoodRevenue;
            }
            else if (_revenue < CurrentLevel.GreatRevenue)
            {
                _result = Result.WonGood;
                nextRev = CurrentLevel.GreatRevenue;
            }
            else
            {
                _result = Result.WonGreat;
            }

            if (exhausted)
            {
                _result = Result.LostExhaustion; // Override to avoid several ifs above.
            }

            _finished = true;
            GameFinished?.Invoke(_result, _revenue, nextRev, LevelResumeTime);

            _gameTimerElapsed = Time.time;
        }
        else
        {
            // requests check:
            if (_requestIdx < CurrentLevel.NumClients)
            {
                _requestElapsed += dt;
                if (_requestElapsed >= _requestTimes[_requestIdx])
                {
                    RequestData reqData = GenerateRequest();
                    int         slotIdx = ActiveClientRequestSlots.FindIndex(x => !_requestAllocations.ContainsKey(x));
                    if (slotIdx < 0)
                    {
                        _stalledRequests.Enqueue(reqData);
                    }
                    else
                    {
                        _requestAllocations[ActiveClientRequestSlots[slotIdx]] = reqData;
                        ActiveClientRequestSlots[slotIdx].InitClient(reqData);
                    }
                    _requestIdx++;
                }
            }

            if (_dragging)
            {
                float fatigueDelta = dt * DragDepletionRate;
                _fatigue += fatigueDelta;
                bool exhaustionCheck = _fatigue >= MaxFatigue;
                if (exhaustionCheck)
                {
                    _fatigue = MaxFatigue;
                    _result  = Result.LostExhaustion;
                }
                OnFatigueChanged?.Invoke(FatiguePercent);
                if (exhaustionCheck)
                {
                    return;
                }
            }
            else if (_elapsedSinceLastDragFinished >= 0)
            {
                _elapsedSinceLastDragFinished += dt;
                if (_elapsedSinceLastDragFinished > IdleToRestoreTime)
                {
                    _elapsedSinceLastDragFinished = IdleToRestoreTime;
                    _fatigue -= dt * FatigueRestoreRate;
                    if (_fatigue < 0)
                    {
                        _fatigue = 0;
                        _elapsedSinceLastDragFinished = -1.0f;
                    }
                    OnFatigueChanged?.Invoke(FatiguePercent);
                }
            }

            foreach (var resBuilding in ActiveResourceBuildings)
            {
                resBuilding.UpdateGame(dt);
            }
            foreach (var recBuilding in ActiveRecipeBuildings)
            {
                recBuilding.UpdateGame(dt);
            }

            foreach (var slot in ActiveClientRequestSlots)
            {
                slot.UpdateLogic(dt);
            }
        }
    }
コード例 #11
0
 public static void ResetGame()
 {
     GameReset?.Invoke();
 }