public override void CommandUpdate() { if (ReturnifDead()) { return; } if (Vector3.Distance(transform.position, startingPoint) > leashDistance) { commandManager.commandQueue.Insert(1, Cmd_Move.New(transform.gameObject, startingPoint)); attackManager.Target = null; commandManager.NextCommand(); return; } agent.SetDestination(TargetUnit.transform.position); var distance = Vector3.Distance(TargetUnit.transform.position, transform.position); if (distance <= (attackManager.GetMinimumWeaponRange() + 1)) { agent.isStopped = true; attackManager.Attack(); } else { commandManager.animator.Play(GetComponent <UnitAnimation>().CombatWalk.name); agent.isStopped = false; } }
public override void CommandUpdate() { var distanceToNode = Vector3.Distance(resourceNode.transform.position, commandManager.transform.position); var distancetoDepot = Vector3.Distance(resourceDepot.transform.position, commandManager.transform.position); if (distanceToNode <= relaxDistance && !collected) { if (resourceNode.mineable) { resourceNode.mineable = false; commandManager.InsertCommand(Cmd_Channel.New(transform.gameObject, "Attack", 1, 0.9f, resourceNode.transform.position, gatherAction, cancelAction)); } return; } else if (distancetoDepot <= relaxDistance && collected) { GetComponent <Player>().Info.Credits += AmountGathered; AmountGathered = GatherAmount; collected = false; return; } else if (distancetoDepot <= relaxDistance) { commandManager.InsertCommand(Cmd_Move.New(transform.gameObject, resourceNode.transform.position)); return; } else if (distanceToNode <= relaxDistance) { commandManager.InsertCommand(Cmd_Move.New(transform.gameObject, resourceDepot.transform.position)); return; } }
private void MoveallSelectedUnits() { var destination = (Vector3)RtsManager.Current.ScreenPointToMapPosition(Input.mousePosition); foreach (var Unit in MouseManager.Current.Selections) { Unit.GetComponent <CommandManager>().AddCommand(Cmd_Move.New(Unit.gameObject, destination)); } }
public override void Execute() { if (Vector3.Distance(resourceDepot.transform.position, transform.position) > relaxDistance && !paused) { commandManager.InsertCommand(Cmd_Move.New(transform.gameObject, resourceDepot.transform.position)); return; } if (resourceNode == null) { resourceNode = FindNode(); } }
public override void CommandUpdate() { var distance = Vector3.Distance(targetBuilding.transform.position, transform.position); if (distance <= relaxDistance) { targetBuilding.GetComponent <StockManager>().EquipUnit(transform.gameObject); } else { commandManager.InsertCommand(Cmd_Move.New(gameObject, targetBuilding.transform.position, 10)); } }
public override void RightClickOnStructure(GameObject TargetUnit) { if (TargetUnit.GetComponent <StockManager>() != null) { commandManager.AddCommand(Cmd_humanEquip.New(gameObject, TargetUnit)); return; } if (TargetUnit.GetComponent <Player>().Info.Name == GetComponent <Player>().Info.Name) { commandManager.AddCommand(Cmd_Move.New(transform.gameObject, TargetUnit.transform.position)); } else { commandManager.AddCommand(Cmd_Attack.New(transform.gameObject, TargetUnit)); } }
private bool ReturnifDead() { if (TargetUnit.gameObject == null) { attackManager.Target = null; UnitInfo newTarget = Targeting.FindTarget(); if (newTarget != null) { commandManager.commandQueue.Insert(1, New(transform.gameObject, newTarget.gameObject, leashDistance, startingPoint)); } else if (leashDistance < 10000) { commandManager.commandQueue.Insert(1, Cmd_Move.New(transform.gameObject, startingPoint)); } commandManager.NextCommand(); return(true); } return(false); }
public override void Execute() { var ai = aiSupport.GetSupport(this.gameObject); // Debug.Log(ai.Player.Name + "is moving to attack"); int wave = (int)(ai.peasants.Count * attackWaveSize); unitsRequired += increasePerWave; foreach (var Player in RtsManager.Current.Players) { if (Player.IsAi) { continue; } for (int i = 0; i < wave; i++) { var Unit = ai.peasants[i]; Unit.GetComponent <CommandManager>().AddCommand(Cmd_Move.New(Unit.gameObject, RtsManager.Current.Players[0].Location.position, true)); } return; } }
private void AttackWithAllUnits() { var destination = (Vector3)RtsManager.Current.ScreenPointToMapPosition(Input.mousePosition); if (Utilities.CheckMouseHit() != null) { var hit = (RaycastHit)Utilities.CheckMouseHit(); foreach (var Unit in MouseManager.Current.Selections) { if (Unit.GetComponent <UnitInfo>().unitType == "Structure") { continue; } switch (hit.transform.gameObject.tag) { case "Structure": Unit.GetComponent <CommandManager>().AddCommand(Cmd_Attack.New(Unit.gameObject, hit.transform.gameObject)); break; case "Unit": Unit.GetComponent <CommandManager>().AddCommand(Cmd_Attack.New(Unit.gameObject, hit.transform.gameObject)); break; case "Gold": Debug.Log("itsAMine"); Unit.GetComponent <CommandManager>().AddCommand(Cmd_Move.New(Unit.gameObject, destination, true)); break; default: Unit.GetComponent <CommandManager>().AddCommand(Cmd_Move.New(Unit.gameObject, destination, true)); break; } } } }
public override void RightClickInSpace(Vector3 Point) { commandManager.AddCommand(Cmd_Move.New(transform.gameObject, Point)); }