Пример #1
0
 // Use this for initialization
 new void Start()
 {
     area = GameObject.Find("Mall").GetComponent <AreaScript>();
     base.Start();
     isSatisfied = false;
     speechBubble.SetActive(false);
 }
Пример #2
0
 public override void Initialize()
 {
     base.Initialize();
     areaScript = GetComponentInParent <AreaScript>();
     shooter    = transform.Find("Gun").Find("Emmiter").GetComponent <Shooter>();
     rb         = GetComponent <Rigidbody>();
 }
Пример #3
0
    public Area(GameObject S)
    {
        A = S;
        AreaScript sk = S.GetComponent <AreaScript> ();

        width         = sk.width;
        height        = sk.height;
        Grid          = sk.Grid;
        minX          = A.GetComponent <Collider2D>().bounds.min.x;
        maxY          = A.GetComponent <Collider2D>().bounds.max.y;
        minY          = A.GetComponent <Collider2D>().bounds.min.y;
        maxX          = A.GetComponent <Collider2D>().bounds.max.x;
        DoorCount     = A.transform.GetChild(0).childCount - 2;
        OperableCount = A.transform.childCount - 1;
        Doors         = new Door[DoorCount];
        operables     = new Operable[OperableCount];
        for (int i = 0; i < DoorCount; i++)
        {
            Doors [i] = new Door(A.transform.GetChild(0).GetChild(i + 2).gameObject);
        }
        for (int i = 0; i < OperableCount; i++)
        {
            operables [i] = new Operable(A.transform.GetChild(i + 1).gameObject);
        }
    }
Пример #4
0
    public Vector3 GetCrowdedLocation()
    {
        AreaScript crowdedArea = this.GetCrowdedArea();
        Vector3    position    = crowdedArea.transform.position;
        Vector3    vector      = new Vector3(0f, 0f, 0f);
        float      num         = 0f;

        foreach (StudentScript studentScript in crowdedArea.Students)
        {
            vector += new Vector3(studentScript.transform.position.x, 0f, studentScript.transform.position.z);
            num    += 1f;
        }
        vector /= num;
        int num2;

        if (position.y >= 0f && position.y < 4f)
        {
            num2 = 0;
        }
        else if (position.y >= 4f && position.y < 8f)
        {
            num2 = 4;
        }
        else if (position.y >= 8f && position.y < 12f)
        {
            num2 = 8;
        }
        else
        {
            num2 = 12;
        }
        return(new Vector3(vector.x, (float)num2, vector.z));
    }
Пример #5
0
    void OnSceneGUI()
    {
        AreaScript areaScript = (AreaScript)target;

        for (int i = 0; i < areaScript.Areas.Count; i++)
        {
            float width  = areaScript.Areas[i].width;
            float height = areaScript.Areas[i].height;

            GUIStyle style = new GUIStyle();
            style.normal.textColor = areaScript.properties[i].AreaColor;
            style.fontSize         = 20;

            Handles.color = areaScript.properties[i].AreaColor;
            Vector3 pos = new Vector3(areaScript.Areas[i].x, 0, areaScript.Areas[i].y);

            Vector3[] verts = new Vector3[] { new Vector3(areaScript.Areas[i].xMin, pos.y, areaScript.Areas[i].yMin),
                                              new Vector3(areaScript.Areas[i].xMax, pos.y, areaScript.Areas[i].yMin),
                                              new Vector3(areaScript.Areas[i].xMax, pos.y, areaScript.Areas[i].yMax),
                                              new Vector3(areaScript.Areas[i].xMin, pos.y, areaScript.Areas[i].yMax) };

            Handles.DrawSolidRectangleWithOutline(verts, new Color(1, 1, 1, 0.2f), new Color(0, 0, 0, 1));
            Handles.color = Color.white;

            float x = width;
            float y = height;

            Vector3 scale     = new Vector3(width, 0, height);
            Vector3 handlePos = pos + scale / 2;
            scale = Handles.ScaleHandle(scale, handlePos, Quaternion.AngleAxis(360, Vector3.left), HandleUtility.GetHandleSize(handlePos));

            Handles.color = Color.green;
            pos           = Handles.PositionHandle(pos, Quaternion.identity);

            Handles.color = Color.blue;
            if (areaScript.properties[i].MaxSpawn < 0)
            {
                Handles.Label(pos + Vector3.up * 4 + new Vector3(1, 0, 1),
                              "Area  : " + i + "\n" +
                              "Type : " + areaScript.properties[i].SpawnType.ToString() + "\n" +
                              "Max Spawn : no limit" + "\n" +
                              "Quest Type : " + areaScript.properties[i].QuestType, style);
            }
            else
            {
                Handles.Label(pos + Vector3.up * 4 + new Vector3(1, 0, 1),
                              "Area  : " + i + "\n" +
                              "Type : " + areaScript.properties[i].SpawnType.ToString() + "\n" +
                              "Max Spawn : " + areaScript.properties[i].MaxSpawn + "\n" +
                              "Quest Type : " + areaScript.properties[i].QuestType, style);
            }

            areaScript.Areas[i] = new Rect(pos.x, pos.z, scale.x, scale.z);
        }
    }
Пример #6
0
        public GameManagerModel CheckIfAreaIsAvailable(GameManagerModel model, AreaScript areaScript)
        {
            if (areaScript.Model.Type != SignType.DEFAULT)
            {
                return(model);
            }

            areaScript.UpdateSign(SignType.COMPUTER_SIGN);
            model.ComputerTurnCompleted = true;
            return(model);
        }
Пример #7
0
        public GameManagerModel CheckForAreaObject(GameManagerModel model, GameObject collision)
        {
            if (collision.layer != LayerMask.NameToLayer("Area"))
            {
                return(model);
            }

            AreaScript script = collision.GetComponent <AreaScript>();

            return(CheckAreaSignType(model, script));
        }
Пример #8
0
        public GameManagerModel CheckAreaSignType(GameManagerModel model, AreaScript script)
        {
            if (script.Model.Type != SignType.DEFAULT)
            {
                return(model);
            }

            model.PlayerTurnCompleted = true;
            script.UpdateSign(SignType.PLAYER_SIGN);
            return(model);
        }
Пример #9
0
        public GameManagerModel BlockPlayerRow(GameManagerModel model, WinningRowModel row)
        {
            AreaScript area1 = model.Areas.Find(x => x.transform.position == row.FirstPos).GetComponent <AreaScript>();
            AreaScript area2 = model.Areas.Find(x => x.transform.position == row.SecondPos).GetComponent <AreaScript>();
            AreaScript area3 = model.Areas.Find(x => x.transform.position == row.ThirdPos).GetComponent <AreaScript>();

            model = CheckIfAreaIsAvailable(model, area1);
            model = CheckIfAreaIsAvailable(model, area2);
            model = CheckIfAreaIsAvailable(model, area3);

            return(model);
        }
    // Update is called once per frame
    void Update()
    {
        playerHost = player.hostChar;
        for (int i = 0; i < areas.Count; i++)
        {
            if (areaNum == i)
            {
                if (i == 0 || i == 7)
                {
                    if (i == 7)
                    {
                        text.text = "Sleep...";
                    }

                    if (i == 0)
                    {
                        int gems = 0;
                        for (int a = 1; a < areas.Count; a++)
                        {
                            if (!areas[a].subArea)
                            {
                                gems += areas[a].gemTot;
                            }

                            text.text = "Total Gems: " + totalGems;
                        }
                        totalGems = gems;
                    }
                }
                else
                {
                    totalGems = areas[i].gemTot;
                    text.text = area.name + " Gems: " + totalGems;
                }
                areas[i].gameObject.SetActive(true);
                area = areas[i].gameObject.GetComponent <AreaScript>();
                if (player.hostChar != null)
                {
                    playerHost.transform.parent = area.gameObject.transform.Find("Characters");
                }
                cameraScript.cameraOptions.maxCameraBoundaries = area.maxCamera;
                cameraScript.cameraOptions.minCameraBoundaries = area.minCamera;
            }
            else
            {
                areas[i].gameObject.SetActive(false);
            }
        }
    }
Пример #11
0
    public AreaScript GetCrowdedArea()
    {
        AreaScript result = null;
        float      num    = 0f;

        foreach (AreaScript areaScript in this._definedAreas)
        {
            int population = areaScript.Population;
            if ((float)population > num)
            {
                num    = (float)population;
                result = areaScript;
            }
        }
        return(result);
    }
Пример #12
0
    public static string GetUnderArea(Vector3 pos)
    {
        string     areaName = null;
        RaycastHit rh       = new RaycastHit();
        bool       isHit    = SongeUtil.GetPointOnGround(pos, ref rh);

        if (isHit)
        {
            Transform  tr     = rh.transform;
            AreaScript areaSc = tr.GetComponentInParent <AreaScript>();
            if (areaSc != null)
            {
                areaName = areaSc.AreaName;
            }
        }
        return(areaName);
    }
Пример #13
0
    void Awake()
    {
        var staticProtectObjects = transform.FindChild("StaticProtectObjects");

        if (staticProtectObjects != null)
        {
            QuestTarget = staticProtectObjects.GetChild(0);
        }

        OM = new ObjectiveManager();

        areas = transform.GetComponent <AreaScript>();
        StaticIngameData.mapManager = this;

        //This functions gets all spawn areas in the map in a dictionary sorted based on monster ID
        sortedAreas    = areas.GetSortedAreas();
        sortedMaxSpawn = areas.GetSortedMaxSpawn();
    }
    // Update is called once per frame
    public void shoot()
    {
        areaScript  = transform.parent.parent.GetComponentInParent <AreaScript>();
        agentScript = transform.parent.parent.GetComponent <AgentScript>();
        if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit, 15))
        {
            GameObject shot = hit.transform.gameObject;
            if (shot.CompareTag("enemy"))
            {
                areaScript.DestroyEnemy(shot);
                Debug.Log("Hit Enemy");
            }

            else
            {
                agentScript.AddReward(-0.0002f);
            }
        }
Пример #15
0
        public GameManagerModel MarkRandomArea(GameManagerModel model)
        {
            if (model.ComputerTurnCompleted)
            {
                return(model);
            }

            int areaCount = 0;

            while (model.ComputerTurnCompleted == false && areaCount < model.Areas.Count)
            {
                int        areaIndex  = Random.Range(0, model.Areas.Count);
                AreaScript areaScript = model.Areas[areaIndex].GetComponent <AreaScript>();
                model      = CheckIfAreaIsAvailable(model, areaScript);
                areaCount += 1;
            }

            return(model);
        }
Пример #16
0
    // Update is called once per frame
    void Update()
    {
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject.tag == "Area") //Ha az egér egy terület felett van...
        {
            if (itsMyFirstTimeSenpai)                                               //Please be gentle
            {
                myScript = hit.collider.gameObject.GetComponent <AreaScript>();     //myScript az azé a területé, amelyik fölött az egér van.
                if (myScript.id != activeArea)
                {
                    myScript.brigthenColor(feher); //Az egér alatti területet szinezzük fehérre.
                }
                needTurningBack      = true;       //Jelöljük hogy szükségünk lesz a terület visszaszínezésére feketére amikor levisszük róla az egeret.
                itsMyFirstTimeSenpai = false;      //( ͡° ͜ʖ ͡°)
            }

            if (Input.GetMouseButton(0))    //Ha rákattintunk egy területre, aktívvá tesszük.
            {
                if (activeArea != 100)      //Mielőtt aktív területet váltunk, szinezzük vissza az előző aktív terület szomszédait. Ezt akkor ne tegyük meg ha ez az első aktív terület.
                {
                    setNeighbourColors(fekete);
                    Areas[activeArea - 1].GetComponent <AreaScript>().changeColorTo(fekete);
                }
                activeArea = myScript.getId(); //Felvesszük az aktív terület számát
                setNeighbourColors(feher);     //A szomszédok színeit fehérre váltjuk.
                myScript.changeColorTo(aktiv); //Az aktív területet szinezzük accordingly
                needTurningBack = false;       //És ne szinezzük vissza ha lemegy az egér.
            }
        }
        else
        {
            itsMyFirstTimeSenpai = true;                      //I don't think that's how it works in real life
            if (needTurningBack && myScript.id != activeArea) //Ha az egér már nincs a terület fölött, váltsuk vissza a színét.
            {
                myScript.resetColor();
                needTurningBack = false;
            }
        }
    }
    public void RealChat(bool isSend, string text)
    {
        AreaScript Area = Instantiate(isSend ? BlueArea : WhiteArea).GetComponent <AreaScript>();

        Area.transform.SetParent(ContentRect.transform, false);
        Area.BoxRect.sizeDelta = new Vector2(450, Area.BoxRect.sizeDelta.y);
        Area.TextRect.GetComponent <Text>().text = text;
        Fit(Area.BoxRect);

        float x = Area.TextRect.sizeDelta.x + 42;
        float y = Area.TextRect.sizeDelta.y;

        if (y > 49)
        {
            for (int i = 0; i < 200; i++)
            {
                Area.BoxRect.sizeDelta = new Vector2(x - i * 2, Area.BoxRect.sizeDelta.y);
                Fit(Area.BoxRect);

                if (y != Area.TextRect.sizeDelta.y)
                {
                    Area.BoxRect.sizeDelta = new Vector2(x - (i * 2) + 2, y); break;
                }
            }
        }
        else
        {
            Area.BoxRect.sizeDelta = new Vector2(x, y);
        }

        Fit(Area.BoxRect);
        Fit(Area.AreaRect);
        Fit(ContentRect);
        LastArea = Area;

        Invoke("ScrollDelay", 0.03f);
    }
Пример #18
0
 // Update is called once per frame
 void Update()
 {
     area = WorldManager.world.area;
 }
Пример #19
0
    public override void OnInspectorGUI()
    {
        AreaScript areaScript = (AreaScript)target;

        //base.OnInspectorGUI();

        GUIStyle style = new GUIStyle(GUI.skin.box);

        GUILayout.BeginVertical(style);

        GUILayout.Space(5);

        EditorGUI.indentLevel += 1;

        serializedObject.Update();

        EditorList.Show(serializedObject.FindProperty("properties"));

        serializedObject.ApplyModifiedProperties();

        EditorGUI.indentLevel -= 1;

        GUILayout.Space(10);

        GUILayout.EndVertical();

        GUILayout.Space(5);

        GUILayout.BeginVertical(style);

        GUILayout.Label("Options", EditorStyles.boldLabel);

        GUILayout.Space(5);

        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Create New Spawn Area"))
        {
            areaScript.AddArea();
            EditorUtility.SetDirty(areaScript);
        }

        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        index = EditorGUILayout.IntField(index);
        if (GUILayout.Button("Delete Spawn Area"))
        {
            areaScript.RemoveArea(index);
            EditorUtility.SetDirty(areaScript);
        }

        GUILayout.EndHorizontal();

        if (GUILayout.Button("Clear All Spawn Area"))
        {
            areaScript.ResetAll();
            EditorUtility.SetDirty(areaScript);
        }

        GUILayout.Space(5);

        GUILayout.EndVertical();
    }