예제 #1
0
 private void Reset()
 {
     if (stats == null)
     {
         stats = ScriptableObject.CreateInstance("SPlayerStats") as SPlayerStats;
     }
     stats.hp              = statsDefault.hp;
     stats.gold            = statsDefault.gold;
     stats.position        = statsDefault.position;
     stats.facingDirection = statsDefault.facingDirection;
     playerStatsChangeEvent.Raise();
 }
예제 #2
0
파일: RoomExit.cs 프로젝트: cinfa78/YAVD
 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Player"))
     {
         Destroy(colliderComponent);
         roomExitEvent.Raise();
     }
 }
예제 #3
0
 private void LateUpdate()
 {
     speed = Vector3.Magnitude(transform.position - previousPosition) / Time.deltaTime;
     if (speed > 0)
     {
         playerMove.Raise();
     }
 }
예제 #4
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        SEvent myScript = (SEvent)target;

        if (GUILayout.Button("Raise Event"))
        {
            myScript.Raise();
        }
    }
예제 #5
0
    public void Hit(float damageReceived)
    {
        stats.hp -= damageReceived;

        GameObjectPool.instance.Spawn("Blood", transform.position + Vector3.up * 8f, transform.rotation, Vector3.one);
        if (stats.hp <= 0)
        {
            stats.hp = 0f;
            playerDeath.Raise();
        }
        else
        {
            //deve entrare nello stato di GRAZIA
        }
        playerStatsChangeEvent.Raise();
    }
예제 #6
0
 void Update()
 {
     if (Input.GetButtonDown("Start"))
     {
         Debug.Log("Start Game");
         startButtonEvent.Raise();
     }
     if (Input.GetButtonDown("Pause"))
     {
         pauseButtonEvent.Raise();
         Debug.Log("Pause Game");
     }
     if (Input.GetButtonDown("Quit"))
     {
         Application.Quit();
     }
 }
예제 #7
0
파일: Monster.cs 프로젝트: cinfa78/YAVD
 public void Die()
 {
     state = MonsterState.dead;
     monsterKilled.Raise();
     Destroy(gameObject);
 }
예제 #8
0
 public void FadedOut()
 {
     fadedOut.Raise();
 }
예제 #9
0
 public void FadedIn()
 {
     fadedIn.Raise();
 }
예제 #10
0
    public void InitRoom(GameObject roomPrefab, SMonsterSpawnConfiguration monstersToSpawn)
    {
        //SaveGameManager.instance.SaveGame(playerStats.roomNumber, playerStats.hp, playerStats.gold);
        int i, j;

        //GameObject room =
        room = Instantiate(roomPrefab);

        surface.BuildNavMesh();

        players = new List <Player>(GameObject.FindObjectsOfType <Player>());
        foreach (Player p in players)
        {
            p.EnableAgent(false);
        }

        spawnMonster = new List <GameObject>(GameObject.FindGameObjectsWithTag("Spawner"));
        j            = 0;
        foreach (SMonsterSpawnConfiguration.Spawner s in monstersToSpawn.monsters)
        {
            for (i = 0; i < s.numberToSpawn; i++)
            {
                //Debug.Log("Instanzio nuovo mostro.");
                GameObject newMonster = Instantiate(s.monsterToSpawn, spawnMonster[j % spawnMonster.Count].transform.position, spawnMonster[j % spawnMonster.Count].transform.rotation);
                newMonster.transform.rotation = spawnMonster[j % spawnMonster.Count].transform.rotation;
                monsters.Add(newMonster.GetComponent <Monster>());
                monstersAlive++;
                //Debug.Log("Mostro " + newMonster.name + " " + monstersAlive + " " + newMonster.transform.position + " " + monsters.Count);
                j++;
            }
        }

        doors = new List <Door>(GameObject.FindObjectsOfType <Door>());

        spawnPlayer = new List <GameObject>(GameObject.FindGameObjectsWithTag("SpawnerPlayer"));

        for (i = 0; i < spawnPlayer.Count; i++)
        {
            RoomExit newSpawnPoint = Instantiate(playerSpawnExitPrefab, spawnPlayer[i].transform.position, spawnPlayer[i].transform.rotation);
            exits.Add(newSpawnPoint);
            newSpawnPoint.EnableExit(false);
            spawnPlayer[i] = newSpawnPoint.gameObject;
        }

        i = 0;
        foreach (Player p in players)
        {
            p.transform.position = spawnPlayer[i % spawnPlayer.Count].transform.position;
            p.transform.rotation = spawnPlayer[i % spawnPlayer.Count].transform.rotation;
            //elimino la  possibilita' di uscire da qua
            spawnPlayer[i % spawnPlayer.Count].GetComponent <RoomExit>().CloseExit();
            //print(p.transform.position + " " + spawnPlayer[i % spawnPlayer.Length].transform.position);
            float minDistance = 80000f;
            int   closestDoor = 0;
            for (j = 0; j < doors.Count; j++)
            {
                if (Vector3.Distance(p.transform.position, doors[j].transform.position) < minDistance)
                {
                    minDistance = Vector3.Distance(p.transform.position, doors[j].transform.position);
                    closestDoor = j;
                }
            }
            doors[closestDoor].Block();
            i++;
            p.EnableAgent(true);
        }

        roomLoaded.Raise();
        //Debug.Log("Number of monsters: " + monsters.Count + " " + GameObject.FindGameObjectsWithTag("Monster").Length);
    }
예제 #11
0
 public void ExitRoom()
 {
     Debug.Log("Player exits room");
     destroyRoom.Raise();
     //ClearRoom();
 }