コード例 #1
0
 public PropertyBuffFactory(PropertyReprGroup prop, int activeTurns)
 {
     this.propertyGroup = prop;
     this.activeTurns   = activeTurns;
 }
コード例 #2
0
        public void StartNewRound()
        {
            var refs = SceneObjRef.Instance;

            refs.MainMenuCanvas.gameObject.SetActive(false);
            refs.GameCanvas.gameObject.SetActive(true);
            refs.OverlayCanvas.gameObject.SetActive(true);
            refs.EventCanvas.gameObject.SetActive(false);
            refs.TechTreeCanvas.gameObject.SetActive(false);
            refs.CultureTreeCanvas.gameObject.SetActive(false);

            ++round;

            PropertyManager.Instance.OnReset();
            BuffQueue.Instance.OnReset();
            TurnCounter.Instance.OnReset();
            //TurnCounter.Instance.OnNewTurn += BuffQueue.Instance.OnNewTurn;
            EventManager.Instance.OnReset();
            MapManager.Instance.OnReset();
            // other start-ups here
            SceneObjRef.Instance.MapColliderUtil.ClearColliders();
            SceneObjRef.Instance.MapColliderUtil.GenerateColliders();

            foreach (var sobj in SobjRef.Instance.TreeItemDict)
            {
                if (sobj.type == TreeType.Tech)
                {
                    sobj.wrapper.Lock();
                }
            }
            foreach (var sobj in SobjRef.Instance.BuildingDict)
            {
                if (sobj.initAsLocked)
                {
                    sobj.Lock();
                }
                else
                {
                    sobj.ForceUnlock();
                }
            }

            // add start event & trans to event
            var evDict = SobjRef.Instance.EventDict;

            EventManager.Instance.AddEventToFront(evDict["fu_su_de_huo_zhong"].wrapper);

            // special handling of turn 0
            State = GameState.Event;
            // setup main base
            var buildDict  = SobjRef.Instance.BuildingDict;
            var mainBase   = buildDict["zhu_ji_di_lv1"];
            var mapManager = MapManager.Instance;
            var mapSize    = mapManager.MapDesc.mapSize;
            var poss       = new List <Vector2Int>(mapSize.x * mapSize.y);

            for (var y = 0; y < mapSize.y; ++y)
            {
                for (var x = 0; x < mapSize.x; ++x)
                {
                    if (mapManager.CanSetBlock(x, y, mainBase))
                    {
                        poss.Add(new Vector2Int(x, y));
                    }
                }
            }
            var randIdx = Random.Range(0, poss.Count);
            var randPos = poss[randIdx];

            mapManager.SetBlock(randPos.x, randPos.y, mainBase);
            SceneObjRef.Instance.MapColliderUtil.GetUIBlock(randPos.x, randPos.y)
            .SetSprite(mainBase.mainImage, mainBase.spriteOffset);

            var initProp = MapManager.Instance.CollectProducts();

            initProp += new PropertyReprGroup(100, 0, 150, 0);
            PropertyManager.Instance.AddProperty(initProp);

            var eventUI = SceneObjRef.Instance.EventUI;

            eventUI.gameObject.SetActive(true);
            eventUI.StartProcess();
        }
コード例 #3
0
 public PropertyBuff(PropertyReprGroup prop, int activeTurns) : base(activeTurns)
 {
     propertyGroup = prop;
 }