protected virtual void HandeleCollide(Bonus bonus) { bonus.Collect(); if (bonus is TimePeriodBonus) { controller.timePeriodBonuses.Add(bonus as TimePeriodBonus); } else { if (bonus is Coin) { GameManager.Instance.info.bonuses.IncScore((bonus as Coin).Score); } else if (bonus is CreditCard) { GameManager.Instance.info.bonuses.IncScore((bonus as CreditCard).score); } else if (bonus is HalfBattery) { GameManager.Instance.info.bonuses.hasHalfBattery = true; } else if (bonus is Medikit) { controller.life.IncreaseHP(1); } else if (bonus is MemoryCard) { GameManager.Instance.info.bonuses.hasMemoryCard = true; } else if (bonus is SuperMedikit) { controller.life.RestoreHP(); } } GameManager.Instance.BonusCollectedEvent(bonus, GameManager.Instance.info.bonuses); }