public bool doubleDribbling() { bool t = false;; foreach (GameObject p in player) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.stateMachine.currentState == Dribbling.Instance) { t = true; break; } } } if (t) { t = false; foreach (GameObject p in player1) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.stateMachine.currentState == Dribbling.Instance) { t = true; break; } } } } return(t); }
public bool haveToChase() { float d1 = Vector3.Distance(transform.position, ball.transform.position); bool chase = true; if (!amIReceiver) { foreach (GameObject g in teammates) { if (g != gameObject) { AI_Player t = g.GetComponent("AI_Player") as AI_Player; if (t != null) { if (t.amIReceiver == true) { chase = false; break; } float d2 = Vector3.Distance(g.transform.position, ball.transform.position); if (d2 < d1) { chase = false; break; } } } } } return(chase); }
public GameObject findBestTeammateKick() { GameObject closest = null; float dist = 1000f; foreach (GameObject g in teammates) { if (g.name != "GoalKeaper_blue" && g.name != "GoalKeaper_red") { if (g.transform != transform) { if (g.transform.position.x >= transform.position.x) { AI_Player a = g.GetComponent <AI_Player>(); if (a != null) { if (a.canIShoot() && canIPass(a.gameObject)) { closest = g; break; } } } } } } if (closest == null) { closest = findClosestTeammate(); } return(closest); }
void Start() { instance = this; player = GetComponent <AI_Player>(); property = GetComponent <ObjectProperty>(); animator = GetComponent <Animator>(); controller = GetComponent <CharacterController>(); property.Reset(); }
public void setNotReceiver(GameObject[] tabs) { foreach (GameObject g in tabs) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { a.amIReceiver = false; } } }
public GameObject findBestTeammateControl() { List <GameObject> passing = new List <GameObject>(); GameObject passingfree = null; int i = 0; foreach (GameObject g in teammates) { if (g.name != "GoalKeaper_blue" && g.name != "GoalKeaper_red") { if (g.transform != transform) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (canIPass(g)) { passing.Add(g); i++; } } } } } if (passing != null) { int count = 15; foreach (GameObject g in passing) { if (g.name != "GoalKeaper_blue" && g.name != "GoalKeaper_red") { if (g.transform != transform) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { a.fov.FindTargetsInArray(a.enemies); if (a.fov.visibleTargets.Count < count) { passingfree = g; count = a.fov.visibleTargets.Count; } } } } } } if (passingfree == null) { passingfree = findClosestTeammate(); } return(passingfree); }
public void setTeamState(stateTeam s) { myTeamState = s; foreach (GameObject g in teammates) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { a.myTeamState = s; } } }
// Update is called once per frame void Update() { if (!start) { bool t = isReadyForKickOff(player); bool t1 = isReadyForKickOff(player1); if (t && t1) { delta = Time.time; kickOff.SetActive(true); if (whokickOff > 0.5f) { //Debug.Log(whokickOff + " bleu commence"); GameObject.Find("Player").GetComponent <AI_Player>().homeRegion -= 1; } else { //Debug.Log(whokickOff + " rouge commence"); GameObject.Find("Player (10)").GetComponent <AI_Player>().homeRegion += 1; } start = true; ball.transform.position = new Vector3(0, 4f, 0); foreach (GameObject p in player) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { a.stateMachine.ChangeState(FirstState.Instance); } p.GetComponent <Rigidbody>().velocity *= 0; } foreach (GameObject p in player1) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { a.stateMachine.ChangeState(FirstState.Instance); } p.GetComponent <Rigidbody>().velocity *= 0; } } } else { kickOff.SetActive(false); } }
public List <GameObject> getPotentialReceiver() { List <GameObject> potRe = new List <GameObject>(); foreach (GameObject g in teammates) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.iWantTheBall == true) { potRe.Add(g); } } } return(potRe); }
public GameObject getPlayerDribbling(GameObject[] players) { GameObject dribbler = null; foreach (GameObject g in players) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.stateMachine.currentState == Dribbling.Instance) { dribbler = g; break; } } } return(dribbler); }
public GameObject GetBU() { GameObject bu = null; foreach (GameObject g in teammates) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.myRole == rolePlayer.BU) { bu = a.gameObject; break; } } } return(bu); }
public GameObject getEnemyByRole(rolePlayer r) { GameObject leBon = null; foreach (GameObject g in enemies) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.myRole == r) { leBon = g; break; } } } return(leBon); }
public AI_Player GetMySupportingPlayer() { AI_Player l = null; foreach (GameObject g in teammates) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.amITheSupportingPlayer) { l = a; break; } } } return(l); }
public AI_Player GetLeader() { AI_Player l = null; foreach (GameObject g in teammates) { AI_Player a = g.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.leader) { l = a; break; } } } return(l); }
public bool isReadyForKickOff(GameObject[] player) { bool t = true; foreach (GameObject p in player) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (!a.ready) { t = false; break; } } p.GetComponent <Rigidbody>().velocity *= 0; } return(t); }
public bool isDribbler() { bool t = false;; foreach (GameObject p in teammates) { if (p.transform != transform) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a.stateMachine.currentState == Dribbling.Instance) { t = true; break; } } } } return(t); }
private void FixedUpdate() { excitationTimer += Time.deltaTime; ambianceCommentTimer += Time.deltaTime; if (excitationTimer > intervalBeforeExcitationDecrease && crowdExcitationRatio >= 0.05f) { Debug.Log("Le public s'emmerde !"); crowdExcitationRatio -= 0.05f; excitationTimer = 0.0f; } float parameterValue = 0f; crowd.getParameterValue("CrowdExcitation", out parameterValue, out parameterValue); //Debug.Log(parameterValue); if (parameterValue != crowdExcitationRatio) { Debug.Log("changing crowd excitation to " + crowdExcitationRatio); crowd.setParameterValue("CrowdExcitation", crowdExcitationRatio); } if (ambianceCommentTimer > intervalBeforeAmbianceComment && crowdExcitationRatio >= 0.5f && Random.Range(0, 100) < 50) { Debug.Log("L'ambiance !"); ambianceReactionSpeechEvent.start(); //ambianceReactionSpeechEvent.release(); ambianceCommentTimer = 0f; } //seconds++; if (start) { timer += Time.deltaTime; if (!end) { seconds = (int)timer % 60; minuts = (int)System.Math.Ceiling(timer / 60 - 1); } if (minuts == 5) { end = true; } timeText.text = "Time : " + minuts.ToString("00") + " : " + seconds.ToString("00"); } if (doubleDribbling()) { p1 = getPlayerDribbling(player); p2 = getPlayerDribbling(player1); conflictDribble = Random.Range(0f, 1f); if (conflictDribble < 0.5f) { //Debug.Log("le 1 " + p1); AI_Player a = p1.GetComponent("AI_Player") as AI_Player; if (a != null) { a.transform.position = new Vector3(a.transform.position.x - 3, a.transform.position.y, a.transform.position.z - 3); a.stateMachine.ChangeState(FirstState.Instance); } } else { //Debug.Log("le 2 " + p2); AI_Player a = p2.GetComponent("AI_Player") as AI_Player; if (a != null) { a.transform.position = new Vector3(a.transform.position.x + 3, a.transform.position.y, a.transform.position.z + 3); a.stateMachine.ChangeState(FirstState.Instance); } } } if (end) { if (GameConstants.RedScore > GameConstants.BlueScore) { endCText.text = "Victoire des rouges !"; } else if (GameConstants.RedScore < GameConstants.BlueScore) { endCText.text = "Victoire des bleues !"; } else { endCText.text = "Match nul"; } crowd.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT); ball.GetComponent <Rigidbody>().velocity *= 0; ball.transform.position = new Vector3(0f, 1.5f, 144f); endC.gameObject.SetActive(true); menu_btn.SetActive(true); foreach (GameObject p in player) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { a.finish = true; a.stateMachine.ChangeState(BeginState.Instance); } } foreach (GameObject p in player1) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { a.finish = true; a.stateMachine.ChangeState(BeginState.Instance); } } } }
// Use this for initialization void Start() { /* LightSource temp = new LightSource(); * temp.location = new Vector2(0, 0); * temp.lightIntensity = 1; * GameData.AddLightSource(temp);*/ CharacterData cd = new CharacterData(new Vector2(0, 0)); GameObject player_go = new GameObject(); player_go.name = "Player"; //player_go.transform.position = new Vector2 (0, 0); //player_go.AddComponent<PCMovement> (); AI_Player pc = player_go.AddComponent <AI_Player>(); pc.Character = cd; SpriteRenderer player_sr = player_go.AddComponent <SpriteRenderer>(); player_sr.color = Color.white; player_sr.sprite = player_sprite; UpdateCharacterSpriteLocation scr = player_go.AddComponent <UpdateCharacterSpriteLocation>(); scr.cd = cd; GameData.MapCharacterToObject(cd, player_go); GameData.SetActiveCharacter(cd); // TODO This isn't the way to do this... /* CharacterData nuper_data = new CharacterData(new Vector2(5, 5)); * * GameObject nuper_go = new GameObject(); * nuper_go.name = "Test Nuper"; * //nuper_go.transform.position = new Vector2 (5, 5); * AI_Critter ai = nuper_go.AddComponent<AI_Critter>(); * ai.Character = nuper_data; * SpriteRenderer nuper_sr = nuper_go.AddComponent<SpriteRenderer>(); * nuper_sr.color = Color.magenta; * nuper_sr.sprite = nuper_sprite; * UpdateCharacterSpriteLocation nscr = nuper_go.AddComponent<UpdateCharacterSpriteLocation>(); * nscr.cd = nuper_data; * * GameData.MapCharacterToObject(nuper_data, nuper_go); */ GameObject tile_holder = new GameObject(); tile_holder.name = "Tiles"; for (int x = 0; x < 20; x++) { for (int y = 0; y < 20; y++) { GameObject tile_go = new GameObject(); tile_go.name = "Tile_" + x + "_" + y; tile_go.transform.position = new Vector2(x, y); tile_go.transform.SetParent(tile_holder.transform); SpriteRenderer sr = tile_go.AddComponent <SpriteRenderer>(); sr.color = Color.gray; TileData td = new TileData(tile_go); //if (x == 3 || x == -3 || y == -3 || y == 3) { //if (Random.Range(0, 10) == 0) if ((x == 3 || x == 5) && (y == 3 || y == 5)) { sr.sprite = wall_sprite; td.movementSpeedMultiplier = 0.0f; //tile_go.AddComponent<Rigidbody2D> (); tile_go.AddComponent <BoxCollider2D>(); } else { sr.sprite = floor_sprite; } LightedLocation ll = tile_go.AddComponent <LightedLocation>(); ll.originalColor = Color.gray; GameData.SetTile(x, y, td); } } }
public RunAndGunState(AI_Player characterAI) { _characterAI = characterAI; _characterHandleWeapon = _characterAI._characterHandleWeapon; _characterMovement = _characterAI._characterMovement; }
// Use this for initialization void Start() { GameObject tile_holder = new GameObject(); tile_holder.name = "Tiles"; for (int x = 0; x < CreateGridWidth; x++) { for (int y = 0; y < CreateGridHeight; y++) { GameObject tile_go = new GameObject(); tile_go.transform.SetParent(tile_holder.transform); tile_go.name = "Tile_" + x + "_" + y; tile_go.transform.position = new Vector2(x, y); SpriteRenderer sr = tile_go.AddComponent <SpriteRenderer>(); sr.color = Color.gray; sr.sortingLayerName = "Floor"; TileDisplay td = tile_go.AddComponent <TileDisplay>(); //TODO Replace this with a sprite manager of some sort. td.floor_sprite = floor_sprite; td.wall_sprite = wall_sprite; td.OffsetFromOrigin = new Vector2(x, y); } } CharacterData cd = new CharacterData(new Vector2(0, 16)); GameObject tile_holder = new GameObject(); tile_holder.name = "Tiles"; MapLoaderImage mli = tile_holder.AddComponent <MapLoaderImage>(); mli.floor_sprite = floor_sprite; mli.wall_sprite = wall_sprite; mli.mapImage = mapImage; CharacterData cd = new CharacterData(new Vector2(15, 16)); GameObject player_go = new GameObject(); player_go.name = "Player"; //player_go.transform.position = new Vector2 (0, 0); //player_go.AddComponent<PCMovement> (); AI_Player pc = player_go.AddComponent <AI_Player>(); pc.Character = cd; GameData.SetActiveCharacter(cd); // TODO This isn't the way to do this... SpriteRenderer player_sr = player_go.AddComponent <SpriteRenderer>(); player_sr.color = Color.white; player_sr.sprite = player_sprite; player_sr.sortingLayerName = "Units"; UpdateCharacterSpriteLocation scr = player_go.AddComponent <UpdateCharacterSpriteLocation>(); scr.cd = cd; LightSource l = player_go.AddComponent <LightSource>(); l.UpdateIntensity(16.0f); GameData.MapCharacterToObject(cd, player_go); /* CharacterData nuper_data = new CharacterData(new Vector2(5, 5)); * * GameObject nuper_go = new GameObject(); * nuper_go.name = "Test Nuper"; * //nuper_go.transform.position = new Vector2 (5, 5); * AI_Critter ai = nuper_go.AddComponent<AI_Critter>(); * ai.Character = nuper_data; * SpriteRenderer nuper_sr = nuper_go.AddComponent<SpriteRenderer>(); * nuper_sr.color = Color.magenta; * nuper_sr.sprite = nuper_sprite; * UpdateCharacterSpriteLocation nscr = nuper_go.AddComponent<UpdateCharacterSpriteLocation>(); * nscr.cd = nuper_data; * * GameData.MapCharacterToObject(nuper_data, nuper_go); */ MapLoaderImage mli = tile_holder.AddComponent <MapLoaderImage>(); mli.floor_sprite = floor_sprite; mli.wall_sprite = wall_sprite; mli.mapImage = mapImage; }
public RunningState(AI_Player characterAI) { _characterAI = characterAI; _characterMovement = _characterAI.GetComponent <CharacterMovement>(); }
public Vector3 getGoodPos(AI_Player leader) { if (leader != null) { float dist = 1000f; int pos = 0; for (int i = 0; i < GameConstants.centers.Length; i++) { if (Vector3.Distance(GameConstants.centers[i], leader.transform.position) < dist) { dist = Vector3.Distance(GameConstants.centers[i], leader.transform.position); pos = i; } } if (team == 1) { if (leader.transform.position.z < transform.position.z) { if ((pos + 20 + 3) < 200) { return(GameConstants.centers[pos + 20 + 3]); } else { return(GameConstants.centers[pos + 3]); } } else { if ((pos - 20 + 3) > 0) { return(GameConstants.centers[pos - 20 + 3]); } else { return(GameConstants.centers[pos + 3]); } } } else { if (leader.transform.position.z < transform.position.z) { int indice = pos - 20 - 3; if (indice > 0) { return(GameConstants.centers[pos - 20 - 3]); } else { return(GameConstants.centers[pos - 3]); } } else { if ((pos + 20 - 3) < 200) { return(GameConstants.centers[pos + 20 - 3]); } else { return(GameConstants.centers[pos - 3]); //Debug.Log((pos + 20 - 3) + " indice"); } } } } else { return(GameConstants.centers[0]); } }
void GoalScored(string team) { // Crowd and speaker's reaction to goal are played crowdReactionToGoalEvent.start(); //crowdReactionToGoalEvent.release(); reactionToGoalSpeechEvent.start(); //reactionToGoalSpeechEvent.release(); if (team == "Red") { ++GameConstants.RedScore; scoreText.text = "Score : " + GameConstants.RedScore + " - " + GameConstants.BlueScore; if (crowdExcitationRatio <= 0.85f) { crowdExcitationRatio += 0.15f; } } else if (team == "Blue") { ++GameConstants.BlueScore; scoreText.text = "Score : " + GameConstants.RedScore + " - " + GameConstants.BlueScore; if (crowdExcitationRatio <= 0.85f) { crowdExcitationRatio += 0.15f; } } foreach (GameObject p in player) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a != GameObject.Find("Player").GetComponent <AI_Player>()) { p.transform.position = GameConstants.centers[a.homeRegion]; a.stateMachine.ChangeState(FirstState.Instance); } else { p.transform.position = GameConstants.centers[a.homeRegion + 1]; a.stateMachine.ChangeState(FirstState.Instance); } } p.GetComponent <Rigidbody>().velocity *= 0; } foreach (GameObject p in player1) { AI_Player a = p.GetComponent("AI_Player") as AI_Player; if (a != null) { if (a != GameObject.Find("Player (10)").GetComponent <AI_Player>()) { p.transform.position = GameConstants.centers[a.homeRegion]; a.stateMachine.ChangeState(FirstState.Instance); } else { p.transform.position = GameConstants.centers[a.homeRegion - 1]; a.stateMachine.ChangeState(FirstState.Instance); } } p.GetComponent <Rigidbody>().velocity *= 0; } }