Esempio n. 1
0
    public override void OnUpdate(float deltaTime)
    {
        if (onTankShootRequestedEvent.IsPublished)
        {
            foreach (var networkViewIDStr in onTankShootRequestedEvent.BatchedChanges)
            {
                int            networkViewID  = int.Parse(networkViewIDStr);
                PlayerProvider playerProvider = null;

                foreach (var p in playersFilter)
                {
                    ref PlayerComponent pc = ref p.GetComponent <PlayerComponent>();
                    if (pc.networkPlayer.networkViewID == networkViewID)
                    {
                        playerProvider = pc.networkPlayer.GetPlayerProvider();
                        break;
                    }
                }

                if (playerProvider == null)
                {
                    continue;
                }

                Entity tankEntity = playerProvider.Entity;

                ref TankComponent tank = ref tankEntity.GetComponent <TankComponent>();

                ProjectileProvider            pp               = ObjectSpawner.inst.InstantiateBullet();
                ref ProjectileComponent       projectile       = ref pp.Entity.GetComponent <ProjectileComponent>();
Esempio n. 2
0
    public ProjectileProvider InstantiateBullet()
    {
        //ProjectileProvider newProjectile = PhotonNetwork.Instantiate("Prefabs/" + projectileProvider.name, Vector3.zero, Quaternion.identity).GetComponent<ProjectileProvider>();
        ProjectileProvider newProjectile = Instantiate(projectileProvider) as ProjectileProvider;

        return(newProjectile);
    }
Esempio n. 3
0
    void OnCollisionEnter2D(Collision2D col)
    {
        PlayerController playerControl = gameObject.GetComponent <PlayerController> ();

        if (col.collider.tag == "Ground")
        {
            playerControl.resetJumpIfGrounded(col);
        }
        else if (col.collider.tag == "Weapon")
        {
        }
        else if (col.collider.tag == "Projectile")
        {
            ProjectileProvider projP = col.collider.gameObject.GetComponent <ProjectileProvider> ();
            int attack = projP.getAttack();

            playerControl.knockback(0.0f, 0.0f);
            //playerControl.destroy ();

            playerControl.getHit(attack);
        }
        else if (col.collider.tag == "Boss")
        {
            EnemyProvider enemyP = col.collider.gameObject.GetComponent <EnemyProvider> ();
            // NEEDS TO BE IMPLEMENTED ~ int attack = enemyP.getAttack ();

            playerControl.knockback(0.0f, 0.0f);
            playerControl.getHit(0);
        }
    }
Esempio n. 4
0
    public void Subscribe(object _provider)
    {
        provider       = (ProjectileProvider)_provider;
        Translation    = this.provider.LastTranslation;
        LinearVelocity = this.provider.LastLinearVelocity;

        provider.Connect(nameof(ProjectileProvider.TrajectoryUpdated), this, nameof(OnTrajectoryUpdated));
        this.DefaultSubscribe(this.provider);
    }
Esempio n. 5
0
    void OnCollisionEnter2D(Collision2D col)
    {
        EnemyController enemyControl = gameObject.GetComponent <EnemyController> ();

        if (col.gameObject.tag == "Projectile")
        {
            ProjectileProvider projectileProvider = col.gameObject.GetComponent <ProjectileProvider> ();

            int attack = projectileProvider.getAttack();
            enemyControl.takeDamage(attack);
        }
    }
Esempio n. 6
0
    //Default code for firing a projectile.
    //Unlikely anyone will need to modify this very much.
    //But you can!
    public virtual void Fire()
    {
        string projectileScene = source.DequeueMunition();

        if (!(projectileScene is null))
        {
            Vector3 velocity = Muzzle.GlobalTransform.basis.Xform(-Vector3.Left) * muzzleVelocity;

            ProjectileProvider p = EasyInstancer.Instance <ProjectileProvider>(projectileScene);
            Projectiles.AddChild(p);
            p.Rpc("Init", Muzzle.GlobalTransform.origin, velocity);
        }
    }