Esempio n. 1
0
    private float timeDistorted;                        //how long the player has been distorting for

    // Use this for initialization
    void Start()
    {
        distorting     = false;
        distortionType = SLOWDOWN;
        timeDistorted  = 0.0f;
        pt             = GetComponent <PlayerTime> ();
    }
Esempio n. 2
0
    // called second
    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        if (_currentGame != null)
        {
            int buildIndex = SceneManager.GetActiveScene().buildIndex;

            Frame.FlushMemory();

            NeverdawnScene neverdawnScene = FindObjectOfType <NeverdawnScene>();

            if (neverdawnScene != null)
            {
                Frame.DeserializeFrames(_currentGame, buildIndex);

                // cache the most important frames
                _playerFrame = Frame.FindFrameById(playerFrameId);
                _inventory   = _playerFrame.GetComponent <PlayerInventory>();
                _party       = _playerFrame.GetComponent <PlayerParty>();
                _time        = _playerFrame.GetComponent <PlayerTime>();

                UICharacterMenus.UpdateView();

                _inventory.Initialize(_currentGame);
                _explorationController.Initialize(_currentGame);
                _eventController.Initialize();

                _time.Run();

                _gameState = GameState.Exploration;
                _isPaused  = false;
            }
        }
    }
Esempio n. 3
0
        private static void StaticOnClientJoined(ulong obj)
        {
            if (obj == 0)
            {
                return;
            }
            if (BlockLimiterConfig.Instance.PlayerTimes.Any(x => x.Player == obj) == false)
            {
                Instance.Log.Warn($"{obj} logged to player time {DateTime.Now}");
                var playerTime = new PlayerTime {
                    Player = obj, Time = DateTime.Now
                };
                BlockLimiterConfig.Instance.PlayerTimes.Add(playerTime);
            }
            if (!BlockLimiterConfig.Instance.EnableLimits)
            {
                return;
            }
            var identityId = Utilities.GetPlayerIdFromSteamId(obj);

            if (identityId == 0)
            {
                return;
            }
            var playerFaction = MySession.Static.Factions.GetPlayerFaction(identityId);

            UpdateLimits.PlayerLimit(identityId);
            if (playerFaction != null)
            {
                UpdateLimits.PlayerLimit(playerFaction.FactionId);
            }
        }
Esempio n. 4
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Esempio n. 5
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (Utils.DetermineObjectType(other) != Utils.ObjectType.Player)
        {
            if (Utils.DetermineObjectType(other) == Utils.ObjectType.Wall)
            {
                Destroy(gameObject);
            }
            return;
        }
        if (!other.CompareTag(currP))
        {
            //other.SendMessage("TakeDamage", damage, SendMessageOptions.DontRequireReceiver);
            //other.GetComponent<PlayerTime>().timeRemaining -= damage;
            PlayerTime.TransferTime(damage, other.gameObject, GameObject.FindGameObjectWithTag(currP));
            Destroy(gameObject);
        }

        /*if (other.gameObject != gameObject)
         * {
         *  other.SendMessage("TakeDamage", damage, SendMessageOptions.DontRequireReceiver);
         *  other.GetComponent<PlayerTime>().timeRemaining -= damage;
         *  Destroy(gameObject);
         * }*/
    }
 /// <summary>
 /// リセット
 /// </summary>
 public void Reset(PlayerTime playerTime)
 {
     TimeASeconds   = playerTime.Total / 1000;
     TimeBSeconds   = playerTime.Byoyomi / 1000;
     RemainSeconds  = TimeASeconds;
     ByoyomiSeconds = TimeBSeconds;
     UpdateTimeDisplay();
 }
Esempio n. 7
0
 void Attack()
 {
     delay = 0.0f;
     if (Utils.DetermineObjectType(playerAttacked) == Utils.ObjectType.Player)
     {
         PlayerTime.TransferTime(damage, playerAttacked.gameObject, gameObject);
     }
 }
Esempio n. 8
0
    public PlayerCharacter(PlayerID id, CharacterAvatar avatar) : base(avatar)
    {
        ID                   = id;
        Input                = new PlayerInput(this);
        Locomotion           = new PlayerLocomotion(this);
        InteractionDetection = new PlayerInteractDetection(this);
        Hand                 = avatar.GetComponentInChildren <PlayerHand>();
        Score                = new PlayerScore();
        Time                 = new PlayerTime();

        Reset();

        Time.Start();
    }
Esempio n. 9
0
    internal static void CreateEntry(Discovery discovery, Frame target)
    {
        if (!instance._discoveries.Contains(discovery.id))
        {
            instance.unlock(discovery.id);

            string targetName = target != null ? target.label : string.Empty;

            instance._entries.Add(new JournalEntry()
            {
                header  = PlayerTime.GetTimeString() + ", " + targetName,
                message = discovery.GetText(targetName)
            });
        }
    }
Esempio n. 10
0
    //make sure there is only one instance of this always.
    void Awake()
    {
        // if (Ins == null)
        // {
        Ins = this;
        // }
        // else if (Ins != this)
        // {
        //     Destroy(gameObject);
        // }

        //DontDestroyOnLoad(gameObject);
        UpdateTime();
        timeData = DataPlayer.GetModule <PlayerTime>();
    }
        public override void Initialize()
        {
            this.playerTime = (PlayerTime)ResourceManager.Instance.CurrentScene.GetObject(this.playerTimerID).GetComponent <PlayerTime>();
            if (this.playerTime.Hours == 22 && this.playerTime.Minutes == 0)
            {
                spawnPossible = true;
                Spawn();
            }
            SafehouseController.Instance.CanToMapSelection = false;

            foreach (uint id in SpawnPointsIDs)
            {
                GameObject go = ResourceManager.Instance.CurrentScene.GetObject(id);
                spawnPoints.Add((SpawnPoint)go.GetComponent <SpawnPoint>());
            }

            base.Initialize();
        }
Esempio n. 12
0
    //save new time to file
    public void SaveTime(decimal time)
    {
        //get previous times
        var        times   = LoadPreviousTimes();
        PlayerTime newTime = new PlayerTime
        {
            //set the new time
            time      = time,
            entryDate = DateTime.Now
        };
        //open file to load times
        var    bin       = new BinaryFormatter();
        var    levelName = Path.GetFileName(selectedLevel);
        string scoreFile = Application.persistentDataPath + "/" + playerName + "_" + levelName + "_times.dat";

        Debug.Log("Saving to: " + scoreFile);
        //create file if it doesnt exist yet; should probably catch io exception here
        using (var stream = File.Open(scoreFile, FileMode.Create))
        {
            times.Add(newTime);
            bin.Serialize(stream, times);
        }
    }
Esempio n. 13
0
    void Update()
    {
        if (_container.isEmpty)
        {
            if (_timeToRefillInHours <= 0.0f)
            {
                if (_container.isEmpty)
                {
                    int numberOfItems = UnityEngine.Random.Range(0, _maxNumberOfItems) + 1;

                    _timeToRefillInHours = _refillDelayInHours;

                    for (int i = 0; i < numberOfItems; i++)
                    {
                        _container.collection.AddPickable(_table.GenerateLoot());
                    }
                }
            }
            else
            {
                _timeToRefillInHours -= (PlayerTime.ScaleTime(Time.deltaTime) / 3600.0f);
            }
        }
    }
Esempio n. 14
0
        public static void GameScreen(int[,] boardGame, int positionPlayerOneX = 99, int positionPlayerOneY = 99, int positionPlayerTwoX = 99, int positionPlayerTwoY = 99, int playerOneScore = 0, int playerTwoScore = 0, bool endGame = false, PlayerTime playerTime = PlayerTime.One)
        {
            if (positionPlayerOneX == 99 || positionPlayerOneY == 99 || positionPlayerTwoX == 99 || positionPlayerTwoY == 99)
            {
                positionPlayerOneX = new Random().Next(1, 10);
                positionPlayerOneY = new Random().Next(1, 10);

                var maxDistance = 2;

                positionPlayerTwoX = SetMaxPosition(positionPlayerOneX, positionPlayerTwoX, maxDistance);
                positionPlayerTwoY = SetMaxPosition(positionPlayerOneY, positionPlayerTwoY, maxDistance);

                while (positionPlayerTwoX == positionPlayerOneX && positionPlayerTwoY == positionPlayerOneY)
                {
                    positionPlayerTwoX = SetMaxPosition(positionPlayerOneX, positionPlayerTwoX, maxDistance);
                    positionPlayerTwoY = SetMaxPosition(positionPlayerOneY, positionPlayerTwoY, maxDistance);
                }
            }

            for (var i = 0; i < 10; i++)
            {
                for (var j = 0; j < 10; j++)
                {
                    if (i == positionPlayerOneY && j == positionPlayerOneX)
                    {
                        Console.BackgroundColor = ConsoleColor.Red;
                    }

                    if (i == positionPlayerTwoY && j == positionPlayerTwoX)
                    {
                        Console.BackgroundColor = ConsoleColor.Blue;
                    }

                    Console.Write($" {boardGame[i, j]} ");
                    Console.BackgroundColor = ConsoleColor.Black;
                }

                Console.Write("\n\n");
            }

            Console.Write("\n\n");
            Console.Write($"Score Player 1: {playerOneScore}\n");
            Console.Write($"Score Player 2: {playerTwoScore}\n");

            PlayersMove(boardGame, positionPlayerOneX, positionPlayerOneY, positionPlayerTwoX, positionPlayerTwoY, playerOneScore, playerTwoScore, endGame, playerTime);
        }
Esempio n. 15
0
 // Update is called once per frame
 void Update()
 {
     text.text = PlayerTime.GetTimeString();
 }
Esempio n. 16
0
        public static void PlayersMove(int[,] boardGame, int positionPlayerOneX = 0, int positionPlayerOneY = 0, int positionPlayerTwoX = 9, int positionPlayerTwoY = 9, int playerOneScore = 0, int playerTwoScore = 0, bool endGame = false, PlayerTime playerTime = PlayerTime.One)
        {
            while (endGame == false)
            {
                var Key = Console.ReadKey(true);

                if (playerTime == PlayerTime.One)
                {
                    if (Key.Key == ConsoleKey.A)
                    {
                        boardGame[positionPlayerOneY, positionPlayerOneX] = 0;

                        var tempPosition = positionPlayerOneX;
                        tempPosition = PlayerMoveLeftOrUp(positionPlayerOneX);
                        if (!(tempPosition == positionPlayerTwoX && positionPlayerOneY == positionPlayerTwoY))
                        {
                            positionPlayerOneX = tempPosition;
                            playerTime         = PlayerTime.Two;
                        }

                        playerOneScore = PlayerScore(boardGame, positionPlayerOneX, positionPlayerOneY, playerOneScore);
                    }

                    if (Key.Key == ConsoleKey.D)
                    {
                        boardGame[positionPlayerOneY, positionPlayerOneX] = 0;

                        var tempPosition = positionPlayerOneX;
                        tempPosition = PlayerMoveRightOrDown(positionPlayerOneX);
                        if (!(tempPosition == positionPlayerTwoX && positionPlayerOneY == positionPlayerTwoY))
                        {
                            positionPlayerOneX = tempPosition;
                            playerTime         = PlayerTime.Two;
                        }

                        playerOneScore = PlayerScore(boardGame, positionPlayerOneX, positionPlayerOneY, playerOneScore);
                    }

                    if (Key.Key == ConsoleKey.W)
                    {
                        boardGame[positionPlayerOneY, positionPlayerOneX] = 0;

                        var tempPosition = positionPlayerOneY;
                        tempPosition = PlayerMoveLeftOrUp(positionPlayerOneY);
                        if (!(tempPosition == positionPlayerTwoY && positionPlayerOneX == positionPlayerTwoX))
                        {
                            positionPlayerOneY = tempPosition;
                            playerTime         = PlayerTime.Two;
                        }

                        playerOneScore = PlayerScore(boardGame, positionPlayerOneX, positionPlayerOneY, playerOneScore);
                    }

                    if (Key.Key == ConsoleKey.S)
                    {
                        boardGame[positionPlayerOneY, positionPlayerOneX] = 0;

                        var tempPosition = positionPlayerOneY;
                        tempPosition = PlayerMoveRightOrDown(positionPlayerOneY);
                        if (!(tempPosition == positionPlayerTwoY && positionPlayerOneX == positionPlayerTwoX))
                        {
                            positionPlayerOneY = tempPosition;
                            playerTime         = PlayerTime.Two;
                        }

                        playerOneScore = PlayerScore(boardGame, positionPlayerOneX, positionPlayerOneY, playerOneScore);
                    }
                }
                else if (playerTime == PlayerTime.Two)
                {
                    if (Key.Key == ConsoleKey.LeftArrow)
                    {
                        boardGame[positionPlayerTwoY, positionPlayerTwoX] = 0;

                        var tempPosition = positionPlayerTwoX;
                        tempPosition = PlayerMoveLeftOrUp(positionPlayerTwoX);
                        if (!(tempPosition == positionPlayerOneX && positionPlayerTwoY == positionPlayerOneY))
                        {
                            positionPlayerTwoX = tempPosition;
                            playerTime         = PlayerTime.One;
                        }

                        playerTwoScore = PlayerScore(boardGame, positionPlayerTwoX, positionPlayerTwoY, playerTwoScore);
                    }

                    if (Key.Key == ConsoleKey.RightArrow)
                    {
                        boardGame[positionPlayerTwoY, positionPlayerTwoX] = 0;

                        var tempPosition = positionPlayerTwoX;
                        tempPosition = PlayerMoveRightOrDown(positionPlayerTwoX);
                        if (!(tempPosition == positionPlayerOneX && positionPlayerTwoY == positionPlayerOneY))
                        {
                            positionPlayerTwoX = tempPosition;
                            playerTime         = PlayerTime.One;
                        }

                        playerTwoScore = PlayerScore(boardGame, positionPlayerTwoX, positionPlayerTwoY, playerTwoScore);
                    }

                    if (Key.Key == ConsoleKey.UpArrow)
                    {
                        boardGame[positionPlayerTwoY, positionPlayerTwoX] = 0;

                        var tempPosition = positionPlayerTwoY;
                        tempPosition = PlayerMoveLeftOrUp(positionPlayerTwoY);
                        if (!(tempPosition == positionPlayerOneY && positionPlayerTwoX == positionPlayerOneX))
                        {
                            positionPlayerTwoY = tempPosition;
                            playerTime         = PlayerTime.One;
                        }

                        playerTwoScore = PlayerScore(boardGame, positionPlayerTwoX, positionPlayerTwoY, playerTwoScore);
                    }

                    if (Key.Key == ConsoleKey.DownArrow)
                    {
                        boardGame[positionPlayerTwoY, positionPlayerTwoX] = 0;

                        var tempPosition = positionPlayerTwoY;
                        tempPosition = PlayerMoveRightOrDown(positionPlayerTwoY);
                        if (!(tempPosition == positionPlayerOneY && positionPlayerTwoX == positionPlayerOneX))
                        {
                            positionPlayerTwoY = tempPosition;
                            playerTime         = PlayerTime.One;
                        }

                        playerTwoScore = PlayerScore(boardGame, positionPlayerTwoX, positionPlayerTwoY, playerTwoScore);
                    }
                }

                if (playerOneScore >= 101 || playerTwoScore >= 101)
                {
                    endGame = true;
                    PlayerWin(playerOneScore, playerTwoScore);
                }

                Console.Clear();
                GameScreen(boardGame, positionPlayerOneX, positionPlayerOneY, positionPlayerTwoX, positionPlayerTwoY, playerOneScore, playerTwoScore, endGame, playerTime);
            }
        }
Esempio n. 17
0
        public void LoadContent(Game game)
        {
            LoadTextures();
            LoadEffects();
            AudioManager.Instance.LoadContent();
            TrashSoupGame.Instance.ReloadSpriteBatch();
            //LoadCues();

            // because it pisses me off - Mav
            //AudioManager.Instance.PlayCue(GetCueFromCueList("Track1")); //default music from tutorial, just to check that everything works xD

            // FOR TETIN
            AddModel("Models/Test/TestBox");
            AddModel("Models/Test/TestCube");
            AddModel("Models/Test/TestTerrain");
            AddModel("Models/Test/TestGuy");
            AddModel("Models/Test/TestSphere");
            AddModel("Models/Test/TestSphere_LOD1");
            AddModel("Models/Test/TestSphere_LOD2");
            AddModel("Models/Test/TestMirror");
            AddModel("Models/Weapons/Signs/StopSign");
            AddModel("Models/Weapons/Stones/brick");
            AddModel("Models/Enviro/Ground/street_cross");
            AddModel("Models/Weapons/Stones/brick_destructible/4");
            AddModel("Models/Test/TestSquarePlane");
            AddModel("Models/Test/TestSquarePlane");
            AddModel("Models/MainCharacter/MainCharacter");

            AddAnimation("Animations/MainCharacter/attack_Hweapon_1");
            AddAnimation("Animations/MainCharacter/attack_Hweapon_2");
            AddAnimation("Animations/MainCharacter/attack_Hweapon_3");
            AddAnimation("Animations/MainCharacter/attack_Hweapon_4");
            AddAnimation("Animations/MainCharacter/attack_Mweapon_1");
            AddAnimation("Animations/MainCharacter/attack_Mweapon_2");
            AddAnimation("Animations/MainCharacter/attack_Mweapon_3");
            AddAnimation("Animations/MainCharacter/attack_Mweapon_4");
            AddAnimation("Animations/MainCharacter/attack_Mweapon_5");
            AddAnimation("Animations/MainCharacter/block_1");
            AddAnimation("Animations/MainCharacter/bow_1");
            AddAnimation("Animations/MainCharacter/boxing_1");
            AddAnimation("Animations/MainCharacter/boxing_2");
            AddAnimation("Animations/MainCharacter/boxing_3");
            AddAnimation("Animations/MainCharacter/boxing_4");
            AddAnimation("Animations/MainCharacter/charge_Hweapon");
            // AddAnimation("Animations/MainCharacter/charge_SMweapon");
            //  AddAnimation("Animations/MainCharacter/custom_kick");
            // AddAnimation("Animations/MainCharacter/custom_slash");
            //  AddAnimation("Animations/MainCharacter/custom_whirl");
            AddAnimation("Animations/MainCharacter/dodge_1");
            AddAnimation("Animations/MainCharacter/dying_1");
            AddAnimation("Animations/MainCharacter/idle_1");
            AddAnimation("Animations/MainCharacter/idle_2");
            AddAnimation("Animations/MainCharacter/idle_Fists");
            AddAnimation("Animations/MainCharacter/idle_Hweapon");
            AddAnimation("Animations/MainCharacter/idle_SMweapon");
            AddAnimation("Animations/MainCharacter/injuries_1");
            AddAnimation("Animations/MainCharacter/injuries_2");
            AddAnimation("Animations/MainCharacter/jump");
            AddAnimation("Animations/MainCharacter/run_2");
            AddAnimation("Animations/MainCharacter/dying_1");
            AddAnimation("Animations/MainCharacter/run_Hweapon");
            // AddAnimation("Animations/MainCharacter/run_SMweapon");
            AddAnimation("Animations/MainCharacter/walk_1");
            AddAnimation("Animations/MainCharacter/walk_Hweapon");
            AddAnimation("Animations/MainCharacter/walki_SMweapon");
            AddAnimation("Animations/Enemies/Rat_attack");
            AddAnimation("Animations/Enemies/Rat_dying");
            AddAnimation("Animations/Enemies/Rat_idle");
            AddAnimation("Animations/Enemies/Rat_run");
            AddAnimation("Animations/Enemies/Rat_walk");
            AddAnimation("Animations/Test/walking_1");
            AddAnimation("Animations/Test/idle_1");
            AddAnimation("Animations/Test/jump_1");
            AddModel("Models/Enviro/Railing/Railing_1");    //Wika i Kasia

            // loading materials
            List <Material> testPlayerMats = new List <Material>();
            Material        testPlayerMat  = new Material("testPlayerMat", LoadEffect(@"Effects\NormalEffect"), LoadTexture(@"Textures\Test\cargo"));

            testPlayerMats.Add(testPlayerMat);
            testPlayerMat.NormalMap      = LoadTexture(@"Textures\Test\cargo_NRM");
            testPlayerMat.Glossiness     = 40.0f;
            testPlayerMat.Transparency   = 1.0f;
            testPlayerMat.RecieveShadows = true;
            if (!this.Materials.ContainsKey(testPlayerMat.Name))
            {
                this.Materials.Add(testPlayerMat.Name, testPlayerMat);
            }

            List <Material> testPlayerMats2 = new List <Material>();
            Material        testPlayerMat2  = new Material("testPlayerMat2", this.Effects[@"Effects\CubeNormalEffect"], LoadTexture(@"Textures\Test\cargo"));

            testPlayerMats2.Add(testPlayerMat2);
            testPlayerMat2.NormalMap         = LoadTexture(@"Textures\Test\cargo_NRM");
            testPlayerMat2.CubeMap           = LoadTextureCube(@"Textures\Skyboxes\Dusk");
            testPlayerMat2.Glossiness        = 40.0f;
            testPlayerMat2.ReflectivityColor = new Vector3(1.0f, 0.0f, 1.0f);
            testPlayerMat2.ReflectivityBias  = 0.7f;
            testPlayerMat2.Transparency      = 0.25f;
            testPlayerMat2.RecieveShadows    = true;
            if (!this.Materials.ContainsKey(testPlayerMat2.Name))
            {
                this.Materials.Add(testPlayerMat2.Name, testPlayerMat2);
            }

            List <Material> testMirrorMats = new List <Material>();
            Material        testMirrorMat2 = new MirrorMaterial("testMirrorMat2", this.Effects[@"Effects\NormalEffect"]);

            testMirrorMats.Add(testMirrorMat2);
            testMirrorMat2.DiffuseMap       = LoadTexture(@"Textures\Home\Furnitures\mirror_D");
            testMirrorMat2.NormalMap        = LoadTexture(@"Textures\Home\Furnitures\mirror_N");
            testMirrorMat2.Glossiness       = 100.0f;
            testMirrorMat2.ReflectivityBias = 0.0f;
            if (!this.Materials.ContainsKey(testMirrorMat2.Name))
            {
                this.Materials.Add(testMirrorMat2.Name, testMirrorMat2);
            }
            Material testMirrorMat = new MirrorMaterial("testMirrorMat", this.Effects[@"Effects\MirrorEffect"]);

            testMirrorMats.Add(testMirrorMat);
            testMirrorMat.DiffuseMap       = LoadTexture(@"Textures\Home\Furnitures\mirror_glass");
            testMirrorMat.Glossiness       = 100.0f;
            testMirrorMat.ReflectivityBias = 0.0f;
            if (!this.Materials.ContainsKey(testMirrorMat.Name))
            {
                this.Materials.Add(testMirrorMat.Name, testMirrorMat);
            }

            List <Material> testWaterMats = new List <Material>();
            Material        testWaterMat  = new WaterMaterial("testWaterMat", this.Effects[@"Effects\WaterEffect"]);

            testWaterMats.Add(testWaterMat);
            testWaterMat.DiffuseMap       = LoadTexture(@"Textures\Test\dirtywater");
            testWaterMat.NormalMap        = LoadTexture(@"Textures\Test\water");
            testWaterMat.Glossiness       = 200.0f;
            testWaterMat.ReflectivityBias = 0.6f;
            if (!this.Materials.ContainsKey(testWaterMat.Name))
            {
                this.Materials.Add(testWaterMat.Name, testWaterMat);
            }

            //List<Material> playerMats = LoadBasicMaterialsFromModel(Models["Models/MainCharacter/MainCharacter"], this.Effects[@"Effects\NormalEffect"]);
            //foreach(Material mat in playerMats)
            //{
            //    mat.RecieveShadows = true;
            //}

            //List<Material> ratMats = LoadBasicMaterialsFromModel(Models["Models/MainCharacter/MainCharacter"], this.Effects[@"Effects\NormalEffect"]);
            List <Material> ratMats  = new List <Material>();
            Material        ratMat01 = new Material("PlayerMat", this.Effects[@"Effects\NormalEffect"]);

            ratMat01.DiffuseMap = LoadTexture(@"Models\Enemies\Mutant_body_D");
            ratMat01.NormalMap  = LoadTexture(@"Models\Enemies\Mutant_body_N");
            ratMats.Add(ratMat01);
            Material ratMat02 = new Material("PlayerMatHair", this.Effects[@"Effects\NormalEffect"]);

            ratMat02.DiffuseMap = LoadTexture(@"Models\Enemies\Mutant_head_D");
            ratMat02.NormalMap  = LoadTexture(@"Models\Enemies\Mutant_head_N");
            ratMats.Add(ratMat02);

            List <Material> deSign = LoadBasicMaterialsFromModel(Models["Models/Enviro/Ground/street_cross"], this.Effects[@"Effects\NormalEffect"]);

            List <Material> bb = LoadBasicMaterialsFromModel(Models["Models/Weapons/Stones/brick"], Effects[@"Effects\NormalEffect"]);

            List <Material> testTerMats = new List <Material>();
            Material        testTerMat  = new Material("testTerMat", this.Effects[@"Effects\NormalEffect"], LoadTexture(@"Textures\Test\metal01_d"));

            testTerMat.NormalMap      = LoadTexture(@"Textures\Test\water");
            testTerMat.SpecularColor  = new Vector3(0.1f, 0.1f, 0.0f);
            testTerMat.Glossiness     = 10.0f;
            testTerMat.RecieveShadows = true;
            testTerMat.Unlit          = true;
            if (!this.Materials.ContainsKey(testTerMat.Name))
            {
                this.Materials.Add(testTerMat.Name, testTerMat);
            }
            if (!testTerMats.Contains(testTerMat))
            {
                testTerMats.Add(testTerMat);
            }

            List <Material> testSBMats = new List <Material>();
            SkyboxMaterial  testSBMat  = new SkyboxMaterial("testSBMat", this.Effects[@"Effects\SkyboxEffect"]);

            testSBMat.CubeMap       = LoadTextureCube(@"Textures\Skyboxes\Dawn");
            testSBMat.CubeMap1      = LoadTextureCube(@"Textures\Skyboxes\Daylight");
            testSBMat.CubeMap2      = LoadTextureCube(@"Textures\Skyboxes\Dusk");
            testSBMat.CubeMap3      = LoadTextureCube(@"Textures\Skyboxes\Night");
            testSBMat.Probes        = new Vector4(0.0f, 0.0f, 0.0f, 1.0f);
            testSBMat.SpecularColor = new Vector3(0.0f, 0.0f, 0.0f);
            testSBMat.Glossiness    = 100.0f;
            if (!this.Materials.ContainsKey(testSBMat.Name))
            {
                this.Materials.Add(testSBMat.Name, testSBMat);
            }
            if (!testSBMats.Contains(testSBMat))
            {
                testSBMats.Add(testSBMat);
            }


            //WIKA I KASIA Testowanie modeli
            List <Material> awsomeTestMats = new List <Material>();
            Material        awsomeTestMat  = new Material("awsomeTestMat", this.Effects[@"Effects\NormalEffect"], LoadTexture(@"Textures\Enviro\Railing\Railing_D"));

            awsomeTestMats.Add(awsomeTestMat);
            awsomeTestMats.Add(awsomeTestMat);
            awsomeTestMat.NormalMap         = LoadTexture(@"Textures\Enviro\Railing\Railing_N");
            awsomeTestMat.Glossiness        = 40.0f;
            awsomeTestMat.ReflectivityColor = new Vector3(1.0f, 0.0f, 1.0f);
            awsomeTestMat.ReflectivityBias  = 0.0f;
            awsomeTestMat.Transparency      = 1.0f;
            awsomeTestMat.RecieveShadows    = true;
            if (!this.Materials.ContainsKey(awsomeTestMat.Name))
            {
                this.Materials.Add(awsomeTestMat.Name, awsomeTestMat);
            }


            // loading gameobjects
            GameObject testBox = new GameObject(1, "Player");

            testBox.MyTransform = new Transform(testBox, new Vector3(2.0f, 3.0f, -5.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 0.0075f);
            CustomModel skModel        = new CustomModel(testBox, new Model[] { Models["Models/MainCharacter/MainCharacter"], null, null }, ratMats);
            Animator    playerAnimator = new Animator(testBox, skModel.LODs[0]);

            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/run_2"), "Animations/MainCharacter/run_2"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/idle_Hweapon"), "Animations/MainCharacter/idle_Hweapon"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/idle_Fists"), "Animations/MainCharacter/idle_Fists"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/idle_SMweapon"), "Animations/MainCharacter/idle_SMweapon"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/dodge_1"), "Animations/MainCharacter/dodge_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/boxing_4"), "Animations/MainCharacter/boxing_4"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/boxing_1"), "Animations/MainCharacter/boxing_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/boxing_2"), "Animations/MainCharacter/boxing_2"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/boxing_3"), "Animations/MainCharacter/boxing_3"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Hweapon_1"), "Animations/MainCharacter/attack_Hweapon_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Hweapon_2"), "Animations/MainCharacter/attack_Hweapon_2"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Hweapon_3"), "Animations/MainCharacter/attack_Hweapon_3"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Hweapon_4"), "Animations/MainCharacter/attack_Hweapon_4"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Mweapon_1"), "Animations/MainCharacter/attack_Mweapon_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Mweapon_2"), "Animations/MainCharacter/attack_Mweapon_2"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Mweapon_3"), "Animations/MainCharacter/attack_Mweapon_3"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Mweapon_4"), "Animations/MainCharacter/attack_Mweapon_4"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/attack_Mweapon_5"), "Animations/MainCharacter/attack_Mweapon_5"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/building"), "Animations/MainCharacter/building"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/dying_1"), "Animations/MainCharacter/dying_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/block_1"), "Animations/MainCharacter/block_1"));
            playerAnimator.AddAnimationClip(LoadAnimationFromModel(skModel.LODs[0], LoadAnimation("Animations/MainCharacter/grzebanie"), "Animations/MainCharacter/grzebanie"));
            testBox.Components.Add(skModel);
            testBox.MyAnimator = playerAnimator;
            PlayerController pc = new PlayerController(testBox);

            testBox.Components.Add(pc);
            testBox.Dynamic = true;

            HideoutStash testStash = new HideoutStash(testBox);

            testStash.CurrentTrash = 1000;
            testBox.Components.Add(testStash);

            Equipment eq = new Equipment(testBox);

            eq.JunkCount = 10;
            testBox.Components.Add(eq);

            testBox.MyPhysicalObject = new PhysicalObject(testBox, 1.0f, 0.05f, false);
            testBox.MyCollider       = new BoxCollider(testBox); //Add a box collider to test collisions

            // loading gameobjects
            GameObject rat = new GameObject(50, "Rat");

            rat.MyTransform = new Transform(rat, new Vector3(0.0f, 0.0f, 10.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 0.01f);
            CustomModel ratModel = new CustomModel(rat, new Model[] { LoadModel("Models/Enemies/Mutant01"), null, null }, ratMats);

            rat.Components.Add(ratModel);
            Animator ratAnimator = new Animator(rat, ratModel.LODs[0]);

            ratAnimator.AddAnimationClip(LoadAnimationFromModel(ratModel.LODs[0], LoadAnimation("Animations/Enemies/Mutant_attack"), "Rat_TAnim"));
            ratAnimator.AvailableStates.Add("Walk", new AnimatorState("Walk", ratAnimator.GetAnimationPlayer("Rat_TAnim"), AnimatorState.StateType.SINGLE));
            ratAnimator.CurrentState = ratAnimator.AvailableStates["Walk"];
            rat.MyAnimator           = ratAnimator;
            rat.Components.Add(new Enemy(rat));
            rat.MyCollider       = new SphereCollider(rat);
            rat.MyPhysicalObject = new PhysicalObject(rat);

            rat.Components.Add(new Food(rat));

            GameObject testTer = new GameObject(2, "Terrain");

            testTer.MyTransform = new Transform(testTer, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 1.0f);
            CustomModel terModel = new CustomModel(testTer, new Model[] { Models["Models/Test/TestTerrain"], null, null }, testTerMats);

            terModel.LodControlled = false;
            testTer.Components.Add(terModel);

            GameObject testBox2 = new GameObject(3, "StreettestBox2");

            testBox2.MyTransform = new Transform(testBox2, new Vector3(0.0f, -0.1f, 112.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 10.0f);
            testBox2.Components.Add(new CustomModel(testBox2, new Model[] { LoadModel("Models/Enviro/Ground/street_straight"), null, null }, testPlayerMats));
            //Billboard billboard = new Billboard(testBox2);
            //Material bbmat = new Material("billboard", Effects[@"Effects\BillboardEffect"], LoadTexture(@"Textures\Enviro\Nature\Sun"));
            //billboard.Mat = bbmat;
            //billboard.Size = new Vector2(1.0f, 1.0f);
            //testBox2.Components.Add(billboard);
            testBox2.MyCollider       = new BoxCollider(testBox2, false);
            testBox2.MyPhysicalObject = new PhysicalObject(testBox2, 1.0f, 1.0f, false);
            //testBox2.Dynamic = true;
            //testBox2.MyCarrierSocket = new Socket(testBox, testBox2, null, "mixamorig:RightHand");

            GameObject testBox3 = new GameObject(5, "testBox3");

            testBox3.MyTransform = new Transform(testBox3, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 0.7f);
            testBox3.Components.Add(new CustomModel(testBox3, new Model[] { LoadModel("Models/Weapons/Maczuga/Mace"), null, null }, testPlayerMats));
            testBox3.MyCollider = new BoxCollider(testBox3, true);
            testBox3.Dynamic    = true;
            testBox3.Components.Add(new Gameplay.Weapons.Hammer(testBox3));

            GameObject fuckYou = new GameObject(1144, "Fists");

            fuckYou.MyTransform = new Transform(fuckYou, Vector3.Zero, Vector3.Up, new Vector3(0.0f, 0.0f, 11.017704f), 1.0f);
            fuckYou.MyCollider  = new BoxCollider(fuckYou, true);
            fuckYou.Components.Add(new Gameplay.Weapons.Fists(fuckYou));

            pc.Equipment.PickUpWeapon(testBox3);

            //ParticleSystem ps = new ParticleSystem(testBox3);
            //ps.Textures.Add(ResourceManager.Instance.LoadTexture("Textures/Particles/Particle_metal01"));
            //ps.Textures.Add(ResourceManager.Instance.LoadTexture("Textures/Particles/Particle_metal02"));
            //ps.Textures.Add(ResourceManager.Instance.LoadTexture("Textures/Particles/Particle_wood01"));
            //ps.Textures.Add(ResourceManager.Instance.LoadTexture("Textures/Particles/Particle_wood02"));
            //ps.Textures.Add(ResourceManager.Instance.LoadTexture("Textures/Particles/Particle_wood03"));
            //ps.ParticleCount = 170;
            //ps.ParticleSize = new Vector2(0.5f, 0.5f);
            //ps.LifespanSec = 5.0f;
            //ps.Wind = new Vector3(0.0f, 0.1f, 0.0f);
            //ps.FadeInTime = 0.0f;
            //ps.Offset = new Vector3(MathHelper.PiOver2);
            //ps.Speed = 10.0f;
            ////ps.DelayMs = 5000.0f;
            //ps.LoopMode = ParticleSystem.ParticleLoopMode.CONTINUOUS;
            //ps.PositionOffset = new Vector3(0.0f, 0.0f, 0.0f) * testBox3.MyTransform.Scale;
            //testBox3.Components.Add(ps);

            GameObject testMirror = new GameObject(6, "testMirror");

            testMirror.MyTransform = new Transform(testMirror, new Vector3(-10.0f, 2.0f, -10.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, -MathHelper.PiOver2, 0.0f), 0.5f);
            testMirror.Components.Add(new CustomModel(testMirror, new Model[] { LoadModel("Models/Home/Furnitures/mirror"), null, null }, testMirrorMats));
            testMirror.MyCollider = new BoxCollider(testMirror, false);

            GameObject testWater = new GameObject(7, "tesWtater");

            testWater.MyTransform = new Transform(testWater, new Vector3(0.0f, -1.5f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), 10.0f);
            testWater.Components.Add(new CustomModel(testWater, new Model[] { Models["Models/Test/TestSquarePlane"], null, null }, testWaterMats));

            GameObject skyBox = new GameObject(4, "skyBox");

            skyBox.MyTransform = new Transform(skyBox, new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), 2000.0f);
            CustomModel sbModel = new CustomModel(skyBox, new Model[] { Models["Models/Test/TestCube"], null, null }, testSBMats);

            sbModel.LodControlled = false;
            skyBox.Components.Add(sbModel);
            //DaytimeChange dc = new DaytimeChange(skyBox);
            //dc.LightDayID = 0;
            //dc.LightNightID = 1;
            //dc.SunID = 3;
            //dc.SunriseMinutes = 60 * 6;
            //dc.SunsetMinutes = 60 * 20;
            //dc.StateChangeMinutes = 120;
            //dc.HorizonOffset = 500.0f;
            //dc.TextureNames = new string[] { @"Textures\Skyboxes\Dawn", @"Textures\Skyboxes\Daylight", @"Textures\Skyboxes\Dusk", @"Textures\Skyboxes\Night" };
            //skyBox.Components.Add(dc);

            // moje na pagi
            GameObject cegla = new GameObject(14, "cegla");

            cegla.MyTransform = new Transform(cegla, new Vector3(5.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 0.0f, 0.0f), 1.0f);
            //cegla.Components.Add(new CustomModel(cegla, new Model[] { Models["Models/Weapons/Stones/brick"], null, null }, bb));
            //cegla.MyCollider = new BoxCollider(cegla);
            Fortification fort = new Fortification(cegla);

            fort.CurrentID = 0;
            fort.MyType    = Fortification.FortificationType.WOOD1_WIRE_SNARES;
            cegla.Components.Add(fort);
            //GameObject pt = new GameObject(355, "PlayerTime");
            //PlayerTime ptc = new PlayerTime(pt);
            //ptc.Multiplier = 3600;
            //pt.Components.Add(ptc);

            //Wika i Kasia testowanie modeli
            GameObject awsomeTest = new GameObject(8, "testground");

            awsomeTest.MyTransform = new Transform(awsomeTest, new Vector3(-12.0f, 1.0f, -5.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(MathHelper.PiOver2, 0.0f, 0.0f), 1.0f);
            awsomeTest.Components.Add(new CustomModel(awsomeTest, new Model[] { Models["Models/Enviro/Railing/Railing_1"], null, null }, awsomeTestMats));
            awsomeTest.MyCollider = new BoxCollider(awsomeTest, false);

            GameObject playerTime = new GameObject(1000, "PlayerTime");
            PlayerTime pt         = new PlayerTime(playerTime);

            pt.InitHours = 20;
            playerTime.Components.Add(pt);

            GameObject     testTransition = new GameObject(501, "Transition");
            AreaTransition at             = new AreaTransition(testTransition);

            at.NextScenePath = "../../../../TrashSoupContent/Scenes/save2.xml";
            testTransition.Components.Add(at);
            testTransition.MyTransform = new Transform(testTransition, new Vector3(-10.0f, 0.0f, 10.0f), Vector3.Up, Vector3.Zero, 5.0f);
            testTransition.MyCollider  = new SphereCollider(testTransition, true);

            // adding lights
            LightAmbient     amb  = new LightAmbient(100, "LightAmbient", new Vector3(0.1f, 0.1f, 0.1f));
            LightDirectional ldr  = new LightDirectional(101, "LightDirectional1", new Vector3(1.0f, 0.9f, 0.8f), new Vector3(1.0f, 0.8f, 0.8f), new Vector3(-1.0f, -1.0f, -1.0f), true);
            LightDirectional ldrn = new LightDirectional(102, "LightDirectional2", new Vector3(0.1f, 0.1f, 0.15f), new Vector3(0.0f, 0.1f, 0.2f), new Vector3(1.0f, 1.0f, 1.0f), true);

            //LightPoint lp1 = new LightPoint(110, "LightPoint1", new Vector3(0.0f, 1.0f, 1.0f), new Vector3(1.0f, 1.0f, 1.0f), 1.0f, false);
            //lp1.MyTransform = new Transform(lp1, new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), 10.0f);
            //lp1.MyCollider = new SphereCollider(lp1, true);
            //lp1.MyPhysicalObject = new PhysicalObject(lp1, 0.0f, 0.0f, false);
            //lp1.SetupShadowRender();


            // loading scene
            CurrentScene = new Scene(new SceneParams(0, "test", new Vector2(0.0f, 0.1f), new DateTime(2015, 5, 28, 12, 0, 0, 0, new System.Globalization.GregorianCalendar(), DateTimeKind.Unspecified),
                                                     60.0f, 3000.0f, 35.0f, 50.0f, true, false, true, false, true));

            Camera cam = null;

            if (TrashSoupGame.Instance.EditorMode)
            {
                //Editor camera
                CurrentScene.EditorCam = new EditorCamera(1, "editorCam", Vector3.Transform(new Vector3(0.0f, 10.0f, -50.0f), Matrix.CreateRotationX(MathHelper.PiOver4 * 1.5f)),
                                                          new Vector3(0.0f, 5.0f, 5.0f), new Vector3(0.0f, 10.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f), MathHelper.Pi / 3.0f, 0.1f, 2000.0f);
            }
            //Game camera
            cam = new Camera(1, "playerCam", Vector3.Transform(new Vector3(0.0f, 1.0f, -0.1f), Matrix.CreateRotationX(MathHelper.PiOver4 * 1.5f)) + new Vector3(0.0f, 0.4f, 0.0f),
                             new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.5f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f), MathHelper.Pi / 3.0f,
                             (float)TrashSoupGame.Instance.Window.ClientBounds.Width / (float)TrashSoupGame.Instance.Window.ClientBounds.Height, 0.1f, 4000.0f);
            cam.Components.Add(new CameraBehaviourComponent(cam, testBox));

            CurrentScene.Cam = cam;

            //testTer.LightsAffecting.Add(lp1);

            // adding items to scene
            //testBox.AddChild(testBox3);
            CurrentScene.AddObject(skyBox);
            CurrentScene.AddObject(testTer);
            CurrentScene.AddObject(testBox);
            CurrentScene.AddObject(testBox2);

            CurrentScene.AddObject(testMirror);
            CurrentScene.AddObject(testWater);
            CurrentScene.AddObject(testBox3);
            CurrentScene.AddObject(awsomeTest);//Wika i kasia
            CurrentScene.AddObject(rat);
            CurrentScene.AddObject(cegla);
            CurrentScene.AddObject(playerTime);
            CurrentScene.AddObject(testTransition);
            //CurrentScene.AddObject(pt);
            CurrentScene.AddObject(fuckYou);
            CurrentScene.AmbientLight         = amb;
            CurrentScene.DirectionalLights[0] = ldr;
            CurrentScene.DirectionalLights[1] = ldrn;
            //CurrentScene.PointLights.Add(lp1);

            foreach (GameObject go in this.CurrentScene.ObjectsDictionary.Values)
            {
                go.Initialize();
            }
        }
Esempio n. 18
0
 private void Awake()
 {
     Instance   = this;
     IsPaused   = true;
     IsFinished = false;
 }
Esempio n. 19
0
    public void BreedClick()
    {
        GameObject activeCreature  = GameObject.Find("PlayerCreatures/" + PlayerInfo.selectedCreature.ToString()).gameObject;
        GameObject passiveCreature = GameObject.Find("PlayerCreatures/" + PlayerInfo.selectedMenuCreature.ToString()).gameObject;

        if (activeCreature.GetComponent <SpeciesAttributes>().libido < 50)
        {
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").SetActive(true);
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").GetComponent <Text>().text = "Not enough libido!";
        }
        else if (Vector3.Distance(activeCreature.transform.position, passiveCreature.transform.position) > 12.0)
        {
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").SetActive(true);
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").GetComponent <Text>().text = "Creature is too far!";
        }
        else
        {
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").GetComponent <Text>().text = "";
            GameObject.Find("MenuCanvas/MenuBackground/BreedMenu/ErrorText").SetActive(false);

            double normalizedFoods;
            double normalizedRan;
            double normalizedDefended;
            double normalizedAttacked;

            if (PlayerTime.currentSeconds == PlayerTime.totalSeconds)
            {
                normalizedFoods    = PlayerModel.CurrentModel.foods / PlayerTime.currentSeconds;
                normalizedRan      = PlayerModel.CurrentModel.ran / PlayerTime.currentSeconds;
                normalizedDefended = PlayerModel.CurrentModel.defended / PlayerTime.currentSeconds;
                normalizedAttacked = PlayerModel.CurrentModel.attacked / PlayerTime.currentSeconds;
            }
            else
            {
                normalizedFoods    = ((PlayerModel.CurrentModel.foods / PlayerTime.currentSeconds) + (PlayerModel.LegacyModel.foods / PlayerTime.totalSeconds)) / 2;
                normalizedRan      = ((PlayerModel.CurrentModel.ran / PlayerTime.currentSeconds) + (PlayerModel.LegacyModel.ran / PlayerTime.totalSeconds)) / 2;
                normalizedDefended = ((PlayerModel.CurrentModel.defended / PlayerTime.currentSeconds) + (PlayerModel.LegacyModel.ran / PlayerTime.totalSeconds)) / 2;
                normalizedAttacked = ((PlayerModel.CurrentModel.attacked / PlayerTime.currentSeconds) + (PlayerModel.LegacyModel.ran / PlayerTime.totalSeconds)) / 2;
            }

            /* OLD MOVEMENT SYSTEM
             *
             * int newbornMovemet = 0;
             * if(activeCreature.GetComponent<SpeciesAttributes>().movementUpgrade == 0 && normalizedSteps >= 50)
             * {
             *  newbornMovemet = 1;
             * }
             * else if(activeCreature.GetComponent<SpeciesAttributes>().movementUpgrade == 1 && normalizedSteps >= 75)
             * {
             *  newbornMovemet = 2;
             * }
             * else if (activeCreature.GetComponent<SpeciesAttributes>().movementUpgrade == 1 && normalizedSteps >= 50)
             * {
             *  newbornMovemet = 1;
             * }
             * else if (activeCreature.GetComponent<SpeciesAttributes>().movementUpgrade == 2 && normalizedSteps < 75)
             * {
             *  newbornMovemet = 1;
             * }
             * else if (activeCreature.GetComponent<SpeciesAttributes>().movementUpgrade == 2 && normalizedSteps >= 75)
             * {
             *  newbornMovemet = 2;
             * }
             */

            int newbornMovement = 0;
            int newbornDefense  = 0;
            if (activeCreature.GetComponent <SpeciesAttributes>().movementUpgrade == 0 && normalizedRan > (normalizedDefended * 1.25))
            {
                newbornMovement = 1;
                newbornDefense  = 0;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().movementUpgrade == 1 && normalizedRan > (normalizedDefended * 1.33))
            {
                newbornMovement = 2;
                newbornDefense  = 0;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().movementUpgrade == 1 && normalizedRan > (normalizedDefended * 1.25))
            {
                newbornMovement = 1;
                newbornDefense  = 0;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().movementUpgrade == 2 && normalizedRan < (normalizedDefended * 1.33))
            {
                newbornMovement = 1;
                newbornDefense  = 0;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().movementUpgrade == 2 && normalizedRan > (normalizedDefended * 1.33))
            {
                newbornMovement = 2;
                newbornDefense  = 0;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().deffenseUpgrade == 0 && normalizedDefended > (normalizedRan * 1.25))
            {
                newbornMovement = 0;
                newbornDefense  = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().deffenseUpgrade == 1 && normalizedDefended > (normalizedRan * 1.33))
            {
                newbornMovement = 0;
                newbornDefense  = 2;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().deffenseUpgrade == 1 && normalizedDefended > (normalizedRan * 1.25))
            {
                newbornMovement = 0;
                newbornDefense  = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().deffenseUpgrade == 2 && normalizedDefended < (normalizedRan * 1.33))
            {
                newbornMovement = 0;
                newbornDefense  = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().deffenseUpgrade == 2 && normalizedDefended > (normalizedRan * 1.33))
            {
                newbornMovement = 0;
                newbornDefense  = 2;
            }

            int newbornPerception = 0;
            if (activeCreature.GetComponent <SpeciesAttributes>().perceptionUpgrade == 0 && normalizedFoods >= 0.008333) // 1 fruit each 2 minutes
            {
                newbornPerception = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().perceptionUpgrade == 1 && normalizedFoods >= 0.0125) // 1.5 fruit each 2 minutes
            {
                newbornPerception = 2;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().perceptionUpgrade == 1 && normalizedFoods >= 0.008333)
            {
                newbornPerception = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().perceptionUpgrade == 2 && normalizedFoods < 0.0125)
            {
                newbornPerception = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().perceptionUpgrade == 2 && normalizedFoods >= 0.0125)
            {
                newbornPerception = 2;
            }

            int newbornAttack = 0;
            if (activeCreature.GetComponent <SpeciesAttributes>().attackUpgrade == 0 && normalizedAttacked >= 0.23809) // Enough damage to kill 1 creature each 7 minutes
            {
                newbornAttack = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().attackUpgrade == 1 && normalizedAttacked >= 0.41666) // Enough damage to kill 1 creature each 4 minutes
            {
                newbornAttack = 2;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().attackUpgrade == 1 && normalizedAttacked >= 0.23809)
            {
                newbornAttack = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().attackUpgrade == 2 && normalizedAttacked < 0.41666)
            {
                newbornAttack = 1;
            }
            else if (activeCreature.GetComponent <SpeciesAttributes>().attackUpgrade == 2 && normalizedAttacked >= 0.41666)
            {
                newbornAttack = 2;
            }

            int newbornCombat = 0;

            if (newbornAttack > newbornDefense)
            {
                newbornCombat = newbornAttack;
            }
            else
            {
                newbornCombat = newbornDefense;
            }

            if (newbornAttack > 0 && newbornMovement > 0)
            {
                if (newbornAttack > newbornMovement)
                {
                    newbornMovement = 0;
                }
                else
                {
                    newbornAttack = 0;
                }
            }

            Vector3 childPosition = new Vector3();
            Vector3 childRotation;
            Vector3 childScale;
            childPosition.x = activeCreature.transform.position.x + 7; //
            childPosition.z = activeCreature.transform.position.z + 7; //
            childRotation.x = 0;
            childRotation.y = 0;
            childRotation.z = 0;
            childScale.x    = 5;
            childScale.y    = 5;
            childScale.z    = 1;
            GameObject creaturesNode    = GameObject.Find("PlayerCreatures");
            int        lastCreatureName = int.Parse(creaturesNode.transform.GetChild(creaturesNode.transform.childCount - 1).name);
            GameObject childObject      = new GameObject((lastCreatureName + 1).ToString());

            SpriteRenderer spriteRenderer = childObject.AddComponent <SpriteRenderer>();
            //Sprite creatureSprite = Resources.Load<Sprite>("species_" + PlayerInfo.selectedSpecies.ToString() + "_default");
            //childSprite.sprite = creatureSprite;

            Animator childAnimator = childObject.AddComponent <Animator>();
            childAnimator.runtimeAnimatorController = Resources.Load("playerSpeciesController") as RuntimeAnimatorController;
            childAnimator.updateMode  = AnimatorUpdateMode.Normal;
            childAnimator.cullingMode = AnimatorCullingMode.AlwaysAnimate;

            childAnimator.SetInteger("movementUpgrade", newbornMovement);
            childAnimator.SetInteger("perceptionUpgrade", newbornPerception);
            childAnimator.SetInteger("combatUpgrade", newbornCombat);


            childObject.transform.parent     = GameObject.Find("PlayerCreatures").transform;
            childObject.transform.rotation   = Quaternion.Euler(childRotation);
            childObject.transform.localScale = childScale;
            BoxCollider childBox = childObject.AddComponent <BoxCollider>();
            childBox.isTrigger = false;
            childBox.material  = new PhysicMaterial("None");
            Vector3 childBoxCenter;
            childBoxCenter.x = 0;
            childBoxCenter.y = 0;
            childBoxCenter.z = 0;
            childBox.center  = childBoxCenter;
            Vector3 childBoxSize;
            childBoxSize.x = 0.9f;
            childBoxSize.y = 0.8f;
            childBoxSize.z = 4;
            childBox.size  = childBoxSize;
            Rigidbody childRigidbody = childObject.AddComponent <Rigidbody>();
            childRigidbody.mass                   = 10;
            childRigidbody.drag                   = 0;
            childRigidbody.useGravity             = true;
            childRigidbody.isKinematic            = false;
            childRigidbody.collisionDetectionMode = CollisionDetectionMode.Discrete;
            childRigidbody.constraints            = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;
            childObject.tag = "ControllableSpecies";
            Terrain terrain = GameObject.Find("Terrain").GetComponent <Terrain>();
            childPosition.y = terrain.SampleHeight(childPosition) + 10;
            childObject.transform.position = childPosition;

            NavMeshObstacle obstacle = childObject.AddComponent <NavMeshObstacle>();
            obstacle.center  = new Vector3(0f, 0f, 0f);
            obstacle.size    = new Vector3(1f, 1f, 4.1f);
            obstacle.carving = true;
            obstacle.enabled = true;
            NavMeshAgent agent = childObject.AddComponent <NavMeshAgent>();
            agent.radius                  = 0.53f;
            agent.height                  = 1;
            agent.speed                   = (6.0f + newbornMovement * 3) * GameConstants.movementSpeed;
            agent.angularSpeed            = 120;
            agent.acceleration            = 99;
            agent.stoppingDistance        = 0;
            agent.autoBraking             = true;
            agent.avoidancePriority       = 50;
            agent.autoTraverseOffMeshLink = true;
            agent.autoRepath              = true;
            agent.areaMask                = 1;
            agent.enabled                 = false;


            SpeciesAttributes childAttributes = childObject.AddComponent <SpeciesAttributes>();
            childAttributes.movementUpgrade   = newbornMovement;
            childAttributes.perceptionUpgrade = newbornPerception;
            childAttributes.attackUpgrade     = newbornAttack;
            childAttributes.deffenseUpgrade   = newbornDefense;
            Debug.Log("Newborn generated:\nMovement upgrade: " + newbornMovement + "\nPerception Upgrade: " + newbornPerception + "\nAttack Upgrade: " + newbornAttack + "\nDefense Upgrade: " + newbornDefense + "\n\nCurrent time: " + PlayerTime.currentSeconds + " seconds\nTotal time: " + PlayerTime.totalSeconds + " seconds\nValues in Current Model:\nRan: " + PlayerModel.CurrentModel.ran + "\nFoods: " + PlayerModel.CurrentModel.foods + "\nAttacked: " + PlayerModel.CurrentModel.attacked + "\nDefended: " + PlayerModel.CurrentModel.defended + "\n\nValues in Legacy Model:\nRan: " + PlayerModel.LegacyModel.ran + "\nFoods: " + PlayerModel.LegacyModel.foods + "\nAttacked: " + PlayerModel.LegacyModel.attacked + "\nDefended: " + PlayerModel.LegacyModel.defended);
            childObject.AddComponent <AttributeUpdater>();
            childObject.AddComponent <CharacterMovement>();
            childObject.AddComponent <FixRotation>();
            childObject.AddComponent <PlayerAutonomousBehavior>();

            activeCreature.GetComponent <SpeciesAttributes>().libido -= 50;
            PlayerInfo.playerCreaturesCount++;

            PlayerModel.triggerBreed();
            PlayerTime.triggerBreed();
        }
    }