Example #1
0
 // Use this for initialization
 public void Init(Vector3 start, Vector3 end, UnitAttack attack, float altitude = 0.0f)
 {
     transform.position = start;
     this.attack        = attack;
     move = GetComponent <UnitMove> ();
     move.Init(end, altitude);
 }
Example #2
0
 void Awake()
 {
     audioSource = GetComponent<AudioSource>();
     animator = GetComponent<Animator>();
     _unitMoveScript = GetComponent<UnitMove>();
     self = GetComponent<AttackingUnit>();
 }
Example #3
0
 // Use this for initialization
 void Awake()
 {
     _unitCtrl = GetComponent <UnitController>();
     _unitMove = GetComponent<UnitMove>();
     _unitAttack = GetComponent<UnitAttack>();
     _unitSpine = GetComponentInChildren<UnitSpine>() ? GetComponentInChildren<UnitSpine>() : null;
 }
Example #4
0
    // ===========================================

    protected void Init()
    {
        unitCharacter = gameObject.GetComponent <UnitCharacter>();
        unitMove      = gameObject.GetComponent <UnitMove>();
        _AllTiles     = GameObject.FindGameObjectsWithTag("Terrain Tile");
        turnManager   = FindObjectOfType <TurnManager>();
    }
Example #5
0
        private List <MapNode> GetPath(Board board, MapNode source, BoardMove boardMove, List <KeyValuePair <MapNode, double> > orderedDistances, Func <MapNode, bool> predicate)
        {
            var allMoves = board.GetUnitMoves();

            foreach (MapNode currentTarget in orderedDistances.Select(kvp => kvp.Key)
                     .Where(predicate))
            {
                IEnumerable <UndirectedEdge <MapNode> > rawPath;
                if (!_predecessorObserver.TryGetPath(currentTarget, out rawPath))
                {
                    continue;
                }

                List <MapNode> path           = MakePathList(source, currentTarget, rawPath);
                MapNode        adjacentTarget = path[1];

                UnitMove unitMove = allMoves.FirstOrDefault(um => um.Edge.Target == adjacentTarget && um.Edge.Source == source);
                if (boardMove == null || boardMove.CurrentlyAllowsFallSpring(unitMove))
                {
                    return(path);
                }
            }

            // couldn't find anything
            return(null);
        }
 private void GetComponent()
 {
     gameManager      = FindObjectOfType <GameManager>();
     unitAnimator     = GetComponent <UnitAnimator>();
     unitMove         = GetComponent <UnitMove>();
     statusController = GetComponent <StatusController>();
 }
 void Start()
 {
     unitController   = GetComponent <UnitController>();
     unitAnimator     = GetComponent <UnitAnimator>();
     unitMove         = GetComponent <UnitMove>();
     statusController = GetComponent <StatusController>();
 }
Example #8
0
 // Start is called before the first frame update
 void Start()
 {
     count    = 0;
     time     = 0;
     hitfrag  = false;
     enemys   = new Dictionary <int, GameObject>();
     unitMove = gameObject.transform.parent.GetComponent <UnitMove>();
 }
Example #9
0
 public override void GetReachableTiles(UnitMove move, HashSet <Tile> reachTiles, Unit team)
 {
     if (move.moveType != MoveType.flying)
     {
         return;
     }
     base.GetReachableTiles(move, reachTiles, team);
 }
Example #10
0
 public override void GetReachableTiles(UnitMove move, HashSet <Tile> reachTiles, Unit team)
 {
     if (_open)
     {
         base.GetReachableTiles(move, reachTiles, team);
     }
     return;
 }
Example #11
0
 public void Init()
 {
     unitMove    = gameObject.GetComponent <UnitMove>();
     unitAttack  = gameObject.GetComponent <UnitAttack>();
     turnManager = FindObjectOfType <TurnManager>();
     _Ui         = FindObjectOfType <CurrentCharacterInformation>();
     TurnManager.AddUnitToGame(gameObject.tag, this);
 }
 // Update is called once per frame
 void Update()
 {
     coolNow -= Time.deltaTime;
     if (stat.GetAlive() && autoATKEnabled)
     {
         if (target != null)
         {
             Vector3    unitPos   = new Vector3(transform.position.x, 0, transform.position.z);
             Vector3    targetPos = new Vector3(target.transform.position.x, 0, target.transform.position.z);
             RaycastHit hit;
             bool       isCol = false;
             if (Physics.Raycast(transform.position + transform.up, transform.TransformDirection(Vector3.forward), out hit, atkRange))
             {
                 GameObject hitObject = hit.transform.gameObject;
                 if (hitObject == target.gameObject)
                 {
                     isCol = true;
                 }
             }
             if (Vector3.Distance(unitPos, targetPos) <= atkRange || isCol)
             {
                 UnitMove uni = GetComponent <UnitMove>();
                 uni.OrderMove(Vector3.one);
                 this.transform.LookAt(target.transform);
                 this.transform.rotation = Quaternion.Euler(0, this.transform.eulerAngles.y, 0);
                 CommandATK();
             }
             else
             {
                 UnitMove mover = GetComponent <UnitMove>();
                 mover.OrderMove(target.transform.position);
             }
             if (target == null || !target.GetAlive())
             {
                 target = null;
             }
         }
         else
         {
             Collider[] hitColliders = Physics.OverlapSphere(transform.position, atkNotice);
             int        i            = 0;
             while (i < hitColliders.Length)
             {
                 UnitStatSystem enemyStat = hitColliders[i].GetComponent <UnitStatSystem>();
                 if (enemyStat != null && stat.GetOwner() != enemyStat.GetOwner() && !AllianceSystem.CheckAlly(stat.GetOwner(), enemyStat.GetOwner()) && enemyStat.GetAlive())
                 {
                     target = enemyStat;
                     Debug.Log("Found Enemy");
                 }
                 i++;
             }
         }
     }
     else
     {
         target = null;
     }
 }
 void ClearSelectedUnits()
 {
     foreach (GameObject g in selectedUnits)
     {
         UnitMove u = g.GetComponent <UnitMove>();
         u.DeSelectUnit();
     }
     selectedUnits.Clear();
 }
Example #14
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.CompareTag("Monster"))
     {
         UnitMove attackedTarget = other.GetComponent <UnitMove>();
         attackedTarget.HP -= Constants.GetNumber.baseATK;
         Destroy(gameObject);
     }
 }
Example #15
0
        public Unit()
        {
            mUp = MoveUp;
            mDown = MoveDown;
            mLeft = MoveLeft;
            mRight = MoveRight;

            ascii = 'U';
        }
Example #16
0
    private void OnDrawGizmos()
    {
        Transform tr       = transform;
        UnitMove  unitMove = GetComponent <UnitMove>();


        Handles.color = col;
        Handles.DrawSolidArc(tr.position + Vector3.up * 1.5f, Vector3.up, -transform.right + transform.forward, 90, unitMove.rayDistance);
    }
    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        UnitMove unitMove = new UnitMove()
        {
            moveSpeed = m_MoveSpeed
        };

        dstManager.AddComponentData(entity, unitMove);
    }
 void MoveUnits(Vector3 pos)
 {
     moveToPos = pos;
     foreach (GameObject g in selectedUnits)
     {
         g.GetComponent <Unit>().state = Unit.State.moving;
         UnitMove u = g.GetComponent <UnitMove>();
         u.MoveToSpot(pos);
     }
 }
Example #19
0
        public void UnitBuildConstruction()
        {
            MapNode munich     = MapNodes.Get("mun");
            Unit    germanUnit = Army.Get(Powers.Germany);
            var     edge       = Maps.BuildMap.AdjacentOutEdges(MapNodes.Get("build")).First(e => e.Target == munich);

            UnitMove uBuild = new UnitMove(germanUnit, edge);

            Assert.IsTrue(uBuild.IsBuild);
        }
Example #20
0
    public override void OnIndexTriggered()
    {
        base.OnIndexTriggered();
        if (!startSelected)
        {
            startSelected = true;
            Debug.Log("Raycast Initated");

            RaycastHit hit;
            GameObject hitObject = null;
            if (Physics.Raycast(pointer.transform.position, pointer.transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity))
            {
                hitObject = InitRayCast(hit);
            }

            if (selectedConstruct != null)
            {
                if (selectedConstruct.IsBuildable())
                {
                    selectedConstruct.ConfirmBuild();
                    selectedConstruct = null;
                }
            }
            else
            {
                CheckUnitOBJ(hitObject);
                CheckUIOBJ(hitObject);
            }

            EtherDeposit eth = hitObject.GetComponent <EtherDeposit>();
            if (selectedWorker != null && eth != null)
            {
                selectedWorker.GoHarvest(eth);
            }

            if (hitObject.tag == "Terrain" && (selectedUnit != null || selectedWorker != null))
            {
                UnitMove mover = null;
                if (selectedUnit != null)
                {
                    mover = selectedUnit.GetComponent <UnitMove>();
                    selectedUnit.SetAutoAttaack(false);
                    selectedUnit.SetTarget(null);
                }
                else if (selectedWorker != null)
                {
                    mover = selectedWorker.GetComponent <UnitMove>();
                    selectedWorker.GoHarvest(null);
                }

                mover.OrderMove(hit.point);
                StartCoroutine(MovePointIndicator(hit.point));
            }
        }
    }
Example #21
0
    IEnumerator recover(UnitMonoBehaciour unit)
    {
        float    Value_2 = Attribute.GetFloat(CannonBuffAttrType.Value_2);
        UnitMove move    = unit.gameObject.GetComponent <UnitMove>();
        float    speed   = move.MoveSpeed;

        move.MoveSpeed = 0;
        yield return(new WaitForSeconds(Value_2));

        move.MoveSpeed = speed;
    }
Example #22
0
        public void NoTerritorySwappingAllowed()
        {
            Board     board = Board.GetInitialBoard();
            BoardMove moves = new BoardMove();
            UnitMove  move1 = board.GetMove("tri", "ven");
            UnitMove  move2 = board.GetMove("ven", "tri");

            Assert.IsTrue(moves.CurrentlyAllowsFallSpring(move1));
            moves.Add(move1);
            Assert.IsFalse(moves.CurrentlyAllowsFallSpring(move2));
        }
Example #23
0
 void Update()
 {
     if (Input.GetKeyDown("5"))
     {
         if (SelectedUnits[0] != null)
         {
             unitMove          = SelectedUnits[0].GetComponent <UnitMove>();
             unitMove.Selected = !unitMove.Selected;
             Debug.Log("Unit Move = " + unitMove.Selected);
         }
     }
 }
Example #24
0
    private void EvoToBossMonster()
    {//필드의 몬스터 중 한마리를 보스 몬스터로 만든다.
        GameObject EvoMonster = monsters[Random.Range(0, monsters.Length)];

        if (EvoMonster.activeSelf)
        {
            EvoMonster.transform.localScale *= 3;
            UnitMove statusOfBossMonster = EvoMonster.GetComponent <UnitMove>();
            statusOfBossMonster.HP = 100000;
            bossMonsterCreated     = true;
        }
    }
Example #25
0
    public void Update(Unit unit)
    {
        unit.Animator.SetInteger("AnimationState", (int)Unit.ANIMATION_STATE.IDLE);
        unit.WeaponAnimator.SetBool("IsAttack", false);

        GameObject target = FindShortDistanceBuilding(unit);

        if (target)
        {
            UnitMove unitMove = new UnitMove(target.transform.position, unit);
            unit.ChangeStateMachine(unitMove);
        }
    }
Example #26
0
        public void UnitMoveConstruction()
        {
            MapNode munich     = MapNodes.Get("mun");
            Unit    germanUnit = initialBoard.OccupiedMapNodes[munich];
            var     edge       = Maps.Army.AdjacentOutEdges(munich).First();

            UnitMove uMove = new UnitMove(germanUnit, edge);

            Assert.IsFalse(uMove.IsHold);

            UnitMove uMove2 = new UnitMove(germanUnit, munich);

            Assert.IsTrue(uMove2.IsHold);
        }
    private IEnumerator aquireATK()
    {
        isATKing = true;
        Animator ani = GetComponent <Animator>();

        ani.SetBool("Attack", true);

        yield return(new WaitForSeconds(atkStartSwing));

        if (soundEffect)
        {
            Instantiate(soundEffect, transform.position, transform.localRotation);
        }

        if (!rangedATK)
        {
            if (target != null)
            {
                target.GetDamage(damage);
                Instantiate(meleeEffect, target.transform.position + (transform.up * 2), transform.localRotation);
            }
            else
            {
            }
        }
        else
        {
            ProjectieDummy proj = Instantiate(missile, projPoint.transform.position, transform.localRotation) as ProjectieDummy;
            if (target != null)
            {
                //proj.transform.LookAt(target.transform.position);
                Debug.Log("Throw to Target");
                proj.StartProj(target.transform.position, stat.GetOwner(), damage);
            }
            else
            {
                //proj.transform.LookAt(transform.position + (transform.forward * atkRange));
                Debug.Log("Throw to Point");
                proj.StartProj(transform.position + (transform.forward * atkRange), stat.GetOwner(), damage);
            }
        }
        ani.SetBool("Attack", false);
        yield return(new WaitForSeconds(atkStopSwing));

        UnitMove uni = GetComponent <UnitMove>();

        uni.OrderMove(Vector3.one);
        isATKing = false;
        yield return(null);
    }
Example #28
0
    public virtual void GetReachableTiles(UnitMove move, HashSet <Tile> reachTiles, Unit team)
    {
        if (!isOccuppied)
        {
            this.moveLeft = move.moveSpeed;
            reachTiles.Add(this);
        }
        else if (this.Unit.isHostile(team))
        {
            return;
        }

        if (move.moveType == MoveType.flying)
        {
            move.moveSpeed--;
        }
        else
        {
            move.moveSpeed -= Movecost;
        }

        if (move.moveSpeed >= 0)
        {
            if (Slow)
            {
                move.moveSpeed = 0;
            }
            if (north != null)
            {
                north.GetReachableTiles((north.Slow) ? new UnitMove(0) : move, reachTiles, team);
            }
            if (south != null)
            {
                south.GetReachableTiles((south.Slow) ? new UnitMove(0) : move, reachTiles, team);
            }
            if (west != null)
            {
                west.GetReachableTiles((west.Slow) ? new UnitMove(0) : move, reachTiles, team);
            }
            if (east != null)
            {
                east.GetReachableTiles((east.Slow) ? new UnitMove(0) : move, reachTiles, team);
            }
        }
        else
        {
            return;
        }
    }
Example #29
0
    public override void DoBUFF(UnitMonoBehaciour unit, UnitMonoBehaciour target)
    {
        Color color = new Color(0, 192f / 255f, 1f);

        foreach (var targetCol in BuffTools.GetOverlapSphereUnit(target.transform.position, Value_0))
        {
            UnitMove move = targetCol.gameObject.GetComponent <UnitMove>();
            if (!list.Contains(move))
            {
                move.MoveSpeed   *= (1f - Value_1);
                targetCol._DefCol = color;
                targetCol._Renderer.material.color = color;
                list.Add(move);
            }
        }
    }
    void SelectUnits()
    {
        ClearSelectedUnits();

        RaycastHit[] hit = Physics.BoxCastAll(rectCenter, halfExtents, Vector3.up);

        for (int i = 0; i < hit.Length; i++)
        {
            if (hit[i].collider.CompareTag("PlayerUnit"))
            {
                UnitMove u = hit[i].collider.GetComponent <UnitMove>();
                u.SelectUnit();
                u.CalculateOffSet(rectCenter);
                selectedUnits.Add(u.gameObject);
            }
        }
    }
Example #31
0
    static int get_speed(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnitMove obj = (UnitMove)o;
            float    ret = obj.speed;
            LuaDLL.lua_pushnumber(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index speed on a nil value" : e.Message));
        }
    }
Example #32
0
    static int set_stat(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnitMove obj  = (UnitMove)o;
            int      arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
            obj.stat = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index stat on a nil value" : e.Message));
        }
    }
Example #33
0
 protected virtual void Init()
 {
     unitMove = GetComponent<UnitMove>();
     meshRenderer = gameObject.GetComponentInChildren<MeshRenderer>();
     mat_ended = Resources.Load<Material>("Materials/Unit_Turn_Over");
     stats = gameObject.GetComponent<UnitStats>();
     m_statusEffects = gameObject.GetComponent<SEManager>();
     LoadResources();
     SetStats();
     SetPowers();
 }
Example #34
0
 public OnEventStartMovingCharacter(UnitMove unit, int x, int z)
 {
     _unit = unit;
     _x = x;
     _z = z;
 }