void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Item") { Items it = other.GetComponent <Items>(); Items.Type t = it.Type1; GetBoost(t, it.Magnitude, it.Timer, it.Weapon); GameObject.Destroy(other.gameObject); } }
private void RemoveBoost(Items.Type stat) { audioEvent.clip = audioLib[2]; audioEvent.Play(); switch (stat) { case Items.Type.FIRERATE: // necessite acces à RangedAttacks RangedAttack.UnboostFireRate(magnitudeBoost[stat]); break; case Items.Type.HEALTH: // necessite acces à Health break; case Items.Type.INVICIBILITY: // necessite acces à Health health.SwitchInviciblity(); break; case Items.Type.MVTSPEED: movementSpeed -= magnitudeBoost[stat]; break; case Items.Type.POWER: // necessite acces à RangedAttacks RangedAttack.UnboostDamage(magnitudeBoost[stat]); break; case Items.Type.REPAIR: break; case Items.Type.WEAPON: // necessite acces à RangedAttacks RangedAttack.ChangeWeapon(RangedAttack.Weapon.DEFAULT); break; default: break; } magnitudeBoost.Remove(stat); tempBoost.Remove(stat); memoryBoost.Remove(stat); }
private void GetBoost(Items.Type item, float magn, float tps, RangedAttack.Weapon weapon) { audioEvent.clip = audioLib[1]; audioEvent.Play(); //// Cas du Soin if (item == Items.Type.HEALTH) // necessite acces à Health { health.Heal((int)magn); } //// ATTENTION : Modèle à adapter au systeme de weapon else { // on verifie si on a deja eu ce type de boost if (memoryBoost.Contains(item)) // Si on l'a déjà eu on refresh le timer { if (item == Items.Type.WEAPON) // Si c'est une arme c'est un peu particulier { if (RangedAttack.ActualWeapon != weapon) { RangedAttack.ChangeWeapon(weapon); } } tempBoost[item] = tps; } else // Sinon on l'ajoute à notre base de boost { memoryBoost.Add(item); tempBoost.Add(item, tps); magnitudeBoost.Add(item, magn); switch (item) { case Items.Type.FIRERATE: // necessite acces à RangedAttacks RangedAttack.BoostFireRate(magn); break; case Items.Type.INVICIBILITY: // necessite acces à Health health.SwitchInviciblity(); break; case Items.Type.MVTSPEED: movementSpeed += magn; break; case Items.Type.POWER: // necessite acces à RangedAttacks RangedAttack.BoostDamage(magn); break; case Items.Type.REPAIR: if (interdictions != 0) // sous interdiction { EndPerturbation(); } //// Possibilité de mettre un état de "non j'ai pas d'interdictions!" (necessiterai un acces au game manager...Ou pas....) break; case Items.Type.WEAPON: // necessite acces à RangedAttacks RangedAttack.ChangeWeapon(weapon); break; default: break; } } } }