public void RemoveGameLayer(int layerLevel)
 {
     if (GameLayers.ContainsKey(layerLevel))
     {
         GameLayers.Remove(layerLevel);
     }
 }
    static void addSortingLayer(GameLayers sortLayer, SerializedObject tagManager)
    {
        SerializedProperty sortingLayers = tagManager.FindProperty("m_SortingLayers");
        bool found = false;

        for (int i = 0; i < sortingLayers.arraySize; i++)
        {
            SerializedProperty t = sortingLayers.GetArrayElementAtIndex(i);
            if (t.FindPropertyRelative("name").stringValue.Equals(sortLayer.ToString()))
            {
                found = true;
                t.FindPropertyRelative("uniqueID").longValue = (long)sortLayer;
                break;
            }
        }
        if (!found)
        {
            sortingLayers.InsertArrayElementAtIndex(0);
            SerializedProperty sp = sortingLayers.GetArrayElementAtIndex(0);
            if (sp != null)
            {
                sp.FindPropertyRelative("name").stringValue   = sortLayer.ToString();
                sp.FindPropertyRelative("uniqueID").longValue = (long)sortLayer;
            }
        }
        tagManager.ApplyModifiedProperties();
    }
Пример #3
0
    public IEnumerable <Player> Explode(int owningPlayerLayer)
    {
        StartCoroutine(AnimateExplosion(0.5f));
        float radius    = _collider.radius * transform.localScale.x;
        var   colliders = Physics2D.OverlapCircleAll(transform.position, radius, GameLayers.AllPlayers() & ~(1 << owningPlayerLayer));

        return(colliders.Select((x) => x.GetComponent <Player>()).Where((x) => x != null));
    }
 public void AddGameLayer(int layerLevel, GameLayer gameLayer)
 {
     if (!GameLayers.ContainsKey(layerLevel))
     {
         GameLayers.Add(layerLevel, gameLayer);
     }
     else
     {
         GameApplication.Log(Utils.LogEntryType.Warning, "Unable to add game layer with layer level " + layerLevel + "! Game layer on level " + layerLevel + " already exists!");
     }
 }
Пример #5
0
    public GameCharacter()
    {
        _model = GameObject.Instantiate
                 (
            Resources.Load <GameObject>("Prefabs/Characters/Character01"),
            GameLayers.GetLayerCharacters()
                 );

        _modelTransform = _model.transform;

        _x       = Random.Range(-3f, 3f);
        _xTarget = Random.Range(-3f, 3f);
        _idle    = Random.Range(1f, 5f);

        _speedX = Random.Range(0.85f, 1.15f);
        _speedY = Random.Range(1.5f, 2.5f);
    }
Пример #6
0
    public void StartGame(PlayerConfig[] playerConfigs)
    {
        if (_playerConfigs == null)
        {
            _playerConfigs = playerConfigs;
        }

        _gameStarted = true;

        for (int i = 0; i < playerConfigs.Length; i++)
        {
            if (metaPlayers[i] == null)
            {
                var metaPlayer = new MetaPlayer()
                {
                    config = playerConfigs[i],
                    color  = playerColors[i]
                };
                metaPlayers[i] = metaPlayer;
            }
            else
            {
                if (metaPlayers[i].player != null)
                {
                    Destroy(metaPlayers[i].player.gameObject);
                }
            }

            if (metaPlayers[i].config == null)
            {
                continue;
            }
            var player = Instantiate(playerPrefab, playerSpawnMarkers[i].position, Quaternion.identity);
            player.SetColor(metaPlayers[i].color);
            player.SetInputDevice(metaPlayers[i].config.inputDevice);
            player.SetTankControls(metaPlayers[i].config.tankControls);
            player.SetMetaPlayer(metaPlayers[i]);
            player.gameObject.layer = GameLayers.PlayerLayerFromIndex(i);
            metaPlayers[i].player   = player;
        }
    }
Пример #7
0
 private void Awake()
 {
     i = this;
 }
Пример #8
0
        //default behaviour for moving pieces
        //helper function for zones' manipulation of piece position
        //by default, we will use the PrizmGameManager's settings for cardMovementTime, otherwise, use provided parameter
        public static void MovePieceToZone(Piece pieceToMove, Zone targetZone, bool rotateAngles = true, GameLayers pieceLayer = GameLayers.lowerPiece, float travelTime = -1.0f)
        {
            float movementTime = travelTime;

            if (travelTime < 0)
            {
                movementTime = PrizmGameManager.instance.myGameConfig.cardMovementTime;
            }
            Vector3 targetPosition = targetZone.transform.position;

            targetPosition = new Vector3(targetPosition.x, (float)pieceLayer, targetPosition.z);
            //Debug.Log ("piece to move: " + pieceToMove.ToString ());
            //Debug.Log ("target position: " + targetPosition.ToString ());
            //Debug.Log ("game config: " + PrizmGameManager.instance.myGameConfig.cardMovementTime.ToString ());
            try {
                iTween.MoveTo(pieceToMove.gameObject, targetPosition, movementTime);
                if (rotateAngles)
                {
                    iTween.RotateTo(pieceToMove.gameObject, targetZone.transform.localEulerAngles, movementTime);
                }
            } catch (System.NullReferenceException ex) {
                Debug.LogError(ex);
            }
        }