Exemple #1
0
 // Use this for initialization
 void Start()
 {
     collisionBody   = GetComponent <Rigidbody2D>();
     animator        = GetComponent <Animator>();
     playerUIManager = GetComponent <PlayerUIManager>();
     shieldManager   = shields.GetComponent <ShieldManager>();
 }
Exemple #2
0
    void FixedUpdate()
    {
        Vector3    velocity        = Rb.velocity;
        float      raycastDistance = velocity.magnitude * Time.fixedDeltaTime; //De esta forma averiguo donde estaría el laser en el siguiente frame
        RaycastHit hitInfo;

        if (Physics.Raycast(transform.position, velocity.normalized, out hitInfo, raycastDistance))
        {
            //LifeManager lifeManager = hitInfo.transform.GetComponentInParent<LifeManager>();
            //if (lifeManager) lifeManager.RemoveLife();
            ShieldManager shieldManager = hitInfo.transform.GetComponentInParent <ShieldManager>();
            if (shieldManager)
            {
                shieldManager.DamageShield(Damage);
            }
            GameObject explosionPrefab = ProjectilePool.GetObjectFromPool("ProjectileExplosion");
            if (explosionPrefab)
            {
                explosionPrefab.transform.position = transform.position;
                ParticleSystem[] ps = explosionPrefab.GetComponentsInChildren <ParticleSystem>();
                for (int i = 0; i < ps.Length; ++i)
                {
                    ps[i].Play();
                }
                StartCoroutine(ReturnParticle(explosionPrefab));
            }
            Return();
        }
    }
            static IEnumerable <int> AddShieldCheck(IEnumerable <int> results, IntVec3 origin, IntVec3 target, Map map)
            {
                if (Mod.Settings.EnableAIVerbFindShotLine)
                {
                    var fields = ShieldManager.For(map).Fields.ToList();

                    foreach (var cellIndex in results)
                    {
                        if (!IsCellShielded(origin, cellIndex, map, fields))
                        {
                            yield return(cellIndex);
                        }
                        else
                        {
                            yield break;
                        }
                    }
                }
                else
                {
                    foreach (var cellIndex in results)
                    {
                        yield return(cellIndex);
                    }
                }
            }
 protected override void Start()
 {
     base.Start();
     _transform = transform;
     var drone = ((Drone) FindObjectOfType(typeof (Drone)));
     ShieldManager = drone.shieldManager;
 }
Exemple #5
0
    void Start()
    {
        // Initial weapon selection
        spells = new List <SpellType> {
            digger, damage, telekin
        };
        spellIndex = 0;

        if (!isLocalPlayer)
        {
            return;
        }

        resourceManager = GetComponent <ResourceManager>();
        player          = GetComponent <PlayerController>();
        shieldManager   = GetComponent <ShieldManager>();

        idealLookSensitivity    = player.lookSensitivityBase;
        idealPivotLocalPosition = cameraPivot.localPosition;

        for (int i = 0; i < spells.Count; i++)
        {
            spells[i].equippedIndex = i;
        }
    }
        private static float CalculateShieldPreference(float score, Map map, IntVec3 start, IntVec3 end)
        {
            if (!Mod.Settings.EnableAICastPositionFinder)
            {
                return(score);
            }

            var shieldManager = ShieldManager.For(map);

            var startAdjusted = PositionUtility.ToVector3(start);
            var endAdjusted   = PositionUtility.ToVector3(end);

            var targetProtected    = shieldManager.Query(map).IsActive().Intersects(startAdjusted, endAdjusted).Get().ToList();
            var shooterProtected   = shieldManager.Query(map).IsActive().Intersects(endAdjusted, startAdjusted).Get().ToList();
            var shooterUnderShield = shieldManager.Query(map).IsActive().Intersects(startAdjusted).Get().ToList();

            if (shooterProtected.Any())
            {
                score *= 1 + shooterProtected.Count;
            }

            if (shooterUnderShield.Any())
            {
                score *= 1 + shooterUnderShield.Count;
            }

            if (targetProtected.Any())
            {
                score /= 1 + targetProtected.Count;
            }
            return(score);
        }
 protected virtual HashSet <Thing> GetOffenders()
 {
     return(Find.Maps
            .SelectMany(map => ShieldManager.For(map).AllEmitters)
            .Where(IsOffender)
            .Select(shield => shield.Thing)
            .ToHashSet());
 }
 private void Awake()
 {
     shieldManager = GetComponent <ShieldManager>();
     shieldManager.OnShieldActivation += UpdateShieldState;
     shieldIsBeingUsed = false;
     MakeThisObjectSingleton();
     DontDestroyOnLoad(gameObject);
 }
Exemple #9
0
 private void use()
 {
     ShieldManager.ActivateShield();
     Invoke("DeactivateShield", 30);
     sound.Play();
     shieldMesh.SetActive(false);
     Destroy(gameObject, 31);
 }
    // Start is called before the first frame update
    void Start()
    {
        mPlayerShieldManager = mPlayer.GetComponent <ShieldManager>();
        ShieldManager.EventShieldCooldownStarted.AddListener(StartShieldCooldown);
        GameManagerSC.EventGameStarted.AddListener(OnEventStartGame);

        mInitialAlphaBar = coolDownImageBar.color.a;
    }
Exemple #11
0
	/// <summary>
	/// NETWORKED: Creates the shield.
	/// </summary>
	/// <returns>The shield.</returns>
	/// <param name="element">Element.</param>

	//Create a shield with element pool from player when player demands it
	public ShieldManager CreateShield(ElementManager element){
		if (element != null) {
			ShieldManager shield = new ShieldManager();
			shield.id = shieldId;
			shieldId++;
			ElementManager basis = element;
			GameObject g;
			PhotonView currentPhotonView;
			ShieldObserver shieldObserver;
			if (shieldBook.TryGetValue (basis.elementType.ToString() + "Shield", out g)){


//				CLEANUPCOMPONENTS
//				ShieldObserver[] so = g.GetComponents<ShieldObserver>();
//				for (int i = 0; i < so.Length; i++) {
//					DestroyImmediate(so[i], true);
//				}
//				
//				PhotonView[] pv = g.GetComponents<PhotonView>();
//				for (int i = 0; i < pv.Length; i++) {
//					DestroyImmediate (pv[i], true);
//				}

				currentPhotonView = g.GetComponent<PhotonView>();

				if(currentPhotonView == null){
					currentPhotonView = g.AddComponent<PhotonView>();
				}

				shieldObserver = g.GetComponent<ShieldObserver>();
				if (shieldObserver == null){
					shieldObserver = g.AddComponent<ShieldObserver>();
				}
				
//				Debug.Log("currentPhotonView Count: " + currentPhotonView.ObservedComponents.Count);
				currentPhotonView.ObservedComponents.Clear();
				if(currentPhotonView.ObservedComponents!=null && currentPhotonView.ObservedComponents.Count==0)
				{
					currentPhotonView.ObservedComponents.Add(shieldObserver);
//					currentPhotonView.ObservedComponents[0] = shieldObserver;
//					currentPhotonView.ObservedComponents.
				}

				// Instantiate on network (call current element shield from within shield folder)
				shield.instance = (GameObject) PhotonNetwork.Instantiate(
					"Shields/"+g.name, basis.instance.transform.position, transform.rotation ,0);

				shield.elementType = basis.elementType;
				shield.Setup();
				shield.shieldElement.elementType = basis.elementType;
			} 
			
			return shield;
		} else {
			//buzz sound
			return null;
		}
	}
        static void Prefix(Character __instance, HitData hit)
        {
            if (__instance != Player.m_localPlayer || EquipScript.getLeft() != EquipType.Shield || !VHVRConfig.UseVrControls())
            {
                return;
            }

            ShieldManager.setBlocking(hit.m_dir);
        }
        static void Postfix(Character __instance)
        {
            if (__instance != Player.m_localPlayer || EquipScript.getLeft() != EquipType.Shield || !VHVRConfig.UseVrControls())
            {
                return;
            }

            ShieldManager.resetBlocking();
        }
 public override bool BackwardAction(TimeMachine timeMachine, GameState.GameState state)
 {
     if (EventSuccess)
     {
         ShieldManager shieldManager = state.GetEntity(GetEventData().SourceId).GetComponent <ShieldManager>();
         shieldManager.ToggleShield();
     }
     return(EventSuccess);
 }
 static void Postfix(Map ___map)
 {
     if (___map != last)
     {
         last = ___map;
         manager = ShieldManager.For(___map);
     }
     manager?.DrawShields(Find.CameraDriver.CurrentViewRect, ___map);
 }
 private void Awake()
 {
     shieldManager = GetComponent <ShieldManager>();
     shieldManager.OnShieldActivation += UpdateShieldState;
     shieldIsBeingUsed         = false;
     SceneManager.sceneLoaded += GetFlashingDamageIndicatorReference;
     MakeThisObjectSingleton();
     DontDestroyOnLoad(gameObject);
 }
Exemple #17
0
 /// <summary>
 /// Outpost constructor
 /// </summary>
 /// <param name="outpostStartPosition">The position of the outpost</param>
 public Outpost(string id, RftVector outpostStartPosition)
 {
     this._id                = id;
     this.Position           = outpostStartPosition;
     _subLauncher            = new SubLauncher();
     this._outpostOwner      = null;
     this._specialistManager = new SpecialistManager(100);
     _shieldManager          = new ShieldManager(10);
 }
Exemple #18
0
 static void Postfix(Map ___map)
 {
     if (___map != last)
     {
         last    = ___map;
         manager = ___map.GetComponent <ShieldManager>();
     }
     manager?.DrawShields(Find.CameraDriver.CurrentViewRect);
 }
            public static void AssociateShieldManager(Map __result, Map origin, IntVec3 playerStartSpot)
            {
                var manager = ShieldManager.For(origin, false);

                if (manager != null)
                {
                    manager.AssociateWithMap(__result);
                    ShieldManager.Register(__result, manager);
                }
            }
Exemple #20
0
 /// <summary>
 /// Outpost constructor
 /// </summary>
 /// <param name="outpostStartPosition">The outpost position</param>
 /// <param name="outpostOwner">The outpost's owner</param>
 /// <param name="type">The type of outpost to create</param>
 public Outpost(string id, RftVector outpostStartPosition, Player outpostOwner, OutpostType type)
 {
     this._id                = id;
     this.Position           = outpostStartPosition;
     _subLauncher            = outpostOwner == null ? new SubLauncher() : new SubLauncher(40);
     this._outpostOwner      = outpostOwner;
     this._specialistManager = new SpecialistManager(100);
     _shieldManager          = new ShieldManager(10);
     this._type              = type;
 }
Exemple #21
0
    // Use this for initialization
    void Awake()
    {
        _player              = FindObjectOfType <Player>();
        _playerAutoAim       = _player.GetComponent <AutoAim>();
        _playerLaser         = _player.GetComponent <LaserWeapon>();
        _playerMissile       = _player.GetComponent <MissileWeapon>();
        _playerShieldManager = _player.GetComponent <ShieldManager>();

        InvokeRepeating("WaitingCom", 0, 1);
    }
        static bool Prefix(Humanoid __instance, ref bool __result)
        {
            if (__instance != Player.m_localPlayer || EquipScript.getLeft() != EquipType.Shield || !VHVRConfig.UseVrControls())
            {
                return(true);
            }

            __result = ShieldManager.isBlocking();

            return(false);
        }
 private void Awake()
 {
     characterMovement_ = GetComponent <CharacterMovement>();
     shieldMovement_    = GetComponent <ShieldMovement>();
     shieldManager_     = GetComponent <ShieldManager>();
     shieldBash_        = GetComponent <ShieldBash>();
     shieldThrow_       = GetComponent <ShieldThrow>();
     shieldWheel_       = transform.GetChild(2).GetComponent <ShieldSelectionWheel>();
     collider_          = GetComponent <Collider2D>();
     health_            = GetComponent <Health>();
 }
 /// <summary>
 /// Awake is called when the script is first loaded.
 /// </summary>
 void Awake()
 {
     // Simple Singleton
     if (Instance == null)
     {
         Instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Exemple #25
0
	void Start () {
        EnemyDefenseID = 0;
        DefenseID = 0;
        L_Shield = null;
        M_Shield = null;
        R_Shield = null;
        EL_Shield = null;
        EM_Shield = null;
        ER_Shield = null;
        ShieldManager.Instance = this;
        HidePosition();
	}
Exemple #26
0
    /// <summary>
    /// Returns true if something was hit, and therefore the movement needs to stop
    /// </summary>
    /// <param name="startPosition"></param>
    /// <param name="endPos"></param>
    /// <returns></returns>
    public bool TryToMoveFromTo(Vector3 startPosition, Vector3 endPos)
    {
        Vector3 direction = endPos - startPosition;
        float   distance  = direction.magnitude;

        direction.Normalize();

        startPosition += myCollider.center;
        endPos        += myCollider.center;

        RaycastHit hit = new RaycastHit();

        if (Physics.SphereCast(startPosition, myCollider.radius, direction, out hit, distance, GetTrajectoryCheckLayerMask))
        {
            if (hit.collider.gameObject.layer != 10 || blockedByEnemies)
            {
                // test bouclier
                if (hit.collider.gameObject.layer == 12)
                {
                    Transform hitParent = hit.transform.parent;
                    if (hitParent != null)
                    {
                        ShieldManager objShielManager = hit.transform.parent.GetComponent <ShieldManager>();

                        if (objShielManager != null)
                        {
                            if (objShielManager.myObjParent == lastObjTouch)
                            {
                                return(false);
                            }
                        }
                    }
                }

                HandleCollision(hit, direction);

                return(true);
            }
            else
            {
                DamageableEntity hitDamageableEntity = hit.collider.GetComponent <DamageableEntity>();
                if (hitDamageableEntity != null)
                {
                    hitDamageableEntity.ReceiveDamage(damageTag, new DamagesParameters(currentDamagesAmount, numberOfStunedTurns));

                    lastObjTouch = hitDamageableEntity.gameObject;
                }
            }
        }

        return(false);
    }
Exemple #27
0
    public void Setup()
    {
        _movement            = m_Instance.GetComponent <PlayerMovement>();
        _playerWeaponManager = m_Instance.GetComponent <PlayerWeaponManager>();
        _schildManager       = m_Instance.GetComponentInChildren <ShieldManager>();


        _movement.playerNum            = playerNum;
        _schildManager.playerNum       = playerNum;
        _playerWeaponManager.playerNum = playerNum;
        m_Instance.name = "Palyer  " + playerNum;

        SetPlayerMatColor();
    }
 static void Prefix(Humanoid __instance, ref HitData hit, ref float ___m_blockTimer)
 {
     if (__instance != Player.m_localPlayer || EquipScript.getLeft() != EquipType.Shield || !VHVRConfig.UseVrControls())
     {
         return;
     }
     ___m_blockTimer = ShieldManager.blockTimer;
     if (ShieldManager.isBlocking())
     {
         hit.m_dir = -__instance.transform.forward;
     }
     else
     {
         hit.m_dir = __instance.transform.forward;
     }
 }
        public override bool ForwardAction(TimeMachine timeMachine, GameState.GameState state)
        {
            ShieldManager  shieldManager  = state.GetEntity(GetEventData().SourceId).GetComponent <ShieldManager>();
            DrillerCarrier drillerCarrier = state.GetEntity(GetEventData().SourceId).GetComponent <DrillerCarrier>();

            if (shieldManager != null && !drillerCarrier.GetOwner().IsEliminated())
            {
                shieldManager.ToggleShield();
                EventSuccess = true;
            }
            else
            {
                EventSuccess = false;
            }

            return(EventSuccess);
        }
Exemple #30
0
    void FixedUpdate()
    {
        Vector3    velocity        = Rb.velocity;
        float      raycastDistance = velocity.magnitude * Time.fixedDeltaTime; //De esta forma averiguo donde estaría el laser en el siguiente frame
        RaycastHit hitInfo;

        if (Physics.Raycast(transform.position, velocity.normalized, out hitInfo, raycastDistance))
        {
            //LifeManager lifeManager = hitInfo.transform.GetComponentInParent<LifeManager>();
            //if (lifeManager) lifeManager.RemoveLife();
            ShieldManager shieldManager = hitInfo.transform.GetComponentInParent <ShieldManager>();
            if (shieldManager)
            {
                shieldManager.DamageShield(Damage);
            }
            Return();
        }
    }
        static void Postfix(Humanoid __instance, bool __result, ref float ___m_blockTimer)
        {
            if (__instance != Player.m_localPlayer || EquipScript.getLeft() != EquipType.Shield || !VHVRConfig.UseVrControls())
            {
                return;
            }

            if (__result)
            {
                if (___m_blockTimer < ShieldManager.blockTimerTolerance)
                {
                    VRPlayer.leftHand.hapticAction.Execute(0, 0.4f, 100, 0.5f, SteamVR_Input_Sources.LeftHand);
                    VRPlayer.leftHand.hapticAction.Execute(0.4f, 0.7f, 100, 0.2f, SteamVR_Input_Sources.LeftHand);
                }
                else
                {
                    VRPlayer.leftHand.hapticAction.Execute(0, 0.2f, 100, 0.5f, SteamVR_Input_Sources.LeftHand);
                }
                ShieldManager.block();
            }
        }
Exemple #32
0
 private void Awake()
 {
     shieldManager_ = GetComponent <ShieldManager>();
     thrownShields_ = new List <Transform>();
 }
Exemple #33
0
	//Create a shield with element pool from player when player demands it
	public ShieldManager CreateShield2(ElementManager element){
		if (element != null) {
			ShieldManager shield = new ShieldManager();
			ElementManager basis = element;
			GameObject g;
			if (shieldBook.TryGetValue (basis.elementType.ToString() + "Shield", out g)){
				shield.instance = (GameObject)Instantiate(g, basis.instance.transform.position, transform.rotation);
				shield.elementType = basis.elementType;
				shield.Setup();
				shield.shieldElement.elementType = basis.elementType;
			} 

			return shield;
		} else {
			//buzz sound
			return null;
		}
	}
Exemple #34
0
    // Update is called once per frame
    void Update()
    {
        _playerLifeBar.fillAmount   = _player.LifePoints / _player.GetMaxLife();
        _playerShieldBar.fillAmount = _playerShieldManager.CurrentShield / _playerShieldManager.MaxShield;
        _playerSpeedBar.fillAmount  = _player.Speed / _player.MaxSpeed;

        _laserImage.fillAmount = _playerLaser.CurrentOverHeat / _playerLaser.MaxOverHeat;

        switch (_playerMissile.CurrentAmmo)
        {
        case 0:
            for (int i = 0; i < _missileImage.Length; ++i)
            {
                _missileImage[i].enabled = false;
            }
            break;

        case 1:
            for (int i = 0; i < _missileImage.Length; ++i)
            {
                _missileImage[i].enabled = false;
            }
            _missileImage[0].enabled = true;
            break;

        case 2:
            for (int i = 0; i < _missileImage.Length - 1; ++i)
            {
                _missileImage[i].enabled = true;
            }
            _missileImage[2].enabled = false;
            break;

        case 3:
            for (int i = 0; i < _missileImage.Length; ++i)
            {
                _missileImage[i].enabled = true;
            }
            break;
        }

        _target = _playerAutoAim.GetTarget();
        if (_target)
        {
            LifeManager targetLife = _target.GetComponent <LifeManager>();
            if (targetLife)
            {
                _targetLifeBar.fillAmount = targetLife.LifePoints / targetLife.GetMaxLife();
            }

            ShieldManager targetShield = _target.GetComponent <ShieldManager>();
            if (targetShield)
            {
                _targetShieldBar.fillAmount = targetShield.CurrentShield / targetShield.MaxShield;
            }
        }
        else
        {
            _targetLifeBar.fillAmount   = 0;
            _targetShieldBar.fillAmount = 0;
        }

        if (!_bWaiting && Time.time > _textStart + _textWait)
        {
            InvokeRepeating("WaitingCom", 0, 1);
        }
    }