public void ReceiveEventMessage(EventMessage message) { switch (message.m_MessageType) { case EventMessage.MessageType.IS_ACTIVE: IsActive = message.m_BoolParam; break; case EventMessage.MessageType.IS_GROWING: m_Renderer.IsGrowing = message.m_BoolParam; break; case EventMessage.MessageType.IS_SHAKING: m_Renderer.IsShaking = message.m_BoolParam; break; case EventMessage.MessageType.IS_LOCK: IsLock = message.m_BoolParam; break; case EventMessage.MessageType.SPAWN_TILE: if (Type == TileType.EMPTY) { TileDatas newDatas = BoardManager.Instance.Spawner.GetDataOfType(message.m_TileTypeParam); Init(newDatas, m_GridPosition); Type = newDatas.m_TileType; m_IsActive = true; BoardManager.Instance.Board.SetNewTile(this, (int)m_GridPosition.x, (int)m_GridPosition.y); } break; case EventMessage.MessageType.SWITCH_FACE: m_FaceManager.SwitchFace(message.m_FaceTypeParam); break; case EventMessage.MessageType.ACTIVATE_ON_MOUSE_OVER: if (IsActive && !IsEventMouseOver) { IsEventMouseOver = true; m_OnMouseOver.Invoke(); } break; case EventMessage.MessageType.ACTIVATE_ON_MOUSE_EXIT: m_OnMouseExit.Invoke(); break; case EventMessage.MessageType.FLEE: break; } }