Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
    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();
 }
Example #5
0
 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;
         }
     }
 }
Example #6
0
    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);
    }
Example #7
0
 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;
         }
     }
 }
Example #8
0
    // 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);
        }
    }
Example #9
0
    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);
    }
Example #10
0
    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);
    }
Example #11
0
    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);
    }
Example #12
0
    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);
    }
Example #13
0
    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);
    }
Example #14
0
    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);
    }
Example #15
0
    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);
    }
Example #16
0
    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);
    }
Example #17
0
    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);
                }
            }
        }
    }
Example #18
0
    // 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);
            }
        }
    }
Example #19
0
 public RunAndGunState(AI_Player characterAI)
 {
     _characterAI           = characterAI;
     _characterHandleWeapon = _characterAI._characterHandleWeapon;
     _characterMovement     = _characterAI._characterMovement;
 }
Example #20
0
    // 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;
    }
Example #21
0
 public RunningState(AI_Player characterAI)
 {
     _characterAI       = characterAI;
     _characterMovement = _characterAI.GetComponent <CharacterMovement>();
 }
Example #22
0
    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]);
        }
    }
Example #23
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;
        }
    }