Inheritance: EnemyCharacter
コード例 #1
0
ファイル: Boom.cs プロジェクト: 9Tempest/ThunderY
    void OnTriggerStay2D(Collider2D other)
    {
        Enemy          enemy  = other.GetComponent <Enemy>();
        EnemyShipType1 ship2  = other.GetComponent <EnemyShipType1>();
        EnemyPlane_01  plane1 = other.GetComponent <EnemyPlane_01>();
        EnemyBoss      boss   = other.GetComponent <EnemyBoss>();
        EnemyPlane_02  plane2 = other.GetComponent <EnemyPlane_02>();

        if (enemy != null)
        {
            enemy.ChangeHealth(hurt);
        }
        if (ship2 != null)
        {
            ship2.ChangeHealth(hurt);
        }
        if (plane1 != null)
        {
            plane1.ChangeHealth(hurt);
        }
        if (plane2 != null)
        {
            plane2.ChangeHealth(hurt);
        }
        if (boss != null)
        {
            boss.ChangeHealth(hurt);
        }
    }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: yamato-hgf/CatJump
    IEnumerator CreateStage(StageData stageData)
    {
        _initialized = false;
        _boss        = Instantiate <EnemyBoss>(_prefabEnemyBosses [stageData.StageNo]);
        _boss.transform.localPosition = stageData.BossPos;
        _boss.transform.SetParent(_gameUnitWorld.transform, false);

        foreach (StageDataObject stageDataObject in stageData.Objects)
        {
            StageObject prefab = null;
            switch (stageDataObject.Type)
            {
            case StageDataObject.DataType.Scaffold:
                prefab = _prefabObjectScaffolds[stageDataObject.Size];
                break;

            case StageDataObject.DataType.Block:
                prefab = _prefabObjectBlocks[stageDataObject.Size];
                break;
            }
            if (prefab != null)
            {
                StageObject stageObject = Instantiate <StageObject> (prefab);
                stageObject.Setup(stageDataObject);
                stageObject.transform.SetParent(_gameUnitWorld.transform, false);
            }
        }

        yield return(0);

        yield return(0);

        foreach (StageDataEnemy stageDataEnemy in stageData.Enemies)
        {
            EnemyBase prefab = null;
            switch (stageDataEnemy.Type)
            {
            case StageDataEnemy.DataType.Grounder:
                prefab = _prefabEnemyGrounders [stageDataEnemy.Level];
                break;

            case StageDataEnemy.DataType.Floater:
                prefab = _prefabEnemyFloters [stageDataEnemy.Level];
                break;

            case StageDataEnemy.DataType.Liner:
                prefab = _prefabEnemyLiners [stageDataEnemy.Level];
                break;
            }
            if (prefab != null)
            {
                EnemyBase enemy = Instantiate <EnemyBase> (prefab);
                enemy.transform.localPosition = stageDataEnemy.Pos;
                enemy.transform.SetParent(_gameUnitWorld.transform, false);
            }
        }

        _stageData   = stageData;
        _initialized = true;
    }
コード例 #3
0
ファイル: HealthTests.cs プロジェクト: Aaronboyle/SpaceWars
        public void BossHealthDecreasesTest()
        {
            EnemyBoss enemyBoss = new EnemyBoss();

            enemyBoss.Start();

            Assert.AreEqual(90.0f, enemyBoss.TakeDamage());
        }
コード例 #4
0
ファイル: EnemyBoss.cs プロジェクト: xinkailin95/GeekFantasy
    //public int enemyLife = 3;

    void Awake()
    {
        initPosition = transform.position;
        r2d          = GetComponent <Rigidbody2D> ();
        _instance    = this;

        Instantiate(healthBar, this.transform);
    }
コード例 #5
0
    void DamageBoss1(Transform boss1)
    {
        EnemyBoss eb = boss1.GetComponent <EnemyBoss>();

        if (eb != null)
        {
            eb.TakeDamage(BulletDamage);
        }
    }
コード例 #6
0
 public override void Update(GameTime gameTime)
 {
     if (GameManager.GetInstance().BossList.Count != 0 && !hasboss)
     {
         _boss   = GameManager.GetInstance().BossList.First();
         hasboss = true;
     }
     base.Update(gameTime);
 }
コード例 #7
0
ファイル: BossSpawn.cs プロジェクト: SyFySkyE/Need4Greed
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.CompareTag("Player"))
     {
         dragon = FindObjectOfType <EnemyBoss>();
         other.GetComponent <PlayerMover>().LandOnBossEnemy();
         this.gameObject.layer = 9;
         dragon.StateTwoThreeTransition();
     }
 }
コード例 #8
0
    public SeekStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnimations, Player target, FSM <T> fsm, T patrolStateEnemy, T attackStateEnemy)
    {
        _enemyBoss           = enemyBoss;
        _enemyBossAnimations = enemyBossAnimations;
        _target = target;

        _fsm = fsm;
        _patrolStateEnemy = patrolStateEnemy;
        _attackStateEnemy = attackStateEnemy;
    }
コード例 #9
0
    public PatrolStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnimations, Player target, FSM <T> fsm, T idleStateEnemy, T seekStateEnemy)
    {
        _enemyBoss           = enemyBoss;
        _enemyBossAnimations = enemyBossAnimations;
        _target = target;

        _fsm            = fsm;
        _idleStateEnemy = idleStateEnemy;
        _seekStateEnemy = seekStateEnemy;
    }
コード例 #10
0
    public BlockStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnimations, Player target, FSM <T> fsm,
                           T idleStateEnemy, T attackStateEnemy)
    {
        _enemyBoss           = enemyBoss;
        _enemyBossAnimations = enemyBossAnimations;
        _target = target;

        _fsm              = fsm;
        _idleStateEnemy   = idleStateEnemy;
        _attackStateEnemy = attackStateEnemy;
    }
コード例 #11
0
    // Use this for initialization
    protected void Start()
    {
        SubscribeToTargets();

        boss = FindObjectOfType <EnemyBoss>();
        if (boss != null)
        {
            boss.BossHt += OnBossHt;
        }

        movSpeed = Random.Range(4f, 10f);
    }
コード例 #12
0
    //T _blockStateEnemy;

    public HitStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnimations, Player target, FSM <T> fsm,
                         T attackStateEnemt, T idleStateEnemy /*, T blockStateEnemy*/)
    {
        _enemyBoss           = enemyBoss;
        _enemyBossAnimations = enemyBossAnimations;
        _target = target;

        _fsm = fsm;
        _attackStateEnemy = attackStateEnemt;
        _idleStateEnemy   = idleStateEnemy;
        //_blockStateEnemy = blockStateEnemy;
    }
コード例 #13
0
    public IdleStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnimations, Player target, FSM <T> fsm, T patrolStateEnemy, T hitStateEnemy,
                          T dieStateEnemy)
    {
        _enemyBoss           = enemyBoss;
        _enemyBossAnimations = enemyBossAnimations;
        _target = target;

        _fsm = fsm;
        _patrolStateEnemy = patrolStateEnemy;
        _hitStateEnemy    = hitStateEnemy;
        _dieStateEnemy    = dieStateEnemy;
    }
コード例 #14
0
    public AttackStateEnemy(EnemyBoss enemyBoss, EnemyBossAnim enemyBossAnim, Player target, FSM <T> fsm, T seekStateEnemy /*, T blockStateEnemy*/,
                            T hitStateEnemy, T dieStateEnemy)
    {
        _enemyBoss     = enemyBoss;
        _enemyBossAnim = enemyBossAnim;
        _target        = target;

        _fsm            = fsm;
        _seekStateEnemy = seekStateEnemy;
        //_blockStateEnemy = blockStateEnemy;
        _hitStateEnemy = hitStateEnemy;
        _dieStateEnemy = dieStateEnemy;
    }
コード例 #15
0
ファイル: PlasmaProjectile.cs プロジェクト: polezniy/TDU
    void Damage(Transform enemy)
    {
        Enemy e = enemy.GetComponent <Enemy>();

        if (e != null)
        {
            e.TakeDamage(damage);
        }
        else   // If its can't find enemy component then it is a boss;
        {
            EnemyBoss eb = enemy.GetComponent <EnemyBoss>();
            eb.TakeDamage(damage);
        }
    }
コード例 #16
0
    private void spawnBossObject()
    {
        GameObject spawnedObject =
            Instantiate(bossSpawns[GameController.stage], bossStartPos.position, Quaternion.identity);

        EnemyBoss boss = spawnedObject.GetComponent <EnemyBoss>();

        boss.setStartEndPosition(bossStartPos.position, bossEndPos.position);
        //boss.AddPatrolTransforms(bossPatrolList.ToArray());

        boss.patrolTransformList.AddRange(bossPatrolList);

        BGM bgm = FindObjectOfType <BGM>();

        bgm.SwapBGM(GameAudio.bossTransition);
    }
コード例 #17
0
        public void TestBossDiedOnTenHits()
        {
            EnemyBoss boss = new EnemyBoss();

            boss.Start();

            bool expected = true;

            for (int i = 0; i <= 9; i++)
            {
                boss.TakeDamage();
            }

            bool result = boss.IsDead;

            Assert.AreEqual(expected, result);
        }
コード例 #18
0
        public void TestBossHealthIsZeroAfterTenHits()
        {
            EnemyBoss boss = new EnemyBoss();

            boss.Start();

            float expected = 0.0f;

            for (int i = 0; i <= 9; i++)
            {
                boss.TakeDamage();
            }

            float result = boss.bossHealth;

            Assert.AreEqual(expected, result);
        }
コード例 #19
0
ファイル: Boids.cs プロジェクト: hwulfmeyer/space-assault
        public void addBoid(Vector3 position, EnemyType type)
        {
            AEnemys ship;

            switch (type)
            {
            case EnemyType.Fighter:
                ship = new EnemyFighter(position);
                ship.LoadContent(fighterModel);
                break;

            case EnemyType.Fighter2:
                ship = new EnemyFighter2(position);
                ship.LoadContent(fighter2Model);
                break;

            case EnemyType.Fighter3:
                ship = new EnemyFighter3(position);
                ship.LoadContent(fighter3Model);
                break;

            case EnemyType.Bomber:
                ship = new EnemyBomber(position);
                ship.LoadContent(bomberModel);
                break;

            case EnemyType.Bomber2:
                ship = new EnemyBomber2(position);
                ship.LoadContent(bomber2Model);
                break;

            case EnemyType.Boss:
                ship = new EnemyBoss(position);
                ship.LoadContent(bossModel);
                break;

            default:
                ship = new EnemyFighter(position);
                ship.LoadContent(fighterModel);
                break;
            }
            ship.flyingAwayFromDrone   = false;
            ship.flyingAwayFromStation = false;
            _ships.Add(ship);
        }
コード例 #20
0
 /// <summary>
 /// 配置敌人属性
 /// </summary>
 /// <param name="enemy">敌方坦克</param>
 /// <param name="isBossTank">是否为BOSS坦克</param>
 /// <param name="Life">生命值</param>
 /// <param name="speed">移速</param>
 /// <param name="autoMoveHZ">自动移动的频率  (秒/次)</param>
 /// <param name="autoMoveTim">每次移动的时长  (秒)</param>
 /// <param name="bulletAtk">子弹攻击力</param>
 /// <param name="autoAttackHZ">攻击频率 (秒/次)</param>
 /// <param name="godTimer">无敌时长 (秒)</param>
 private void InitEnemyTankProperty(GameObject enemy, bool isBossTank,
                                    int Life, float moveSpeed, float autoMoveHZ, float autoMoveTime, int bulletAtk
                                    , float autoAttackHZ, float godTimer)
 {
     if (isBossTank)
     {
         //BOSS
         EnemyBoss enemyBoss = enemy.GetComponent <EnemyBoss>();
         if (enemyBoss == null)
         {
             Debug.LogError("未找到EnemyBoss脚本");
         }
         else
         {
             enemyBoss.CurEnemyLife = Life;
             enemyBoss.moveSpeed    = moveSpeed;
             enemyBoss.autoAttackHZ = autoMoveHZ;
             enemyBoss.autoMoveTime = autoMoveTime;
             enemyBoss.bulletAtk    = bulletAtk;
             enemyBoss.autoAttackHZ = autoAttackHZ;
             enemyBoss.godTimer     = godTimer;
         }
     }
     else
     {
         Enemy enemyNormal = enemy.GetComponent <Enemy>();
         if (enemyNormal == null)
         {
             Debug.LogError("未找到Enemy脚本");
         }
         else
         {
             enemyNormal.CurEnemyLife = Life;
             enemyNormal.moveSpeed    = moveSpeed;
             enemyNormal.autoAttackHZ = autoMoveHZ;
             enemyNormal.autoMoveTime = autoMoveTime;
             enemyNormal.bulletAtk    = bulletAtk;
             enemyNormal.autoAttackHZ = autoAttackHZ;
             enemyNormal.godTimer     = godTimer;
         }
     }
 }
コード例 #21
0
    private void Start()
    {
        _gameManager     = GameObject.Find("Game Manager").GetComponent <GameManager>();
        _enemyBossScript = EnemyBoss.GetComponent <EnemyBoss>();
        audioSource      = GetComponent <AudioSource>();

        if (_gameManager == null)
        {
            Debug.LogError("The Game Manager is null.");
        }

        if (_enemyBossScript == null)
        {
            Debug.LogError("The EnemyBoss Script is null.");
        }

        if (audioSource == null)
        {
            Debug.LogError("The audio source is null.");
        }
    }
コード例 #22
0
    public void SpawnBoss(int bossIndex)
    {
        Vector3   enemyCoordonates = new Vector3(16, 0, 14);
        EnemyBoss enemyBoss        = Instantiate(boss, new Vector3(16, 0, 25), Quaternion.identity).GetComponent <EnemyBoss>();

        switch (bossIndex)
        {
        case 1:
            enemyBoss.Initialize(300, 2, 0.5f, enemyCoordonates, bossIndex);
            break;

        case 2:
            enemyBoss.Initialize(500, 2, 0.5f, enemyCoordonates, bossIndex);
            break;

        case 3:
            enemyBoss.Initialize(800, 2, 0.5f, enemyCoordonates, bossIndex);
            break;
        }
        enemyinGame.Add(enemyBoss.gameObject); //new
        enemiesAlive++;
    }
コード例 #23
0
    private void Start()
    {
        _spawnManager = GameObject.Find("Spawn Manager").GetComponent <SpawnManager>();

        if (_spawnManager == null)
        {
            Debug.LogError("The Spawn Manager is null.");
        }

        _enemyBoss = GameObject.Find("EnemyBoss(Clone)").GetComponent <EnemyBoss>();

        if (_enemyBoss == null)
        {
            Debug.Log("The FireBossTurretLaser is null.");
        }

        _rb = GetComponent <Rigidbody2D>();

        _playerGameObject = GameObject.Find("Player");

        _enemyBossDefaultAimPoint = GameObject.Find("EnemyBossDefaultAimPoint");
    }
コード例 #24
0
    void Start()
    {
        gameOver          = false;
        restart           = false;
        restartText.text  = "";
        gameOverText.text = "";
        waveText.text     = "";

        playerObject = GameObject.FindWithTag("Player");
        player       = playerObject.GetComponent <PlayerController>();

        enemyBoss = boss1.GetComponent <EnemyBoss>();


        score = 0;
        wave  = 1;

        UpdateScore();
        UpdateWaveCount();

        StartCoroutine(SpawnWaves());
    }
コード例 #25
0
ファイル: ForestLevel.cs プロジェクト: bnweddle/Final-Project
        public void LoadContent(ContentManager content)
        {
            message.LoadContent(content);
            enemyHealth.LoadContent(content);
            enemyGauge.LoadContent(content);

            forestLayer = new ParallaxLayer(game);

            float offset = 200;

            for (int i = 0; i < 10; i++)
            {
                BasicEnemy forestEnemy = new BasicEnemy(game, GameState.Forest, new Vector2(300 + offset, 500));
                forestEnemy.LoadContent(content);
                forestLayer.Sprites.Add(forestEnemy);
                forestEnemies.Add(forestEnemy);
                offset += random.Next(200, 300);
            }

            forestBoss = new EnemyBoss(game, GameState.Forest, new Vector2(3500, 420));
            forestBoss.LoadContent(content);
            forestLayer.Sprites.Add(forestBoss);
            forestEnemies.Add(forestBoss);

            ActiveEnemy          = forestEnemies[0];
            ActiveEnemy.IsActive = true;

            foreach (IEnemy e in forestEnemies)
            {
                System.Diagnostics.Debug.WriteLine($"{e.IsActive} activity");
            }

            game.Components.Add(forestLayer);
            forestLayer.DrawOrder = 2;
            forestT = new TrackingPlayer(game.player, 1.0f);

            forestLayer.ScrollController = forestT;
        }
コード例 #26
0
    void AttackDarkRepulsor()
    {
        lastAttackTime = Time.time;
        // calculate the direction

        Vector3 dir = (Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position)).normalized * 1.5f;

        // shoot a raycast in the direction
        RaycastHit2D hit = Physics2D.Raycast(transform.position + dir, dir, attackRange);

        Debug.DrawRay(transform.position + dir, dir * attackRange, Color.cyan, duration);

        // did we hit an enemy?
        if (hit.collider != null && hit.collider.gameObject.CompareTag("Enemy"))
        {
            Debug.Log("Hit an enemy");
            // get the enemy and damage them
            Enemy enemy = hit.collider.GetComponent <Enemy>();
            //EnemyBoss enemyBoss = hit.collider.GetComponent<EnemyBoss>();
            enemy.photonView.RPC("TakeDamage", RpcTarget.MasterClient, damage);
            //enemyBoss.photonView.RPC("TakeDamage", RpcTarget.MasterClient, damage);
        }

        if (hit.collider != null && hit.collider.gameObject.CompareTag("Boss"))
        {
            Debug.Log("Hit the boss");
            // get the enemy and damage them
            //Enemy enemy = hit.collider.GetComponent<Enemy>();
            EnemyBoss enemyBoss = hit.collider.GetComponent <EnemyBoss>();
            //enemy.photonView.RPC("TakeDamage", RpcTarget.MasterClient, damage);
            enemyBoss.photonView.RPC("TakeDamage", RpcTarget.MasterClient, damage);
        }

        // play attack animation
        //weaponAnimElucidator.SetTrigger("Attack");

        weaponAnimDarkRepulsor.SetTrigger("Attack");
    }
コード例 #27
0
ファイル: EnemyShip.cs プロジェクト: ewdlop/SpaceProjectXL
    // Use this for initialization
    protected new void Start()
    {
        parentShip = GetComponentInParent <EnemyBoss>();

        timer = 0;

        base.Start(); // Setup the hit flash

        if (isAmbushShip)
        {
            yRange = UnityEngine.Random.Range(-7.5f, 7.5f);
            float random = UnityEngine.Random.Range(-7.5f, 7.5f);
            if (random <= 0.5f)
            {
                isRightToLeft = true;
            }
        }

        for (int i = 0; i < enemyWeaponList.Count; ++i)
        {
            weaponCooldownTimerList.Add(0);
        }
    }
コード例 #28
0
    public void SetupBossAlien()
    {
        _gameManager.PlayMusic(2, 5.0f);

        if (isBossActive != true)
        {
            Vector3    pxToSpawn     = new Vector3(Random.Range(-8f, 8f), 12.0f, 0f);
            Quaternion spawnRotation = Quaternion.Euler(0, 0, 90);
            Instantiate(_enemyBoss, pxToSpawn, spawnRotation);

            isBossActive           = true;
            stopSpawningEnemies    = true;
            stopSpawning           = false;
            _bossTurretsDestroyed  = false;
            _bossMiniGunsDestroyed = false;
            _bossCanonsDestroyed   = false;

            bossTurretsDestroyed  = 0;
            bossMiniGunsDestroyed = 0;
            bossCanonsDestroyed   = 0;

            if (isBossActive == true)
            {
                _enemyBossScript = GameObject.Find("EnemyBoss(Clone)").GetComponent <EnemyBoss>();

                if (_enemyBossScript == null)
                {
                    Debug.LogError("The Enemy Boss script is null.");
                }
            }

            StartCoroutine(SpawnBasicPowerUps());
            StartCoroutine(SpawnWeaponsPowerUps());
            StartCoroutine(SpawnHealthAndNegPowerUps());
        }
    }
コード例 #29
0
ファイル: Level.cs プロジェクト: KyonKisters/Raf_The_Raptor
 private void Loader_OnObjectCreated(Sprite sprite, TiledObject obj)
 {
     if (sprite is Player player)
     {
         this.player = player;
         this.player.createLevelInst(this);
         this.player.createGameInst(_game);
         this.player.giveLevelNumber(levelNumber);
         camera = new Camera(0, 0, 800, 600);
         this.player.AddChild(camera);
     }
     if (sprite is Enemy enemy)
     {
         enemies.Add(enemy);
         enemy.createLevelInst(this);
     }
     if (sprite is EnemyBoss enemyBoss)
     {
         this.enemyBoss = enemyBoss;
         AddChild(enemyBoss);
         enemyBoss.createLevelInst(this);
     }
     if (sprite is TRex trex)
     {
         trexs.Add(trex);
         trex.createLevelInst(this);
     }
     if (sprite is Enemypack enemypack)
     {
         enemypacks.Add(enemypack);
     }
     if (sprite is MummyKiller mummyKiller)
     {
         this.mummykiller = mummyKiller;
     }
 }
コード例 #30
0
    void Start()
    {
        _spawnManager = GameObject.Find("Spawn Manager").GetComponent <SpawnManager>();
        _gameManager  = GameObject.Find("Game Manager").GetComponent <GameManager>();
        _enemyBoss    = GameObject.Find("EnemyBoss(Clone)").GetComponent <EnemyBoss>();

        randomSpot = Random.Range(0, _spawnManager.bossWaypoints.Length);
        waitTime   = startWaitTime;

        if (_gameManager == null)
        {
            Debug.LogError("The Game_Manager is null.");
        }

        if (_spawnManager == null)
        {
            Debug.LogError("The Spawn Manageris null.");
        }

        if (_enemyBoss == null)
        {
            Debug.LogError("The Enemy Boss script is null.");
        }
    }
コード例 #31
0
 // Use this for initialization
 void Start()
 {
     boss = FindObjectOfType<EnemyBoss>();
 }
コード例 #32
0
 void Start()
 {
     _controller = GetComponent<EnemyBoss>();
 }
コード例 #33
0
 // Use this for initialization
 void Start()
 {
     parent = GetComponentInParent<EnemyBoss>();
     //Debug.Log(parent.gameObject.name);
 }