Beispiel #1
0
    public FarmDigimonAI.ActionID ChooseAction()
    {
        FarmRoot    instance = FarmRoot.Instance;
        FarmScenery scenery  = instance.Scenery;
        List <FarmDigimonAI.ActionID> list = new List <FarmDigimonAI.ActionID>();

        for (int i = 1; i < Enum.GetNames(typeof(FarmDigimonAI.ActionID)).Length; i++)
        {
            if (i != 6)
            {
                list.Add((FarmDigimonAI.ActionID)i);
            }
        }
        if (scenery.farmObjects.Any((FarmObject x) => x.IsConstruction()))
        {
            list.Remove(FarmDigimonAI.ActionID.CONSTRUCTION);
        }
        if (!scenery.farmObjects.Any((FarmObject x) => x.facilityID == 1))
        {
            list.Remove(FarmDigimonAI.ActionID.MEAT_FARM);
        }
        int index = UnityEngine.Random.Range(0, list.Count);

        return(list[index]);
    }
    public void SaveResponseToFacilityBuild(int userFacilityID)
    {
        FarmRoot          instance  = FarmRoot.Instance;
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        instance.ResetSettingMark();
        component.farmObject.DisplayFloorObject();
        instance.SetActiveNotTouchObject(true);
        FarmObject farmObject = component.farmObject;

        FarmGrid.GridPosition gridPosition = component.ComplatedSetting();
        farmObject.userFacilityID = userFacilityID;
        UserFacility facility = this.StartBuild(farmObject, gridPosition);

        Singleton <UserDataMng> .Instance.AddUserFacility(facility);

        this.farmObjects.Add(farmObject);
        FacilityM facilityMaster = FarmDataManager.GetFacilityMaster(farmObject.facilityID);

        FarmUtility.PayCost(facilityMaster.buildingAssetCategoryId1, facilityMaster.buildingAssetNum1);
        if (0 < int.Parse(facilityMaster.buildingTime) || int.Parse(facilityMaster.autoBuildingFlg) == 0)
        {
            this.StartConstruction(userFacilityID);
        }
        else
        {
            farmObject.BuildComplete();
        }
    }
    private void Start()
    {
        FarmRoot instance = FarmRoot.Instance;

        if (null == instance)
        {
            return;
        }
        this.farmCamera = instance.Camera;
        UserFacility userFacility = Singleton <UserDataMng> .Instance.GetUserFacility(this.farmObject.userFacilityID);

        if (string.IsNullOrEmpty(userFacility.completeTime))
        {
            this.complateTime = ServerDateTime.Now;
        }
        else
        {
            this.complateTime = DateTime.Parse(userFacility.completeTime);
        }
        if (userFacility.level == 0 || (userFacility.level == 1 && string.IsNullOrEmpty(userFacility.completeTime)))
        {
            FacilityM facilityMaster = FarmDataManager.GetFacilityMaster(userFacility.facilityId);
            this.totalComplateSeconds = int.Parse(facilityMaster.buildingTime);
        }
        else
        {
            FacilityUpgradeM facilityUpgradeMaster = FarmDataManager.GetFacilityUpgradeMaster(userFacility.facilityId, userFacility.level + 1);
            this.totalComplateSeconds = int.Parse(facilityUpgradeMaster.upgradeTime);
        }
        this.OnUpdate();
    }
    private void CompletedMove()
    {
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        if (null != component.farmObject && component.farmObject.isPlaceable)
        {
            FarmRoot instance = FarmRoot.Instance;
            if (instance.farmMode == FarmRoot.FarmControlMode.NORMAL)
            {
                base.StartCoroutine(this.SaveFarmObjectMove());
            }
            else
            {
                instance.ResetSettingMark();
                this.farmObject.DisplayFloorObject();
                component.ComplatedSetting();
                instance.isEdit = true;
                if (instance.farmMode == FarmRoot.FarmControlMode.EDIT)
                {
                    if (!instance.Scenery.IsExistStoreFacility())
                    {
                        instance.farmUI.EnableEditSaveButton(true);
                    }
                    instance.farmUI.EnableEditStoreButton(true);
                }
            }
        }
    }
 private bool OnDrag(InputControll inputControll)
 {
     if (this.farmObject.gameObject == inputControll.rayHitColliderObject)
     {
         FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();
         if (null == component.farmObject)
         {
             FarmRoot instance = FarmRoot.Instance;
             if (instance.IsVisitFriendFarm)
             {
                 return(false);
             }
             instance.SetActiveNotTouchObject(false);
             this.SetFacilityButton(false, instance);
             component.SetMoveFarmObject(this.farmObject);
             if (instance.farmMode == FarmRoot.FarmControlMode.EDIT)
             {
                 instance.farmUI.EnableEditSaveButton(false);
             }
             return(true);
         }
     }
     else
     {
         this.RemoveTouchDragEventForFriendFarm();
     }
     return(false);
 }
    public void DeleteFarmObject(int userFacilityID)
    {
        FarmRoot  instance = FarmRoot.Instance;
        FarmField field    = instance.Field;

        instance.ClearSettingFarmObject();
        Singleton <UserDataMng> .Instance.DeleteUserFacility(userFacilityID);

        bool flag = false;

        for (int i = 0; i < this.farmObjects.Count; i++)
        {
            if (userFacilityID == this.farmObjects[i].userFacilityID)
            {
                flag = (this.farmObjects[i].facilityID == 11);
                GameObject gameObject = this.farmObjects[i].gameObject;
                field.SetGridPutFlag(this.farmObjects[i], false);
                this.farmObjects.Remove(this.farmObjects[i]);
                UnityEngine.Object.Destroy(gameObject);
                break;
            }
        }
        if (flag)
        {
            FarmRoot.Instance.ResetSetteingFence();
        }
    }
Beispiel #7
0
    private void Start()
    {
        FarmRoot          instance   = FarmRoot.Instance;
        Camera            component  = base.GetComponent <Camera>();
        GUICameraControll component2 = base.GetComponent <GUICameraControll>();

        component.orthographicSize = component2.CameraOrthographicSizeMax;
        float   z       = 0.1f;
        float   num     = Mathf.Abs(component.ViewportToWorldPoint(new Vector3(0f, 1f, z)).y - instance.transform.position.y);
        float   num2    = Mathf.Abs(component.ViewportToWorldPoint(new Vector3(0f, 0f, z)).y - instance.transform.position.y);
        float   f       = component.transform.localEulerAngles.x * 0.0174532924f;
        float   z2      = Mathf.Abs(num / Mathf.Cos(f));
        Vector3 b       = new Quaternion(component.transform.localRotation.x, 0f, 0f, 1f) * new Vector3(0f, 0f, z2);
        Vector3 vector  = new Vector3(this.drawAreaClip.size.x / 2f, 0f, this.drawAreaClip.size.z / 2f) - b;
        Vector3 vector2 = new Vector3(-this.drawAreaClip.size.x / 2f, 0f, this.drawAreaClip.size.z / 2f) - b;

        z2 = Mathf.Abs(num2 / Mathf.Cos(f));
        b  = new Quaternion(component.transform.localRotation.x, 0f, 0f, 1f) * new Vector3(0f, 0f, z2);
        Vector3 vector3 = new Vector3(-this.drawAreaClip.size.x / 2f, 0f, -this.drawAreaClip.size.z / 2f) - b;

        this.topLeftX    = vector2.x;
        this.topLeftZ    = vector2.z;
        this.topRightX   = vector.x;
        this.bottomLeftZ = vector3.z;
    }
    public IEnumerator AppearanceNormal(GameObject digimon, Action completed)
    {
        FarmRoot  farmRoot  = FarmRoot.Instance;
        FarmField farmField = farmRoot.Field;
        int       gridIndex = FarmDigimonUtility.GetPassableGridIndex();

        if (gridIndex == -1)
        {
            digimon.SetActive(false);
        }
        else
        {
            base.transform.position      = farmField.Grid.GetPositionGridCenter(gridIndex, false);
            base.transform.localScale    = Vector3.zero;
            base.transform.localRotation = Quaternion.identity;
            Vector3 angles = base.transform.localEulerAngles;
            angles.y = farmRoot.Camera.transform.localEulerAngles.y + 180f;
            base.transform.localEulerAngles = angles;
            float scale = 0.99f;
            while (1f > scale)
            {
                scale += Time.deltaTime;
                scale  = Mathf.Clamp01(scale);
                float adjScale = scale * 2f;
                base.transform.localScale = new Vector3(adjScale, adjScale, adjScale);
                yield return(null);
            }
        }
        if (completed != null)
        {
            completed();
        }
        yield break;
    }
    private void Start()
    {
        FarmRoot instance = FarmRoot.Instance;

        this.farmCamera = instance.Camera;
        this.mainCamera = GUIMain.GetOrthoCamera();
    }
    public IEnumerator OnTouchedEffect(bool isSelected, Action <bool> result)
    {
        bool     isEvent  = false;
        FarmRoot farmRoot = FarmRoot.Instance;

        if (farmRoot.farmMode == FarmRoot.FarmControlMode.EDIT)
        {
            yield break;
        }
        bool isMovingObject = FarmObjectSetting.SettingMode.MOVE == farmRoot.SettingObject.settingMode;

        if (this.IsConstruction() && !isMovingObject && !this.IsTutorialFacility() && !farmRoot.IsVisitFriendFarm)
        {
            yield return(base.StartCoroutine(this.ServerRequestFacilityBuildComplete(delegate(bool e)
            {
                isEvent = e;
            })));
        }
        else
        {
            isEvent = this.StartSelectAnimation(isSelected);
        }
        if (result != null)
        {
            result(isEvent);
        }
        yield break;
    }
Beispiel #11
0
 private void OnTouchUp(InputControll inputControll, bool isDraged)
 {
     if (!isDraged)
     {
         if (this.farmObject.gameObject != inputControll.rayHitColliderObject)
         {
             FarmObjectSelect component = base.GetComponent <FarmObjectSelect>();
             this.CancelEdit();
             component.EnabledTouchedEvent(true);
         }
     }
     else if (this.farmObject.isPlaceable)
     {
         FarmRoot          instance   = FarmRoot.Instance;
         FarmScenery       component2 = base.GetComponent <FarmScenery>();
         FarmObjectSelect  component3 = base.GetComponent <FarmObjectSelect>();
         FarmObjectSetting component4 = base.GetComponent <FarmObjectSetting>();
         instance.ResetSettingMark();
         this.farmObject.DisplayFloorObject();
         component4.ComplatedSetting();
         component3.SetSelectObject(this.farmObject.gameObject);
         this.farmObject = null;
         component3.EnabledTouchedEvent(true);
         instance.Input.RemoveTouchEndEvent(new Action <InputControll, bool>(this.OnTouchUp));
         if (!component2.IsExistStoreFacility())
         {
             instance.farmUI.EnableEditSaveButton(true);
         }
     }
 }
    private void SetBackground()
    {
        GameObject gameObject = new GameObject("BackgroundCamera");
        FarmRoot   farmRoot   = FarmRoot.Instance;

        gameObject.transform.SetParent(farmRoot.transform);
        Vector3 vector = default(Vector3);

        foreach (FarmObject farmObject in farmRoot.Scenery.farmObjects)
        {
            if (farmObject.facilityID == 5)
            {
                vector = farmObject.transform.localPosition;
                break;
            }
        }
        gameObject.transform.localPosition = new Vector3(vector.x - 3.635f, vector.y + 1.2f, vector.z - 1.21f);
        gameObject.transform.Rotate(new Vector3(15f, 125f));
        this.backgroundCamera               = gameObject.AddComponent <Camera>();
        this.preCameraClearFlag             = this.backgroundCamera.clearFlags;
        this.backgroundCamera.clearFlags    = CameraClearFlags.Color;
        this.backgroundRenderTex            = new RenderTexture(this.backgroundUiTex.width, this.backgroundUiTex.height, 16);
        this.backgroundCamera.targetTexture = this.backgroundRenderTex;
        this.backgroundUiTex.mainTexture    = this.backgroundRenderTex;
        this.backgroundCamera.cullingMask  &= ~(1 << LayerMask.NameToLayer("Cutscene"));
    }
Beispiel #13
0
    private int[] GetPassGridIndexs(int targetGridIndex)
    {
        FarmRoot  instance = FarmRoot.Instance;
        FarmField field    = instance.Field;

        FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(base.transform.localPosition);
        int gridIndex = field.Grid.GetGridIndex(gridPosition);
        List <FarmDigimonUtility.PathInfo> path = FarmDigimonUtility.GetPath(gridIndex, targetGridIndex);

        if (path != null)
        {
            FarmDigimonUtility.PathInfo pathInfo = path.SingleOrDefault((FarmDigimonUtility.PathInfo x) => x.gridIndex == targetGridIndex);
            int        startGridIndex            = pathInfo.gridIndex;
            int        num  = pathInfo.checkPoint - 1;
            List <int> list = new List <int>();
            while (0 <= num && this.ChoosePath(field.Grid, path, startGridIndex, num, list))
            {
                num--;
                startGridIndex = list.Last <int>();
            }
            if (0 < list.Count)
            {
                return(list.ToArray());
            }
        }
        return(null);
    }
Beispiel #14
0
    protected virtual bool CheckExtendBuild()
    {
        FarmRoot instance = FarmRoot.Instance;

        if (!(instance != null))
        {
            return(false);
        }
        int num = instance.Scenery.GetFacilityCount(this.farmObject.facilityID);
        List <UserFacility> stockFacilityListByfacilityIdAndLevel = Singleton <UserDataMng> .Instance.GetStockFacilityListByfacilityIdAndLevel(this.farmObject.facilityID);

        int count = stockFacilityListByfacilityIdAndLevel.Count;

        num += count;
        FacilityM facilityMaster = FarmDataManager.GetFacilityMaster(this.farmObject.facilityID);

        if (FarmUtility.IsShortage(facilityMaster.buildingAssetCategoryId1, facilityMaster.buildingAssetNum1))
        {
            this.ShowExtendBuildErrorDialog("C-FA01", true);
            return(false);
        }
        if (int.Parse(facilityMaster.maxNum) <= num)
        {
            this.ShowExtendBuildErrorDialog("E-FA03", false);
            return(false);
        }
        return(true);
    }
    private bool SetFarmObjectOfEditMode(FarmObject farmObject, Vector3 farmObjectPos)
    {
        FarmRoot          instance  = FarmRoot.Instance;
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();
        bool result = component.SetEditFarmObject(farmObject, farmObjectPos);

        if (farmObject.isPlaceable)
        {
            FarmObjectSelect component2 = base.GetComponent <FarmObjectSelect>();
            component.ComplatedSetting();
            component2.SetSelectObject(farmObject.gameObject);
            if (null != instance.farmUI && !this.IsExistStoreFacility())
            {
                instance.farmUI.EnableEditSaveButton(true);
            }
        }
        else
        {
            FarmObjectEdit component3 = base.GetComponent <FarmObjectEdit>();
            component3.StartEdit(farmObject);
        }
        if (null != instance.farmUI)
        {
            instance.farmUI.EnableEditStoreButton(true);
        }
        return(result);
    }
Beispiel #16
0
    private void Awake()
    {
        FarmRoot.instance = this;
        string     path       = "Farm/Builds/SettingMark/SettingMark";
        GameObject gameObject = AssetDataMng.Instance().LoadObject(path, null, true) as GameObject;

        if (null == gameObject)
        {
            return;
        }
        GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(gameObject);

        gameObject2.transform.parent           = base.transform;
        gameObject2.transform.localScale       = Vector3.one;
        gameObject2.transform.localPosition    = Vector3.zero;
        gameObject2.transform.localEulerAngles = Vector3.zero;
        this.settingMark = gameObject2.GetComponent <FarmSettingMark>();
        path             = "Farm/Builds/SelectMark/SelectMark";
        gameObject       = (AssetDataMng.Instance().LoadObject(path, null, true) as GameObject);
        if (null == gameObject)
        {
            return;
        }
        gameObject2 = UnityEngine.Object.Instantiate <GameObject>(gameObject);
        gameObject2.transform.parent           = base.transform;
        gameObject2.transform.localScale       = Vector3.one;
        gameObject2.transform.localPosition    = Vector3.zero;
        gameObject2.transform.localEulerAngles = Vector3.zero;
        this.selectMark = gameObject2.GetComponent <FarmSelectMark>();
        gameObject2.SetActive(false);
        FarmCameraControlForCMD.ClearCount();
    }
Beispiel #17
0
    public void DragCreate()
    {
        FarmRoot instance = FarmRoot.Instance;

        if (null == instance)
        {
            global::Debug.LogError("FarmRoot Not Found");
            return;
        }
        if (0 >= this.farmObjects.Count)
        {
            global::Debug.LogError("0 == this.farmObjects.Count");
            return;
        }
        instance.ClearSettingFarmObject();
        FarmObject           farmObject          = this.farmObjects[0];
        Camera               componentInChildren = instance.GetComponentInChildren <Camera>();
        Vector3              vector            = componentInChildren.ScreenToWorldPoint(Input.mousePosition);
        FarmEditFacilityList componentInParent = base.GetComponentInParent <FarmEditFacilityList>();

        if (!componentInParent.StartSettingAndDragState(farmObject, vector))
        {
            vector = componentInChildren.ScreenToWorldPoint(Input.mousePosition);
            farmObject.transform.position = vector;
        }
        GUIManager.ResetTouchingCount();
    }
    public APIRequestTask SaveFarmObjectPosition(Action <int> complated)
    {
        RequestFA_FacilityBuild request = new RequestFA_FacilityBuild
        {
            SetSendData = delegate(FacilityBuild param)
            {
                FarmRoot              instance     = FarmRoot.Instance;
                FarmField             field        = instance.Field;
                FarmObjectSetting     component    = this.GetComponent <FarmObjectSetting>();
                FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(component.farmObject.GetBaseGridPosition3D());
                param.facilityId = component.farmObject.facilityID;
                param.positionX  = gridPosition.x;
                param.positionY  = gridPosition.y;
            },
            OnReceived = delegate(FacilityBuildResult response)
            {
                this.SaveResponseToFacilityBuild(response.userFacilityId);
                if (complated != null)
                {
                    complated(response.userFacilityId);
                }
            }
        };

        return(new APIRequestTask(request, true));
    }
    public void ResetSelectedFarmObject()
    {
        FarmRoot instance = FarmRoot.Instance;

        this.SetFacilityButton(false, instance);
        instance.ResetSelectMark();
        FarmObjectSetting component = base.GetComponent <FarmObjectSetting>();

        if (null != component.farmObject)
        {
            component.CancelMove();
            instance.ResetSettingMark();
            this.farmObject.DisplayFloorObject();
            if (instance.farmMode == FarmRoot.FarmControlMode.NORMAL)
            {
                instance.SetActiveNotTouchObject(true);
            }
            else
            {
                if (!instance.Scenery.IsExistStoreFacility())
                {
                    instance.farmUI.EnableEditSaveButton(true);
                }
                instance.farmUI.EnableEditStoreButton(true);
            }
        }
        this.selectUserFacilityID = -1;
        this.farmObject           = null;
        instance.Input.RemoveTouchDragEvent(new Func <InputControll, bool>(this.OnDrag));
        this.RemoveTouchDragEventForFriendFarm();
    }
    private void Start()
    {
        FarmRoot instance = FarmRoot.Instance;

        this.farmCamera = ((!(instance != null)) ? null : instance.Camera);
        this.mainCamera = GUIMain.GetOrthoCamera();
        base.StartCoroutine(this.DestroyPref(2f));
    }
    public void ClearConstruction()
    {
        FarmRoot instance = FarmRoot.Instance;

        instance.farmUI.DeleteConstructionDetail(this.userFacilityID);
        instance.farmUI.UpdateFacilityButton(this);
        this.BuildComplete();
    }
    private Vector3 GetScreenCenterPoint()
    {
        Vector3  distanceToGround = FarmUtility.GetDistanceToGround();
        FarmRoot instance         = FarmRoot.Instance;
        Camera   camera           = instance.Camera;

        return(camera.transform.localPosition + distanceToGround);
    }
 private void MoveComplate(FarmRoot farmRoot, FarmObjectSetting farmObjectSetting)
 {
     farmRoot.ResetSettingMark();
     this.farmObject.DisplayFloorObject();
     farmRoot.SetActiveNotTouchObject(true);
     this.SetFacilityButton(true, farmRoot);
     farmObjectSetting.ComplatedSetting();
 }
Beispiel #24
0
    private void Start()
    {
        FarmRoot instance = FarmRoot.Instance;

        this.farmObject = instance.SettingObject.farmObject;
        this.farmCamera = instance.Camera;
        GUIScreenHome.enableBackKeyAndroid = false;
    }
Beispiel #25
0
    private void ResetFarmWork()
    {
        FarmRoot farmRoot = FarmRoot.Instance;

        if (null != farmRoot)
        {
            farmRoot.ClearSettingFarmObject();
        }
    }
Beispiel #26
0
    private void WaitColosseumOpen()
    {
        FarmRoot instance = FarmRoot.Instance;

        if (instance != null)
        {
            instance.StartColosseumOpenAnimation(new Action(base.ResumeScript));
        }
    }
    private int GetGridIndexOfScreenCenter()
    {
        FarmRoot  instance = FarmRoot.Instance;
        FarmField field    = instance.Field;
        Vector3   position = this.farmCamera.transform.localPosition + FarmUtility.GetDistanceToGround();

        FarmGrid.GridPosition gridPosition = field.Grid.GetGridPosition(position);
        return(field.Grid.GetGridIndex(gridPosition));
    }
Beispiel #28
0
    public void CancelMove()
    {
        FarmRoot  instance = FarmRoot.Instance;
        FarmField field    = instance.Field;

        this.farmObject.DisplayedInFront(false);
        this.farmObject.ResetPosition();
        field.SetGridPutFlag(this.farmObject, true);
        this.EndSetting(false);
    }
    private void OpenStoneShop()
    {
        GUIMain.ShowCommonDialog(null, "CMD_Shop", null);
        FarmRoot farmRoot = FarmRoot.Instance;

        if (null != farmRoot)
        {
            farmRoot.ClearSettingFarmObject();
        }
    }
Beispiel #30
0
    protected void EnableFarmInput()
    {
        FarmRoot      instance = FarmRoot.Instance;
        InputControll input    = instance.Input;

        if (null != input)
        {
            input.enabled = true;
        }
    }