public static bool IsTargetValid(this TargetingOptions targetOptions, Player playerOwner, GameObject targetObject) { if (targetObject == null) { return(false); } var targetIsEnemy = targetObject.tag.IsEnemy(playerOwner.gameObject); switch (targetOptions) { case TargetingOptions.AllCharacters: return(true); case TargetingOptions.AllCreatures: return(targetObject.tag.IsCreature()); case TargetingOptions.EnemyCharacters: return(targetIsEnemy && (targetObject.tag.IsCreature() || targetObject.tag.IsPlayer())); case TargetingOptions.EnemyCreatures: return(targetIsEnemy && targetObject.tag.IsCreature()); case TargetingOptions.YourCharacters: return(!targetIsEnemy && (targetObject.tag.IsCreature() || targetObject.tag.IsPlayer())); case TargetingOptions.YourCreatures: return(!targetIsEnemy && targetObject.tag.IsCreature()); default: return(false); } }
/// <summary> /// Creates a missile with homing and target finding capabilities. /// </summary> public GuidedMissile(IMyEntity missile, IMyCubeBlock firedBy, TargetingOptions opt, Ammo ammo, LastSeen initialTarget = null, bool isSlave = false) : base(missile, firedBy) { myLogger = new Logger("GuidedMissile", () => missile.getBestName(), () => m_stage.ToString()); myAmmo = ammo; myDescr = ammo.Description; if (ammo.Description.HasAntenna) myAntenna = new MissileAntenna(missile); TryHard = true; AllGuidedMissiles.Add(this); missile.OnClose += missile_OnClose; if (myAmmo.IsCluster && !isSlave) myCluster = new Cluster(myAmmo.MagazineDefinition.Capacity - 1); accelerationPerUpdate = (myDescr.Acceleration + myAmmo.MissileDefinition.MissileAcceleration) / 60f; addSpeedPerUpdate = myDescr.Acceleration / 60f; Options = opt; Options.TargetingRange = ammo.Description.TargetRange; myTargetSeen = initialTarget; myLogger.debugLog("Options: " + Options, "GuidedMissile()"); //myLogger.debugLog("AmmoDescription: \n" + MyAPIGateway.Utilities.SerializeToXML<Ammo.AmmoDescription>(myDescr), "GuidedMissile()"); }
public virtual void Spawn(TowerStats tr, TargetingOptions option) { if (MoneyContoller.Instance.Money >= tr.InitialPrice) { MoneyContoller.Instance.RemoveMoney(tr.InitialPrice); IsOccupied = true; GameObject obj = ObjectPooler.Instance.GetPooledObject(tr.TowerTag); tower = obj.GetComponent <Tower>(); tower.TargetPriority = option; obj.transform.position = transform.position; obj.SetActive(true); } }
void Awake() { sr = GetComponent <SpriteRenderer>(); lr = GetComponentInChildren <LineRenderer>(); lr.sortingLayerName = "AboveEverything"; triangle = transform.Find("PointerTriangle"); triangleSR = triangle.GetComponent <SpriteRenderer>(); whereIsThisCard = GetComponentInParent <WhereIsTheCardOrCreature>(); targets = GetComponentInParent <CardAsset>().Targets; originalPosition = this.transform.parent.localPosition; }
private void Start() { ca = card.GetComponent <OneCardManager>().cardAsset; spellDamage = ca.specialSpellAmount; targetionOptions = ca.Targets; if (targetionOptions == TargetingOptions.EnemyCharacters) { GroupOfTargets = GameObject.FindGameObjectsWithTag("Enemy"); } else if (targetionOptions == TargetingOptions.YourCharacters) { GroupOfTargets = GameObject.FindGameObjectsWithTag("Ally"); } Debug.Log(GroupOfTargets.Length); chosenEffect = ca.TargetEffect; }
private void Start() { ca = card.GetComponent <OneCardManager>().cardAsset; spellDamage = ca.specialSpellAmount; targets = ca.Targets; /*string effect = ca.SpellEffectName.ToString(); * Debug.Log(effect); * if (card != null) * { * Debug.Log("yes"); * } * else * { * Debug.Log("no"); * }*/ chosenEffect = ca.TargetEffect; }
public GuidedMissile(Cluster missiles, IMyCubeBlock firedBy, TargetingOptions opt, Ammo ammo, LastSeen initialTarget = null) : this (missiles.Master, firedBy, opt, ammo, initialTarget) { myCluster = missiles; }
/// <summary> /// Creates a missile with homing and target finding capabilities. /// </summary> public GuidedMissile(IMyEntity missile, IMyCubeBlock firedBy, TargetingOptions opt, Ammo ammo, LastSeen initialTarget = null) : base(missile, firedBy) { myLogger = new Logger("GuidedMissile", () => missile.getBestName(), () => m_stage.ToString()); myAmmo = ammo; myDescr = ammo.Description; if (ammo.Description.HasAntenna) myAntenna = new MissileAntenna(missile); TryHard = true; AllGuidedMissiles.Add(this); AddMissileOwner(MyEntity, CubeBlock.OwnerId); MyEntity.OnClose += MyEntity_OnClose; accelerationPerUpdate = (myDescr.Acceleration + myAmmo.MissileDefinition.MissileAcceleration) / 60f; addSpeedPerUpdate = myDescr.Acceleration / 60f; Options = opt; Options.TargetingRange = ammo.Description.TargetRange; myTargetSeen = initialTarget; myLogger.debugLog("Options: " + Options + ", initial target: " + (initialTarget == null ? "null" : initialTarget.Entity.getBestName()), "GuidedMissile()"); //myLogger.debugLog("AmmoDescription: \n" + MyAPIGateway.Utilities.SerializeToXML<Ammo.AmmoDescription>(myDescr), "GuidedMissile()"); }