Ejemplo n.º 1
0
    public virtual void Death(DeathFX deathFX, Vector3 deathPosition, GameObject killingPlayer = null)
    {
        if (ReplayManager.Instance.isReplaying)
        {
            return;
        }

        if (playerState != PlayerState.Dead && GlobalVariables.Instance.GameState == GameStateEnum.Playing)
        {
            if (deathFX == DeathFX.Explosion || deathFX == DeathFX.All)
            {
                playerFX.DeathExplosionFX(deathPosition);
            }

            if (deathFX == DeathFX.Particles || deathFX == DeathFX.All)
            {
                playerFX.DeathParticles(deathPosition);
            }

            if (killingPlayer)
            {
                playerThatHit = killingPlayer.GetComponent <PlayersGameplay>();
            }

            StartCoroutine(DeathCoroutine());
        }
    }
Ejemplo n.º 2
0
 // Use this for initialization
 void Awake()
 {
     UIItems                        = new List <DamageUI>();
     smallFloating                  = new GUIStyle();
     smallFloating.alignment        = TextAnchor.MiddleCenter;
     smallFloating.normal.textColor = Color.green;
     smallFloating.font             = UIFont;
     smallFloating.fontSize         = 40;
     dFX = transform.GetComponent <DeathFX>();
 }
Ejemplo n.º 3
0
    public override void Death(DeathFX deathFX, Vector3 deathPosition, GameObject killingPlayer = null)
    {
        if (playerState != PlayerState.Dead && GlobalVariables.Instance.GameState == GameStateEnum.Playing)
        {
            playerState = PlayerState.Dead;

            OnDeathVoid();

            GlobalVariables.Instance.screenShakeCamera.CameraShaking(FeedbackType.Death);
            GlobalVariables.Instance.zoomCamera.Zoom(FeedbackType.Death);

            gameObject.SetActive(false);
        }
    }
Ejemplo n.º 4
0
    void Die()
    {
        Can_Move = false;
        StartCoroutine("CanPlay");
        if (DeathFX.isPlaying == false)
        {
            DeathFX.Play();
        }
        Shake();
        transform.position = SpawnLocation;
        Vector3 Fall = Rb.velocity;

        Fall.y = 0; Rb.velocity = Fall;
        transp = 1.0f;
    }
Ejemplo n.º 5
0
    public override void Death(DeathFX deathFX, Vector3 deathPosition, GameObject killingPlayer = null)
    {
        if (ReplayManager.Instance.isReplaying)
        {
            return;
        }

        if (playerState != PlayerState.Dead && GlobalVariables.Instance.GameState == GameStateEnum.Playing)
        {
            OnDeathVoid();
            GlobalVariables.Instance.screenShakeCamera.CameraShaking(FeedbackType.Death);
            GlobalVariables.Instance.zoomCamera.Zoom(FeedbackType.Death);

            if (holdState == HoldState.Holding)
            {
                playerState = PlayerState.Dead;
                Transform holdMovableTemp = null;

                for (int i = 0; i < transform.childCount; i++)
                {
                    if (transform.GetChild(i).tag == "Movable" || transform.GetChild(i).tag == "HoldMovable")
                    {
                        holdMovableTemp = transform.GetChild(i);

                        holdMovableTemp.gameObject.GetComponent <MovableScript>().hold = false;

                        holdMovableTemp.transform.SetParent(null);
                        holdMovableTemp.transform.SetParent(movableParent);
                        holdMovableTemp.GetComponent <MovableScript>().AddRigidbody();
                    }
                }
            }

            playerState = PlayerState.Dead;


            for (int i = 0; i < GetComponent <PlayersFXAnimations>().attractionRepulsionFX.Count; i++)
            {
                Destroy(GetComponent <PlayersFXAnimations> ().attractionRepulsionFX [i]);
            }

            GlobalMethods.Instance.SpawnExistingPlayerRandomVoid(gameObject, timeBetweenSpawn);

            playerState = PlayerState.None;
        }
    }
    // Use this for initialization
    void Start()
    {
        UnStatusCounter = new Dictionary<UnnormalStatus, int>();
        LastUnStatusCounter = new Dictionary<UnnormalStatus, int>();
        //print("Dictionary length:" + UnStatusCounter.Count);
        UnStatusCounter.Add(UnnormalStatus.Burned,0);
        UnStatusCounter.Add(UnnormalStatus.Chaos,0);
        UnStatusCounter.Add(UnnormalStatus.Freezed,0);
        UnStatusCounter.Add(UnnormalStatus.Poisoned,0);
        UnStatusCounter.Add(UnnormalStatus.Sleeping,0);
        UnStatusCounter.Add(UnnormalStatus.Wounded,0);

        LastUnStatusCounter.Add(UnnormalStatus.Burned,0);
        LastUnStatusCounter.Add(UnnormalStatus.Chaos,0);
        LastUnStatusCounter.Add(UnnormalStatus.Freezed,0);
        LastUnStatusCounter.Add(UnnormalStatus.Poisoned,0);
        LastUnStatusCounter.Add(UnnormalStatus.Sleeping,0);
        LastUnStatusCounter.Add(UnnormalStatus.Wounded,0);
        //print("Dictionary length after adds:" + UnStatusCounter.Count);

        if(Player==1){
            Moved = false;
            Attacked = false;
            Activated = false;
        }else{
            Moved = true;
            Attacked = true;
            Activated = true;
        }
        //init initial status
        death = true;
        Ready = false;
        Hp = defPower;
        ModifiedDefPow = defPower;
        Damage = atkPower;
        BuffAtkRange = atkRange;
        BuffCriticalHit = CriticalhitChance;
        BuffMoveRange = moveRange;
        BuffSkillRate = SkillRate;

        if(Player>1)
            WaitRounds = StandByRounds-1;
        else
            WaitRounds = StandByRounds;

        if(Summoner || LeadingCharacter){
            Ready = true;
            death = false;
            WaitRounds = 0;
        }
        /*
        if(!Tower){
            if(Player==1){
                transform.position = GameObject.Find("unit_start_point_A").transform.position;
                transform.Translate(0.0f,1.5f,0.0f);
            }else if(Player==2){
                transform.position = GameObject.Find("unit_start_point_B").transform.position;
                transform.Translate(0.0f,1.5f,0.0f);
            }
        }else{
            if(Player==1){
                transform.position = GameObject.Find("red_tower").transform.position;
                transform.Translate(0.0f,4.0f,0.0f);
            }else if(Player==2){
                transform.position = GameObject.Find("yellow_tower").transform.position;
                transform.Translate(0.0f,4.0f,0.0f);
            }
        }*/

        currentSel = Camera.mainCamera.GetComponent<selection>();
        dFX = Camera.mainCamera.GetComponent<DeathFX>();
    }
Ejemplo n.º 7
0
    // Use this for initialization
    void Start()
    {
        UnStatusCounter     = new Dictionary <UnnormalStatus, int>();
        LastUnStatusCounter = new Dictionary <UnnormalStatus, int>();
        //print("Dictionary length:" + UnStatusCounter.Count);
        UnStatusCounter.Add(UnnormalStatus.Burned, 0);
        UnStatusCounter.Add(UnnormalStatus.Chaos, 0);
        UnStatusCounter.Add(UnnormalStatus.Freezed, 0);
        UnStatusCounter.Add(UnnormalStatus.Poisoned, 0);
        UnStatusCounter.Add(UnnormalStatus.Sleeping, 0);
        UnStatusCounter.Add(UnnormalStatus.Wounded, 0);

        LastUnStatusCounter.Add(UnnormalStatus.Burned, 0);
        LastUnStatusCounter.Add(UnnormalStatus.Chaos, 0);
        LastUnStatusCounter.Add(UnnormalStatus.Freezed, 0);
        LastUnStatusCounter.Add(UnnormalStatus.Poisoned, 0);
        LastUnStatusCounter.Add(UnnormalStatus.Sleeping, 0);
        LastUnStatusCounter.Add(UnnormalStatus.Wounded, 0);
        //print("Dictionary length after adds:" + UnStatusCounter.Count);

        if (Player == 1)
        {
            Moved     = false;
            Attacked  = false;
            Activated = false;
        }
        else
        {
            Moved     = true;
            Attacked  = true;
            Activated = true;
        }
        //init initial status
        death           = true;
        Ready           = false;
        Hp              = defPower;
        ModifiedDefPow  = defPower;
        Damage          = atkPower;
        BuffAtkRange    = atkRange;
        BuffCriticalHit = CriticalhitChance;
        BuffMoveRange   = moveRange;
        BuffSkillRate   = SkillRate;

        if (Player > 1)
        {
            WaitRounds = StandByRounds - 1;
        }
        else
        {
            WaitRounds = StandByRounds;
        }

        if (Summoner)
        {
            Ready      = true;
            death      = false;
            WaitRounds = 0;
        }

        if (!Tower)
        {
            if (Player == 1)
            {
                transform.position = GameObject.Find("unit_start_point_A").transform.position;
                transform.Translate(0.0f, 1.5f, 0.0f);
            }
            else if (Player == 2)
            {
                transform.position = GameObject.Find("unit_start_point_B").transform.position;
                transform.Translate(0.0f, 1.5f, 0.0f);
            }
        }
        else
        {
            if (Player == 1)
            {
                transform.position = GameObject.Find("red_tower").transform.position;
                transform.Translate(0.0f, 4.0f, 0.0f);
            }
            else if (Player == 2)
            {
                transform.position = GameObject.Find("yellow_tower").transform.position;
                transform.Translate(0.0f, 4.0f, 0.0f);
            }
        }

        currentSel = Camera.mainCamera.GetComponent <selection>();
        dFX        = Camera.mainCamera.GetComponent <DeathFX>();
    }
Ejemplo n.º 8
0
    public void UpdateAttackResult(AttackType mode)
    {
        dFX = Camera.mainCamera.GetComponent<DeathFX>();
        if(mode == AttackType.physical){
            if(Attacker.GetComponent<CharacterPassive>().PassiveDict[PassiveType.SuddenDeath]){
                if(!targetProperty.Tower && MapHelper.Success(10)){
                    targetProperty.Hp = 0;
                }
                else{
                    targetProperty.Hp -= attackerProperty.Damage;
                    targetProperty.Damaged = true;
                    ShowDamageUI(Target, attackerProperty.Damage, Attacker);
                }

            }/*else if(Attacker.GetComponent<CharacterPassive>().PassiveDict[PassiveType.MultiArrow]){
                IList targetList = new List<Transform>();
                foreach(Transform unit in GetAttackableTarget(Attacker)){
                    targetList.Add(MapHelper.GetMapOccupiedObj(unit));
                }
                if(targetList.Contains(Target))
                    targetList.Remove(Target);
                if(CriticalHit){
                    targetProperty.Hp -= attackerProperty.Damage*2;
                    ShowDamageUI(Target, attackerProperty.Damage*2, Attacker);
                    Debug.Log("Critical Hit!");
                }else{
                    targetProperty.Hp -= attackerProperty.Damage;
                    ShowDamageUI(Target, attackerProperty.Damage, Attacker);
                }

                Transform[] tArray = new Transform[targetList.Count];
                targetList.CopyTo(tArray,0);
                if(tArray.Length > 1){
                    for(int i=0;i<2;i++){
                        tArray[i].GetComponent<CharacterProperty>().Hp -= 1;
                        ShowDamageUI(tArray[i], 1, Attacker);
                    }
                }else if(tArray.Length < 2){
                    for(int i=0;i<tArray.Length;i++){
                        tArray[i].GetComponent<CharacterProperty>().Hp -= 1;
                        ShowDamageUI(tArray[i], 1, Attacker);
                    }
                }

            }*/else if(CriticalHit){
                targetProperty.Hp -= attackerProperty.Damage*2;
                targetProperty.Damaged = true;
                ShowDamageUI(Target, attackerProperty.Damage*2, Attacker);
                Debug.Log("Critical Hit!");
            }else{
                targetProperty.Hp -= attackerProperty.Damage;
                targetProperty.Damaged = true;
                ShowDamageUI(Target, attackerProperty.Damage, Attacker);
            }

            if(Attacker.GetComponent<CharacterPassive>().PassiveDict[PassiveType.WoundBite]){
                targetProperty.UnStatusCounter[UnnormalStatus.Wounded] = 1;
                targetProperty.LastUnStatusCounter[UnnormalStatus.Wounded] = 2;
            }

        }else if(mode == AttackType.magical){
            if(CriticalHit){
                targetProperty.Hp -= attackerProperty.Damage*2;
                targetProperty.Damaged = true;
                Debug.Log("Critical Hit!");
            }else{
                print("damage!!");
                targetProperty.Hp -= attackerProperty.Damage;
                targetProperty.Damaged = true;
                ShowDamageUI(Target, attackerProperty.Damage, Attacker);
            }
        }
        /*
        if(Attackable()){
            attackerProperty.Hp -= targetProperty.Damage;
        }*/

        if(attackerProperty.Hp<=0){
            //attackerProperty.death = true;
            //dFX.SetDeathSequence(Attacker);
            attackerProperty.Ready = false;
            attackerProperty.WaitRounds = attackerProperty.StandByRounds;
        }

        if(targetProperty.Hp<=0){
            if(!targetProperty.Tower){
                //dFX.SetDeathSequence(Target);
                //targetProperty.Ready = false;
                //targetProperty.WaitRounds = targetProperty.StandByRounds;
                chessUI.DelayFadeOut = true;
                targetProperty.Attacked = true;
                if(chessUI.playerSide ==1)
                    chessUI.MainFadeIn = false;
                else
                    chessUI.TargetFadeIn = false;
            }else{
                targetProperty.death = true;
            }
        }else{
            if(fightBack){
                fb.SetFightBack(Target,Attacker);
                targetProperty.Attacked = true;
            }
        }
        attackerProperty.Attacked = true;
        sUI.FadeInUI = true;
    }
Ejemplo n.º 9
0
    public void UpdateAttackResult(AttackType mode)
    {
        dFX = Camera.mainCamera.GetComponent <DeathFX>();
        if (mode == AttackType.physical)
        {
            if (Attacker.GetComponent <CharacterPassive>().PassiveDict[PassiveType.SuddenDeath])
            {
                if (!targetProperty.Tower && MapHelper.Success(10))
                {
                    targetProperty.Hp = 0;
                }
                else
                {
                    targetProperty.Hp -= attackerProperty.Damage;
                    ShowDamageUI(Target, attackerProperty.Damage, Attacker);
                }
            }
            else if (Attacker.GetComponent <CharacterPassive>().PassiveDict[PassiveType.MultiArrow])
            {
                IList targetList = new List <Transform>();
                foreach (Transform unit in GetAttackableTarget(Attacker))
                {
                    targetList.Add(MapHelper.GetMapOccupiedObj(unit));
                }
                if (targetList.Contains(Target))
                {
                    targetList.Remove(Target);
                }
                if (CriticalHit)
                {
                    targetProperty.Hp -= attackerProperty.Damage * 2;
                    ShowDamageUI(Target, attackerProperty.Damage * 2, Attacker);
                    Debug.Log("Critical Hit!");
                }
                else
                {
                    targetProperty.Hp -= attackerProperty.Damage;
                    ShowDamageUI(Target, attackerProperty.Damage, Attacker);
                }

                Transform[] tArray = new Transform[targetList.Count];
                targetList.CopyTo(tArray, 0);
                if (tArray.Length > 1)
                {
                    for (int i = 0; i < 2; i++)
                    {
                        tArray[i].GetComponent <CharacterProperty>().Hp -= 1;
                        ShowDamageUI(tArray[i], 1, Attacker);
                    }
                }
                else if (tArray.Length < 2)
                {
                    for (int i = 0; i < tArray.Length; i++)
                    {
                        tArray[i].GetComponent <CharacterProperty>().Hp -= 1;
                        ShowDamageUI(tArray[i], 1, Attacker);
                    }
                }
            }
            else if (CriticalHit)
            {
                targetProperty.Hp -= attackerProperty.Damage * 2;
                ShowDamageUI(Target, attackerProperty.Damage * 2, Attacker);
                Debug.Log("Critical Hit!");
            }
            else
            {
                targetProperty.Hp -= attackerProperty.Damage;
                ShowDamageUI(Target, attackerProperty.Damage, Attacker);
            }

            if (Attacker.GetComponent <CharacterPassive>().PassiveDict[PassiveType.WoundBite])
            {
                targetProperty.UnStatusCounter[UnnormalStatus.Wounded]     = 1;
                targetProperty.LastUnStatusCounter[UnnormalStatus.Wounded] = 2;
            }
        }
        else if (mode == AttackType.magical)
        {
            if (CriticalHit)
            {
                targetProperty.Hp -= attackerProperty.Damage * 2;
                Debug.Log("Critical Hit!");
            }
            else
            {
                targetProperty.Hp -= attackerProperty.Damage;
                ShowDamageUI(Target, attackerProperty.Damage, Attacker);
            }
        }

        /*
         * if(Attackable()){
         *      attackerProperty.Hp -= targetProperty.Damage;
         * }*/

        if (attackerProperty.Hp <= 0)
        {
            //attackerProperty.death = true;
            //dFX.SetDeathSequence(Attacker);
            attackerProperty.Ready      = false;
            attackerProperty.WaitRounds = attackerProperty.StandByRounds;
        }

        if (targetProperty.Hp <= 0)
        {
            if (!targetProperty.Tower)
            {
                //dFX.SetDeathSequence(Target);
                //targetProperty.Ready = false;
                //targetProperty.WaitRounds = targetProperty.StandByRounds;
                chessUI.DelayFadeOut    = true;
                targetProperty.Attacked = true;
                if (chessUI.playerSide == 1)
                {
                    chessUI.MainFadeIn = false;
                }
                else
                {
                    chessUI.TargetFadeIn = false;
                }
            }
            else
            {
                targetProperty.death = true;
            }
        }
        else
        {
            if (fightBack)
            {
                fb.SetFightBack(Target, Attacker);
                targetProperty.Attacked = true;
            }
        }
        attackerProperty.Attacked = true;
        sUI.FadeInUI = true;
    }