Ejemplo n.º 1
0
 void TransferOwnership(Unit babushka, RTSController first, RTSController second)
 {
     if (babushka.owner == first)
     {
         if (first.enabled)
         {
             //Debug.Log("FIRST SERVER TO CLIENT");
             ServerToClient(babushka, first, second);
         }
         else
         {
             //Debug.Log("FIRST CLIENT TO SERVER");
             ClientToServer(babushka, second, first);
         }
     }
     else
     {
         if (second.enabled)
         {
             //Debug.Log("SECOND SERVER TO CLIENT");
             ServerToClient(babushka, second, first);
         }
         else
         {
             //Debug.Log("SECOND CLIENT TO SERVER");
             ClientToServer(babushka, first, second);
         }
     }
 }
Ejemplo n.º 2
0
 void TransferOwnership(Unit babushka, RTSController first, RTSController second)
 {
     if (babushka.owner == first)
     {
         if (first.enabled)
         {
             //Debug.Log("FIRST SERVER TO CLIENT");
             ServerToClient(babushka, first, second);
         }
         else
         {
             //Debug.Log("FIRST CLIENT TO SERVER");
             ClientToServer(babushka, second, first);
         }
     }
     else
     {
         if (second.enabled)
         {
             //Debug.Log("SECOND SERVER TO CLIENT");
             ServerToClient(babushka, second, first);
         }
         else
         {
             //Debug.Log("SECOND CLIENT TO SERVER");
             ClientToServer(babushka, first, second);
         }
     }
 }
Ejemplo n.º 3
0
        public void ApplyDamage(Player targetPlayer, RTSController from)
        {
            targetPlayer.Hp -= this.damage;
            targetPlayer.DamageCount += this.damage;

            if(from != null)
                this.ApplyKnockBack(targetPlayer, from);

            this.ApplyCooldown();
        }
Ejemplo n.º 4
0
    void ClientToServer(Unit babushka, RTSController serverRts, RTSController clientRts)
    {
        // Take it from the client
        clientRts.ownedUnits.Remove(babushka);
        clientRts.RpcTakeUnit(babushka.name);

        // Give it to the server
        serverRts.ownedUnits.Add(babushka);
        babushka.owner = serverRts;
    }
Ejemplo n.º 5
0
    void ClientToServer(Unit babushka, RTSController serverRts, RTSController clientRts)
    {
        // Take it from the client
        clientRts.ownedUnits.Remove(babushka);
        clientRts.RpcTakeUnit(babushka.name);

        // Give it to the server
        serverRts.ownedUnits.Add(babushka);
        babushka.owner = serverRts;
    }
Ejemplo n.º 6
0
    // Use this for initialization
    void Start()
    {
        var rtsController = GetComponent <RTSController>();

        if (isLocalPlayer)
        {
            // Setting up my own rts controller as a both server and a client
            rtsController.enabled      = true;
            rtsController.selectionBox = GameObject.Find("SelectionBox").GetComponent <RectTransform>();
            rtsController.team1Score   = GameObject.Find("Team1 Score").GetComponent <Text>();
            rtsController.team2Score   = GameObject.Find("Team2 Score").GetComponent <Text>();

            var team = GameObject.FindGameObjectsWithTag(isServer ? "Team1" : "Team2");
            foreach (var unitGo in team)
            {
                var unit = unitGo.GetComponent <Unit>();
                rtsController.ownedUnits.Add(unit);
                unit.owner = rtsController;
            }

            if (isServer)
            {
                player1 = rtsController;
            }
        }
        else
        {
            if (isServer)
            {
                player2 = rtsController;
                //Setting up other rts controller as a server
                var team2 = GameObject.FindGameObjectsWithTag("Team2");
                foreach (var unitGo in team2)
                {
                    var unit = unitGo.GetComponent <Unit>();
                    rtsController.ownedUnits.Add(unit);
                    unit.owner = rtsController;
                }
            }
            else
            {
                // Setting up other rts controller as a client
                player1 = rtsController;
                var team1 = GameObject.FindGameObjectsWithTag("Team1");
                foreach (var unitGo in team1)
                {
                    var unit = unitGo.GetComponent <Unit>();
                    player1.ownedUnits.Add(unit);
                    unit.owner = rtsController;
                }
            }
        }
    }
Ejemplo n.º 7
0
    void ServerToClient(Unit babushka, RTSController serverRts, RTSController clientRts)
    {
        // Take it from teh server
        serverRts.ownedUnits.Remove(babushka);
        serverRts.selectedUnits.Remove(babushka);
        babushka.Deselect();

        // Give it to the client
        clientRts.ownedUnits.Add(babushka);
        clientRts.RpcGrantUnit(babushka.name);
        babushka.owner = clientRts;
    }
Ejemplo n.º 8
0
    void ServerToClient(Unit babushka, RTSController serverRts, RTSController clientRts)
    {
        // Take it from teh server
        serverRts.ownedUnits.Remove(babushka);
        serverRts.selectedUnits.Remove(babushka);
        babushka.Deselect();

        // Give it to the client
        clientRts.ownedUnits.Add(babushka);
        clientRts.RpcGrantUnit(babushka.name);
        babushka.owner = clientRts;
    }
Ejemplo n.º 9
0
    // Use this for initialization
    void Start()
    {
        var rtsController = GetComponent<RTSController>();

        if (isLocalPlayer)
        {
            // Setting up my own rts controller as a both server and a client
            rtsController.enabled = true;
            rtsController.selectionBox = GameObject.Find("SelectionBox").GetComponent<RectTransform>();
            rtsController.team1Score = GameObject.Find("Team1 Score").GetComponent<Text>();
            rtsController.team2Score = GameObject.Find("Team2 Score").GetComponent<Text>();

            var team = GameObject.FindGameObjectsWithTag(isServer ? "Team1" : "Team2");
            foreach (var unitGo in team)
            {
                var unit = unitGo.GetComponent<Unit>();
                rtsController.ownedUnits.Add(unit);
                unit.owner = rtsController;
            }

            if (isServer)
                player1 = rtsController;
        }
        else
        {
            if (isServer)
            {
                player2 = rtsController;
                //Setting up other rts controller as a server
                var team2 = GameObject.FindGameObjectsWithTag("Team2");
                foreach (var unitGo in team2)
                {
                    var unit = unitGo.GetComponent<Unit>();
                    rtsController.ownedUnits.Add(unit);
                    unit.owner = rtsController;
                }
            }
            else
            {
                // Setting up other rts controller as a client
                player1 = rtsController;
                var team1 = GameObject.FindGameObjectsWithTag("Team1");
                foreach (var unitGo in team1)
                {
                    var unit = unitGo.GetComponent<Unit>();
                    player1.ownedUnits.Add(unit);
                    unit.owner = rtsController;
                }
            }
        }
    }
Ejemplo n.º 10
0
 public virtual void ApplySkillEffect(Player targetPlayer, RTSController from)
 {
     switch (type) {
         case SkillType.BUFF:
             this.ApplyBuff(from.GetPlayer);
             break;
         case SkillType.DEBUFF:
             this.ApplyDebuff(targetPlayer, from);
             break;
         case SkillType.ATTACK:
             this.ApplyDamage(targetPlayer, from);
             break;
         case SkillType.ULTIMATE:
             this.ApplyDamage(targetPlayer, from);
             this.ApplyDebuff(targetPlayer, from);
             break;
     }
 }
Ejemplo n.º 11
0
        public override bool CastSkill(RTSController controller)
        {
            if (!base.Ready)
                return false;

            this.LastActivation = Time.time;
            Ray ray = controller.myCamera.ScreenPointToRay(controller.myMousePosition);

            RaycastHit hit;
            if (Physics.Raycast(ray, out hit)) {
                Vector3 look = hit.point;
                look.y = controller.transform.position.y;
                controller.transform.LookAt(look);
            }

            ApplyCooldown();

            return true;
        }
Ejemplo n.º 12
0
        public void ApplyKnockBack(Player targetPlayer, RTSController from)
        {
            if (!targetPlayer.Controller)
                throw new SkillException("Controller was not found.");

            Debug.Log("DmgCount" + targetPlayer.DamageCount);
            Debug.Log("Knockback factory" + this.KnockBackFactory);

            Debug.Log((targetPlayer.DamageCount / this.KnockBackFactory));

            Ray ray = new Ray(from.transform.position, targetPlayer.Controller.transform.position);

            // TODO: Verificar como será feito o KNOCKBACK.

            Vector3 knockback = ray.direction * ((targetPlayer.DamageCount / 100) / this.KnockBackFactory);

            Debug.Log(knockback);

            targetPlayer.Controller.transform.Translate(knockback);
        }
Ejemplo n.º 13
0
        public override bool CastSkill(RTSController controller)
        {
            if (!base.Ready)
                return false;

            this.LastActivation = Time.time;
            Ray ray = controller.myCamera.ScreenPointToRay(controller.myMousePosition);

            RaycastHit[] raycastHits = Physics.RaycastAll(ray);
            RaycastHit hit;
            Vector3 look = Vector3.zero;
            Vector3 position = Vector3.zero;
            try {
                raycastHits = raycastHits.Where(linq => linq.transform.gameObject.tag == "Terrain").ToArray();
                hit = raycastHits.Last();
                position = hit.point;
                position.y += 3.5f;
                look = hit.point;
                look.y = controller.transform.position.y;
                controller.transform.LookAt(look);
            } catch (Exception) {
                return false;
            }

            ApplyCooldown();
            //Debug.Log(controller.transform.position.y - hit.point.y);

            //if (controller.transform.position.y - hit.point.y > 3.48f && controller.transform.position.y - hit.point.y < 3.52f) {
            //    look.y = controller.transform.position.y;
            //} else if (controller.transform.position.y < hit.point.y) {
            //    look.y = controller.transform.position.y + hit.point.y - 2;
            //} else if (controller.transform.position.y > hit.point.y) {
            //    look.y = controller.transform.position.y - hit.point.y - 2;
            //}

            Vector3 direction = position - controller.transform.position;
            Vector3 newPos = controller.transform.position + (direction.normalized * 15);
            controller.MoveToPosition(1f, newPos, .5f);

            return true;
        }
Ejemplo n.º 14
0
        public override bool CastSkill(RTSController controller)
        {
            if (!base.CastSkill(controller))
                return false;

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit[] raycastHits = Physics.RaycastAll(ray);
            RaycastHit hit;

            try {
                hit = raycastHits.Where(linq => linq.transform.gameObject.tag == "Terrain").Last();
                Vector3 position = hit.point;
                position.y += 3.5f;
                controller.transform.position = position;
                controller.targetPosition = position;
                ApplyCooldown();
            } catch (Exception) {
                return false;
            }

            return true;
        }
Ejemplo n.º 15
0
    public Vector3 rtsOffset; //distance the camera moves back and up when going back to rts camera

    private void Start()
    {
        rtsController           = this.GetComponent <RTSController>();
        this.transform.position = spawnPoint.transform.position;
    }
Ejemplo n.º 16
0
 public override bool CastSkill(RTSController controller)
 {
     return base.CastSkill(controller);
 }
Ejemplo n.º 17
0
        public override bool CastSkill(RTSController controller)
        {
            if(!base.CastSkill(controller))
                return false;

            this.LastActivation = Time.time;
            Ray ray = /*Camera.main.ScreenPointToRay*/controller.myCamera.ScreenPointToRay(controller.myMousePosition);

            if (Effect) {
                GameObject obj;
                InitialPosition = controller.skillsInitialPositions[SkillIndex];
                if (!controller.isOffline) {
                    obj = Network.Instantiate(Effect, InitialPosition.transform.position, Quaternion.identity, 0) as GameObject;
                } else {
                    obj = GameObject.Instantiate(Effect, InitialPosition.transform.position, Quaternion.identity) as GameObject;
                }
                //obj.transform.parent = controller.transform;
                SkillBehaviour skillBehaviour = obj.GetComponent<SkillBehaviour>();
                if (skillBehaviour) {
                    skillBehaviour.from = controller;
                    skillBehaviour.fromPlayer = controller.GetPlayer;
                    skillBehaviour.skill = this;
                    skillBehaviour.skillName = this.Name;
                    skillBehaviour.WaitAnimationTime = WaitAnimationTime;
                    skillBehaviour.StartPosition = InitialPosition;
                    skillBehaviour.DestroyTime = DestroyEffectTime;
                }
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit)) {
                    Vector3 look = hit.point;
                    look.y = look.y + 3.5f;
                    obj.transform.LookAt(look);
                    look.y = controller.transform.position.y;
                    controller.transform.LookAt(look);
                }
            }
            ApplyCooldown();

            return true;
        }
Ejemplo n.º 18
0
 public override void ApplySkillEffect(Player targetPlayer, RTSController from)
 {
     base.ApplySkillEffect(targetPlayer, from);
     this.ApplyDamage(targetPlayer, from);
 }
Ejemplo n.º 19
0
 public void AddPlayerOnQueue(RTSController control)
 {
     this.controllers.Add(control);
     control.shopIndex = this.controllers.Count - 1;
 }
Ejemplo n.º 20
0
 public void ShowShop(RTSController control)
 {
     canShowShop = true;
     actualController = control;
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Cast the skill.
 /// </summary>
 /// <returns>False if the skill can't be casted</returns>
 public virtual bool CastSkill(RTSController controller)
 {
     return Ready;
 }
Ejemplo n.º 22
0
 public virtual void ApplySkillEffect(Player targetPlayer, RTSController from)
 {
 }
Ejemplo n.º 23
0
        /// <summary>
        /// Cast the skill.
        /// </summary>
        /// <returns>False if the skill can't be casted</returns>
        public virtual bool CastSkill(RTSController controller)
        {
            if (!this.CanCastSkill())
                return false;

            this.lastActivation = Time.time;

            if (this.type == SkillType.BLINK) {
                return this.CastBlink(controller);
            }

            GameObject skill = Resources.Load(string.Format("Skills/Objects/{0}", this.particleName)) as GameObject;

            Ray ray = /*Camera.main.ScreenPointToRay*/controller.myCamera.ScreenPointToRay(controller.myMousePosition);

            if (skill) {
                GameObject obj;
                if (!controller.isOffline) {
                    obj = Network.Instantiate(skill, controller.transform.position, skill.transform.rotation, 0) as GameObject;
                } else {
                    obj = GameObject.Instantiate(skill, controller.transform.position, skill.transform.rotation) as GameObject;
                }
                //obj.transform.parent = controller.transform;
                SkillBehaviour skillBehaviour = obj.GetComponent<SkillBehaviour>();
                if (skillBehaviour) {
                    skillBehaviour.from = controller;
                    skillBehaviour.fromPlayer = controller.GetPlayer;
                    //skillBehaviour.skill = this;
                    skillBehaviour.skillName = this.name;
                }
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit) && !this.stayRotate) {
                    Vector3 look = hit.point;
                    look.y = look.y + 3.5f;
                    obj.transform.LookAt(look);
                    look.y = controller.transform.position.y;
                    controller.transform.LookAt(look);
                }
            }
            ApplyCooldown();

            return true;
        }
Ejemplo n.º 24
0
        protected virtual bool CastBlink(RTSController controller)
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit[] raycastHits = Physics.RaycastAll(ray);
            RaycastHit hit;

            try {
                hit = raycastHits.Where(linq => linq.transform.gameObject.tag == "Terrain").First();
                Vector3 position = hit.point;
                position.y += 3.5f;
                controller.transform.position = position;
                controller.targetPosition = position;
                ApplyCooldown();
            } catch (Exception) {
                return false;
            }

            return true;
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Apply a debuff to target player, that skill need to be a debuff skill.
        /// </summary>
        /// <param name="targetPlayer"></param>
        protected virtual void ApplyDebuff(Player targetPlayer, RTSController from)
        {
            if (type != SkillType.DEBUFF)
                throw new SkillException("This isn't a Buff Skill.");

            if (this.damage > 0)
                this.SkillDamage(targetPlayer);

            targetPlayer.setSlowed(3);
            this.ApplyKnockBack(targetPlayer, from);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Apply the skill damage to target player, that skill need to be an attack skill.
        /// </summary>
        /// <param name="targetPlayer"></param>
        protected virtual void ApplyDamage(Player targetPlayer, RTSController from)
        {
            if (type != SkillType.ATTACK)
                throw new SkillException("This isn't an Attack Skill.");

            this.SkillDamage(targetPlayer);

            this.ApplyKnockBack(targetPlayer, from);
            this.ApplyCooldown();
        }