コード例 #1
0
 private void FindANode()
 {
     for (int m = 0; m < enemyBattleManagerScript.myEnemyMiners.Count; m++)
     {
         minerMoveToNode = enemyBattleManagerScript.myEnemyMiners[m].GetComponent <MoveToNode>();
         // this will be a new miner
         if (minerMoveToNode.isMovingToNode == false && minerMoveToNode.isAtNode == false)
         {
             for (int i = 0; i < enemyBattleManagerScript.myEnemyResources.Count; i++)
             {
                 Resource resource = enemyBattleManagerScript.myEnemyResources[i].GetComponent <Resource>();
                 if (!resource.position1Taken || !resource.position2Taken)
                 {
                     // Arius only have units that use gold so he will prefer to find a gold node
                     if (enemyBattleManagerScript.myEnemyResources[i].myResourceType == "Gold")
                     {
                         minerMoveToNode                = enemyBattleManagerScript.myEnemyMiners[m].GetComponent <MoveToNode>();
                         minerMoveToNode.myResource     = enemyBattleManagerScript.myEnemyResources[i].transform.gameObject;
                         minerMoveToNode.isMovingToNode = true;
                         break;
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
    // Use this for initialization
    void Start()
    {
        myStats = GetComponent <UnitStats>();

        animator                  = GetComponent <Animator>();
        minerAtNode               = GetComponent <MoveToNode>();
        playerBattleManager       = GameObject.Find("PlayerBattleManager");
        enemyBattleManager        = GameObject.Find("EnemyBattleManager");
        playerBattleManagerScript = playerBattleManager.GetComponent <PlayerBattleManager>();
        enemyBattleManagerScript  = enemyBattleManager.GetComponent <EnemyBattleManager>();
        // check if I am an enemy or player miner and add me to their list
        if (gameObject.tag == "PlayerMiner")
        {
            playerBattleManagerScript.myPlayerMiners.Add(gameObject);
            playerBattleManagerScript.mySpawnedUnits.Add(gameObject);

            // Add player upgrades here
            playerMiningGain             = (20 + MinersStatsUpgradesStatic.pokoMinerResourceMiningGainUpgrade);
            myStats.unitCurrentMoveSpeed = (myStats.unitMoveSpeed + MinersStatsUpgradesStatic.pokoMinerMoveSpeedUpgrade);
            myStats.health += MinersStatsUpgradesStatic.pokoMinerHealthUpgrade;
            miningGain      = playerMiningGain + 200;
        }
        else
        {
            enemyBattleManagerScript.myEnemyMiners.Add(gameObject);
            enemyBattleManagerScript.mySpawnedUnits.Add(gameObject);
            // need to add enemy miner adjustments here based on the AIs personal upgrades
        }
    }
コード例 #3
0
ファイル: ProjectileNode.cs プロジェクト: t5w0rd/uHeroes
    public virtual void DoMoveToUnit(UnitNode pToUnit, bool bFixRotation, float fMaxHeightDelta, float duration, Function onFinished)
    {
        ActionInterval act = new MoveToNode(duration, pToUnit, true, fMaxHeightDelta);

        act     = new Sequence(act, new CallFunc(onFinished));
        act.tag = kActionMoveTo;
        runAction(act);
    }
コード例 #4
0
 public override void Go()
 {
     scripts = new List <MoveToNode>();
     foreach (KeyValuePair <Actor, HexTile> pair in actorsToMove)
     {
         MoveToNode moveScript = MoveToNode.Create(pair.Key, pair.Value);
         scripts.Add(moveScript);
         pair.Key.actionQueue.AddToFront(moveScript);
     }
 }
コード例 #5
0
    private void SelectAndMoveMiner()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Physics2D.queriesHitTriggers = false;
            RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            Physics2D.queriesHitTriggers = true;

            if (hit.collider != null)
            {
                if (hit.collider.transform.gameObject.tag == "PlayerMiner")
                {
                    // if I selected a new miner then remove the icon from old miner
                    if (selectedMiner != null && selectedMiner != hit.collider.transform.gameObject)
                    {
                        GameObject     newChildSprite  = selectedMiner.transform.GetChild(0).gameObject;
                        SpriteRenderer newChangeSprite = newChildSprite.GetComponent <SpriteRenderer>();
                        Color          newAlpha        = newChangeSprite.color;
                        newAlpha.a            = 0;
                        newChangeSprite.color = newAlpha;
                    }

                    // then apply icon to the new miner
                    selectedMiner = hit.collider.transform.gameObject;
                    GameObject     childSprite  = selectedMiner.transform.GetChild(0).gameObject;
                    SpriteRenderer changeSprite = childSprite.GetComponent <SpriteRenderer>();
                    Color          alpha        = changeSprite.color;
                    alpha.a            = 255;
                    changeSprite.color = alpha;
                }
                else if (hit.collider.transform.gameObject.tag == "PlayerResource" && selectedMiner != null)
                {
                    MoveToNode moveMiner = selectedMiner.GetComponent <MoveToNode>();
                    moveMiner.myResource     = hit.collider.transform.gameObject;
                    moveMiner.isMovingToNode = true;
                }
            }
            else
            {
                if (selectedMiner != null)
                {
                    GameObject     childSprite  = selectedMiner.transform.GetChild(0).gameObject;
                    SpriteRenderer changeSprite = childSprite.GetComponent <SpriteRenderer>();
                    Color          alpha        = changeSprite.color;
                    alpha.a            = 0;
                    changeSprite.color = alpha;
                    selectedMiner      = null;
                }
            }
        }
    }
コード例 #6
0
ファイル: VanScript.cs プロジェクト: Renahzor/Giant-Rom-4
    IEnumerator MoveTo(GameObject target)
    {
        previousNode = currentNode;

        MoveToNode move = GetComponent <MoveToNode>();

        moving = true;

        Vector3 targetPosition = target.transform.position;

        targetPosition.z = 0;

        int happinessChange = (int)Vector3.Distance(transform.position, targetPosition);

        while (Vector3.Distance(transform.position, targetPosition) >= 0.05f)
        {
            if (moving)
            {
                move.MoveToGameObject(targetPosition);
                GameMaster.Instance.travelTime += Time.deltaTime;
            }
            yield return(null);
        }
        moving = false;

        GameMaster.Instance.foodStored -= (happinessChange * GameMaster.Instance.activeDuders.Count);

        if (GameMaster.Instance.foodStored < 0)
        {
            happinessChange = -(GameMaster.Instance.foodStored / 3);
            GameMaster.Instance.foodStored = 0;
        }

        else
        {
            happinessChange = 0;
        }

        foreach (GameObject duder in GameMaster.Instance.activeDuders)
        {
            duder.GetComponent <DuderScript>().ChangeHappiness(-happinessChange);
        }

        currentNode = target;
        ClearLines();
        UpdateNode();
        GameMaster.Instance.locationText.text = currentNode.GetComponent <MapNode>().nodeName;
        GameMaster.Instance.UpdateDudertext();
        GameMaster.Instance.StartCityEvent(currentNode.GetComponent <MapNode>());
    }
コード例 #7
0
 private void StartMining()
 {
     startMining = true;
     // send the miners to mine the gold nodes right away. Arius will only ever start with 2 miners.
     for (int i = 0; i < enemyBattleManagerScript.myEnemyMiners.Count; i++)
     {
         for (int j = 0; j < enemyBattleManagerScript.myEnemyResources.Count; j++)
         {
             if (enemyBattleManagerScript.myEnemyResources[j].myResourceType == "Gold")
             {
                 minerMoveToNode                = enemyBattleManagerScript.myEnemyMiners[i].GetComponent <MoveToNode>();
                 minerMoveToNode.myResource     = enemyBattleManagerScript.myEnemyResources[j].transform.gameObject;
                 minerMoveToNode.isMovingToNode = true;
                 break;
             }
         }
     }
 }
コード例 #8
0
 private void Start()
 {
     this.hexGrid.Centre.Inhabit(this.playerPartyActor);
     //this.playerPartyActor.InhabitedNode = this.hexGrid.Centre;
     this.hexGrid.Centre.inhabitingActor      = playerPartyActor;
     this.playerPartyActor.transform.position = hexGrid.Centre.gameObject.transform.position;
     this.playerPartyActor.GetComponent <Engine.Actions.ActionQueue>().AddToFront(MoveToNode.CreateComponent(this.playerPartyActor.gameObject, this.hexGrid.Centre, this.hexGrid.Centre));
 }
コード例 #9
0
        public void MoveToTile(HexTile tile)
        {
            if (tile == null)
            {
                Debug.Log("A collider was detected that wasn't a tile! Is there a configuration issue?");
                return;
            }

            Debug.DrawLine(actor.transform.position, tile.transform.position);
            actor.InhabitedNode.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
            var hit = Physics2D.Linecast(actor.transform.position, tile.transform.position, 1 << LayerMask.NameToLayer("Traversable"));

            actor.InhabitedNode.gameObject.layer = LayerMask.NameToLayer("Traversable");

            if (hit.collider != null)
            {
                HexTile nearestTile = hit.collider.gameObject.GetComponent <HexTile>();

                if (tile != null)
                {
                    this.actor.GetComponent <Engine.Actions.ActionQueue>().AddToFront(MoveToNode.CreateComponent(this.actor.gameObject, this.actor.InhabitedNode, nearestTile));
                }
            }
        }