huh? RoomDoor (румдур)
This commit is contained in:
parent
abe08da6fa
commit
20c6b1dad3
@ -134,7 +134,6 @@ namespace StarterAssets
|
|||||||
{
|
{
|
||||||
RotationSpeed = PlayerPrefs.GetFloat("Sensitivity");
|
RotationSpeed = PlayerPrefs.GetFloat("Sensitivity");
|
||||||
_controller = GetComponent<CharacterController>();
|
_controller = GetComponent<CharacterController>();
|
||||||
this.OnDamage += OnTakeDamage;
|
|
||||||
|
|
||||||
_gotEnergyClip = Resources.Load<AudioClip>("Audio/CharacterSounds/GetEnergy");
|
_gotEnergyClip = Resources.Load<AudioClip>("Audio/CharacterSounds/GetEnergy");
|
||||||
|
|
||||||
@ -376,8 +375,7 @@ namespace StarterAssets
|
|||||||
_parent = transf;
|
_parent = transf;
|
||||||
}
|
}
|
||||||
|
|
||||||
// server
|
public override void TakeDamage()
|
||||||
void OnTakeDamage(Pawn self)
|
|
||||||
{
|
{
|
||||||
_animator.SetTrigger("damage");
|
_animator.SetTrigger("damage");
|
||||||
InstantStaminaReduction(shootDepletion * 0.7f);
|
InstantStaminaReduction(shootDepletion * 0.7f);
|
||||||
|
@ -153,6 +153,7 @@ namespace Level.BuildModules
|
|||||||
Room selectedRoom = _spawnedRooms[p.x + selectedDirection.x, p.y + selectedDirection.y];
|
Room selectedRoom = _spawnedRooms[p.x + selectedDirection.x, p.y + selectedDirection.y];
|
||||||
|
|
||||||
DisableDoors(room, selectedRoom, selectedDirection);
|
DisableDoors(room, selectedRoom, selectedDirection);
|
||||||
|
room.Finish();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -175,16 +176,16 @@ namespace Level.BuildModules
|
|||||||
switch (rand)
|
switch (rand)
|
||||||
{
|
{
|
||||||
case 1 :
|
case 1 :
|
||||||
room.DoorU.SetActive(false);
|
room.DisableDoor(RoomDoor.U);
|
||||||
selectedRoom.DoorD.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.D);
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
room.DoorU2.SetActive(false);
|
room.DisableDoor(RoomDoor.U2);
|
||||||
selectedRoom.DoorD2.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.D2);
|
||||||
break;
|
break;
|
||||||
case 3 :
|
case 3 :
|
||||||
room.DoorU3.SetActive(false);
|
room.DisableDoor(RoomDoor.U3);
|
||||||
selectedRoom.DoorD3.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.D3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,16 +195,16 @@ namespace Level.BuildModules
|
|||||||
switch (rand)
|
switch (rand)
|
||||||
{
|
{
|
||||||
case 1 :
|
case 1 :
|
||||||
room.DoorD.SetActive(false);
|
room.DisableDoor(RoomDoor.D);
|
||||||
selectedRoom.DoorU.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.U);
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
room.DoorD2.SetActive(false);
|
room.DisableDoor(RoomDoor.D2);
|
||||||
selectedRoom.DoorU2.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.U2);
|
||||||
break;
|
break;
|
||||||
case 3 :
|
case 3 :
|
||||||
room.DoorD3.SetActive(false);
|
room.DisableDoor(RoomDoor.D3);
|
||||||
selectedRoom.DoorU3.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.U3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,16 +214,16 @@ namespace Level.BuildModules
|
|||||||
switch (rand)
|
switch (rand)
|
||||||
{
|
{
|
||||||
case 1 :
|
case 1 :
|
||||||
room.DoorR.SetActive(false);
|
room.DisableDoor(RoomDoor.R);
|
||||||
selectedRoom.DoorL.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.L);
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
room.DoorR2.SetActive(false);
|
room.DisableDoor(RoomDoor.R2);
|
||||||
selectedRoom.DoorL2.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.L2);
|
||||||
break;
|
break;
|
||||||
case 3 :
|
case 3 :
|
||||||
room.DoorR3.SetActive(false);
|
room.DisableDoor(RoomDoor.R3);
|
||||||
selectedRoom.DoorL3.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.L3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -231,16 +232,16 @@ namespace Level.BuildModules
|
|||||||
switch (rand)
|
switch (rand)
|
||||||
{
|
{
|
||||||
case 1 :
|
case 1 :
|
||||||
room.DoorL.SetActive(false);
|
room.DisableDoor(RoomDoor.L);
|
||||||
selectedRoom.DoorR.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.R);
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
room.DoorL2.SetActive(false);
|
room.DisableDoor(RoomDoor.L2);
|
||||||
selectedRoom.DoorR2.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.R2);
|
||||||
break;
|
break;
|
||||||
case 3 :
|
case 3 :
|
||||||
room.DoorL3.SetActive(false);
|
room.DisableDoor(RoomDoor.L3);
|
||||||
selectedRoom.DoorR3.SetActive(false);
|
selectedRoom.DisableDoor(RoomDoor.R3);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Mirror;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Level.BuildModules
|
namespace Level.BuildModules
|
||||||
{
|
{
|
||||||
public class Room : MonoBehaviour
|
|
||||||
|
public enum RoomDoor : byte
|
||||||
|
{
|
||||||
|
U,
|
||||||
|
D,
|
||||||
|
L,
|
||||||
|
R,
|
||||||
|
U2,
|
||||||
|
D2,
|
||||||
|
L2,
|
||||||
|
R2,
|
||||||
|
U3,
|
||||||
|
D3,
|
||||||
|
L3,
|
||||||
|
R3
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Room : NetworkBehaviour
|
||||||
{
|
{
|
||||||
public GameObject DoorU;
|
public GameObject DoorU;
|
||||||
public GameObject DoorD;
|
public GameObject DoorD;
|
||||||
@ -20,19 +40,57 @@ namespace Level.BuildModules
|
|||||||
public GameObject DoorR3;
|
public GameObject DoorR3;
|
||||||
public int roomSize = 6;
|
public int roomSize = 6;
|
||||||
|
|
||||||
public void RotateRandomly()
|
private List<GameObject> _doors = new();
|
||||||
|
|
||||||
|
private readonly SyncHashSet<RoomDoor> _disabledDoors = new();
|
||||||
|
|
||||||
|
private void Start()
|
||||||
{
|
{
|
||||||
int count = Random.Range(0, 4);
|
_doors.AddRange(new List<GameObject>
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
{
|
||||||
transform.Rotate(0, 90, 0);
|
DoorU, DoorD, DoorL, DoorR,
|
||||||
|
DoorU2, DoorD2, DoorL2, DoorR2,
|
||||||
|
DoorU3, DoorD3, DoorL3, DoorR3
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
GameObject tmp = DoorL;
|
public override void OnStartClient()
|
||||||
DoorL = DoorD;
|
{
|
||||||
DoorD = DoorR;
|
_disabledDoors.Callback += OnDisabledDoorsChanged;
|
||||||
DoorR = DoorU;
|
UpdateDoors();
|
||||||
DoorU = tmp;
|
}
|
||||||
|
|
||||||
|
void OnDisabledDoorsChanged(SyncHashSet<RoomDoor>.Operation op, RoomDoor door)
|
||||||
|
{
|
||||||
|
UpdateDoors();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Server]
|
||||||
|
public void Finish()
|
||||||
|
{
|
||||||
|
RpcUpdateDoors();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Server]
|
||||||
|
public void DisableDoor(RoomDoor door)
|
||||||
|
{
|
||||||
|
_disabledDoors.Add(door);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClientRpc]
|
||||||
|
void RpcUpdateDoors()
|
||||||
|
{
|
||||||
|
UpdateDoors();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Client]
|
||||||
|
void UpdateDoors()
|
||||||
|
{
|
||||||
|
foreach (var door in _disabledDoors)
|
||||||
|
{
|
||||||
|
_doors[(int)door].SetActive(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user