void Awake()
    {
        _pheromoneManager   = (PheromoneManager)Object.FindObjectOfType(typeof(PheromoneManager));
        _agentConfiguration = FindObjectOfType(typeof(GlobalAgentConfiguration)) as GlobalAgentConfiguration;

        _type = EPheromoneTypes.Food;
    }
    public void OnMouseDown()
    {
        Vector2 clickPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        RaycastHit2D[] hits        = Physics2D.RaycastAll(clickPoint, Vector2.zero);
        PheromoneNode  clickedNode = null;

        if (hits.Length != 0)
        {
            foreach (RaycastHit2D rhit in hits)  //def better way of doing this, but debug function
            {
                if (rhit.transform.CompareTag("Node"))
                {
                    clickedNode = rhit.collider.gameObject.GetComponent <PheromoneNode>();
                }
            }
        }

        if (clickedNode)  //if not null
        {
            SetNewLastClicked(clickedNode);
        }
        else  //otherwise make a new one
        {
            SetNewLastClicked(PheromoneManager.DropPheromone(lastClicked, GV.PhermoneTypes.Friendly, clickPoint));
        }
        foreach (PheromoneTrail pt in FindObjectsOfType <PheromoneTrail>())
        {
            pt.strength = 40;
        }
    }
Exemple #3
0
    // Use this for initialization
    void Start()
    {
        controller       = GetComponent <CharacterController> ();
        healthManager    = GetComponent <HealthManager> ();
        signalSender     = GetComponentInChildren <SignalSender> ();
        pheromoneManager = GetComponentInChildren <PheromoneManager> ();

        for (int i = 7; i >= 0; i--)
        {
            enemyDirection.Add(0);
            friendDirection.Add(0);
            deadDirection.Add(0);
            treeDirection.Add(0);
        }

        InvokeRepeating("CleanPheromone", 0.1f, pheromoneCleanRepeat);
        InvokeRepeating("SendPheromone", 0.1f, pheromoneCleanRepeat);

        pheromoneAngles.Add(0);
        pheromoneAngles.Add(45);
        pheromoneAngles.Add(90);
        pheromoneAngles.Add(135);
        pheromoneAngles.Add(180);
        pheromoneAngles.Add(225);
        pheromoneAngles.Add(270);
        pheromoneAngles.Add(315);
    }
Exemple #4
0
    void FindNodeUnderAnt()
    {
        List <PheromoneNode> pherSetting = PheromoneManager.GetAllNearbyByTag <PheromoneNode>("Node", 1, transform.position);

        if (pherSetting.Count >= 1)
        {
            ArriveAtNode(pherSetting[0]);
        }
        else
        {
            ScoutModeActivate();
        }
    }
Exemple #5
0
    PheromoneNode DropPheromoneOnExistingTrail(PheromoneTrail pt)
    {
        PheromoneNode pn = PheromoneManager.DropPheromone(lastVisitedNode, GetPherType(), transform.position);

        if (lastVisitedNode)
        {
            lastVisitedNode.initialRoot = false;
        }
        lastVisitedNode    = pn;
        timeSinceLastEvent = 0;
        //pt.SplitByNode(pn);
        return(pn);
    }
Exemple #6
0
    PheromoneNode DropPheromone(Transform foodLoc)
    {
        PheromoneNode pn = PheromoneManager.DropPheromone(lastVisitedNode, GetPherType(), foodLoc.position);

        if (lastVisitedNode)
        {
            lastVisitedNode.initialRoot = false;
        }
        lastVisitedNode    = pn;
        timeSinceLastEvent = 0;
        ArriveAtNode(pn);
        return(pn);
    }
Exemple #7
0
 void RightClick()
 {
     if (playerEnergy > GV.PLAYER_CLICK_E_COST)
     {
         bool bnsDmg = lastNode != null;
         onTheMove     = true;
         goalLocation  = GetMousePosition();
         playerEnergy -= GV.PLAYER_CLICK_E_COST;
         lastNode      = PheromoneManager.DropPheromone(lastNode, GV.PhermoneTypes.Friendly, transform.position);
         if (bnsDmg && lastNode.trails.Count > 0 && lastNode.trails[0] != null)
         {
             lastNode.trails[0].strength = (int)GV.PLAYER_PHER_START;
         }
     }
 }
Exemple #8
0
 // Use this for initialization
 void Start()
 {
     pheromoneManager = GetComponentInChildren <PheromoneManager> ();
     InvokeRepeating("SendDeathPheromone", 0.1f, deathPheromoneRate);
 }
Exemple #9
0
 // Use this for initialization
 void Start()
 {
     pheromoneManager = GetComponentInChildren<PheromoneManager> ();
     InvokeRepeating ("SendDeathPheromone", 0.1f, deathPheromoneRate);
 }
 void Awake()
 {
     _pheromoneManager  = (PheromoneManager)Object.FindObjectOfType(typeof(PheromoneManager));
     _statisticsManager = (StatisticsManager)Object.FindObjectOfType(typeof(StatisticsManager));
 }