protected override void OnRabitHit(RabbitController rabit) { animateController = rabit.gameObject.GetComponent <AnimateController>(); RabbitStats stats = rabit.gameObject.GetComponent <RabbitStats>(); if (stats.isDead) { return; } if (rabit.isVulnerable) { CollectedHide(); if (stats.rabbitSize == 0) { stats.isDead = true; die(); } else { stats.rabbitSize = 0; makeRabbitSmaller(rabit); rabit.isVulnerable = false; rabit.gameObject.GetComponent <FlashObject>().startBlinking(); } } }
void OnTriggerEnter2D(Collider2D collider) { //Намагаємося отримати компонент кролика RabbitController rabit = collider.GetComponent <RabbitController>(); //Впасти міг не тільки кролик if (rabit == null) { return; } animateController = rabit.gameObject.GetComponent <AnimateController>(); RabbitStats stats = rabit.gameObject.GetComponent <RabbitStats>(); if (rabit.isVulnerable) { if (stats.rabbitSize == 0) { die(); } else { stats.rabbitSize = 0; makeRabbitSmaller(rabit); rabit.isVulnerable = false; rabit.gameObject.GetComponent <FlashObject>().startBlinking(); } } }
public void onRabitDeath(RabbitController rabit) { current.cameraWhichLooksForRabbit.followRabbit = false; rabit.enabled = false; cameraWhichLooksForRabbit.playSoundRabbitDies(); StartCoroutine(MoveAtTheBeginningLater(rabit)); }
private void Awake() { Hungry = false; WantToMate = false; TargetFood = null; TargetMate = null; }
System.Collections.IEnumerator MoveAtTheBeginningLater(RabbitController rabit) { yield return(new WaitForSeconds(4f)); LevelController.current.cameraWhichLooksForRabbit.followRabbit = true; rabit.enabled = true; rabit.gameObject.GetComponent <AnimateController>().animate("die", false); if (SceneManager.GetActiveScene().name == "chooseLevel") { moveRabbitToTheStartingPosition(rabit); yield break; } else { if (lives == 0) { GameObject parent = UICamera.first.transform.parent.gameObject; NGUITools.AddChild(parent, lostPrefab); } else { decrementLives(); moveRabbitToTheStartingPosition(rabit); RabbitStats rabbitStats = rabit.gameObject.GetComponent <RabbitStats>(); rabbitStats.isDead = false; } } }
void OnTriggerEnter2D(Collider2D coll) { GameObject rabbit = coll.gameObject; //Намагаємося отримати компонент кролика RabbitController rabbitController = rabbit.GetComponent <RabbitController>(); //Впасти міг не тільки кролик if (rabbitController == null) { return; } if (rabbit.GetComponent <RabbitStats>().isDead) { return; } if (rabbit.GetComponent <Rigidbody2D>().velocity.y >= 0) { return; } this.gameObject.transform.parent.gameObject.GetComponent <Enemy>().DieFromRabbit(); LevelController.current.cameraWhichLooksForRabbit.stopSoundEnemyAttacks(); rabbit.GetComponent <Rigidbody2D>().AddForce(Vector3.up * 12, ForceMode2D.Impulse); }
private void initEverythingBeforehand() { rabbitStats = LevelController.getRabbit().GetComponent <RabbitStats>(); animateController = LevelController.getRabbit().GetComponent <AnimateController>(); rabbitController = LevelController.getRabbit().GetComponent <RabbitController>(); base.attacking = false; base.running = false; }
public IEnumerator RunAway(MovementController ctr) { RabbitController rtr = ctr as RabbitController; Transform from = this.danger ?? this.snake; yield return(rtr.RunAway(from)); }
void OnTriggerEnter2D(Collider2D collider) { RabbitController rabit = collider.GetComponent <RabbitController>(); if (rabit != null) { SceneManager.LoadScene("level1"); } }
void OnTriggerEnter2D(Collider2D collider) { RabbitController rabit = collider.GetComponent <RabbitController>(); if (rabit != null) { this.OnRabitHit(rabit); } }
public IEnumerator Wander(MovementController ctr, UtilityAction act) { RabbitController rtr = ctr as RabbitController; yield return(rtr.Wander()); act.isStoppable = true; yield return(rtr.Rest()); }
void OnTriggerEnter2D(Collider2D collider) { RabbitController rabit = collider.GetComponent <RabbitController>(); if (rabit != null) { showWonPanel(); } }
void OnTriggerEnter2D(Collider2D collider) { if (!secondLvlIsAvailable) { return; } RabbitController rabit = collider.GetComponent <RabbitController>(); if (rabit != null) { SceneManager.LoadScene("level2"); } }
protected override void OnRabitHit(RabbitController rabit) { CollectedHide(); RabbitStats stats = rabit.gameObject.GetComponent <RabbitStats>(); if (stats.rabbitSize == 1) { return; } else { stats.rabbitSize = 1; makeRabbitBigger(rabit); } }
public override Brain.Action TakeDecision(Brain brain) { if (brain.Hungry) // Find food is the priority { return(Brain.Action.SearchFood); } else if (brain.TargetMate != null) // If another mate found while searching { return(Brain.Action.WaitMate); } if (brain.Movement.PositionReached() && !brain.HasCheckedArea) { brain.HasCheckedArea = true; List <RabbitController> potentialPartners = brain.Eyes.GetRabbitsInSight(); RabbitController closestValidMate = null; float minDistance = float.MaxValue; foreach (RabbitController rabbit in potentialPartners) { if (rabbit.Grabbable.Grabbed) { continue; } if (!rabbit.ReadyToMate || !rabbit.FreeToMate) { continue; } float distance = (brain.transform.position - rabbit.transform.position).sqrMagnitude; if (distance < minDistance && brain.Movement.CanReachPosition(rabbit.transform.position)) { closestValidMate = rabbit; minDistance = distance; } } if (closestValidMate) { brain.TargetMate = closestValidMate; closestValidMate.Brain.TargetMate = brain.GetComponent <RabbitController>(); return(Brain.Action.JoinMate); } } return(brain.CurrentAction); }
/** * Initializes the island by instancing a certain amount of * rabbits in the center of the island */ public void Init(int count, int radius) { Clear(); ColonySurviveTime = 0.0f; List <Vector2Int> cells = _grid.GetCellsInRadius(radius); for (int i = 0; i < count && cells.Count > 0; i++) { int index = Random.Range(0, cells.Count); Vector2Int cell = cells[index]; RabbitController rabbit = SpawnRabbit(cell); rabbit.SetAge(Random.Range(0.0f, InitialMaxAge)); cells.Remove(cell); } onRabbitCountChange?.Invoke(this, EventArgs.Empty); }
//Стандартна функція, яка викличеться, //коли поточний об’єкт зіштовхнеться із іншим void OnTriggerEnter2D(Collider2D collider) { //Намагаємося отримати компонент кролика RabbitController rabit = collider.GetComponent <RabbitController>(); //Впасти міг не тільки кролик if (rabit != null) { RabbitStats stats = rabit.gameObject.GetComponent <RabbitStats>(); if (stats.rabbitSize == 1) { stats.rabbitSize = 0; makeRabbitSmaller(rabit); } LevelController.current.onRabitDeath(rabit); } }
/* * Executed when a rabbit is dropped */ private void OnRabbitDrop(object sender, Grabbable.DropData data) { if (sender is Grabbable gb) { RabbitController rabbit = gb.GetComponent <RabbitController>(); if (!rabbit) { return; } Vector2Int cell = data.Cell; if (!_grid.IsValidCell(cell)) { rabbit.Kill(); } } }
public List <RabbitController> GetRabbitsInSight() { RabbitController self = GetComponent <RabbitController>(); float distance = Data.PerceptionMaxDistance; List <RabbitController> results = new List <RabbitController>(); Collider[] colliders = Physics.OverlapSphere(transform.position, distance); foreach (Collider collider in colliders) { RabbitController rabbit = collider.GetComponent <RabbitController>(); if (rabbit && rabbit != self) { results.Add(rabbit); } } return(results); }
public void Grab(object sender, HandController.GrabData data) { if (_grabbed) { return; } if (!data.Valid) { return; } // TODO : Later, take in account rabbit targets CarrotController carrot; RabbitController rabbit = data.Rabbit; Grabbable grabbed; if (!rabbit) { carrot = _carrots.GetCarrotAt(data.Cell); if (!carrot) { return; } grabbed = carrot.Grabbable; } else { grabbed = rabbit.Grabbable; } if (!grabbed) { return; } grabbed.Grab(data.Cell); _grabbed = grabbed; _grabHandle.connectedBody = grabbed.Rigidbody; _grabHandle.connectedAnchor = grabbed.GrabHandle.localPosition; }
/* * Spawns a rabbit on a cell position * Returns the new rabbit or null if the cell is invalid */ private RabbitController SpawnRabbit(Vector2Int cell) { if (!_grid.IsValidCell(cell)) { return(null); } Vector3 position = _grid.GetRandomPosition(cell); GameObject obj = Instantiate(RabbitPrefab, position, Quaternion.AngleAxis(Random.Range(0.0f, 360.0f), transform.up)); RabbitController rabbit = obj.GetComponent <RabbitController>(); _aliveRabbits.Add(rabbit); rabbit.onDead += OnRabbitDeath; rabbit.Reproduction.onGiveBirth += OnGiveBirth; rabbit.Grabbable.onDrop += OnRabbitDrop; onRabbitCountChange?.Invoke(this, EventArgs.Empty); return(rabbit); }
private void UpdateTargetRabbit() { RabbitController newTarget = null; RaycastHit hit; if (Physics.Raycast(_mouseRay, out hit, 100, RabbitsLayer)) { newTarget = hit.collider.GetComponent <RabbitController>(); } if (newTarget != TargetRabbit) { TargetRabbit = newTarget; onTargetRabbitChange?.Invoke(this, new GrabData { Cell = TargetCell, Position = _grid.GetPosition(TargetCell), Valid = TargetValid, Rabbit = TargetRabbit }); } }
// Use this for initialization void Start() { player = gameObject.GetComponentInParent<RabbitController> (); }
protected override void OnRabitHit(RabbitController rabit) { CollectedHide(); LevelController.current.crystalWasCollected(type); }
private void moveRabbitToTheStartingPosition(RabbitController rabit) { rabit.transform.position = this.startingPosition; }
// Use this for initialization void Start() { player = gameObject.GetComponentInParent <RabbitController> (); }
protected override void OnRabitHit(RabbitController rabit) { LevelController.current.addALife(); CollectedHide(); }
private void Awake() { m_Character = GetComponent<RabbitController>(); InputAggregator.Instance.OnMoveEvent += OnMoveEvent; InputAggregator.Instance.OnJumpEvent += OnJumpEvent; }
protected override void OnRabitHit(RabbitController rabit) { collected = true; LevelController.current.fruitWasCollected(); CollectedHide(); }
protected override void OnRabitHit(RabbitController rabit) { CollectedHide(); LevelController.current.coinCollected(); }
private void makeRabbitSmaller(RabbitController rabit) { Transform transgormToChange = rabit.gameObject.GetComponent <Transform>(); transgormToChange.localScale = new Vector3(transgormToChange.localScale.x / 2, transgormToChange.localScale.y / 2, transgormToChange.localScale.z); }
public void OnClick() { RabbitController rabbit = FindObjectOfType <RabbitController>(); rabbit.JumpTo(this); }