Exemple #1
0
        public virtual void StartSkillCasting()
        {
            startAiming = false;
            if (targetPosition == null)
            {
                targetPosition = transform.position;
            }
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                targetPosition = hit.point;
                targetPosition = new Vector3(targetPosition.x, owner.transform.position.y, targetPosition.z);
            }
            transform.position = targetPosition;

            if (spawnType == SpawnSkillType.FromCaster)
            {
                Debug.Log("FROM CASTER!");
                transform.position = new Vector3(owner.transform.position.x, owner.transform.position.y, owner.transform.position.z);
                activate           = true;
            }
            else
            {
                activate = true;
            }
            owner.ReceiveOrder(UnitOrder.GenerateIdleOrder(), true);
            owner.MakeUnitLookAt(targetPosition);
            transform.rotation = owner.transform.rotation;
        }
Exemple #2
0
 public void ActivateSkill(UnitBaseBehaviourComponent skillOwner)
 {
     if (skillType == SkillType.Buff)
     {
         Vector3            postAdjustment = positionAdjustment + skillOwner.transform.position;
         GameObject         tmp            = GameObject.Instantiate(prefab, postAdjustment, Quaternion.Euler(rotationAdjustment.x, rotationAdjustment.y, rotationAdjustment.z), skillOwner.transform);
         BaseSkillBehaviour skillTmp       = tmp.GetComponent <BaseSkillBehaviour>();
         skillTmp.InitializeSkill(skillOwner, SkillType.Buff, targetType, spawnType, behaviourType);
     }
     else if (skillType == SkillType.Projectile)
     {
         Vector3 postAdjustment = positionAdjustment + skillOwner.transform.position;
         if (StartAtFront)
         {
             postAdjustment     = skillOwner.transform.forward + skillOwner.transform.position;
             rotationAdjustment = new Vector3(skillOwner.transform.rotation.x, skillOwner.transform.rotation.y, skillOwner.transform.rotation.z);
         }
         if (skillOwner.targetUnit != null)
         {
             skillOwner.MakeUnitLookAt(skillOwner.targetUnit.transform.position);
         }
         GameObject         tmp      = GameObject.Instantiate(prefab, postAdjustment, Quaternion.Euler(rotationAdjustment.x, rotationAdjustment.y, rotationAdjustment.z), null);
         BaseSkillBehaviour skillTmp = tmp.GetComponent <BaseSkillBehaviour>();
         skillTmp.InitializeSkill(skillOwner, SkillType.Projectile, targetType, spawnType, behaviourType);
     }
     else if (skillType == SkillType.TargetProjectile)
     {
         GameObject         tmp      = GameObject.Instantiate(prefab, skillOwner.transform.position, Quaternion.Euler(rotationAdjustment.x, rotationAdjustment.y, rotationAdjustment.z), null);
         BaseSkillBehaviour skillTmp = tmp.GetComponent <BaseSkillBehaviour>();
         skillTmp.InitializeSkill(skillOwner, SkillType.TargetProjectile, targetType, spawnType, behaviourType);
         skillTmp.startAiming = true;
         // Targetable Projectile should not be here, place it to your unit
         //PlayerUnitController.GetInstance.targetableProjectile = skillTmp;
         if (PlayerUnitController.GetInstance.manualControlledUnit != null)
         {
             PlayerUnitController.GetInstance.manualControlledUnit.mySkills.SetSkillsToHand(skillTmp);
         }
         CursorManager.GetInstance.CursorChangeTemporary(CursorType.CLICKABLE_SKILLHOLD);
     }
 }