Example #1
0
 override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     base.OnStateExit(animator, stateInfo, layerIndex);
     MovementController[] thisUnit = BigBookBasic.ThisUnitToArray(movement);
     unit.player.playerController.MoveToObject(aIController.returnTarget.gameObject, thisUnit);
     TimeTickSystem.OnTick -= TimeTickSystem_OnTick;
 }
Example #2
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        base.OnStateEnter(animator, stateInfo, layerIndex);
        TimeTickSystem.OnTick += TimeTickSystem_OnTick;

        targetResource = aIController.actualTarget.GetComponent <Resource>();

        Vector2 direction = BigBookBasic.GetDirectionVector2(targetResource.transform.position, unitObject.transform.position);

        characterAnimator.GetAnimationFromVector2(direction.x, direction.y, targetResource.killAnimation);
    }
Example #3
0
    private void AddClickToSelection()
    {
        Vector2    screenPos = BigBookBasic.MousePosition();
        Collider2D col       = Physics2D.OverlapCircle(screenPos, .01f, selectablesMask);

        if (col != null)
        {
            Debug.Log(col.gameObject);

            ChangeSpecificWorldObject(BigBookBasic.GetComponentFromGameObject <WorldObject>(col.gameObject));
        }
    }
Example #4
0
    private void SetTarget(WorldObject worldObject, MovementController[] units, Vector2[] positions)
    {
        switch (worldObject.worldObjectType)
        {
        case ObjectType.Building:
            for (int i = 0; i < units.Length; i++)
            {
                units[i].MoveToWorldObject(worldObject, positions[i], true);
            }
            break;

        case ObjectType.Character:
            for (int i = 0; i < units.Length; i++)
            {
                if (units[i].ac.animator != null)
                {
                    units[i].ac.animator.SetBool("Gathering", false);
                }
                units[i].MoveToWorldObject(worldObject, positions[i], true);
            }
            break;

        case ObjectType.Resource:
        {
            Resource resource = BigBookBasic.GetComponentFromGameObject <Resource>(worldObject.gameObject);
            if (resource != null)
            {
                for (int i = 0; i < units.Length; i++)
                {
                    if (units[i].ac.animator != null)
                    {
                        units[i].ac.animator.SetBool("IsGathering", true);
                        if (resource.available)
                        {
                            units[i].ac.animator.SetBool("IsAttacking", false);
                        }
                        else
                        {
                            units[i].ac.animator.SetBool("IsAttacking", true);
                        }
                    }
                    units[i].MoveToWorldObject(worldObject, positions[i], true, true);
                }
            }
            else
            {
                Debug.Log("geen resource: " + worldObject.worldObjectName);
            }
            break;
        }
        }
    }
Example #5
0
    private void CheckMouseObject()
    {
        Vector2    mousePosition = BigBookBasic.MousePosition();
        Collider2D col           = Physics2D.OverlapCircle(mousePosition, .01f, thingsMask);

        if (col != null)
        {
            GUIManager.instance.TooltipObject(col.gameObject);
        }
        else
        {
            GUIManager.instance.TooltipObject(col);
        }
    }
Example #6
0
    public WorldObject FindStorage(ResourceType resourceType)
    {
        List <Building> buildings = unit.player.GetBuildingsForResourceStorage(resourceType);

        if (buildings.Count == 0)
        {
            Debug.Log(unit.worldObjectName + " kan geen storage vinden voor " + resourceType);
            return(null);
        }
        else
        {
            return(BigBookBasic.GetNearestWorldObjectInList(transform.position, buildings));
        }
    }
Example #7
0
 public void FindStorage()
 {
     //een storage zoeken om de resources heen te sturen. kunnen álle storages van deze player zijn.
     ac.returnTarget = ac.actualTarget;
     ac.actualTarget = sense.FindStorage(hasResourceType);
     if (ac.actualTarget != null)
     {
         MovementController movement = unit.GetComponent <MovementController>();
         if (movement != null)
         {
             MovementController[] unitArray = BigBookBasic.ThisUnitToArray(movement);
             unit.player.playerController.MoveToObject(ac.actualTarget.gameObject, unitArray);
         }
     }
 }
Example #8
0
    private void Update()
    {
        if (Input.GetMouseButtonDown(1) && playerSelection.HasWorldoObjectsSelected())
        {
            if (playerSelection.selectedUnits.Count > 0)
            {
                playerSelection.RemoveNullObjectsFromSelection();
                WorldObject[]        selectedObjects = playerSelection.GetSelectedObjects();
                MovementController[] selectedUnits   = new MovementController[selectedObjects.Length];


                if (selectedObjects[0].worldObjectType == ObjectType.Character)
                {
                    for (int i = 0; i < selectedObjects.Length; i++)
                    {
                        selectedUnits[i] = BigBookBasic.GetComponentFromGameObject <MovementController>(selectedObjects[i].gameObject);
                    }
                }

                Vector2      mousePosition = BigBookBasic.MousePosition();
                Collider2D[] colliders     = Physics2D.OverlapCircleAll(mousePosition, .05f);
                Collider2D   col           = BigBookBasic.PickProminentCollider(colliders);
                if (col != null)
                {
                    if (col.gameObject.CompareTag("Ground"))
                    {
                        MoveToPosition(mousePosition, selectedUnits);
                    }
                    else if (col.gameObject.CompareTag("Water"))
                    {
                    }
                    else if (col.gameObject.CompareTag("Resource"))
                    {
                        MoveToObject(col.gameObject, selectedUnits);
                        //ook iets meegeven aan alle betrokken Units zodat ze ook iets gaan doen met die resource
                    }
                    else if (col.gameObject.CompareTag("Character"))
                    {
                        MoveToObject(col.gameObject, selectedUnits);
                    }
                    else if (col.gameObject.CompareTag("Building"))
                    {
                        MoveToObject(col.gameObject, selectedUnits);
                    }
                }
            }
        }
    }
Example #9
0
    IEnumerator FollowPath()
    {
        bool followingPath = true;
        int  pathIndex     = 0;
        //normalized richting bepalen ivm niet kunnen draaien in 2D
        Vector2 direction   = (path.lookPoints[0] - transform.position).normalized;
        Vector2 destination = path.lookPoints[0];

        ac.AnimateDirection(direction, CharacterAnimationState.Walk);

        float speedPercent = 1f;

        while (followingPath)
        {
            if (followingPath)
            {
                if (Vector2.Distance(new Vector2(transform.position.x, transform.position.y), destination) < stoppingDistance)
                {
                    if (destination == new Vector2(ac.targetPosition.position.x, ac.targetPosition.position.y))
                    {
                        followingPath = false;
                        ac.animator.SetBool("HasArrived", true);
                        ac.AnimateSpecific(CharacterAnimationState.Idle);
                        yield return(null);
                    }

                    pathIndex++;
                    if (pathIndex >= path.lookPoints.Length)
                    {
                        destination = ac.targetPosition.position;
                    }
                    else
                    {
                        destination = path.lookPoints[pathIndex];
                    }

                    direction = BigBookBasic.GetDirectionVector2(destination, transform.position);
                    ac.AnimateDirection(direction, CharacterAnimationState.Walk);
                }
                transform.Translate(direction * Time.deltaTime * speed * speedPercent);
            }
            yield return(null);
        }
        ac.AnimateSpecific(CharacterAnimationState.Idle);
        ac.animator.SetBool("HasArrived", true);
    }
Example #10
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        base.OnStateEnter(animator, stateInfo, layerIndex);
        TimeTickSystem.OnTick += TimeTickSystem_OnTick;

        gather   = unit.gather;
        resource = aIController.actualTarget.GetComponent <Resource>();
        if (resource)
        {
            Vector2 direction = BigBookBasic.GetDirectionVector2(resource.transform.position, unitObject.transform.position);
            characterAnimator.GetAnimationFromVector2(direction.x, direction.y, resource.gatherAnimation);
        }
        else
        {
            animator.SetBool("HasArrived", true);
            animator.SetBool("IsGathering", false);
        }
    }
Example #11
0
 public void FindNewResource()
 {
     //als een resource leeg is en character heeft geen resources, dan zoeken naar een nieuwe. moet binnen viewRange.
     ac.returnTarget = null;
     ac.actualTarget = sense.FindNewResource(hasResourceType);
     if (ac.actualTarget != null)
     {
         MovementController movement = unit.GetComponent <MovementController>();
         if (movement != null)
         {
             MovementController[] unitArray = BigBookBasic.ThisUnitToArray(movement);
             unit.player.playerController.MoveToObject(ac.actualTarget.gameObject, unitArray);
             return;
         }
     }
     ac.animator.SetBool("HasResources", false);
     ac.animator.SetBool("IsGathering", false);
 }
    private void SetupResource()
    {
        Resource resource = BigBookBasic.GetComponentFromGameObject <Resource>(worldObject.gameObject);

        if (resourceImage != null)
        {
            resourceImage.sprite = GUIManager.instance.GetResouceSprite(resource.resourceType);
        }
        if (resourceAmountText != null)
        {
            int am = (int)resource.resourceAmount;
            int ma = (int)resource.maxResourceAmount;
            resourceAmountText.SetText(am.ToString() + "/" + ma.ToString());
        }
        if (resourceBarObject != null)
        {
            resourceBarObject.SetActive(true);
            resourceBar.fillAmount = resource.GetResourcePerunage();
        }
    }
Example #13
0
 public WorldObject FindNewResource(ResourceType resourceType)
 {
     //als een resource leeg is en character heeft geen resources, dan zoeken naar een nieuwe. moet binnen viewRange.
     return(BigBookBasic.GetNearestResourceInRange(transform.position, viewRange, resourceType));
 }
Example #14
0
 public void TooltipObject(GameObject go)
 {
     tooltipPanel.SetActive(true);
     tooltipDisplayShell.Setup(BigBookBasic.GetComponentFromGameObject <WorldObject>(go));
     tooltipPanel.transform.position = TooltipPosition();
 }