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; }
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); }
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)); } }
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; } } }
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); } }
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)); } }
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); } } }
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); } } } } }
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); }
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); } }
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(); } }
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)); }
public void TooltipObject(GameObject go) { tooltipPanel.SetActive(true); tooltipDisplayShell.Setup(BigBookBasic.GetComponentFromGameObject <WorldObject>(go)); tooltipPanel.transform.position = TooltipPosition(); }