public void SetTurretType(TurretType newType) { turretType = newType; foreach (TurretTypeLink link in typeLinks) { link.sprite.gameObject.SetActive(link.type == turretType); if (link.type == turretType) { if (link.behaviour == null) { turretBehaviour = null; } else { turretBehaviour.Shutdown(); turretBehaviour = Instantiate(link.behaviour); turretBehaviour.turret = this; turretBehaviour.bulletSpawnPoint = bulletSpawnPoint; turretBehaviour.Init(); } } } if (turretType == TurretType.Boost) { boostSprite.gameObject.SetActive(true); if (turretBehaviour != null) { turretBehaviour.Shutdown(); turretBehaviour = null; } } }
private void Start() { if (myScript == null) { myScript = GetComponentInParent <TurretBehaviour>(); // supposedly, there is only one instance of TurretBehviour, in the top parent } }
private void Awake() { alarmTimer = alarmTime; behaviourComponent = GetComponentInParent <TurretBehaviour>(); polygonCollider = GetComponent <PolygonCollider2D>(); vision = GetComponent <LineRenderer>(); SetLine(); }
public void TransitionTo(TurretBehaviour behaviour) { if (CurrentTurretBehaviour == behaviour) { return; } //Console.WriteLine(bot.tankName + " TURRET: " + behaviour); CurrentTurretBehaviour = behaviour; }
void Awake() { if (!m_MoneyManager) { m_MoneyManager = FindObjectOfType <TotalMoney>(); } if (!m_TurretBehaviour) { m_TurretBehaviour = GetComponent <TurretBehaviour>(); } }
void Start() { turret = GetComponent <TurretBehaviour>(); viewFromGround = new Vector3(transform.position.x, 0f, transform.position.z); //for overlap spheres //States FSMState idle = new FSMState(); idle.enterActions.Add(Wait); FSMState active = new FSMState(); active.enterActions.Add(Alerted); active.exitActions.Add(StopAlert); FSMState attack = new FSMState(); attack.enterActions.Add(StartAttack); attack.stayActions.Add(Attack); attack.exitActions.Add(StopAttack); //Transitions FSMTransition t1 = new FSMTransition(PatrolInCamp); FSMTransition t2 = new FSMTransition(NobodyOnAlarm); FSMTransition t3 = new FSMTransition(EnemiesInRange); FSMTransition t4 = new FSMTransition(NoEnemiesInRange); // Link states with transitions idle.AddTransition(t1, active); active.AddTransition(t2, idle); active.AddTransition(t3, attack); attack.AddTransition(t4, active); //Setup a FSA at initial state fsm = new FSM(idle); // Start monitoring StartCoroutine(Patrol()); }
public int FindWeaknesses(TurretBehaviour TurretBehaviour, EnemyBehaviour EnemyBehaviour) { int numberOfWeaknesses = 1; if (TurretBehaviour.attackType == TurretBehaviour.AttackType.Bullet && EnemyBehaviour.type == EnemyBehaviour.Type.Carbon) { numberOfWeaknesses++; } if (TurretBehaviour.attackType == TurretBehaviour.AttackType.Plasma && EnemyBehaviour.type == EnemyBehaviour.Type.Synthetic) { numberOfWeaknesses++; } if (TurretBehaviour.attackType == TurretBehaviour.AttackType.Heat && EnemyBehaviour.type == EnemyBehaviour.Type.Silicon) { numberOfWeaknesses++; } if (TurretBehaviour.attackType == TurretBehaviour.AttackType.Energy && EnemyBehaviour.type == EnemyBehaviour.Type.Carbon) { numberOfWeaknesses++; } return(numberOfWeaknesses); }
void OnEnable() { GM = GameObject.Find("GameManager").GetComponent <GameManager>(); rigidbody = gameObject.GetComponent <Rigidbody>(); StartMovement(); if (GM.Turret != null) { turretBehaviour = GM.Turret.GetComponent <TurretBehaviour>(); } if (turretBehaviour != null) { if (turretBehaviour.distanceIsLess(transform.position)) { ShootMe(); } else { checkTrajectory(); } } InvokeRepeating("CheckifTooFar", 0.0f, 1.0f); }
private void Pickup() { // Get nearest CurrentObject = getNearestInteractable(); //null check if (!CurrentObject) { return; } //check for upgrade menu if (CurrentObject.gameObject.CompareTag("Turret")) { TurretBehaviour turret = CurrentObject.GetComponent <TurretBehaviour>(); if (turret.UpgradeMenu.activeInHierarchy) { turret.UpgradeMenu.SetActive(false); } else if (!turret.UpgradeMenu.activeInHierarchy) { turret.UpgradeMenu.SetActive(true); } DropRotate(); return; } OutlineObject.gameObject.SetActive(true); if (CurrentObject.gameObject.CompareTag("CanPickup")) { PickupNormal(); } else if (CurrentObject.gameObject.CompareTag("CanRotate")) { Rotate(); } }
private void Awake() { turretBehaviour = Instantiate(typeLinks[0].behaviour); turretBehaviour.turret = this; boostSprite.gameObject.SetActive(false); }
// END CONSTRUCTORS private void Awake() { utility = new Utility(); turretBehaviour = GetComponent <TurretBehaviour>(); //might need to be moved if turrets dont work when you are built during gameplay GetComponentInChildren <SphereCollider>().radius = range; }
public void Attack(TurretBehaviour turretBehaviour, EnemyBehaviour enemyBehaviour) { FindWeaknesses(turretBehaviour, enemyBehaviour); enemyBehaviour.currentHealth = enemyBehaviour.currentHealth - turretBehaviour.attackDamage * damageMultiplier; }
//Fire when mediator is attached internal void Init() { //Set mediator mediator = GetComponent<PlayerMediator>(); if (mediator == null){ Debug.Log( "Mediator was not set on: " + gameObject ); return; } //Movement related camT = mediator.cam.transform; StartCoroutine( MovementUpdate()); //Set Turret behaviour, weapon type and listener turretBehaviour = new TurretBehaviour(); turretBehaviour.StartTurret(this, TurretElement.BASIC_POOL); turretBehaviour.fireSignal.AddListener( OnFire ); turretBehaviour.RetrieveManualControl(); isPlayerControlled = true; //Movement Related }
private void launchTurret() { TurretBehaviour turretInvoke = turretObject.GetComponent <TurretBehaviour>(); GameObject turretInvokeGo = Instantiate(turretObject, hit.point, Quaternion.identity) as GameObject; }
// Start is called before the first frame update void Start() { turretBehaviour = GameObject.Find("Turret").GetComponent <TurretBehaviour>(); }
void Awake() { MoneyManager = FindObjectOfType <TotalMoney>(); turretBehaviour = GetComponent <TurretBehaviour>(); }