Ejemplo n.º 1
0
 internal void Start()
 {
     base.Init();
     state        = EBehaviourState.Idle;
     currentLevel = ((FPSGameMode)JEngine.Instance.gameManager.GetCurrentGameMode).level;
     currentLevel.RegisterEnemy(this);
 }
Ejemplo n.º 2
0
	internal void Start()
	{
		base.Init ();
		state = EBehaviourState.Idle;
		currentLevel = ((FPSGameMode)JEngine.Instance.gameManager.GetCurrentGameMode).level;
		currentLevel.RegisterEnemy (this);
	}
Ejemplo n.º 3
0
 private void updatePointBehaviour(float deltaTime)
 {
     if (state == EBehaviourState.FAILED || isEnabled == false)
     {
         return;
     }
     else if (state == EBehaviourState.OK)
     {
         pointTimer += deltaTime;
         while (pointTimer >= secondsPerChange)
         {
             pointTimer -= secondsPerChange;
             removeItemFromStack();
         }
     }
     else if (state == EBehaviourState.FAILING)
     {
         pointTimer += Time.deltaTime;
         if (pointTimer >= definition.baseFailStateTimeout)
         {
             state = EBehaviourState.FAILED;
             animator.SetInteger("state", 2);
             onStateChange.Invoke();
             SetEnabled(false);
         }
     }
 }
Ejemplo n.º 4
0
        private void OnPointStateChange()
        {
            if (roomState == EBehaviourState.FAILED || isEnabled == false)
            {
                return;
            }

            int  failCount = 0;
            bool failing   = false;

            for (int i = 0; i < trackedPoints.Count; i++)
            {
                EBehaviourState pointState = trackedPoints[i].GetBehaviourState();

                if (pointState == EBehaviourState.FAILING)
                {
                    failing = true;
                }
                else if (pointState == EBehaviourState.FAILED)
                {
                    failCount++;
                }
            }

            if (failCount == trackedPoints.Count)
            {
                // All points in room failed, kill room
                roomFailingSoundBehaviour.StopSound();
                roomState = EBehaviourState.FAILED;
                roomFailingSpriteBehaviour.DisablePingPong();
                roomFailingSpriteBehaviour.SetTargetAlpha(1);
                onStateChange.Invoke();
            }
            else if (roomState == EBehaviourState.OK && failing)
            {
                // Room became failing
                roomFailingSoundBehaviour.PlaySound();
                roomState = EBehaviourState.FAILING;
                roomFailingSpriteBehaviour.EnablePingPong();
                onStateChange.Invoke();
            }
            else if (roomState == EBehaviourState.FAILING && !failing)
            {
                // Room was failing and is OK now
                roomFailingSoundBehaviour.StopSound();
                roomState = EBehaviourState.OK;
                roomFailingSpriteBehaviour.DisablePingPong();
                roomFailingSpriteBehaviour.SetTargetAlpha(0);
                onStateChange.Invoke();
            }
        }
Ejemplo n.º 5
0
        private ItemBehaviour removeItemFromStack()
        {
            ItemBehaviour item = itemStack.Pop();

            if (state == EBehaviourState.FAILING && itemStack.Count < definition.maxStackItemCount)
            {
                state      = EBehaviourState.OK;
                pointTimer = 0;
                animator.SetInteger("state", 0);
                onStateChange.Invoke();
            }

            return(item);
        }
Ejemplo n.º 6
0
 private void pushItemToStack(ItemBehaviour item)
 {
     item.SetSpriteLayer(Settings.Constant.itemSortingLayer);
     item.SetSpriteLayerOrder(itemStack.Count + 1);
     item.transform.SetParent(stackPositionRoot);
     item.transform.localPosition = item.ItemDefinition.GenerateItemStackPosition(itemStack.Count, true);
     item.transform.localRotation = item.ItemDefinition.GenerateItemStackRotation(true);
     itemStack.Push(item);
     if (state == EBehaviourState.FAILING)
     {
         state = EBehaviourState.OK;
         animator.SetInteger("state", 0);
         pointTimer = 0;
         onStateChange.Invoke();
     }
     if (progressBarBehaviour)
     {
         progressBarBehaviour.SetTicks(itemStack.Count);
     }
 }
Ejemplo n.º 7
0
        private void pushItemToStack()
        {
            ItemBehaviour item;

            itemPool.SpawnFromPool(out item, definition.accumulatingItem.itemName);
            item.SetSpriteLayer(Settings.Constant.itemSortingLayer);
            item.SetSpriteLayerOrder(itemStack.Count + 1);
            item.transform.SetParent(stackPositionRoot);
            item.transform.localPosition = item.ItemDefinition.GenerateItemStackPosition(itemStack.Count, true);
            item.transform.localRotation = item.ItemDefinition.GenerateItemStackRotation(true);
            itemStack.Push(item);

            if (state == EBehaviourState.OK && itemStack.Count >= definition.maxStackItemCount)
            {
                state      = EBehaviourState.FAILING;
                pointTimer = 0;
                animator.SetInteger("state", 1);
                onStateChange.Invoke();
            }
        }
Ejemplo n.º 8
0
        private void removeItemFromStack(bool invokeMessage = true)
        {
            int stackCount = itemStack.Count;

            if (stackCount > 0)
            {
                itemPool.ReturnToPool(itemStack.Pop());
            }

            if ((stackCount - 1) <= 0 && state != EBehaviourState.FAILING)
            {
                state = EBehaviourState.FAILING;
                animator.SetInteger("state", 1);
                pointTimer = 0;
                onStateChange.Invoke();
            }
            if (progressBarBehaviour)
            {
                progressBarBehaviour.SetTicks(itemStack.Count);
            }
        }
Ejemplo n.º 9
0
 internal void ManageIdle()
 {
     Collider[] results = new Collider[0];
     results = Physics.OverlapSphere(sightPosition.position, distanceOfView, LayerMask.GetMask("Character"));
     foreach (Collider obj in results)
     {
         //Check if Player
         if (obj.tag == "Player")
         {
             //Check if in Sight
             float angle = Vector3.Angle(sightPosition.forward, obj.transform.position - transform.position);
             if (Mathf.Abs(angle) <= angleOfView / 2f)
             {
                 if (!Physics.Linecast(sightPosition.position, obj.ClosestPointOnBounds(sightPosition.position)))
                 {
                     //Alerted !
                     state  = EBehaviourState.Alerted;
                     target = obj.transform;
                 }
             }
         }
     }
 }
Ejemplo n.º 10
0
	internal void ManageIdle()
	{
		Collider[] results = new Collider[0];
		results = Physics.OverlapSphere(sightPosition.position, distanceOfView, LayerMask.GetMask("Character"));
		foreach(Collider obj in results)
		{
			//Check if Player
			if(obj.tag == "Player")
			{
				//Check if in Sight
				float angle = Vector3.Angle(sightPosition.forward, obj.transform.position - transform.position);
				if(Mathf.Abs(angle) <= angleOfView/2f)
				{
					if(!Physics.Linecast(sightPosition.position, obj.ClosestPointOnBounds(sightPosition.position)))
					{
						//Alerted !
						state = EBehaviourState.Alerted;
						target = obj.transform;
					}
				}
			}
		}
	}
Ejemplo n.º 11
0
        private void OnRoomStateChange()
        {
            int failCount = 0;

            for (int i = 0; i < roomBehaviours.Count; i++)
            {
                if (roomBehaviours[i].GetBehaviourState() == EBehaviourState.FAILED)
                {
                    failCount++;
                }
            }
            scoreBehaviour.SetRoomScoreModifier(roomBehaviours.Count - failCount);

            if (failCount == roomBehaviours.Count)
            {
                // All rooms failed
                levelState = EBehaviourState.FAILED;
                inGameAudioBehaviour.StopSound();
                gameOverBehaviour.SetGameOver(playerBehaviour);
                scoreBehaviour.StoreScore(levelName);
                playerBehaviour.SetGameOver();
                onStateChange.Invoke();
            }
        }