Beispiel #1
0
    public MimeManAttackObjects CreateMimeManAttackObj(Unit unit, int num)
    {
        MimeManAttackObjects obj = Instantiate(MimeManPrefab[num]);

        obj.Unit = unit;

        return(obj);
    }
    protected override void Attack()
    {
        if (Unit.Stuning)
        {
            return;
        }

        if (isAttacking || isattackdelaying || Unit.Movement.isDefance || Unit.State == UnitState.Attack)
        {
            return;
        }

        string keys = KeyManager.Instance.GetKeys(Unit.tag);

        #region KeyStay
        //if (keys[(int)KeyArray.Weak] == keyState.KeyStay.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.Strong] == keyState.KeyStay.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.Skill1] == keyState.KeyStay.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.SKill2] == keyState.KeyStay.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.special] == keyState.KeyStay.ToChar())
        //{
        //}
        #endregion

        #region KeyDown
        if (keys[(int)KeyArray.Weak] == keyState.KeyDown.ToChar())
        {
            if (Unit.Movement.isDash)
            {
                if (!AttackSetting("DashAttack"))
                {
                    return;
                }

                Unit.Animator.PlayAnimation("DashAttack");
                Unit.ColliderCtrl.AttackColliderActive(GetProperty("DashAttack"));


                Vector2 pos = transform.position;

                pos.x += 4f * (isRight ? 1 : -1);

                if (!(GameManager.Instance.StageSize.x < pos.x && pos.x < GameManager.Instance.StageSize.z))
                {
                    if (pos.x < 0f)
                    {
                        pos.x = GameManager.Instance.StageSize.x + 1;
                    }
                    else
                    {
                        pos.x = GameManager.Instance.StageSize.z - 1;
                    }
                }

                transform.position = pos;
                GameManager.Instance.CreateAttackParticle("MimeMan", transform, 1f);
                Unit.Rigid.velocity = Vector2.zero;

                Unit.Movement.isDash = false;
            }
            else
            {
                if (!AttackSetting("WeakAttack" + (weakattackcombo + 1)))
                {
                    return;
                }

                weakattackcombo += 1;

                Unit.Animator.PlayAnimation("WeakAttack" + weakattackcombo.ToString());
                Unit.ColliderCtrl.AttackColliderActive(GetProperty("WeakAttack" + weakattackcombo.ToString()));

                if (weakattackcombo == EndofWeakCombo)
                {
                    weakattackcombo = 0;
                }
            }
        }

        if (keys[(int)KeyArray.Strong] == keyState.KeyDown.ToChar())
        {
            if (!AttackSetting("StrongAttack" + (strongattackcombo + 1)))
            {
                return;
            }

            strongattackcombo += 1;

            Unit.Animator.PlayAnimation("StrongAttack" + strongattackcombo.ToString());
            Unit.ColliderCtrl.AttackColliderActive(GetProperty("StrongAttack" + strongattackcombo.ToString()));

            if (strongattackcombo == EndofStrongCombo)
            {
                strongattackcombo = 0;
            }
        }

        if (keys[(int)KeyArray.Skill1] == keyState.KeyDown.ToChar())
        {
            if (!AttackSetting("Skill1"))
            {
                return;
            }

            Unit.Animator.PlayAnimation("Skill1");
            Unit.ColliderCtrl.AttackColliderActive(GetProperty("Skill1"));

            MimeManAttackObjects obj = GameManager.Instance.CreateMimeManAttackObj(Unit, 0);
            obj.transform.position = (Vector2)transform.position + new Vector2(-0.35f, 1f);
            obj.Velocity           = new Vector2(20 * (isRight ? 1 : -1), 15);

            //StartCoroutine(AccelerationDelay(new Vector2(0, 23), 0.2f));
        }

        if (keys[(int)KeyArray.SKill2] == keyState.KeyDown.ToChar())
        {
            if (!AttackSetting("Skill2"))
            {
                return;
            }

            Unit.Animator.PlayAnimation("Skill2");
            Unit.ColliderCtrl.AttackColliderActive(GetProperty("Skill2"));

            Unit.Movement.isDash = false;
            ghost = true;
            Unit.Invincibility = true;

            //Unit.Rigid.velocity = new Vector2(6f * (isRight ? 1 : -1), 18f);
        }

        if (keys[(int)KeyArray.Special] == keyState.KeyDown.ToChar() && !Unit.Movement.isJump)
        {
            if (!AttackSetting("Special"))
            {
                return;
            }

            Unit.Animator.PlayAnimation("Special");
            Unit.ColliderCtrl.AttackColliderActive(GetProperty("Special"));

            MimeManAttackObjects obj = GameManager.Instance.CreateMimeManAttackObj(Unit, 1);
            obj.transform.position = (Vector2)transform.position + new Vector2(-0.55f, -0.55f);
        }
        #endregion

        #region KeyUp
        //if (keys[(int)KeyArray.Weak] == keyState.KeyUp.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.Strong] == keyState.KeyUp.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.Skill1] == keyState.KeyUp.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.SKill2] == keyState.KeyUp.ToChar())
        //{
        //}

        //if (keys[(int)KeyArray.special] == keyState.KeyUp.ToChar())
        //{
        //}
        #endregion
    }