protected override void PerformAttack() { if (QuarryPrefab == null) { QuarryPrefab = Resources.Load("Attacks/QuarryPrefab") as GameObject; } if (_net.IsClient) { networkView.RPC("PerformAttack", RPCMode.Server); } else { Projectile proj = ProjectilePool.GetProjectile(new Vector3(0, -111, 0), transform.rotation); proj.StartPosition = new Vector3(0, collider.bounds.extents.y, 0); proj.transform.localScale = new Vector3(1.25f, 1.25f, 1.25f); proj.ActivePrefab = QuarryPrefab; proj.PrefabSize = new Vector3(6f, 50f, 6f); proj.PrefabRotation = new Vector3(90f, transform.localEulerAngles.y, 0); proj.Range = MeeleRange + 0.2f; proj.Speed = 20; proj.StartUp = 0.3f; proj.Player = this; proj.Damage = AttackDamage; proj.Knockback = Vector3.zero; proj.Knockback = transform.forward.normalized * 10; proj.Knockback.y = 7.0f; proj.Apply(); } _clip[0].volume = ConfigManager.GetInstance().SoundLevel; _clip[0].Play(); StartCoroutine(AttackDelay("Attacking")); }
public override void Init(Player player) { base.Init(player); _movementController = gameObject.GetOrAddComponent <TankMovementController> (); _projectilePool = GetComponent <ProjectilePool>(); }
public override void Initialize(CharacterStats holder, LayerMask attackTo, Transform leftHand = null, Transform rightHand = null) { base.Initialize(holder, attackTo, leftHand, rightHand); projectilesPool = ProjectilePool.CreatePool(holder.transform, projectilePrefab, this); Debug.Log("Weapon Initialized ranged " + projectilesPool.name); }
private void Start() { _spriteRenderer = GetComponent <SpriteRenderer>(); _projectilePool = FindObjectOfType <ProjectilePool>(); _speedMax = _speed; StartCoroutine(WatchOutPlayer()); }
protected override void PerformAttack() { if (_net.IsClient) { networkView.RPC("PerformAttack", RPCMode.Server); } else { Projectile proj = ProjectilePool.GetProjectile(new Vector3(0, -111, 0), transform.rotation); proj.StartPosition = new Vector3(0, collider.bounds.extents.y * 0.5f, 0); proj.transform.localScale = new Vector3(2, 2, 2); proj.Range = MeeleRange + 0.2f; proj.Speed = 15; proj.StartUp = 0.3f; proj.Player = this; proj.Damage = AttackDamage; proj.Knockback = Vector3.zero; proj.Knockback = transform.forward.normalized * 15; proj.Knockback.y = 12.0f; proj.Apply(); } _clip[0].volume = ConfigManager.GetInstance().SoundLevel; _clip[0].Play(); StartCoroutine(AttackDelay("Attacking")); }
protected virtual void Awake() { m_CharacterController2D = GetComponent <CharacterController2D>(); m_Collider = GetComponent <Collider2D>(); m_Animator = GetComponent <Animator>(); m_SpriteRenderer = GetComponent <SpriteRenderer>(); boxCollider2D = GetComponent <BoxCollider2D>(); m_OriginalColor = m_SpriteRenderer.color; m_ContactFilter.layerMask = trackLayerMask; m_ContactFilter.useLayerMask = true; m_ContactFilter.useTriggers = false; m_ProjectilePool = new ProjectilePool[projectilePrefab.Length]; for (int i = 0; i < projectilePrefab.Length; i++) { m_ProjectilePool[i] = ProjectilePool.GetObjectPool(projectilePrefab[i].gameObject, 8); } m_SpriteForward = spriteFaceLeft ? Vector2.left : Vector2.right; if (m_SpriteRenderer.flipX) { m_SpriteForward = -m_SpriteForward; } }
/// <summary> /// Initialize the projectile. /// Set the owning projectile pool. /// Can only be called once. /// </summary> /// <param name="owner"></param> public void InitProjectile(ProjectilePool owner) { if (owningPool == null) { owningPool = owner; } }
void FixedUpdate() { Vector3 velocity = Rb.velocity; float raycastDistance = velocity.magnitude * Time.fixedDeltaTime; //De esta forma averiguo donde estaría el laser en el siguiente frame RaycastHit hitInfo; if (Physics.Raycast(transform.position, velocity.normalized, out hitInfo, raycastDistance)) { //LifeManager lifeManager = hitInfo.transform.GetComponentInParent<LifeManager>(); //if (lifeManager) lifeManager.RemoveLife(); ShieldManager shieldManager = hitInfo.transform.GetComponentInParent <ShieldManager>(); if (shieldManager) { shieldManager.DamageShield(Damage); } GameObject explosionPrefab = ProjectilePool.GetObjectFromPool("ProjectileExplosion"); if (explosionPrefab) { explosionPrefab.transform.position = transform.position; ParticleSystem[] ps = explosionPrefab.GetComponentsInChildren <ParticleSystem>(); for (int i = 0; i < ps.Length; ++i) { ps[i].Play(); } StartCoroutine(ReturnParticle(explosionPrefab)); } Return(); } }
public void DisableDrone(Vector3 position) { GameObject electricParticle = ProjectilePool.getInstance().getPoolObject(ProjectilePool.POOL_OBJECT_TYPE.ElectricParticleEffect); electricParticle.gameObject.SetActive(true); electricParticle.gameObject.transform.position = position; }
protected override void Awake() { base.Awake(); _sp = GetComponent <UnityEngine.UI.Image>(); _projectilePool = GameObject.Find("ProjectilePool").GetComponent <ProjectilePool>(); _range = GetComponent <SphereCollider>(); }
private void Construct(ProjectilePool pool, DelayedExecutor delayedExecutor, InputManager input) { _pool = pool; _delayedExecutor = delayedExecutor; _input = input; }
void Start() { // Cache necessary components. enemyTrans = transform; projPool = References.global.projectilePool; playerTrans = References.global.playerTrans; }
protected override void PerformAttack() { if (_net.IsClient) { networkView.RPC("PerformAttack", RPCMode.Server); } else { Projectile proj = ProjectilePool.GetProjectile(transform.position, transform.rotation); proj.StartPosition = this.transform.forward * 1.5f; proj.Range = MeeleRange + 0.2f; proj.Speed = 7; proj.Player = this; proj.Damage = AttackDamage; proj.Knockback = Vector3.zero; proj.Knockback = transform.forward.normalized * 15; proj.Knockback.y = 15.0f; proj.DoPiercing = true; proj.Apply(); } _clip[0].volume = ConfigManager.GetInstance().SoundLevel; _clip[0].Play(); StartCoroutine(AttackDelay("Attacking")); }
protected void PerformUpperCut() { if (MP < 50) { return; } if (_net.IsClient) { networkView.RPC("PerformUpperCut", RPCMode.Server); } else { Projectile proj = ProjectilePool.GetProjectile(ProjectilePos, transform.rotation); // proj.StartPosition = ProjectilePos + Vector3.up * -0.6f; proj.transform.localScale = new Vector3(2f, 2f, 2f); proj.StartPosition = transform.forward.normalized * 1.5f; proj.ProjectileDirection = new Vector3(0, 1f, 0); proj.Range = MeeleRange + 2; proj.StartUp = 0.25f; proj.Speed = 13; proj.Player = this; proj.Damage = AttackDamage; proj.Knockback = transform.forward.normalized * -6; proj.Knockback.y = 40.0f; proj.Apply(); MP -= 50; StartCoroutine(AttackDelay("Special UpperCut")); } }
protected override void PerformAttack() { if (_net.IsClient) { networkView.RPC("PerformAttack", RPCMode.Server); } else { Projectile proj; proj = ProjectilePool.GetProjectile(ProjectilePos, transform.rotation); proj.transform.localScale = new Vector3(2f, 2f, 2f); proj.Range = MeeleRange + 0.2f; proj.DoPiercing = true; proj.Speed = 13; proj.Player = this; proj.Damage = AttackDamage; proj.Knockback = transform.forward.normalized * 8; proj.Knockback.y += 17.0f; proj.Apply(); StartCoroutine(AttackDelay("Attacking")); } _clip[0].volume = ConfigManager.GetInstance().SoundLevel; _clip[0].Play(); }
private void Awake() { m_CharacterController2D = GetComponent <CharacterController2D>(); m_Collider = GetComponent <Collider2D>(); m_Animator = GetComponent <Animator>(); m_SpriteRenderer = GetComponent <SpriteRenderer>(); boxCollider2D = GetComponent <BoxCollider2D>(); m_OriginalColor = m_SpriteRenderer.color; m_ContactFilter.layerMask = AttackLayerMask; m_ContactFilter.useLayerMask = true; m_ContactFilter.useTriggers = false; if (projectilePrefab != null) { m_ProjectilePool = ProjectilePool.GetObjectPool(projectilePrefab.gameObject, 8); } m_SpriteForward = spriteFaceLeft ? Vector2.left : Vector2.right; if (m_SpriteRenderer.flipX) { m_SpriteForward = -m_SpriteForward; } if (meleeDamager != null) { EndAttack(); } }
// Called on startup/construction void Awake() { // For singleton if (instance == null) { DontDestroyOnLoad(gameObject); instance = this; } else if (instance != this) { Destroy(gameObject); } // Don't join the lobby. There is no need to join a lobby to get the list of rooms. PhotonNetwork.autoJoinLobby = false; // Don't auto sync scenes. We will manually synchronize to load scene when players are ready. PhotonNetwork.automaticallySyncScene = false; // Reduce sendrate. // Not reduced anymore //PhotonNetwork.sendRate = 10; // Default 20 //PhotonNetwork.sendRateOnSerialize = 5; // Default 10 PhotonNetwork.logLevel = Loglevel; projectilePool = new ProjectilePool(); }
public static IProjectile Create(Projectile projectile, ProjectilePool pool) { IProjectile newProjectile = GameObject.Instantiate(projectile); newProjectile.Initialize(projectile.Data, projectile.Behavior, pool); return(newProjectile); }
public void Explode() { _target.Decrease(1); _target = null; ProjectilePool pool = ProjectilePool.GetInstance(); pool.DestroyProjectile(this); }
protected override void PlaceProjectiles() { IProjectile projectileLeft = ProjectilePool.TakeProjectile(Config.Category); projectileLeft.Reset(LeftPosition.position, transform.up, LayerMask.NameToLayer(Arena.PlayerProjectileLayer)); IProjectile projectileRight = ProjectilePool.TakeProjectile(Config.Category); projectileRight.Reset(RightPosition.position, transform.up, LayerMask.NameToLayer(Arena.PlayerProjectileLayer)); }
private void Awake() { gunshot = GetComponent <AudioSource>(); m_Pose = GetComponentInParent <SteamVR_Behaviour_Pose>(); m_Animator = GetComponent <Animator>(); m_ProjectilePool = new ProjectilePool(m_ProjectilePrefab, m_MaxProjectileCount); }
protected virtual void getExplosionParticleEffect() { //.getBasicFireExplosionParticle(); GameObject explosion = ProjectilePool.getInstance().getPoolObject(ProjectilePool.POOL_OBJECT_TYPE.FireEXplosionParticle); explosion.SetActive(true); explosion.transform.position = this.transform.position; }
public void ReplaceProjectilePool(ProjectilePool newValue) { var index = GameComponentsLookup.ProjectilePool; var component = CreateComponent <ProjectilePoolComponent>(index); component.value = newValue; ReplaceComponent(index, component); }
private void Awake() { // TODO SteamVR // pose = GetComponentInParent<Steam_Behaviour_Pose>(); projectilePool = new ProjectilePool(prefab, maxProjectileCount); animator = GetComponent <Animator> (); }
// Start is called before the first frame update void Start() { dudeRigidBody = GetComponent <Rigidbody2D>(); projectilePool = GetComponent <ProjectilePool>(); startingPosition = transform.position; ResetDude(); }
void Start() { pool = GetComponent <ProjectilePool>(); if (pool == null) { Debug.LogWarning("No pool was found!"); } }
public override void destroyCharacter() { m_ragdoll.EnableRagdoll(); m_ragdollEnabled = true; GameObject explosion = ProjectilePool.getInstance().getPoolObject(ProjectilePool.POOL_OBJECT_TYPE.ElectricParticleEffect); explosion.SetActive(true); explosion.transform.position = m_headTransform.position; }
protected void PerformDropKick() { if (MP < 80) { return; } if (_net.IsClient) { networkView.RPC("PerformDropKick", RPCMode.Server); } else { Projectile proj = ProjectilePool.GetProjectile(ProjectilePos, transform.rotation); proj.transform.localScale = new Vector3(3f, 3f, 3f); proj.StartPosition = transform.forward.normalized * 2f; proj.ProjectileDirection = new Vector3(0, 0, 0); proj.Attached = true; proj.Range = MeeleRange; proj.Speed = 0; proj.TimeToLive = 0.55f; proj.Player = this; proj.PlayerObj = this.gameObject; proj.DoPiercing = true; proj.Damage = AttackDamage - 20; proj.Knockback = transform.forward.normalized * 25; proj.Knockback.y = 15.0f; proj.Apply(); CanMove = true; IsDefending = false; IsAttacking = true; IsJumping = true; IsKnockbackImmune = true; MP -= 80; animation.Play("Special DropKick"); if (_net.IsServer) { networkView.RPC("NetworkPlayAnimation", RPCMode.Others, "Special DropKick", -1f, false); } } if (IsMine()) { Vector3 dir = transform.forward.normalized * 25; dir.y = 15; Direction = dir; Move(); } }
private void Awake() { if (instance != null) { Debug.LogWarning("More than one instance of ProjectilePool found!"); return; } instance = this; }
public void ExplosionEffect(Vector3 position) { //.getBasicDroneExplosion() BasicExplosion droneExplosion = ProjectilePool.getInstance().getPoolObject(ProjectilePool.POOL_OBJECT_TYPE.DroneExplosion).GetComponent <BasicExplosion>(); droneExplosion.gameObject.SetActive(true); droneExplosion.gameObject.transform.position = position; droneExplosion.GetComponent <BasicExplosion>().exploade(); }
void Awake() { current = this; }
void Awake() { _instance = this; }