// Start is called before the first frame update void Start() { hurtable = GetComponent <Hurtable>(); hurtable.Initialize(config.HealthConfig); lootDropper = GetComponent <LootDropper>(); lootDropper.Initialize(config.LootConfig); rigidBody = GetComponent <Rigidbody2D>(); renderer = GetComponentInChildren <SpriteRenderer>(); anim = GetComponent <Animator>(); Retarget(); playerLayer = LayerMask.NameToLayer("Player"); player = GameObject.FindGameObjectWithTag("Player").transform; if (config.IsJelly) { rigidBody.gravityScale = 0.1f; direction = Vector2.up; } Swim(); spriteRenderers = new List <SpriteRenderer>(GetComponentsInChildren <SpriteRenderer>()); spriteRenderers.AddRange(GetComponents <SpriteRenderer>()); origColors = spriteRenderers.Select(rend => rend.color).ToList(); startPosition = transform.position; }
// load config void LoadConfig() { Config.Settings.NullValueHandling = NullValueHandling.Include; try { data = Config.ReadObject <TruePVEData>(); } catch (Exception e) { data = new TruePVEData(); } Config.Settings.NullValueHandling = NullValueHandling.Include; bool dirty = CheckConfig(); if (data.data == null || data.data.Count == 0) { dirty = LoadDefaultData(); } global = data.LookupByName("global"); if (global == null) { dirty = CreateDefaultGlobal(); } if (dirty) { SaveData(); } }
void Start() { spawn = GameObject.FindGameObjectWithTag("PlayerSpawn").transform; submarine = GetComponent <Submarine>(); hurtable = GetComponent <Hurtable>(); playerControls = FindObjectOfType <PlayerControls>(); }
void Start() { Hurtable h = GetComponent <Hurtable>(); h.DiedEventHandler += (victim, from, weapon) => GameStateManager.Instance.FpsPlayersWon(); StartCoroutine(EndMatchTimeout()); }
void Update() { timeAlive += Time.deltaTime; if (timeAlive > timeToLive) { fireballPool.ReturnObject(this); return; } transform.Translate(-transform.right * velocity * Time.deltaTime, Space.World); List <Hurtable> hurtables = hitboxManager.GetOverlappedHurtables(); if (hurtables.Count > 0) { Hurtable hurtable = hurtables[0]; HurtInfo hurtInfo = hurtable.OnHit(new HitInfo(this.transform.position, this.parrySpawnObjectPrototype)); if (hurtInfo.hitConnected) { fireballPool.ReturnObject(this); } } transform.localScale = velocity > 0 ? Vector3.one : invertedLocalScale; }
public override PlayerState Tick(PlayerController context) { if (timeInState >= duration) { return(new StateGrounded()); } timeInState += Time.deltaTime; Collider2D[] hurtboxes = context.meleeHitbox.GetHurtboxes(context.enemyLayerMask); for (int i = 0; i < hurtboxes.Length; i++) { Hurtable hurtable = hurtboxes[i].GetComponent <Hurtable>(); if (hurtable != null && !hitHurtables.Contains(hurtable)) { hurtable.OnHurt(context.meleeHitbox); ShakeCamera(); context.Hitstop(0.2f); hitHurtables.Add(hurtable); } } float horizInput = context.GetPlayerInput().GetHorizInput(); float targetVelocityX = horizInput * context.GetSpeed() * attackingMoveSpeedFactor; context.velocity.x = Mathf.SmoothDamp(context.velocity.x, targetVelocityX, ref context.velocityXSmoothing, context.GetVelocityXSmoothFactorGrounded()); context.velocity.y = context.GetGravity() * Time.deltaTime; context.FaceVelocityX(); context.GetController().Move(context.velocity * Time.deltaTime); return(this); }
// creates default "global" container bool CreateDefaultGlobal() { global = data.CreateHurtable("global"); global.description = "Global damage handling"; global.links[global.name] = false; // map global to itself - default no damage return(true); }
// Start is called before the first frame update void Start() { hurtable = GetComponent <Hurtable>(); hurtable.Initialize(healthConfig); collider = GetComponent <Collider2D>(); rb = GetComponent <Rigidbody2D>(); }
public Hurtable CreateHurtable(string name) { Hurtable h = new Hurtable(); h.name = name; data[h.name] = h; return(h); }
public void Start() { AttractorScript script = (AttractorScript)Object.FindObjectOfType(typeof(AttractorScript)); _attractor = script.gameObject; _renderer = (SpriteRenderer)GetComponent(typeof(UnityEngine.SpriteRenderer)); _rigidbody = gameObject.GetComponent <Rigidbody2D>(); _hurtable = gameObject.GetComponent <Hurtable>(); }
void OnTriggerEnter2D(Collider2D other) { Hurtable hurtable = other.gameObject.GetComponent <Hurtable>(); if (hurtable != null && (mask == (mask | (1 << other.gameObject.layer)))) { hurtable.Hit(damage, false); } }
// loads default data entries bool LoadDefaultData() { data.data.Clear(); CreateDefaultGlobal(); Hurtable napalm = data.CreateHurtable("napalm"); napalm.description = "Heli Napalm"; napalm.prefabs.Add("napalm"); napalm.links[global.name] = true; // napalm hurts anything Hurtable player = data.CreateHurtable("player"); player.description = "Players"; player.types.Add(typeof(BasePlayer).Name); player.links[player.name] = false; // no player-vs-player damage global.links[player.name] = true; // anything hurts player //Hurtable fire = data.CreateHurtable("fire"); //fire.type = typeof(FireBall).Name; //fire.prefabs.Add("campfire"); //fire.links[global.name] = false; // no fire damage Hurtable traps = data.CreateHurtable("traps"); traps.description = "Traps, landmines, and spikes"; traps.types.Add(typeof(BearTrap).Name); traps.types.Add(typeof(Landmine).Name); traps.prefabs.Add("spikes.floor"); //traps.prefabs.Add("beartrap"); //traps.prefabs.Add("landmine"); player.links[traps.name] = true; // players can damage traps traps.links[player.name] = false; // traps don't damage players Hurtable barricades = data.CreateHurtable("barricades"); barricades.description = "Barricades"; barricades.types.Add(typeof(Barricade).Name); player.links[barricades.name] = true; // players can damage barricade barricades.links[player.name] = false; // barricades cannot hurt players Hurtable highwalls = data.CreateHurtable("highwalls"); highwalls.description = "High external walls"; highwalls.prefabs.Add("wall.external.high.stone"); highwalls.prefabs.Add("wall.external.high.wood"); highwalls.links[player.name] = false; // high external walls cannot hurt players Hurtable heli = data.CreateHurtable("heli"); heli.description = "Heli"; heli.types.Add(typeof(BaseHelicopter).Name); global.links[heli.name] = true; // heli can take damage return(true); }
private void SandThrowProjectile_hitEvents(GameObject attacker, Weapon weapon, Hurtable hurtable) { if (hurtable.gameObject.GetComponent <Player>() != null) { MenuManager.sMainMenu.ChangeCamera(MenuManager.sMainMenu.bluryCamera); TimerManager.STimerManager.CreateTimer(bluryTime, t => { MenuManager.sMainMenu.ChangeCamera(MenuManager.sMainMenu.mainCamera); }); } }
// Start is called before the first frame update void Start() { rend = GetComponentInChildren <Renderer>(); submarine = GetComponent <Submarine>(); weapon = GetComponent <Weapon>(); submarine.Init(rend.transform.parent); hurtable = GetComponent <Hurtable>(); hurtable.Initialize(config.HealthConfig); }
void OnTriggerEnter2D(Collider2D other) { Hurtable hurtable = other.GetComponent <Hurtable>(); Attacker attacker = other.GetComponent <Attacker>(); if (!attacker || !hurtable) { return; } DealDamage(hurtable); }
void Start() { chaser = GetComponent<ChasesPlayer>(); hurt = GetComponent<Hurtable>(); faces = GetComponent<FacesPlayer>(); drops = GetComponent<DropsItems>(); attacks = GetComponent<AttacksPlayer>(); anim = GetComponent<Animator>(); hurt.onDeath += hurt_onDeath; hurt.onHurt += hurt_onHurt; }
public object CanHurt(Hurtable other) { if (!enabled || !other.enabled) { return(null); } if (links != null && links.Count > 0 && links.ContainsKey(other.name)) { return(links[other.name]); } return(null); }
void Start() { playerTrans = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>(); agent = GetComponent<NavMeshAgent>(); anim = GetComponent<Animator>(); randMov = GetComponent<MovesRandomly>(); drops = GetComponent<DropsItems>(); audSrc = GetComponent<AudioSource>(); hurt = GetComponent<Hurtable>(); hurt.onDeath += hurt_onDeath; }
// Start is called before the first frame update void Start() { rend = GetComponentInChildren <Renderer>(); submarine = GetComponent <Submarine>(); weapon = GetComponent <Weapon>(); submarine.Init(rend.transform.parent, config); hurtable = GetComponent <Hurtable>(); hurtable.Initialize(config.HealthConfig); ReadConfig(); crosshair = GetComponentInChildren <FollowMouse>(); }
public void HitTarget(int damage) { if (!attackTarget) { return; } Hurtable targetHurtable = attackTarget.GetComponent <Hurtable>(); if (targetHurtable) { targetHurtable.Hurt(damage); } }
private void Attack() { Collider2D[] hurtboxes = hitbox.GetHurtboxes(attackLayerMask); for (int i = 0; i < hurtboxes.Length; i++) { Hurtable hurtable = hurtboxes[i].GetComponent <Hurtable>(); if (hurtable != null) { hurtable.OnHurt(hitbox); Hitstop(); } } }
void Start() { anim = GetComponent<Animator>(); dropper = GetComponent<DropsItems>(); chaser = GetComponent<ChasesPlayer>(); faces = GetComponent<FacesPlayer>(); hurt = GetComponent<Hurtable>(); hurt.onDeath += hurt_onDeath; hurt.onHurt += hurt_onHurt; audioSrc = GetComponent<AudioSource>(); attacks = GetComponent<AttacksPlayer>(); attacks.onPlayerDeath += attacks_onPlayerDeath; }
void Died(GameObject attacker, Weapon weapon, Hurtable hurtable) { InventoryInfo.inventoryInfo.currencyLeft += pointsForPlayer; foreach (var i in throwableItems) { float r = UnityEngine.Random.value; if (r <= i.probability) { Item item = ItemFactory.itemFactory.SpawnItem(i.item); item.transform.position = transform.position; } } ProgressManager.progressManager.killedEnemies++; GameObject.Destroy(gameObject); }
void OnTriggerEnter2D(Collider2D other) { Hurtable hurtable = other.GetComponent <Hurtable>(); Attacker attacker = other.GetComponent <Attacker>(); if (!attacker || !hurtable) { return; } hasHit = true; if (animator) { animator.SetTrigger("Destroy"); } Destroy(gameObject, 1f); }
// Start is called before the first frame update void Start() { hurtable = GetComponent <Hurtable>(); hurtable.Initialize(config.HealthConfig); lootDropper = GetComponent <LootDropper>(); lootDropper.Initialize(config.LootConfig); rigidBody = GetComponent <Rigidbody2D>(); renderer = GetComponentInChildren <SpriteRenderer>(); anim = GetComponent <Animator>(); Retarget(); playerLayer = LayerMask.NameToLayer("Player"); player = GameObject.FindGameObjectWithTag("Player").transform; }
private void Awake() { player = FindObjectOfType <Player>(); waveManager = FindObjectOfType <WaveManager>(); spawnManager = FindObjectOfType <SpawnManager>(); animator = GetComponent <Animator>(); audioSource = GetComponent <AudioSource>(); collider2D = GetComponent <Collider2D>(); if (transform.childCount > 0) { childObject = transform?.GetChild(0)?.gameObject; } movables = GetComponentsInParent <IMovable>(); hurtable = GetComponent <Hurtable>(); }
void Start() { anim = GetComponent<Animator>(); dropper = GetComponent<DropsItems>(); chaser = GetComponent<ChasesPlayer>(); faces = GetComponent<FacesPlayer>(); audSrc = GetComponent<AudioSource>(); attacks = GetComponent<AttacksPlayer>(); attacks.onPlayerHit += attacks_onPlayerHit; hurt = GetComponent<Hurtable>(); hurt.onDeath += hurt_onDeath; hurt.onHurt += hurt_onHurt; tag = "enemy"; //For items to detect and deliver damage }
private void OnTriggerEvent(Weapon weapon) { if (particleSystem != null) { particleSystem.Play(); } RaycastHit hit; if (Physics.Raycast(transform.position, transform.rotation.eulerAngles, out hit, _range)) { GameObject victim = hit.collider.gameObject; Hurtable hurtable = victim.GetComponent <Hurtable>(); if (hurtable != null) { hurtable.Damaged(this.damage, this.gameObject, this); Hitted((victim)); } } }
public override void Hit(Hurtable hurtable) { foreach (var rigidbody2D in FindObjectsOfType <Rigidbody2D>()) { if (rigidbody2D.gameObject == gameObject) { continue; } if (Vector3.Distance(transform.position, rigidbody2D.position) < range) { var direction = (rigidbody2D.position - (Vector2)transform.position).normalized; var normalizedDistance = (rigidbody2D.position - (Vector2)transform.position).magnitude / range; var force = strength * (1 / normalizedDistance); rigidbody2D.AddForce(direction * force, ForceMode2D.Impulse); } } Destroy(gameObject); }
public List <Hurtable> GetOverlappedHurtables() { List <Hurtable> overlappedHurtables = new List <Hurtable>(); foreach (RectHitbox hitbox in hitboxes) { if (hitbox != null && hitbox.IsHitboxActive()) { Collider2D[] colliders = hitbox.GetColliders(layerMask); foreach (Collider2D collider in colliders) { Hurtable hurtable = collider.GetComponentInParent <Hurtable>(); if (hurtable != null) { overlappedHurtables.Add(hurtable); } } } } return(overlappedHurtables); }
/// <summary> /// Lets the granade exlode /// </summary> void Explode() { GameObject explosion = Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(explosion, 3f); Collider[] coliders = Physics.OverlapSphere(transform.position, radius); foreach (var colider in coliders) { Hurtable h = colider.GetComponent <Hurtable>(); Rigidbody rb = colider.GetComponent <Rigidbody>(); if (h != null) { h.Damaged(this.damage, this.parentWeapon.parent, this.parentWeapon); } if (rb != null) { rb.AddExplosionForce(explosionForce, transform.position, radius); } } Destroy(this.gameObject); }
void Start() { baseHurtable = Core.CoreGO.GetComponent <Hurtable>(); var resources = Resources.ResourcesDictionary; var oilGo = resources[ResourceGenerator.Resource.Oil][0]; var iron1Go = resources[ResourceGenerator.Resource.Iron][0]; var iron2Go = resources[ResourceGenerator.Resource.Iron][1]; Debug.Log(resources); oilHurtable = oilGo.GetComponent <Hurtable>(); iron1Hurtable = iron1Go.GetComponent <Hurtable>(); iron2Hurtable = iron2Go.GetComponent <Hurtable>(); baseText.text = baseHurtable.life + "/" + baseHurtable.maxLife; oilText.text = oilHurtable.life + "/" + oilHurtable.maxLife; iron1Text.text = iron1Hurtable.life + "/" + iron1Hurtable.maxLife; iron2Text.text = iron2Hurtable.life + "/" + iron2Hurtable.maxLife; baseHurtable.HittedEventHandler += (damage, from, weapon) => baseText.text = baseHurtable.life + "/" + baseHurtable.maxLife; oilHurtable.HittedEventHandler += (damage, from, weapon) => oilText.text = oilHurtable.life + "/" + oilHurtable.maxLife; iron1Hurtable.HittedEventHandler += (damage, from, weapon) => iron1Text.text = iron1Hurtable.life + "/" + iron1Hurtable.maxLife; iron2Hurtable.HittedEventHandler += (damage, from, weapon) => iron2Text.text = iron2Hurtable.life + "/" + iron2Hurtable.maxLife; }
public virtual void Hit(Hurtable hurtable) { Destroy(hurtable.gameObject); }
void DealDamage(Hurtable hurtable) { hurtable.Hurt(damage); }
void Start() { playerTrans = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>(); fireBreath = GetComponentInChildren<DamagingParticleSystem>(); anim = GetComponent<Animator>(); audSrc = GetComponent<AudioSource>(); drops = GetComponent<DropsItems>(); hurt = GetComponent<Hurtable>(); hurt.onDeath += hurt_onDeath; }
void Start() { ice = transform.FindChild("Ice").gameObject; player = GameObject.FindGameObjectWithTag("Player"); anim = GetComponent<Animator>(); motherHurtable = GetComponentInChildren<Hurtable>(); audSrc = GetComponentInChildren<AudioSource>(); motherHurtable.onHurt += motherHurtable_onHurt; motherHurtable.onDeath += motherHurtable_onDeath; //faces = GetComponent<FacesPlayer>(); //dropper = GetComponent<DropsItems>(); }