Пример #1
0
 new protected void Start()
 {
     Player          = GameObject.FindGameObjectWithTag("Player");
     RoomConditionGO = transform.parent.transform.parent.gameObject.GetComponent <RoomCondition>();
     LaserEffect.SetActive(false);
     StartCoroutine(WaitPlayer());
     StartCoroutine(LaserOff());
 }
Пример #2
0
        new private void Start()
        {
            lr              = GetComponent <LineRenderer>();
            Player          = GameObject.FindGameObjectWithTag("Player");
            RoomConditionGO = transform.parent.transform.parent.gameObject.GetComponent <RoomCondition>();

            lr.startColor = new Color(1, 0, 0, 0.5f);
            lr.endColor   = new Color(1, 0, 0, 0.5f);
            lr.startWidth = 0.2f;
            lr.endWidth   = 0.2f;

            StartCoroutine(WaitPlayer());
        }
Пример #3
0
    protected void Start()
    {
        base.Start();
        roomConditionGO = transform.parent.transform.parent.gameObject.GetComponent <RoomCondition>();
        enemyAnim       = GetComponent <Animator>();

        attackCoolTime     = 5.0f;
        attackCoolTimeCacl = attackCoolTime;

        playerRealizeRange = 10f;
        attackRange        = 10f;
        moveSpeed          = 1f;
        StartCoroutine(Idle());
    }
Пример #4
0
    private new void Start()
    {
        base.Start();

        lr = GetComponent <LineRenderer>();
        roomConditionGO = transform.parent.transform.parent.gameObject.GetComponent <RoomCondition>();
        enemyAnim       = GetComponent <Animator>();
        //player = GameObject.FindGameObjectWithTag("Player");

        lr.startColor = new Color(1, 0, 0, 0.5f);
        lr.endColor   = new Color(1, 0, 0, 0.5f);
        lr.startWidth = 0.2f;
        lr.endWidth   = 0.2f;

        attackCoolTime     = 4.0f;
        attackCoolTimeCacl = attackCoolTime;

        playerRealizeRange = 10f;
        attackRange        = 10f;
        moveSpeed          = 1f;
        StartCoroutine(Idle());

        //StartCoroutine(WaitPlayer());
    }
Пример #5
0
		private void DoCorridors(RogueLevel level)
		{
			RogueLevel.Room first = null;
			RogueLevel.Room second = null;

			var j = 0;

			var notAlreadyConnected = new RoomCondition(target => !first.ConnectedTo.Contains(target));
			var notAlreadyInGraph   = new RoomCondition(target => !target.InGraph);
			var firstCanConnect     = new RoomCondition(target => first.CanConnectTo(target));
			var randomMagic         = new RoomCondition(target => DmRandom.Next(++j) == 0);

			var conditions = new List<RoomCondition>();

			var perform = new Action<int, bool>((count, randomFirst) =>
			{
				int left = count;
				do
				{
					if (randomFirst)
					{
						first = level.Rooms.Shuffle()[0];
					}

					j = 0;
					foreach (var targetRoom in level.Rooms.Where(first.CanConnectTo))
					{
						try
						{
							second = level.Rooms.SelectRandom(
								shortCircuit: true,
								conditions: conditions.ToArray());
						}
						catch (System.Exception)
						{
							// No valid element, so just go on.
						}
					}

					// if we didn't find any room we could connect to at all, shuffle.
					if (j == 0)
					{
						do
						{
							first = level.Rooms.Shuffle()[0];
						}
						while (!first.InGraph);
					}
					else
					{
						Connect(level, first, second);
						left--;
					}
				}
				while (left > 0);
			});

			// The order matters, since we short circuit.
			// Always keep randomMagic at the end.
			conditions.Add(firstCanConnect);
			conditions.Add(notAlreadyInGraph);
			conditions.Add(randomMagic);

			first = level.Rooms.Shuffle()[0];
			first.InGraph = true;

			perform(this.parameters.GetParameter<int>(ParameterNames.MaxRooms) - 1, false);

			conditions.Clear();
			conditions.Add(firstCanConnect);
			conditions.Add(notAlreadyConnected);
			conditions.Add(randomMagic);

			var randomExtras = DmRandom.Next(1, 4);

			perform(DmRandom.Next(1, 4), true);
		}
Пример #6
0
 new private void Start()
 {
     Player          = GameObject.FindGameObjectWithTag("Player");
     RoomConditionGO = transform.parent.transform.parent.gameObject.GetComponent <RoomCondition>();
     StartCoroutine(WaitPlayer());
 }