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()); } }
// 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>(); }
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); } }
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; }
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>(); }
// 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>(); }
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; }
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; }