Example #1
0
        //protected float DrawTowerVisualEffect(float startX, float startY, UnitTower tower){

        protected float DrawUnitAnimation(float startX, float startY, Unit item)
        {
            string textF = "Animation Setting ";          //+(!foldVisual ? "(show)" : "(hide)");

            foldAnimation = EditorGUI.Foldout(new Rect(startX, startY += spaceY, spaceX, height), foldAnimation, textF, TDE.foldoutS);
            if (!foldAnimation)
            {
                return(startY);
            }

            startX += 12;

            int objIdx = GetIndexFromHierarchy(item.animatorT, objHierarchyList);

            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), "Animator Object:", "The transform object which contain the Animator component");
            objIdx         = EditorGUI.Popup(new Rect(startX + spaceX, startY, width, height), objIdx, objHierarchylabel);
            item.animatorT = objHierarchyList[objIdx];

            startY += 10;

            TDE.Label(startX, startY += spaceY, width, height, "Clip Idle:", "The animation clip to play when the unit is idle");
            item.clipIdle             = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipIdle, typeof(AnimationClip), true);

            TDE.Label(startX, startY += spaceY, width, height, "Clip Hit:", "The animation clip to play when the unit is hit by an attack");
            item.clipHit              = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipHit, typeof(AnimationClip), true);

            TDE.Label(startX, startY += spaceY, width, height, "Clip Idle:", "The animation clip to play when the unit is destroyed");
            item.clipDestroyed        = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipDestroyed, typeof(AnimationClip), true);

            TDE.Label(startX, startY += spaceY, width, height, "Clip Attack:", "The animation clip to play when the unit attacks");
            item.clipAttack           = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipAttack, typeof(AnimationClip), true);

            TDE.Label(startX, startY += spaceY, width, height, " - delay:", "Unit's active target field-of-view in angle");
            item.animationAttackDelay = EditorGUI.FloatField(new Rect(startX + spaceX, startY, widthS, height), item.animationAttackDelay);

            startY += 10;

            if (item.IsCreep())
            {
                TDE.Label(startX, startY += spaceY, width, height, "Clip Move:", "The animation clip to play when the unit is moving");
                item.clipMove             = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipMove, typeof(AnimationClip), true);

                TDE.Label(startX, startY += spaceY, width, height, "Clip Spawn:", "The animation clip to play when the unit is spawned");
                item.clipSpawn            = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipSpawn, typeof(AnimationClip), true);

                TDE.Label(startX, startY += spaceY, width, height, "Clip Destination:", "The animation clip to play when the unit reaches destination");
                item.clipDestination      = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipDestination, typeof(AnimationClip), true);
            }
            if (item.IsTower())
            {
                TDE.Label(startX, startY += spaceY, width, height, "Clip Construct:", "The animation clip to play when the unit is constructing");
                item.clipConstruct        = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipConstruct, typeof(AnimationClip), true);

                TDE.Label(startX, startY += spaceY, width, height, "Clip Deconstruct:", "The animation clip to play when the unit is deconstructing");
                item.clipDeconstruct      = (AnimationClip)EditorGUI.ObjectField(new Rect(startX + spaceX, startY, width, height), item.clipDeconstruct, typeof(AnimationClip), true);
            }

            return(startY);
        }
Example #2
0
        void OnUnitDestroyed(Unit unit)
        {
            if (!unit.IsCreep())
            {
                return;
            }

            UnitCreep creep = unit.GetUnitCreep();

            OnUnitCleared(creep);
        }
Example #3
0
 public void SetType(int id, Unit unit)
 {
     ID = id;  srcPrefabID = unit.prefabID;
     if (unit.IsTower())
     {
         srcType = _SrcType.Tower;
     }
     if (unit.IsCreep())
     {
         srcType = _SrcType.Creep;
     }
 }
Example #4
0
 public static void OnUnitDestroyed(Unit unit)
 {
     if (unit.IsCreep())
     {
         if (onCreepDestroyedE != null)
         {
             onCreepDestroyedE(unit.unitC);
         }
     }
     else if (!unit.IsTower())
     {
         if (onTowerDestroyedE != null)
         {
             onTowerDestroyedE(unit.unitT);
         }
     }
 }
Example #5
0
 void OnUnitDestroyed(Unit unit)
 {
     if (unit.IsCreep())
     {
         if (unit.GetUnitCreep().lifeValue > 0)
         {
             GainLife(unit.GetUnitCreep().lifeValue);
         }
     }
     else if (unit.IsTower())
     {
         if (unit.GetUnitTower() == selectedTower)
         {
             _ClearSelectedTower();
         }
     }
 }
Example #6
0
        void FPSHit(Unit hitUnit, Vector3 hitPoint)
        {
            if (attInstance.srcWeapon.GetAOERange() > 0)
            {
                LayerMask mask1 = 1 << TDTK.GetLayerCreep();
                LayerMask mask2 = 1 << TDTK.GetLayerCreepF();
                LayerMask mask  = mask1 | mask2;

                Collider[] cols = Physics.OverlapSphere(hitPoint, attInstance.srcWeapon.GetAOERange(), mask);
                if (cols.Length > 0)
                {
                    List <Unit> tgtList = new List <Unit>();
                    for (int i = 0; i < cols.Length; i++)
                    {
                        Unit unit = cols[i].gameObject.GetComponent <Unit>();
                        if (!unit.IsDestroyed())
                        {
                            tgtList.Add(unit);
                        }
                    }
                    if (tgtList.Count > 0)
                    {
                        for (int i = 0; i < tgtList.Count; i++)
                        {
                            AttackInstance attInst = new AttackInstance();
                            attInst.srcWeapon = attInstance.srcWeapon;
                            attInst.tgtUnit   = tgtList[i];
                            attInst.Process();
                            tgtList[i].ApplyEffect(attInst);
                        }
                    }
                }
            }
            else
            {
                if (hitUnit != null && hitUnit.IsCreep())
                {
                    attInstance.tgtUnit = hitUnit;
                    attInstance.Process();
                    hitUnit.ApplyEffect(attInstance);
                }
            }
        }
Example #7
0
        void OnUnitDestroyed(Unit unit)
        {
            if(!unit.IsCreep()) return;

            UnitCreep creep=unit.GetUnitCreep();
            OnUnitCleared(creep);
        }
Example #8
0
 void OnUnitDestroyed(Unit unit)
 {
     if(unit.IsCreep()){
         if(unit.GetUnitCreep().lifeValue>0) GainLife(unit.GetUnitCreep().lifeValue);
     }
     else if(unit.IsTower()){
         if(unit.GetUnitTower()==selectedTower) _ClearSelectedTower();
     }
 }
Example #9
0
 public static void OnUnitDestroyed(Unit unit)
 {
     if (unit.IsCreep())
     {
         if (onCreepDestroyedE != null) onCreepDestroyedE(unit.GetUnitCreep());
     }
     else if (!unit.IsTower())
     {
         if (onTowerDestroyedE != null) onTowerDestroyedE(unit.GetUnitTower());
     }
 }
Example #10
0
        void FPSHit(Unit hitUnit, Vector3 hitPoint)
        {
            if(attInstance.srcWeapon.GetAOERange()>0){
                LayerMask mask1=1<<LayerManager.LayerCreep();
                LayerMask mask2=1<<LayerManager.LayerCreepF();
                LayerMask mask = mask1 | mask2;

                Collider[] cols=Physics.OverlapSphere(hitPoint, attInstance.srcWeapon.GetAOERange(), mask);
                if(cols.Length>0){
                    List<Unit> tgtList=new List<Unit>();
                    for(int i=0; i<cols.Length; i++){
                        Unit unit=cols[i].gameObject.GetComponent<Unit>();
                        if(!unit.dead) tgtList.Add(unit);
                    }
                    if(tgtList.Count>0){
                        for(int i=0; i<tgtList.Count; i++){
                            AttackInstance attInst=new AttackInstance();
                            attInst.srcWeapon=attInstance.srcWeapon;
                            attInst.tgtUnit=tgtList[i];
                            attInst.Process();
                            tgtList[i].ApplyEffect(attInst);
                        }
                    }
                }
            }
            else{
                if(hitUnit!=null && hitUnit.IsCreep()){
                    attInstance.tgtUnit=hitUnit;
                    attInstance.Process();
                    hitUnit.ApplyEffect(attInstance);
                }
            }
        }
Example #11
0
 void OnUnitDestroyed(Unit unit)
 {
     if(unit.IsCreep()){
         GainScore(unit.GetUnitCreep().scoreValue);
     }
     else if(unit.IsTower()){
         if(unit.GetUnitTower()==selectedTower) _ClearSelectedTower();
     }
 }