/// <summary> /// spawn new MO /// </summary> /// <param name="parent"></param> /// <returns></returns> public MatchObject Get() { MatchObjectData mOD = (SpawnContr) ? SpawnContr.GetObject() : GOSet.GetMainRandomObjects(1)[0]; MatchObject match = MatchObject.Create(mOD, transform.position, false, false, MBoard.TargetCollectEventHandler, MBoard.MatchScoreCollectHandler); if (match) { match.transform.localScale = transform.lossyScale; } return(match); }
/// <summary> /// return match object from lcset array match objects array /// </summary> /// <returns></returns> public MatchObjectData GetMatchRandomObject() { if (lcSet.matchObjects != null && lcSet.matchObjects.Count > 0) { int id = lcSet.matchObjects[UnityEngine.Random.Range(0, lcSet.matchObjects.Count)]; MatchObjectData mod = goSet.GetMainObject(id); if (mod != null) { return(mod); } } return(goSet.GetMainRandomObjects(1)[0]); }
/// <summary> /// /// </summary> /// <param name="mData"></param> public void SetData(MatchObjectData mData) { OData = mData; SRenderer = GetComponent <SpriteRenderer>(); if (SRenderer) { SRenderer.sprite = (mData != null) ? mData.ObjectImage : null; } #if UNITY_EDITOR gameObject.name = (mData != null)? "match id: " + GetID() + "(" + SRenderer.sprite.name + ")": "none"; #endif SetToFront(false); }
internal void SetMatchObject(MatchObjectData mObjectData) { if (mObjectData == null || IsDisabled || Blocked) { return; } if (DynamicObject) { GameObject old = DynamicObject; DestroyImmediate(old); } if (StaticBlocker) { GameObject old = StaticBlocker.gameObject; DestroyImmediate(old); } MatchObject.Create(this, mObjectData, false, true, MBoard.TargetCollectEventHandler, MBoard.MatchScoreCollectHandler); Match.SetToFront(false); }
/// <summary> /// Create new MainObject not initialized /// </summary> /// <param name="parent"></param> /// <param name="mData"></param> /// <param name="addCollider"></param> /// <param name="radius"></param> /// <param name="isTrigger"></param> /// <returns></returns> public static MatchObject Create(MatchObjectData mData, Vector3 position, bool addCollider, bool isTrigger, Action <int> TargetCollectEvent, Action ScoreCollectEvent) { if (mData == null) { return(null); } SpriteRenderer sR = Creator.CreateSprite(MatchBoard.Instance.transform, mData.ObjectImage, position, SortingOrder.Main); GameObject gO = sR.gameObject; MatchObject gridObject = gO.AddComponent <MatchObject>(); if (addCollider) { BoxCollider2D cC = gridObject.gameObject.GetOrAddComponent <BoxCollider2D>(); cC.isTrigger = isTrigger; } gridObject.SRenderer = sR; gridObject.TargetCollectEvent = TargetCollectEvent; gridObject.ScoreCollectEvent = ScoreCollectEvent; gridObject.SetData(mData); return(gridObject); }
/// <summary> /// Create new MainObject for gridcell /// </summary> /// <param name="parent"></param> /// <param name="oData"></param> /// <param name="addCollider"></param> /// <param name="radius"></param> /// <param name="isTrigger"></param> /// <returns></returns> public static MatchObject Create(GridCell parent, MatchObjectData oData, bool addCollider, bool isTrigger, Action <int> TargetCollectEvent, Action ScoreCollectEvent) { if (!parent || oData == null) { return(null); } SpriteRenderer sR = Creator.CreateSprite(parent.transform, oData.ObjectImage, parent.transform.position); GameObject gO = sR.gameObject; MatchObject gridObject = gO.AddComponent <MatchObject>(); // gObject.Init(parent.Row, parent.Column); if (addCollider) { BoxCollider2D cC = gridObject.gameObject.GetOrAddComponent <BoxCollider2D>(); cC.isTrigger = isTrigger; } gridObject.SRenderer = sR; gridObject.TargetCollectEvent = TargetCollectEvent; gridObject.ScoreCollectEvent = ScoreCollectEvent; gridObject.SetData(oData); return(gridObject); }
internal void SetObject(int ID) { IsDisabled = false; MatchObjectData mOD = GOSet.GetMainObject(ID); if (mOD != null) { SetMatchObject(mOD); return; } OverlayObjectData oOD = GOSet.GetOverlayObject(ID); if (oOD != null) { SetOverlay(oOD); return; } UnderlayObjectData uOD = GOSet.GetUnderlayObject(ID); if (uOD != null) { SetUnderlay(uOD); return; } DynamicClickBombObjectData cdOD = GOSet.GetDynamicClickBombObject(ID); if (cdOD != null) { SetDynamicClickBomb(cdOD); return; } if (ID == GOSet.FallingObject.ID) { SetFalling(GOSet.FallingObject); return; } BaseObjectData bOD = GOSet.GetObject(ID); if (bOD != null && GameObjectsSet.IsDisabledObject(bOD.ID)) { SetDisabledObject(bOD); return; } if (bOD != null && GameObjectsSet.IsBlockedObject(bOD.ID)) { SetBlockedObject(bOD); } DynamicBlockerData dbOD = GOSet.GetDynamicBlockerObject(ID); if (dbOD != null) { SetDynamicBlockerObject(dbOD); return; } StaticBlockerData sbOD = GOSet.GetStaticBlockerObject(ID); if (sbOD != null) { SetStaticBlockerObject(sbOD); return; } }