コード例 #1
0
 public Ladybug(Texture2D enemyTexture, Vector2 enemySize, Vector2 enemyPosition, int gameObjectID, Dictionary <string, Texture2D> EnemySpriteSheetsDic) : base(enemyTexture, enemySize, enemyPosition, gameObjectID, EnemySpriteSheetsDic)
 {
     enemyHP          = 2;
     movementSpeed    = 5f;
     knockBackValue   = 15f;
     attackDamage     = 0.08f;
     attackRange      = 70f;
     animationManager = new AnimationManagerEnemy(EnemySpriteSheetsDic);
 }
コード例 #2
0
 public Spider(Texture2D enemyTexture, Vector2 enemySize, Vector2 enemyPosition, int gameObjectID, Dictionary <string, Texture2D> EnemySpriteSheetsDic) : base(enemyTexture, enemySize, enemyPosition, gameObjectID, EnemySpriteSheetsDic)
 {
     enemyHP                   = 1;
     movementSpeed             = 6f;
     knockBackValue            = 30f;
     attackDamage              = 0.07f;
     attackRange               = 400f;
     animationManager          = new AnimationManagerEnemy(EnemySpriteSheetsDic);
     projectileList            = new List <Projectile>();
     alreadyShot               = false;
     this.EnemySpriteSheetsDic = EnemySpriteSheetsDic;
 }
コード例 #3
0
 public Snail(Texture2D enemyTexture, Vector2 enemySize, Vector2 enemyPosition, int gameObjectID, Dictionary <string, Texture2D> EnemySpriteSheetsDic) : base(enemyTexture, enemySize, enemyPosition, gameObjectID, EnemySpriteSheetsDic)
 {
     enemyHP          = 200;
     movementSpeed    = 3f;
     knockBackValue   = 10f;
     attackDamage     = 0.09f;
     attackRange      = 400f;
     animationManager = new AnimationManagerEnemy(EnemySpriteSheetsDic);
     projectileList   = new List <Projectile>();
     alreadyShot      = false;
     //enemyAggroAreaSize = new Vector4(500, 500, 1100, 1050);
     //changeCollisionBox = new Vector2(0, 0);
     //enemyAggroArea = new Rectangle((int)(enemyPosition.X - enemyAggroAreaSize.X), (int)(enemyPosition.Y - enemyAggroAreaSize.Y), (int)(enemyAggroAreaSize.Z), (int)(enemyAggroAreaSize.W));
     //collisionBoxPosition = new Vector2(enemyPosition.X + changeCollisionBox.X, enemyPosition.Y + changeCollisionBox.Y);
     //collisionBoxSize = new Vector2(enemySize.X, enemySize.Y);
     //movementDirectionGone = 0;
 }
コード例 #4
0
        public Boss(Texture2D enemyTexture, Vector2 enemySize, Vector2 enemyPosition, int gameObjectID, Dictionary <string, Texture2D> EnemySpriteSheetsDic) : base(enemyTexture, enemySize, enemyPosition, gameObjectID, EnemySpriteSheetsDic)
        {
            enemyHP = 100;

            diveDamage                = 0.1f;
            animationManager          = new AnimationManagerEnemy(EnemySpriteSheetsDic);
            projectileList            = new List <Projectile>();
            this.EnemySpriteSheetsDic = EnemySpriteSheetsDic;
            bossPhase               = 1;
            currentBossPhase        = 1;
            phase1Route             = 0;
            chargeCounter           = 0;
            bossRest                = false;
            attackExecuted          = true;
            attackAction            = false;
            restCooldown            = 0;
            projectileSpawnCooldown = 0;
            changeDirection         = 0;
        }
コード例 #5
0
    // Use this for initialization
    void Start()
    {
        //set spawn point
        destinationPosition = this.transform.position;

        //get anathor component
        animationManager = this.GetComponent <AnimationManagerEnemy>();
        enemyStatus      = this.GetComponent <EnemyStatus>();
        controller       = this.GetComponent <CharacterController>();
        questData        = GameObject.Find("QuestData").GetComponent <Quest_Data>();

        delayAttack = 100;     //Declare delay 100 sec
        flinchValue = 100;     //Declare flinch value (if zero it will flinch)
        fadeValue   = 1;       //Set fade value

        //Set first spawn point
        spawnPoint = transform.position;

        //set default value
        defaultReturnPhase = returnPhase;
        defaultHP          = enemyStatus.status.hp;
        defaultMP          = enemyStatus.status.mp;

        defaultColor = new Color[modelMesh.Count];
        SetDefualtColor();

        if (behavior == EnemyBehavior.MoveAround)
        {
            moveBehavior = MoveAroundBehavior.Waiting;
        }

        //warning when enemy isn't detect area
        if (nature == EnemyNature.Wild)
        {
            detectArea = GameObject.Find("DetectArea");

            if (detectArea == null)
            {
                Debug.LogWarning("Don't found DetectArea in Enemy -" + enemyStatus.name);
            }
        }
    }
コード例 #6
0
    public override void OnInspectorGUI()
    {
        AnimationManagerEnemy animManagerEnemy = (AnimationManagerEnemy)target;

        showIdle = EditorGUILayout.Foldout(showIdle, "Idle Animation");
        if (showIdle)
        {
            animManagerEnemy.idle.animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.idle.animation, typeof(AnimationClip), true);
            animManagerEnemy.idle.speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.idle.speedAnimation, 0, 3);
        }

        showDeath = EditorGUILayout.Foldout(showDeath, "Death Animation");
        if (showDeath)
        {
            animManagerEnemy.death.animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.death.animation, typeof(AnimationClip), true);
            animManagerEnemy.death.speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.death.speedAnimation, 0, 3);
        }
        showMove = EditorGUILayout.Foldout(showMove, "Move Animation");
        if (showMove)
        {
            animManagerEnemy.move.animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.move.animation, typeof(AnimationClip), true);
            animManagerEnemy.move.speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.move.speedAnimation, 0, 3);
            animManagerEnemy.move.speedTuning    = EditorGUILayout.Toggle("Speed Tuning", animManagerEnemy.move.speedTuning);
        }

        EditorGUILayout.Space();
        EditorGUILayout.Space();


        //Normal Atk
        showNormalAtk = EditorGUILayout.Foldout(showNormalAtk, "Normal Attack Animation");
        EditorGUI.indentLevel++;
        if (showNormalAtk)
        {
            animManagerEnemy.sizeNAtk = EditorGUILayout.IntField("Normal Attack Size", animManagerEnemy.sizeNAtk);

            while (animManagerEnemy.sizeNAtk != animManagerEnemy.normalAttack.Count)
            {
                if (animManagerEnemy.sizeNAtk > animManagerEnemy.normalAttack.Count)
                {
                    animManagerEnemy.normalAttack.Add(new AnimationManagerEnemy.AnimationNormalAttack());
                    animManagerEnemy.showNormalAtkSize.Add(true);
                }
                else
                {
                    animManagerEnemy.normalAttack.RemoveAt(animManagerEnemy.normalAttack.Count - 1);
                    animManagerEnemy.showNormalAtkSize.RemoveAt(animManagerEnemy.showNormalAtkSize.Count - 1);
                }
            }

            for (int i = 0; i < animManagerEnemy.normalAttack.Count; i++)
            {
                animManagerEnemy.showNormalAtkSize[i] = EditorGUILayout.Foldout(animManagerEnemy.showNormalAtkSize[i], animManagerEnemy.normalAttack[i]._name);

                if (animManagerEnemy.showNormalAtkSize[i])
                {
                    animManagerEnemy.normalAttack[i]._name          = EditorGUILayout.TextField("Attack Name", animManagerEnemy.normalAttack[i]._name);
                    animManagerEnemy.normalAttack[i].animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.normalAttack[i].animation, typeof(AnimationClip), true);
                    animManagerEnemy.normalAttack[i].speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.normalAttack[i].speedAnimation, 0, 3);
                    animManagerEnemy.normalAttack[i].attackTimer    = EditorGUILayout.Slider("Attack Timer", animManagerEnemy.normalAttack[i].attackTimer, 0, 0.99f);
                    animManagerEnemy.normalAttack[i].multipleDamage = EditorGUILayout.Slider("Multiple Damage", animManagerEnemy.normalAttack[i].multipleDamage, 0, 10);
                    animManagerEnemy.normalAttack[i].flinchValue    = EditorGUILayout.Slider("Flinch Value", animManagerEnemy.normalAttack[i].flinchValue, 0, 100);
                    animManagerEnemy.normalAttack[i].speedTuning    = EditorGUILayout.Toggle("Speed Tuning", animManagerEnemy.normalAttack[i].speedTuning);
                    animManagerEnemy.normalAttack[i].attackFX       = (GameObject)EditorGUILayout.ObjectField("Attack Effect", animManagerEnemy.normalAttack[i].attackFX, typeof(GameObject), true);
                    animManagerEnemy.normalAttack[i].soundFX        = (AudioClip)EditorGUILayout.ObjectField("Sound Effect", animManagerEnemy.normalAttack[i].soundFX, typeof(AudioClip), true);
                }
            }
        }
        EditorGUI.indentLevel--;
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        //Critical Attack
        showCritAtk = EditorGUILayout.Foldout(showCritAtk, "Critical Attack Animation");
        EditorGUI.indentLevel++;
        if (showCritAtk)
        {
            animManagerEnemy.sizeCritAtk = EditorGUILayout.IntField("Critical Attack Size", animManagerEnemy.sizeCritAtk);

            while (animManagerEnemy.sizeCritAtk != animManagerEnemy.criticalAttack.Count)
            {
                if (animManagerEnemy.sizeCritAtk > animManagerEnemy.criticalAttack.Count)
                {
                    animManagerEnemy.criticalAttack.Add(new AnimationManagerEnemy.AnimationCritAttack());
                    animManagerEnemy.showCritSize.Add(true);
                }
                else
                {
                    animManagerEnemy.criticalAttack.RemoveAt(animManagerEnemy.criticalAttack.Count - 1);
                    animManagerEnemy.showCritSize.RemoveAt(animManagerEnemy.showCritSize.Count - 1);
                }
            }

            for (int i = 0; i < animManagerEnemy.criticalAttack.Count; i++)
            {
                animManagerEnemy.showCritSize[i] = EditorGUILayout.Foldout(animManagerEnemy.showCritSize[i], animManagerEnemy.criticalAttack[i]._name);

                if (animManagerEnemy.showCritSize[i])
                {
                    animManagerEnemy.criticalAttack[i]._name          = EditorGUILayout.TextField("Attack Name", animManagerEnemy.criticalAttack[i]._name);
                    animManagerEnemy.criticalAttack[i].animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.criticalAttack[i].animation, typeof(AnimationClip), true);
                    animManagerEnemy.criticalAttack[i].speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.criticalAttack[i].speedAnimation, 0, 3);
                    animManagerEnemy.criticalAttack[i].attackTimer    = EditorGUILayout.Slider("Attack Timer", animManagerEnemy.criticalAttack[i].attackTimer, 0, 0.99f);
                    animManagerEnemy.criticalAttack[i].multipleDamage = EditorGUILayout.Slider("Multiple Damage", animManagerEnemy.criticalAttack[i].multipleDamage, 0, 10);
                    animManagerEnemy.criticalAttack[i].flinchValue    = EditorGUILayout.Slider("Flinch Value", animManagerEnemy.criticalAttack[i].flinchValue, 0, 100);
                    animManagerEnemy.criticalAttack[i].speedTuning    = EditorGUILayout.Toggle("Speed Tuning", animManagerEnemy.criticalAttack[i].speedTuning);
                    animManagerEnemy.criticalAttack[i].attackFX       = (GameObject)EditorGUILayout.ObjectField("Attack Effect", animManagerEnemy.criticalAttack[i].attackFX, typeof(GameObject), true);
                    animManagerEnemy.criticalAttack[i].soundFX        = (AudioClip)EditorGUILayout.ObjectField("Sound Effect", animManagerEnemy.criticalAttack[i].soundFX, typeof(AudioClip), true);
                }
            }
        }

        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUI.indentLevel--;
        //Take Attack
        showTakeDmg = EditorGUILayout.Foldout(showCritAtk, "Take Attack Animation");
        EditorGUI.indentLevel++;
        if (showTakeDmg)
        {
            animManagerEnemy.sizeTakeDmg = EditorGUILayout.IntField("Take Attack Size", animManagerEnemy.sizeTakeDmg);

            while (animManagerEnemy.sizeTakeDmg != animManagerEnemy.takeAttack.Count)
            {
                if (animManagerEnemy.sizeTakeDmg > animManagerEnemy.takeAttack.Count)
                {
                    animManagerEnemy.takeAttack.Add(new AnimationManagerEnemy.AnimationTakeAttack());
                    animManagerEnemy.showTakeDmgSize.Add(true);
                }
                else
                {
                    animManagerEnemy.takeAttack.RemoveAt(animManagerEnemy.takeAttack.Count - 1);
                    animManagerEnemy.showTakeDmgSize.RemoveAt(animManagerEnemy.showTakeDmgSize.Count - 1);
                }
            }

            for (int i = 0; i < animManagerEnemy.takeAttack.Count; i++)
            {
                animManagerEnemy.showTakeDmgSize[i] = EditorGUILayout.Foldout(animManagerEnemy.showTakeDmgSize[i], animManagerEnemy.takeAttack[i]._name);

                if (animManagerEnemy.showTakeDmgSize[i])
                {
                    animManagerEnemy.takeAttack[i]._name          = EditorGUILayout.TextField("Take Attack Name", animManagerEnemy.takeAttack[i]._name);
                    animManagerEnemy.takeAttack[i].animation      = (AnimationClip)EditorGUILayout.ObjectField("Animation", animManagerEnemy.takeAttack[i].animation, typeof(AnimationClip), true);
                    animManagerEnemy.takeAttack[i].speedAnimation = EditorGUILayout.Slider("Speed Animation", animManagerEnemy.takeAttack[i].speedAnimation, 0, 3);
                }
            }
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(animManagerEnemy);
        }
    }