private void OnCollisionBarrier( A_Collider target ) { if( target.Type != A_Collider.EType.Barrier ) { return; } ReferenceManager.GameManager.AddGameLevelExperienceFromEnemyShot(); refEnemyShot.Explosion(); }
public float GetDamage( A_Collider target ) { if( target.Type == A_Collider.EType.PlayerShot ) { if( DebugManager.IsInsanelyForce ) { return 99999; } return (target as PlayerShotCollider).power * damageRate; } return 0; }
public override void OnCollision(A_Collider target) { if( target.Type == A_Collider.EType.Player ) { target.Hit( this ); } if( target.Type == A_Collider.EType.PlayerShot ) { var playerShot = target as PlayerShotCollider; if( playerShot.IsEnemyCollision ) { return; } } float damage = GetDamage( target ); refEnemyControllerBaseList.ForEach( (obj) => { obj.TakeDamage( damage ); }); }
public override void OnCollision(A_Collider target) { }
private void OnCollisionPlayer( A_Collider target ) { if( this.radius <= 0.0f || target.Type != EType.Player ) { return; } if( collisionType == CollisionType.Graze ) { this.radius = this.cachedRadius; collisionType = CollisionType.Miss; // var sub = this.cachedTransform.position - target.cachedTransform.position; // float distance = sub.x * sub.x + sub.y * sub.y + sub.z * sub.z; // float radius = this.radius * this.radius + target.radius * target.radius; // // if( distance < radius ) // { // this.InternalHit( target ); // } ReferenceManager.RefPlayerStatusManager.Graze( Trans ); ReferenceManager.refScoreManager.CreateStarItem( Trans.position ); GameManager.AddGrazeCount(); } else { this.InternalHit( target ); } }
public override void OnCollision(A_Collider target) { OnCollisionBarrier( target ); OnCollisionPlayer( target ); }
private void InternalHit( A_Collider target ) { target.Hit( this ); refEnemyShot.Explosion(); }
public override void Hit(A_Collider target) { base.Hit (target); refPlayer.Miss(); }
public override void OnCollision(A_Collider target) { collisionFunc(); }
public abstract void OnCollision( A_Collider target );
public virtual void Hit( A_Collider target ) { }
public override void OnCollision(A_Collider target) { if( !isCollisionDead ) return; ObjectPool.Instance.GetGameObject( prefabExplosion, refParent.transform.position, prefabExplosion.transform.rotation ); Destroy( refParent ); SendMessage( CollisionMessage, SendMessageOptions.DontRequireReceiver ); isEnemyCollision = true; }