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>();
public ProjectileProvider InstantiateBullet() { //ProjectileProvider newProjectile = PhotonNetwork.Instantiate("Prefabs/" + projectileProvider.name, Vector3.zero, Quaternion.identity).GetComponent<ProjectileProvider>(); ProjectileProvider newProjectile = Instantiate(projectileProvider) as ProjectileProvider; return(newProjectile); }
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); } }
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); }
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); } }
//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); } }