protected override void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.GetComponent <TongueJoint>()) { return; } if (col.gameObject.GetComponent <ProjectileController>()) { return; } //if (vehicle.isColliding.Contains(col.gameObject)) return; //vehicle.isColliding.Add(col.gameObject); AffectVisitor damager = col.gameObject.GetComponent <AffectVisitor>(); AffectVisitable damagable = gameObject.GetComponent <AffectVisitable>(); if (damager == null) { //Debug.LogWarning("Non-damager " + col.gameObject.name + " collided with damageable " + gameObject.name + ", please implement AffectVisitor method on it, or exclude from check on this damagable. "); return; } damagable.AcceptAffectFrom(damager); }
public override void AcceptAffectFrom(AffectVisitor damager) { print("doh"); int damageAmount = damager.CauseAffectTo(this); health -= damageAmount; }
public override void AcceptAffectFrom(AffectVisitor damager) { int damageAmount = damager.CauseAffectTo(this); health -= damageAmount; this.stats.damageTaken += damageAmount; //EntityControlScript entity = (EntityControlScript)damager; //GunnerControlScript freddy = //entity.transform.parent.GetComponent<FreddyHuggerController>(); // freddy.stats.damageDelt += damageAmount; //freddy.stats.shotsConnected++; }
void ReceiveDamage(Collision2D col) { if (!col.gameObject.GetComponent <ProjectileController>()) { return; } AffectVisitor damager = col.gameObject.GetComponent <AffectVisitor>(); AffectVisitable damagable = gameObject.GetComponent <AffectVisitable>(); damagable.AcceptAffectFrom(damager); }
protected override void OnCollisionEnter2D(Collision2D col) { if (!col.gameObject.GetComponent <ProjectileController>()) { return; } AffectVisitor damager = col.gameObject.GetComponent <AffectVisitor>(); AffectVisitable damagable = gameObject.GetComponent <AffectVisitable>(); damagable.AcceptAffectFrom(damager); }
public override void AcceptAffectFrom(AffectVisitor damager) { int damageAmount = damager.CauseAffectTo(this); Health -= damageAmount; vehicle.Health -= damageAmount * damageMultiplyer[level]; vehicle.UpdateHealthText(); if (vehicle.Health <= 0) { Destroy(vehicle.gameObject); } /* * if (damageAmount != 0) { * print("health of : " + this + " is: " + health); * vehicle.ReportHealth(); * } */ }
public override void AcceptAffectFrom(AffectVisitor damager) { //please see the version of this method in CellController }
public abstract void AcceptAffectFrom(AffectVisitor visitor);
//do nothing public override void AcceptAffectFrom(AffectVisitor damager) { }