public void MeeleAttack(CharacterPlayer atk, CharacterPlayer def, int playerId, int indexState, int health, bool isnormalAtk, NewSkill useSkill) { Debug.Log("melee atack"); //skeletonAnimation.AnimationName = moveAnimation; skeletonAnimator.Skeleton.FlipX = false; Vector3 oldPos = this.transform.position; float newPosX; if (transform.position.x < def.transform.position.x) { newPosX = def.transform.position.x - def.GetComponent <BoxCollider2D>().bounds.size.x; } else { newPosX = def.transform.position.x + def.GetComponent <BoxCollider2D>().bounds.size.x; } if (CharacterManager.Instance._meCharacter == atk) { BattleSceneUI.Instance._effectParentMe.transform.DOMoveX(newPosX, 0.1f); } if (CharacterManager.Instance._enemyCharacter == atk) { BattleSceneUI.Instance._effectParentEnemy.transform.DOMoveX(newPosX, 0.1f); } transform.DOMoveX(newPosX, 0.1f).OnComplete(() => AttackandBack(atk, def, oldPos, playerId, indexState, health, isnormalAtk, useSkill)); }
private void PlayerClickedAnObject(GameObject clickedGameObject) { // Sanity check. if (clickedGameObject == null) { return; } // Check if object is on a Character. Character character = clickedGameObject.GetComponentInChildren <Character>(); if (character == null) { character = clickedGameObject.GetComponentInParent <Character>(); } if (character != null) { // Debug.Log( "Player clicked on a Character: " +character.name ); // What to do when a player has clicked on a character (NOTE: Could be self!) // Check if it was an enemy that was clicked on. CharacterEnemy enemy = character as CharacterEnemy; if (enemy != null) { Debug.Log("Player clicked on an Enemy: " + enemy.name); } return; } // Check if object is on an Item. Item item = clickedGameObject.GetComponentInChildren <Item>(); if (item == null) { item = clickedGameObject.GetComponentInParent <Item>(); } if (item != null) { Debug.Log("Player clicked on an item: " + item.itemName); // Direct the player to head to the clicked item. CharacterPlayer player = GameManager.GetPlayer(); if (player != null) { PlayerControllerARPG controller = player.GetComponent <PlayerControllerARPG>(); if (controller != null) { controller.SetNavMeshAgentDestination(item.transform.position); } } return; } Debug.Log("Player clicked on an object: " + clickedGameObject.name); }
public IEnumerator ExecuteDonothing(CharacterPlayer meCharacter, CharacterPlayer enemyCharacter, int playerId, int indexState, int health, NewSkill useSkill) { yield return(new WaitForSeconds(0.5f)); if (meCharacter != enemyCharacter) { if (meCharacter.playerId == playerId) { if (useSkill != null) { GameObject effSkill = EffectManager.Instance.CreateEffect("Effect/" + useSkill.data["prefEffect"].Value.ToString(), this.transform); if (useSkill.data["typeDisplayEffect"].Value == "me") { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); } else if (useSkill.data["typeDisplayEffect"].Value == "enemy") { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); } else if (useSkill.data["typeDisplayEffect"].Value == "move") { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + meCharacter.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); EffectManager.Instance.EffectMoving(effSkill, enemyCharacter.transform.position.x, 0.5f); } else if (useSkill.data["typeDisplayEffect"].Value == "center") { effSkill.transform.position = Vector3.zero; } else { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + enemyCharacter.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); } } } else if (enemyCharacter.playerId == playerId) { Debug.Log("name skill " + useSkill.data["name"].Value.ToString()); Debug.Log("name eff " + useSkill.data["prefEffect"].Value.ToString()); GameObject effSkill = EffectManager.Instance.CreateEffect("Effect/" + useSkill.data["prefEffect"].Value.ToString(), this.transform); if (useSkill.data["typeDisplayEffect"].Value == "me") { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); } else if (useSkill.data["typeDisplayEffect"].Value == "enemy") { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); } else if (useSkill.data["typeDisplayEffect"].Value == "move") { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + enemyCharacter.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); EffectManager.Instance.EffectMoving(effSkill, meCharacter.transform.position.x, 0.5f); } else if (useSkill.data["typeDisplayEffect"].Value == "center") { effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); effSkill.transform.position = Vector3.zero; } else { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + meCharacter.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); } } SendDamage(playerId.ToString() + "," + indexState.ToString() + "," + health.ToString() + "," + "senddamge"); } else { if (useSkill != null) { GameObject effSkill = EffectManager.Instance.CreateEffect("Effect/" + useSkill.data["prefEffect"].Value.ToString(), this.transform); if (useSkill.data["typeDisplayEffect"].Value == "me") { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); } else if (useSkill.data["typeDisplayEffect"].Value == "enemy") { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + effSkill.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); } else if (useSkill.data["typeDisplayEffect"].Value == "move") { effSkill.transform.position = new Vector3(meCharacter.transform.position.x, meCharacter.transform.position.y + meCharacter.GetComponent <BoxCollider2D>().size.y / 2, meCharacter.transform.position.z); EffectManager.Instance.EffectMoving(effSkill, enemyCharacter.transform.position.x, 0.5f); } else if (useSkill.data["typeDisplayEffect"].Value == "center") { effSkill.transform.position = Vector3.zero; } else { effSkill.transform.position = new Vector3(enemyCharacter.transform.position.x, enemyCharacter.transform.position.y + enemyCharacter.GetComponent <BoxCollider2D>().size.y / 2, enemyCharacter.transform.position.z); effSkill.transform.localScale = new Vector3(effSkill.transform.localScale.x * -1, effSkill.transform.localScale.y, effSkill.transform.localScale.z); } } SendDamage(playerId.ToString() + "," + indexState.ToString() + "," + health.ToString() + "," + "dontsend"); } }
public IEnumerator ExecuteRangeAttack(CharacterPlayer _atk, CharacterPlayer _target, Transform hostPos, Transform newPos, int playerId, int indexState, int health, bool isnormalAtk, NewSkill useSkill) { skeAnimator.SetBool("attack", true); yield return(new WaitForSeconds(0.01f)); yield return(new WaitForSeconds(skeAnimator.GetCurrentAnimatorStateInfo(0).length / 2f - 0.01f)); if (isnormalAtk) { GameObject bullet = EffectManager.Instance.CreateEffect("Prefabs/RangeAttack", hostPos); bullet.transform.position = new Vector3(hostPos.position.x + hostPos.GetComponent <BoxCollider2D>().bounds.size.x / 2, hostPos.position.y + hostPos.GetComponent <BoxCollider2D>().bounds.size.y / 2, hostPos.position.z); EffectManager.Instance.EffectMoving(bullet, newPos.position.x, 0.5f); } else { if (useSkill != null) { if (useSkill.data["type"].Value.ToString() == "passive") { } else if (useSkill.data["type"].Value.ToString() != "passive") { GameObject effSkill = EffectManager.Instance.CreateEffect("Effect/" + useSkill.data["prefEffect"].Value.ToString(), this.transform); effSkill.transform.position = new Vector3(_target.transform.position.x, _target.transform.position.y + _target.GetComponent <BoxCollider2D>().bounds.size.y / 2, _target.transform.position.z); } } } SendDamage(playerId.ToString() + "," + indexState.ToString() + "," + health.ToString() + "," + "senddamge"); yield return(new WaitForSeconds(skeAnimator.GetCurrentAnimatorStateInfo(0).length / 2f)); skeAnimator.SetBool("attack", false); }