Exemple #1
0
 void Start()
 {
     blockingPlane.SetActive(true);
     _DestroyableObj = this.GetComponent <DestroyableObj>();
     lightsOnArray   = lightOn.GetComponentsInChildren <Light>();
     lightsOffArray  = lightOff.GetComponentsInChildren <Light>();
     cableBody       = cable.GetComponent <Rigidbody>();
 }
Exemple #2
0
        private bool MissileToDestroyable(IMissile missile, DestroyableObj obj, CollisionParameters parameters)
        {
            if (obj is Character && missile.Owner == obj)
                return false;
            if (missile is Grenade)
            {
                if(missile.Owner!=obj)
                    GrenadeExplosion(missile as Grenade, parameters);
            }
            else
            {
                int damage = missile.ImpactDamage;
                if (obj is Character)
                {
                    (obj as Character).Player.OnMissileHit(missile, parameters);
                }
                if (remote)
                    damage = 0;
                if (obj.TakeDamage(damage))
                {
                    if (obj is Character)
                    {
                        ((Character)missile.Owner).Player.OnEnemyDestroyed((obj as Character).Player);
                        RemoveObject((IGameObject)missile);
                        World.Instance.PlayerKilled((obj as Character).Player);
                    }
                    else
                    {
                        RemoveObject((IGameObject)missile);
                    }
                }
            }

            return false;
        }
Exemple #3
0
        private bool DestroyableToStatic(DestroyableObj obj1, IGameObject obj2, CollisionParameters parameters)
        {
            if (obj1 is Character && obj2 is WeaponPickup)
            {
                if ((obj2 as WeaponPickup).Ready && ((obj1 as Character).CharacterClass.GameTeam ==
                    (obj2 as WeaponPickup).WeaponClass.GameTeam || (obj2 as WeaponPickup).WeaponClass.GameTeam == GameTeam.Both))
                {
                    //zbieranie broni
                    (obj1 as Character).Weapons.AddWeapon((obj2 as WeaponPickup).WeaponClass);
                    (obj1 as Character).Player.OnWeaponPickup((obj2 as WeaponPickup));
                    (obj2 as WeaponPickup).Use();
                }
                return false;
            }
            else
            {
                if (obj1 is Character)
                {
                    (obj1 as Character).Player.OnStaticCollision(obj2, parameters);
                    if (parameters.RelativeVelocity.Length > 100)
                    {
                        int damage = (int)parameters.RelativeVelocity.Length - 100;
                        if (obj1.TakeDamage(damage))
                        {
                            PlayerKilled((obj1 as Character).Player);
                        }

                    }

                }
                return true;
            }
            return false;
        }
Exemple #4
0
        private bool DestroyableToDestroyable(DestroyableObj obj1, DestroyableObj obj2, CollisionParameters parameters)
        {
            //int damage = (int)Math.Abs(parameters.RelativeVelocity.Dot(parameters.CollisionNormal));
            //obj1.TakeDamage(damage);
            //obj2.TakeDamage(damage);

            //if (obj1 is Ship)
            //{
            //    (obj1 as Ship).Pilot.OnShipCollision(obj2 as Ship, parameters);
            //}
            //if (obj2 is Ship)
            //{
            //    (obj2 as Ship).Pilot.OnShipCollision(obj1 as Ship, parameters);
            //}
            return false;
        }
Exemple #5
0
 public override void OnDestroyed(DestroyableObj destroyedObj)
 {
     base.OnDestroyed(destroyedObj);
     eventTimer.Reset();
     eventTimer.Start();
 }
Exemple #6
0
 public override void OnDestroyed(DestroyableObj destroyedObj)
 {
     base.OnDestroyed(destroyedObj);
     Spectating = true;
     playerControl.RenderCrosshair = false;
 }