Exemple #1
0
        public override void Hit(GameObject gameObject)
        {
            Direction dir = CheckDirection(gameObject);

            if (gameObject is Player player)
            {
                if (player.Speed > Player.MaxSpeed / 2 &&
                    !IsDeadFlag)
                {
                    hitFlashCount = 0;
                    hitCount++;
                    GameDevice.Instance().DisplayQuake = new Vector2(0, 0.25f);
                    sound.PlaySE("enemy_hit");
                    HitStop.DoHitStop();
                }
            }
            if (gameObject is PlayerBullet)
            {
                if (!IsDeadFlag)
                {
                    hitCount += 0.25f;
                }
            }
            if (gameObject is WhiteBlock)
            {
            }
        }
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Exemple #3
0
        public void Initialize()
        {
            isEndFlag         = false;
            next              = Scene.Ending;
            gameObjectManager = new GameObjectManager();
            particleManager   = new ParticleManager();
            gameObjectManager.Initialize();
            particleManager.Initialize();
            LifeWall.Reset();
            var lifeWalls = LifeWall.GenerateWall(LifeWall.Count);

            gameObjectManager.AddWall(lifeWalls);
            nowMap = mapName[(int)Menu.GetDifficulty()];
            // csvからマップを読み込む場合

            var reader = GameDevice.Instance().GetCSVReader();

            //reader.Read("normal.csv");
            reader.Read(nowMap);
            var map = new Map(reader.GetData());

            gameObjectManager.Add(map);
            scroll     = map.Height;
            ScrollStop = false;
            hitStop    = new HitStop();
            fade       = new FadeIn();

            GameDevice.Instance().GetSound().PlayBGM(
                (Menu.GetDifficulty() == Menu.Difficulty.tutorial || Menu.GetDifficulty() == Menu.Difficulty.easy)
                ? "tutorial"
                : "stage"
                );
        }
Exemple #4
0
    private void Destruction()
    {
        Manager.player.maxSpeed += plusPlayerSpeed;
        HitStop.Stop(0.1f);
        Destroy(gameObject, 0.1f);
        GameObject instant = Instantiate(destroyEffect, transform.position, transform.rotation);

        Destroy(instant, 2);
    }
Exemple #5
0
    void Awake()
    {
        fixedRot = transform.rotation;

        rb          = GetComponent <Rigidbody2D>();
        hitStop     = FindObjectOfType <HitStop>();
        movement    = GetComponent <BallMovement>();
        screenshake = FindObjectOfType <Screenshake>();
        trail       = GetComponentInChildren <TrailRenderer>();
        sprite      = visualBall.GetComponent <SpriteRenderer>();
    }
Exemple #6
0
        public override void Hit(GameObject gameObject)
        {
            if (gameObject is Player)
            {
                float speed  = 10f;
                var   player = GameObjectManager.Instance.Find <Player>().First();
                //var rotation = Math.Atan2(player.Position.Y - Position.Y, player.Position.X - Position.X);
                if (player.Speed > Player.MaxSpeed / 2)
                {
                    HitStop.DoHitStop();
                    IsDead = true;//プレイヤーの最高速度/2よりも現在の速度が速い場合
                }
                else
                {
                    life--;
                    if (life <= 0)
                    {
                        IsDead = true;
                    }
                }
                //if(rotation < 0)
                //{
                //    Velocity = new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * speed;
                //}
                //else
                //{
                //    Velocity = new Vector2((float)Math.Cos(rotation), -(float)Math.Sin(rotation)) * speed;
                //}
            }
            if (gameObject is PlayerBullet)
            {
                life--;
                if (life <= 0)
                {
                    IsDead = true;
                }
            }

            if (gameObject is LifeWall)
            {
                IsDead = true;
            }
            if (IsDead)
            {
                sound.PlaySE("enemy_hit");
                new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center);
            }
            base.Hit(gameObject);
        }
Exemple #7
0
    public override void Whacked(PlayerController player)
    {
        if (player.photonView.isMine)
        {
            //send player ui an message to increase their score
            PlayerUI.LocalPlayerUi.IncreaseScore(scorePerHit);

            anim.SetTrigger("W");
            HitStop.PlayHitStop();
            if (!PhotonNetwork.offlineMode)
            {
                photonView.RPC("RPCSetAnimWhacked", PhotonTargets.OthersBuffered);
            }
        }
    }
    void OnCollisionEnter(Collision collision)
    {
        Player player = collision.gameObject.GetComponent <Player>();

        if (player != null)
        {
            HitStop.Stop(0.1f);
            player.ForcedIvent(transform.forward, forcedTime, forcedSpeed * (1 / player.maxSpeed));
        }

        Destroy(gameObject);
        GameObject instant = Instantiate(effect, transform.position, Quaternion.Euler(transform.up));

        Destroy(instant, 1);
    }
Exemple #9
0
        public override void Hit(GameObject gameObject)
        {
            if (gameObject is Player player)
            {
                var rotation = Math.Atan2(player.Position.Y - Position.Y, player.Position.X - Position.X);
                if (player.Speed > Player.MaxSpeed / 2)
                {
                    GameDevice.Instance().GetSound().PlaySE("tentacle_cut");
                    HitStop.DoHitStop();
                    life -= 10;
                    new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center);
                    Position = AnchorPosition;
                    HitStop.DoHitStop();
                }
                if (life <= 0)
                {
                    IsDead = true;
                }
            }
            if (gameObject is PlayerBullet)
            {
                life -= 4;
                if (life / 10 < currentlife / 10)
                {
                    HitStop.DoHitStop();
                    new DestroyParticle(Name, Position, Size, DestroyParticle.DestroyOption.Center);
                    Position = AnchorPosition;
                    sound.PlaySE("enemy_hit");
                    HitStop.DoHitStop();
                }
                if (life <= 0)
                {
                    GameDevice.Instance().GetSound().PlaySE("tentacle_cut");
                    IsDead = true;
                }
                currentlife = life;
            }

            if (gameObject is LifeWall)
            {
                Position = AnchorPosition;
            }
        }
Exemple #10
0
    private void OnCollisionEnter(Collision collision)
    {
        Enemy enemy = collision.gameObject.GetComponent <Enemy>();

        if (enemy == null)
        {
            return;
        }

        HitStop.Stop(0.1f);

        enemy.TakeDamage(rbMagnitude, 1);
        enemy.transform.position += (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized;
        enemy._rigidbody.velocity = (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized * rbMagnitude * Time.fixedDeltaTime;
        _rigidbody.velocity       = Vector3.zero;

        GameObject instant = Instantiate(effect, transform.position + transform.forward, transform.rotation);

        Destroy(instant, 2);
    }
    private void OnTriggerEnter(Collider other)
    {
        Enemy enemy = other.transform.gameObject.GetComponent <Enemy>();

        if (enemy == null)
        {
            return;
        }

        HitStop.Stop(0.15f);
        float enemyMagnitude = player.rbMagnitude * Time.fixedDeltaTime + InputManager.GetCtrlDis(number) * (1 / Time.fixedDeltaTime) * (1 / InputManager.GetCtrlCount());

        enemy.TakeDamage(player.rbMagnitude + Mathf.Min(player.rbMagnitude, enemyMagnitude), 1);
        enemy.transform.position  += (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized;
        enemy._rigidbody.velocity  = (enemy.transform.position - (transform.position + Vector3.up * Manager.PLAYER_HEIGHT)).normalized * player.rbMagnitude * enemyMagnitude;
        player._rigidbody.velocity = Vector3.zero;

        GameObject instant = Instantiate(gloveEffect, glove.transform.position + glove.transform.forward, glove.transform.rotation);

        Destroy(instant, 2);
    }
    private void Explode()
    {
        isExploding = true;

        HitStop.PlayHitStop();

        SpawnParticle(explosionParticlePrefab);

        //Iterate through everything
        Collider[] col = Physics.OverlapSphere(transform.position, explosionRadius);
        for (int i = 0; i < col.Length; i++)
        {
            if (col[i].GetComponent <PlayerBase>())
            {
                col[i].GetComponent <PlayerBase>().PController.Whacked();
            }
        }

        transform.position = spawnPos;
        anim.SetBool("Retract", true);
    }
Exemple #13
0
    public virtual void FixedUpdate()
    {
        if (HitStop != null)
        {
            HitStop.BaseStateFixedUpdate(this);

            if (HitStop.IsFinished())
            {
                HitStop = null;
            }
        }
        else
        {
            FixedUpdate(State);

            if (State.IsFinished())
            {
                State = null;
            }
        }
    }
Exemple #14
0
 public Damage(int hitstop, bool addDamage, float damage, int direction, bool ignoreDeffence)
 {
     hitStop         = new HitStop(hitstop);
     isAddDamage     = addDamage;
     damageParameter = new DamageParameter(direction, damage, ignoreDeffence);
 }
    // Start is called before the first frame update
    void Start()
    {
        hitStop = GetComponent <HitStop>();

        currentHealth = totalHealth;
    }
Exemple #16
0
 public Damage(int hitstop, bool addDamage, float damage, int direction, bool ignoreDeffence)
 {
     hitStop = new HitStop(hitstop);
     isAddDamage = addDamage;
     damageParameter = new DamageParameter(direction, damage, ignoreDeffence);
 }