예제 #1
0
    public override void Combo3Damage()
    {
        Vector3    TargetVec = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right * AttackRange : gameObject.transform.position + Vector3.left * AttackRange;
        GameObject LoadedObj = Instantiate <GameObject>(CResourceMgr.LoadEffect("IceBolts"), gameObject.transform.position, new Quaternion());
        CIceBolts  Arrows    = LoadedObj.GetComponent <CIceBolts>();

        Arrows.Owner  = gameObject;
        Arrows.EndPos = TargetVec;
        CCombo3Ani ani = gameObject.GetComponentInChildren <CCombo3Ani>();

        Arrows.HitMove    = ani.HitMove;
        Arrows.HitAniType = EHitAniType.Type3;
        SoundMgr.PlaySound("Razor", ESoundType.Motion);
    }
예제 #2
0
    public override void Combo3Damage()
    {
        CCombo3Ani ani = gameObject.GetComponentInChildren <CCombo3Ani>();

        ani.SpriteRendererNone();
        Vector3    TargetVec = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right * AttackRange : gameObject.transform.position + Vector3.left * AttackRange;
        GameObject LoadedObj = Instantiate <GameObject>(CResourceMgr.LoadEffect("Arrows3"), gameObject.transform.position, new Quaternion());
        CArrows    Arrows    = LoadedObj.GetComponent <CArrows>();

        Arrows.Owner      = gameObject;
        Arrows.end_pos    = TargetVec;
        Arrows.HitAniType = EHitAniType.Type3;
        SoundMgr.PlaySound("Missile", ESoundType.Motion);
    }
예제 #3
0
    public override void ParringAttackDamage()
    {
        Vector3        pos        = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right : gameObject.transform.position + Vector3.left;
        GameObject     TriggerObj = Instantiate <GameObject>(CResourceMgr.LoadTrigger("DamageCircleTrigger"), pos, Quaternion.identity);
        CDamageTrigger Trigger    = TriggerObj.GetComponent <CDamageTrigger>();

        Trigger.Owner = gameObject;
        CSturnAni ani = gameObject.GetComponentInChildren <CSturnAni>();

        Trigger.AliveTime = 0.1f;
        Trigger.Damage    = 10;
        Trigger.ApplyAliveTime();
        Trigger.bSturn     = true;
        Trigger.HitAniType = EHitAniType.Type1;
        SoundMgr.PlaySound("Attack", ESoundType.Motion);
    }
예제 #4
0
    void LoadMapObjects(ref BinaryReader binaryReader)
    {
        int ObjectCount = binaryReader.ReadInt32();

        byte[] ObjectCountBuffer = binaryReader.ReadBytes(ObjectCount);
        for (int j = 0; j < ObjectCount; ++j)
        {
            string ObjectName = binaryReader.ReadString();
            for (int i = 0; i < ObjectCountBuffer[j]; ++i)
            {
                GameObject instance  = Instantiate <GameObject>(CResourceMgr.LoadMapObject(ObjectName));
                CMapObject component = instance.GetComponent <CMapObject>();
                component.Read(ref binaryReader);
                component.UpdatePos();
            }
        }
    }
예제 #5
0
    public void Hit(int Damage)
    {
        HP -= Damage;
        if (HP < DefaultHP / 2)
        {
            SpriteRender.sprite = NextSprites[0];

            Vector3        pos        = gameObject.transform.position;
            GameObject     TriggerObj = Instantiate <GameObject>(CResourceMgr.LoadTrigger("TrapDamageTrigger"), pos, Quaternion.identity);
            CDamageTrigger Trigger    = TriggerObj.GetComponent <CDamageTrigger>();
            Trigger.Owner     = gameObject;
            Trigger.HitMove   = 0.2f;
            Trigger.AliveTime = 0.5f;
            Trigger.Damage    = 10;
            Trigger.ApplyAliveTime();

            Invoke("EndSprite", 0.5f);
        }
    }
예제 #6
0
    void ShowWayPoints()
    {
        GameObject path_image    = CResourceMgr.LoadMapImage("PathImage");
        GameObject images_parent = Instantiate <GameObject>(CResourceMgr.LoadMapImage("ImagesParent"), new Vector3(0.0f, 0.0f, ImageDefaultPosZ), new Quaternion());

        for (int y = 0; y < Size; ++y)
        {
            for (int x = 0; x < Size; ++x)
            {
                if (WayPoints.Contains(y * Size + x))
                {
                    GameObject new_object = Instantiate <GameObject>(path_image, new Vector3(x, y, ImageDefaultPosZ), new Quaternion());
                    new_object.isStatic = true;
                    new_object.tag      = "PathImage";
                    new_object.transform.SetParent(images_parent.transform);
                }
            }
        }
    }
예제 #7
0
    public override void Combo2Damage()
    {
        Vector3    TargetVec   = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right * AttackRange : gameObject.transform.position + Vector3.left * AttackRange;
        Quaternion newRotation = CUtility.MakeQuaternion(gameObject.transform.position, TargetVec);

        // 이미지를 반시계방향으로 회전 시켜서 위로 바라 보게 만든다.
        Vector3 eulerAngles = newRotation.eulerAngles;

        eulerAngles.z += 90.0f;
        newRotation    = Quaternion.Euler(eulerAngles);

        GameObject LoadedObj = Instantiate <GameObject>(CResourceMgr.LoadEffect("IceBolt"), gameObject.transform.position, newRotation);
        CIceBolt   Effect    = LoadedObj.GetComponent <CIceBolt>();

        Effect.Owner  = gameObject;
        Effect.EndPos = TargetVec;
        CCombo1Ani ani = gameObject.GetComponentInChildren <CCombo1Ani>();

        Effect.HitMove    = ani.HitMove;
        Effect.HitAniType = EHitAniType.Type2;
        SoundMgr.PlaySound("Razor2", ESoundType.Motion);
    }
예제 #8
0
    public override void Combo3Damage()
    {
        Vector3    TargetVec   = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right : gameObject.transform.position + Vector3.left;
        Quaternion newRotation = CUtility.MakeQuaternion(gameObject.transform.position, TargetVec);
        Vector3    pos         = gameObject.transform.position;

        pos.x = gameObject.transform.position.x + (TargetVec.x - pos.x) / 2.0f;
        pos.z = 1.0f;
        GameObject melee_trail = Instantiate <GameObject>(CResourceMgr.LoadEffect("SwordTrail"), pos, newRotation);

        melee_trail.transform.localScale = new Vector3(2.0f, 2.0f, 1.0f);
        CTrail trail = melee_trail.GetComponent <CTrail>();

        trail.Owner = gameObject;
        CCombo3Ani ani = gameObject.GetComponentInChildren <CCombo3Ani>();

        trail.HitMove    = ani.HitMove;
        trail.HitAniType = EHitAniType.Type3;
        ani.SpriteRendererNone();

        SoundMgr.PlaySound("Attack", ESoundType.Motion);
    }
예제 #9
0
    // Update is called once per frame
    void Update()
    {
        if (CMapGenerator.bTool)
        {
            return;
        }

        if (!bSpawnStart)
        {
            return;
        }

        if (CurSpawnCount == 0)
        {
            if (false == bLoopSpawn)
            {
                bSpawnStart = false;
            }
            else if (bLoopSpawn && 0 == SpawnedObjects.Count)
            {
                RemainTime    = SpawnTime;
                CurSpawnCount = MaxSpawnCount;
            }
            return;
        }

        if (RemainTime <= 0)
        {
            GameObject spawnObj = Instantiate(CResourceMgr.LoadCharacter(GetLoadCharacterName(), ECharacterType.Enemy) /*, gameObject.transform*/);
            spawnObj.transform.position = gameObject.transform.position;
            SpawnedObjects.Add(spawnObj);
            RemainTime = SpawnTime;
            --CurSpawnCount;
        }
        else
        {
            RemainTime -= Time.fixedDeltaTime;
        }
    }
예제 #10
0
    public override void Combo1Damage()
    {
        Vector3    TargetVec   = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right * AttackRange : gameObject.transform.position + Vector3.left * AttackRange;
        Quaternion newRotation = CUtility.MakeQuaternion(gameObject.transform.position, TargetVec);

        // 이미지를 반시계방향으로 회전 시켜서 위로 바라 보게 만든다.
        Vector3 eulerAngles = newRotation.eulerAngles;

        eulerAngles.z += 90.0f;
        newRotation    = Quaternion.Euler(eulerAngles);

        GameObject LoadedObj = Instantiate <GameObject>(CResourceMgr.LoadEffect("Bone"), gameObject.transform.position, newRotation);
        CBone      Effect    = LoadedObj.GetComponent <CBone>();

        Effect.Owner  = gameObject;
        Effect.EndPos = TargetVec;
        CCombo1Ani ani = gameObject.GetComponentInChildren <CCombo1Ani>();

        Effect.HitMove    = ani.HitMove;
        Effect.HitAniType = EHitAniType.Type1;

        //Vector3 TargetVec = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right : gameObject.transform.position + Vector3.left;
        //Quaternion newRotation = CUtility.MakeQuaternion(gameObject.transform.position, TargetVec);

        //Vector3 pos = gameObject.transform.position;
        //pos.x = gameObject.transform.position.x + (TargetVec.x - pos.x) / 2.0f;
        //pos.z = 1.0f;
        //GameObject melee_trail = Instantiate<GameObject>(CResourceMgr.LoadEffect("SwordTrail"), pos, newRotation);

        //CTrail trail = melee_trail.GetComponent<CTrail>();
        //trail.Owner = gameObject;
        //CCombo1Ani ani = gameObject.GetComponentInChildren<CCombo1Ani>();
        //trail.HitMove = ani.HitMove;
        //trail.HitAniType = EHitAniType.Type1;
        ani.SpriteRendererNone();

        SoundMgr.PlaySound("Attack", ESoundType.Motion);
    }
예제 #11
0
    public override void Combo1Damage()
    {
        CCombo1Ani ani = gameObject.GetComponentInChildren <CCombo1Ani>();

        ani.SpriteRendererNone();
        Vector3    TargetVec   = RotateAngle == 0.0f ? gameObject.transform.position + Vector3.right * AttackRange : gameObject.transform.position + Vector3.left * AttackRange;
        Quaternion newRotation = CUtility.MakeQuaternion(gameObject.transform.position, TargetVec);

        // 이미지를 반시계방향으로 회전 시켜서 위로 바라 보게 만든다.
        Vector3 eulerAngles = newRotation.eulerAngles;

        eulerAngles.z += 90.0f;
        newRotation    = Quaternion.Euler(eulerAngles);

        GameObject ranged_object = Instantiate <GameObject>(CResourceMgr.LoadEffect("Arrow"), gameObject.transform.position, newRotation);
        CArrow     arrow         = ranged_object.GetComponent <CArrow>();

        arrow.Owner      = gameObject;
        arrow.EndPos     = TargetVec;
        arrow.HitAniType = EHitAniType.Type1;

        SoundMgr.PlaySound("Missile", ESoundType.Motion);
    }
예제 #12
0
    private void Update()
    {
        //if (Input.GetMouseButtonDown(0))
        //{
        //    if (CurCamera == null)
        //        return;

        //    Ray ray = CurCamera.ScreenPointToRay(Input.mousePosition);
        //    RaycastHit ray_cast_hit;
        //    if (Physics.Raycast(ray, out ray_cast_hit))
        //    {
        //        if ("TileImage" == ray_cast_hit.collider.tag)
        //        {
        //            Vector3 player_position = gameObject.transform.position;
        //            Vector3 end_position = ray_cast_hit.collider.transform.position;
        //            Character.Move(player_position, end_position);
        //        }
        //    }
        //}

        bool[] bKeyDown =
        {
            false,
            false,
            false,
            false,
        };
        Vector3 startPos = new Vector3();

        if (Input.GetKey(KeyCode.W))
        {
            startPos.y += 1.0f;
            bKeyDown[0] = true;
        }
        if (Input.GetKey(KeyCode.S))
        {
            startPos.y -= 1.0f;
            bKeyDown[1] = true;
        }
        if (Input.GetKey(KeyCode.A))
        {
            startPos.x -= 1.0f;
            bKeyDown[2] = true;
        }
        if (Input.GetKey(KeyCode.D))
        {
            startPos.x += 1.0f;
            bKeyDown[3] = true;
        }
        if (startPos.x != 0 || startPos.y != 0)
        {
            if (Character.curState == EState.Idle)
            {
                Vector3 EndPos = gameObject.transform.position + startPos;
                Character.Move(EndPos);
                CachedMovePos = startPos;
            }
        }

        bool bAllKeyDown = true;

        for (int i = 0; i < 4; ++i)
        {
            if (bKeyDown[i])
            {
                bAllKeyDown = false;
                break;
            }
        }
        bool bKeyUp = Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.S) || Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D);

        if (bKeyUp && bAllKeyDown)
        {
            Character.Stop();
        }

        if (Character.curState == EState.Die)
        {
            return;
        }

        if (Input.GetKey(KeyCode.J))
        {
            Character.Attack1();
        }
        if (Input.GetKey(KeyCode.K))
        {
            Character.Attack2();
        }
        if (Input.GetKeyDown(KeyCode.L))
        {
            Character.Skill();
        }

        if (Input.GetKeyDown(KeyCode.H))
        {
            Character.Dodge(CachedMovePos);
        }

        if (Input.GetKeyDown(KeyCode.F1))
        {
            //Texture2D tex2d = Resources.Load<Texture2D>("IT");
            //Rect rect= new Rect(32, 288, 32, 32);
            //Vector2 Pivot = new Vector2(0.5f, 0.5f);
            //Sprite cs = Sprite.Create(tex2d, rect, Pivot);
            CCombo1Ani ani         = Character.GetComponentInChildren <CCombo1Ani>();
            Sprite[]   FindSprites = CResourceMgr.LoadSprite("IT");
            Sprite     FindSprite  = FindSprites[184];

            ani.Sprites[0] = FindSprite;
            ani.Sprites[1] = FindSprite;
            ani.Sprites[2] = FindSprite;
            ani.Sprites[3] = FindSprite;
        }

        //if (Input.GetMouseButtonDown(0))
        //{
        //    Character.Attack1();
        //}
        //if (Input.GetMouseButtonDown(1))
        //{
        //    Character.Attack2();
        //}
    }