예제 #1
0
        /// <inheritdoc />
        protected override void OnEventFired(object source, EventArgs args)
        {
            //This just spawns the player by grabbing a spawn point
            //and passing it to the local player factory.
            Transform spawnPoint = SpawnStrategy.GetSpawnpoint();

            int entityGuid = EntityGuid.ComputeEntityGuid(EntityType.Player, SlotIndex.SlotSelected);

            GameObject gameObject = LocalPlayerWorldRepresentationFactory.Create(new LocalPlayerWorldRepresentationCreationContext(entityGuid, spawnPoint));

            if (Logger.IsInfoEnabled)
            {
                Logger.Info($"Created LocalPlayer's World Object. Dispatching {nameof(OnLocalPlayerWorldObjectCreated)}");
            }


            OnLocalPlayerWorldObjectCreated?.Invoke(this, new LocalPlayerWorldObjectSpawnedEventArgs(entityGuid, gameObject));
        }
예제 #2
0
파일: MainScript.cs 프로젝트: 4gus71n/unity
    void RandomInstantiation(int channel, float x, SpawnStrategy spwStr)
    {
        RedSquare rs;
        int brickSize = spwStr.brickSize;
        switch (brickSize) {
        case 1:
            rs = redSquare;
            break;
        case 2:
            rs = redSquare2;
            break;
        case 3:
            rs = redSquare3;
            break;
        default:
            rs = redSquare;
            Debug.Log("F**k!");
            break;
        }
        rs.channelRunningIn = channel;
        rs.color = spwStr.brickColor;
        DeadZoneScript currentChannel = getPathFromChannel (channel);

        //If the color of the square is the same as the channel, spawn it dead.
        switch (rs.color) {
        case 1:
            rs.renderer.enabled = true;
            rs.blueSquare.renderer.enabled = false;
            rs.greenSquare.renderer.enabled = false;
            break;
        case 2:
            rs.renderer.enabled = false;
            rs.blueSquare.renderer.enabled = true;
            rs.greenSquare.renderer.enabled = false;
            break;
        case 3:
            rs.renderer.enabled = false;
            rs.blueSquare.renderer.enabled = false;
            rs.greenSquare.renderer.enabled = true;
            break;
        }
        rs.status = RedSquare.ALIVE;
        RedSquare copyOfRedSqr = Instantiate(rs, new Vector3(x,4.149223f + spwStr.brickYOffset,0f), Quaternion.identity) as RedSquare;
        brickBag.Add (copyOfRedSqr);
    }
예제 #3
0
파일: MainScript.cs 프로젝트: 4gus71n/unity
    void BuildBrickStrategy()
    {
        for (int x = 0; x < 3; x++) {
            for (int y = 199; y > 0; y--) {
                int brickSize = Random.Range(0,4);
                int currBrickSize = 0;
                if (y+1 < 200) {
                    currBrickSize += flow[x, y+1].brickSize;
                }
                if (y+2 < 200) {
                    currBrickSize += flow[x, y+2].brickSize;
                }
                if (y+3 < 200) {
                    currBrickSize += flow[x, y+2].brickSize;
                }
                if (currBrickSize < 3) {
                    brickSize = Random.Range(1,4-currBrickSize);
                } else {
                    brickSize = 0;
                }

                SpawnStrategy currentStrategy = new SpawnStrategy();
                currentStrategy.brickSize = brickSize;
                if (brickSize == 2) {
                    currentStrategy.brickYOffset = 0.5f;
                } else {
                    currentStrategy.brickYOffset = 0f;
                }

                if (brickSize != 0) {
                    do {
                        currentStrategy.brickColor = Random.Range(1,4);
                    } while (currentStrategy.brickColor == lastColor);
                    lastColor = currentStrategy.brickColor;
                }

                flow[x, y] = currentStrategy;
            }
        }
    }