void shell_onCollided(IGameObj Sender, CollisionResult result, GameObjInfo objB) { sceneMgr.DelGameObj("shell", Sender.Name); new ShellExplodeBeta(Sender.Pos, ((ShellNormal)Sender).Azi); Quake.BeginQuake(10, 50); Sound.PlayCue("EXPLO1"); }
//float lastCollideWithBorderTime = -1; void item_OnCollided(IGameObj Sender, CollisionResult result, GameObjInfo objB) { if (objB.ObjClass == "Border") { ((ItemCommon)Sender).Vel = -2 * Vector2.Dot(((ItemCommon)Sender).Vel, result.NormalVector) * result.NormalVector + ((ItemCommon)Sender).Vel; //float curTime = GameManager.CurTime; //if (lastCollideWithBorderTime != -1 && curTime - lastCollideWithBorderTime < 0.05f) // ((ItemCommon)Sender).Scale -= 0.1f * 0.25f; //lastCollideWithBorderTime = curTime; } else if (objB.ObjClass == "Tank") { //((ItemCommon)Sender).Scale += 0.1f * 0.25f; //((ItemCommon)Sender).Pos += result.NormalVector * 10f; ((ItemCommon)Sender).Vel = ((ItemCommon)Sender).Vel.Length() * result.NormalVector; if (firstHitTank) { showFirstHitTank = true; firstHitTank = false; } } else if (objB.ObjClass == "ShellNormal") { smoke.Concen += 0.3f; if (((ItemCommon)Sender).Scale < 0.5f * 0.031f) { //scene.RemoveGameObj( Sender, true, false, false, false, SceneKeeperCommon.GameObjLayer.HighBulge ); sceneMgr.DelGameObj("shell", Sender.Name); Score += 100; hitSum++; AddNewItem(Sender); if (firstScore) { showFirstScore = true; firstScore = false; } smoke.Concen = 0; } else { ((ItemCommon)Sender).Scale -= 0.15f * 0.031f; ((ItemCommon)Sender).Vel = -result.NormalVector * ((ItemCommon)Sender).Vel.Length(); hitSum++; } if (firstHit) { showFirstHit = true; firstHit = false; } NiceShootSum += 2; showNiceShoot = true; if (NiceShootSum >= 30 && !speedy) { TextEffectMgr.AddRiseFade("You Got A Speedy Turret!", tank.Pos, 2f, Color.Purple, LayerDepth.Text, GameFonts.Lucida, 300, 0.2f); tank.FireCDTime = 2f; speedy = true; } } }