public IEnumerator MagitionAttack(DefaultAttackData _defaultData, ExtraAttackData _extraData) { GameObject huricaneBurnObject = MonoBehaviour.Instantiate(magitionHuricaneBurnPrefab) as GameObject; huricaneBurnObject.transform.position = new Vector3(parentsObject.transform.position.x + (_defaultData.rightFunctionPointer() == true ? +0.2f : -0.2f), parentsObject.transform.position.y, parentsObject.transform.position.z); MagitionAttackModel argModel = new MagitionAttackModel(); argModel.appreanceFrame = 10.0f; argModel.floatingTime = _defaultData.m_fAttackSpeed * 0.6f; argModel.referencePosition = weaponEffect; argModel.rightFunctionPointer = _defaultData.rightFunctionPointer; argModel.scale = 1.0f; // 0.1 x move argModel.sheetingFrame = 10.0f; argModel.sheetingSprite = magitionSheetingHit; argModel.sheetingSpriteEnd = magitionSheetingEnd; argModel.sheetingSpriteStart = magitionSheetingStart; argModel.stretchYMax = 0.4f; argModel.stretchYMin = 0.1f; argModel.targetArray = new ArrayList(); argModel.targetArray.Add(GlobalLayerMask.ENEMY_MASK); HurricaneBurn firballScript = huricaneBurnObject.GetComponent <HurricaneBurn>(); firballScript.SetParameter(argModel); yield return(StartCoroutine(SwingWeapon(_defaultData.m_fAttackSpeed, _defaultData.m_fWeaponAxisStart, _defaultData.m_fWeaponAxisEnd, _defaultData.rightFunctionPointer(), _defaultData.hitList))); }
public IEnumerator HeroAttack(DefaultAttackData _defaultData, ExtraAttackData _extraData) { yield return(StartCoroutine(SwingWeapon(_defaultData.m_fAttackSpeed, _defaultData.m_fWeaponAxisStart, _defaultData.m_fWeaponAxisEnd, _defaultData.rightFunctionPointer(), _defaultData.hitList))); if (_defaultData.hitList.Count > 0) { //0 이상이면 무기에 맞는놈이있다. //Hit and 넉벡 Debug.Log("HIT"); } }
IEnumerator AttackAnimation() { canAttack = false; DefaultAttackData argDefaultData = new DefaultAttackData( currentPlayerData.m_fAttackSpeed, currentPlayerData.m_fWeaponAxisStart, currentPlayerData.m_fWeaponAxisEnd, rightFunctionPointer, isHiitedList); ExtraAttackData argExtraData = new ExtraAttackData(currentBulletData.m_v2BulletSize); switch (currentPlayerType) { case GlobalCharacterInfo.CHAR_TYPE.ALLIGATOR: yield return(StartCoroutine(attackController.AlligatoerAttack( argDefaultData, argExtraData))); break; case GlobalCharacterInfo.CHAR_TYPE.MAGITION: yield return(StartCoroutine(attackController.MagitionAttack( argDefaultData, argExtraData))); break; case GlobalCharacterInfo.CHAR_TYPE.DRAGON: yield return(StartCoroutine(attackController.DragonAttack( argDefaultData, argExtraData))); break; case GlobalCharacterInfo.CHAR_TYPE.HERO: yield return(StartCoroutine(attackController.HeroAttack( argDefaultData, argExtraData))); break; } canAttack = true; }
public IEnumerator AlligatoerAttack(DefaultAttackData _defaultData, ExtraAttackData _extraData) { yield return(StartCoroutine(SwingWeapon(_defaultData.m_fAttackSpeed, _defaultData.m_fWeaponAxisStart, _defaultData.m_fWeaponAxisEnd, _defaultData.rightFunctionPointer(), _defaultData.hitList))); if (_defaultData.hitList.Count > 0) { //0 이상이면 무기에 맞는놈이있다. //Hit and 넉벡 Debug.Log("HIT"); } else { //Only For Test //무기에 맞는놈이 없으므로 파이어볼 GameObject firballObject = MonoBehaviour.Instantiate(alligatorFireBallPrefab) as GameObject; firballObject.transform.position = new Vector3(parentsObject.transform.position.x + (_defaultData.rightFunctionPointer() == true ? +0.2f : -0.2f), parentsObject.transform.position.y, parentsObject.transform.position.z); AlligatorAttackModel argModel = new AlligatorAttackModel(); argModel.bulletSpeed = 0.06f; // 0.1 x move argModel.destroySprite = alligatorEndObject; argModel.frame = 10.0f; // ms argModel.endFrameMultiple = 3; // ms argModel.isRight = _defaultData.rightFunctionPointer(); argModel.scale = 1.0f; // multiple Scale argModel.sheetingArea = 5.0f; argModel.sheetingSprite = alligatorSheetingObject; argModel.targetArray = new ArrayList(); argModel.targetArray.Add(GlobalLayerMask.ENEMY_MASK); FireBallScript firballScript = firballObject.GetComponent <FireBallScript>(); firballScript.SetParameter(argModel); } }