Example #1
0
    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;
        }
    }
Example #2
0
    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;
        }
    }
Example #3
0
    public static Cmd_Move New(GameObject prGameObject, Vector3 prPoint, bool Agressive)
    {
        Cmd_Move newcommand = prGameObject.AddComponent <Cmd_Move>();

        newcommand.destination = prPoint;
        newcommand.aggression  = Agressive;
        return(newcommand);
    }
Example #4
0
    /// <summary>
    /// This command will move the unit to a given place then progress to the next. this command disables targeting and just moves the unit.
    /// </summary>


    public static Cmd_Move New(GameObject prGameObject, Vector3 prPoint)
    {
        Cmd_Move newcommand = prGameObject.AddComponent <Cmd_Move>();

        newcommand.destination = prPoint;

        return(newcommand);
    }
Example #5
0
    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));
        }
    }
Example #6
0
    public static Cmd_Move New(GameObject prGameObject, Vector3 prPoint, float prRelaxDistance)
    {
        Cmd_Move newcommand = prGameObject.AddComponent <Cmd_Move>();

        newcommand.destination   = prPoint;
        newcommand.relaxDistance = prRelaxDistance;

        return(newcommand);
    }
Example #7
0
 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));
        }
    }
Example #9
0
 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));
     }
 }
Example #10
0
 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;
        }
    }
Example #12
0
    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;
                }
            }
        }
    }
Example #13
0
 public override void RightClickInSpace(Vector3 Point)
 {
     commandManager.AddCommand(Cmd_Move.New(transform.gameObject, Point));
 }