Beispiel #1
0
        private TClass CreateFromRouteData <TClass>(RouteData rd, Type type)
            where TClass : class
        {
            var exclude  = new string[] { "type", "method" };
            var keys     = rd.Values.Keys.Where(k => exclude.Contains(k) == false);
            var ctorInfo = type.GetConstructors()
                           .Select(c => new
            {
                ctor  = c,
                parms = c.GetParameters()
            })
                           .Where(c => c.parms.Count() == keys.Count())
                           .Where(c => c.parms.All(p => keys.Contains(p.Name)))
                           .SingleOrDefault();
            var parms = new List <object>();

            foreach (var parameterInfo in ctorInfo.parms)
            {
                Type idType = FindIdType(parameterInfo.Name);
                parms.Add(RestArea.ConvertTo(idType, rd.Values[parameterInfo.Name].ToString()));
            }
            return(ctorInfo.ctor.Invoke(parms.ToArray()) as TClass);
        }
Beispiel #2
0
    public void Initialize()
    {
        _player.ResetPlayer(Main.Instance.gameState != GameState.Boss);

        if (Main.Instance.gameState == GameState.Gameplay)
        {
            _restAreaInstance = Instantiate(_restAreaPrefab);
            LoadLevel();
            ToggleFogOfWarEnabled(true);
        }
        else
        {
            if (Main.Instance.gameState == GameState.Hubworld || Main.Instance.gameState == GameState.Boss)
            {
                Tilemap walls = GameObject.Find("Walls").GetComponent <Tilemap>();
                _currentMap = new Map(GameObject.Find("Floor").GetComponent <Tilemap>(),
                                      GameObject.Find("Walls").GetComponent <Tilemap>(), GameObject.Find("Pits").GetComponent <Tilemap>(),
                                      new MillerParkLCG());

                _currentMap.CollisionMap = new int[Mathf.CeilToInt(walls.localBounds.size.x), Mathf.CeilToInt(walls.localBounds.size.y)];

                _player.transform.position = GameObject.Find("PlayerSpawn").transform.position;
                CameraManager.Instance.SetCameraPosition(_player.transform.position);
            }

            if (Main.Instance.gameState != GameState.MainMenu)
            {
                GenerateFogOfWar();
                _fogOfWarVisible = true;
                ToggleFogOfWarEnabled(true);
            }
            else
            {
                ToggleFogOfWarEnabled(false);
            }
        }
    }