private void MoveFire() { float radius = 0.0f; if (BurnController.GetInstance() != null) { radius = BurnController.GetInstance().burningZone.radius; } foreach (var system in particles) { var width = occluder.transform.localScale.x; float sign; if (system.transform.localPosition.x < 0) { // Left side sign = -1; } else { // Right Side sign = 1; } var position = system.transform.localPosition; position.x = sign * (width / 2); system.transform.localPosition = position; if (followRadius) { // Update radius var shapeModule = system.shape; shapeModule.radius = radius; } } }
// Use this for initialization void Start() { if (BurnController.GetInstance() != null) { BurnController.GetInstance().AddErasureBeam(this); } }
private Spawner GetSpawner(SpawnConfig config) { if (limitIfLowRadius && BurnController.GetInstance().burningZone.radius < 10) { return(config.spawners[0]); } var spawnerIndex = Random.Range(0, config.spawners.Length); var spawner = config.spawners[spawnerIndex]; var corner1 = spawner.transform.position + new Vector3(-.5f, .5f, 0); var corner2 = spawner.transform.position + new Vector3(.5f, -.5f, 0); int layerMask = 1 << (int)Layers.PLAYER; var overlapCollider = Physics2D.OverlapArea(corner1, corner2, layerMask); if (overlapCollider != null && overlapCollider.GetComponent <Player>() != null) { if (spawnerIndex > 0) { return(config.spawners[spawnerIndex - 1]); } else if (spawnerIndex < config.spawners.Length) { return(config.spawners[spawnerIndex + 1]); } return(null); } return(spawner); }
void Awake() { if (sBurnController != null && sBurnController != this) { Destroy(sBurnController.gameObject); } sBurnController = this; }
private IEnumerator SpawnPlayerAfterDelay() { yield return(new WaitForSeconds(spawnTime)); SpawnPlayer(); Instantiate(defaultWeaponPickupPrefab, playerSpawn); if (BurnController.GetInstance().burningZone.radius < 9) { Instantiate(jetpackPickupPrefab, playerSpawn); } }
public virtual void Damage(float value) { entity.health = entity.health - value; if (entity.health <= 0) { if (entity is Enemy) { var enemy = (Enemy)entity; BurnController.GetInstance().AddToRadius(enemy.radiusIncrease); } } }
//Create null projection void Start() { if (isProjection || willNullDestroy) { return; } burnController = GetComponent <BurnController>(); torchComponent = GetComponent <TorchTrigger>(); Rigidbody rb = GetComponent <Rigidbody>(); bool kinematicState = false; if (rb != null) { kinematicState = rb.isKinematic; rb.isKinematic = true; } StartCoroutine(HandleKinematicState(rb, kinematicState)); nullProjection = Instantiate(gameObject, gameObject.transform.position, gameObject.transform.rotation); nullProjection.transform.localScale *= torchComponent == null ? 1.125f : 1.0625f; nullProjection.transform.SetParent(gameObject.transform); nullProjection.layer = LayerMask.NameToLayer("Ignore Raycast"); nullProjection.GetComponent <NullManager>().isProjection = true; Component[] allComponents = nullProjection.GetComponents <Component>(); foreach (Component comp in allComponents) { if (!(comp.GetType() == typeof(Transform) || comp.GetType() == typeof(MeshFilter) || comp.GetType() == typeof(MeshRenderer))) { Destroy(comp); } } foreach (Material mat in nullProjection.GetComponentInChildren <MeshRenderer>().materials) { mat.shader = nullShader; mat.SetColor("_Colour", new Color(0.25f, 0.375f, 1.0f, 0.5f)); } nullProjection.SetActive(false); nulleffect = Instantiate(nullParticles, gameObject.transform.position, gameObject.transform.rotation, nullProjection.transform); }
private bool AreAllContactsOutsideZone(Collision2D collision) { int count = collision.GetContacts(contacts); int pointsOutside = 0; BurnController burnController = BurnController.GetInstance(); for (int i = 0; i < count; i++) { if (!contacts[i].enabled) { pointsOutside++; continue; } if (burnController.IsOutsideZone(contacts[i].point)) { pointsOutside++; } } return(pointsOutside == count); }
protected void CheckGrounded() { if (animator.GetBool(AnimatorStates.IsGrounded)) { return; } int layerMask = 1 << (int)Layers.GEOMETRY; RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, actorHeight / 2f, layerMask); if (hit.transform == null) { return; } var burnController = BurnController.GetInstance(); if (burnController.IsOutsideZone(hit.point)) { return; } Ground(); }
//On entering the flame, set flammable, un-nulled objects on fire private void OnTriggerEnter(Collider other) { BurnController bc = other.gameObject.GetComponent <BurnController>(); if (bc != null) { bool canBurn = true; NullManager nm = other.gameObject.GetComponent <NullManager>(); if (nm != null) { if (nm.IsNulled) { nullObjects.Add(nm); canBurn = false; } } bc.enabled = canBurn; } }
// Update is called once per frame protected override void Update() { if (occluder != null) { MoveFire(); } else if (!isDone) { if (BurnController.GetInstance() != null) { BurnController.GetInstance().RemoveErasureBeam(this); } isDone = true; foreach (var system in particles) { if (system != null) { system.Stop(false, ParticleSystemStopBehavior.StopEmitting); } } StartCoroutine("DestroySelf"); } }
// Use this for initialization void Start() { burnController = BurnController.GetInstance(); burnController.decreasePerSecond = startRate; }