public PropertyBuffFactory(PropertyReprGroup prop, int activeTurns) { this.propertyGroup = prop; this.activeTurns = activeTurns; }
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(); }
public PropertyBuff(PropertyReprGroup prop, int activeTurns) : base(activeTurns) { propertyGroup = prop; }