public void OnEventMessageReceive(CharacterManager sender, EventMessage message) { switch (message.m_MessageType) { case EventMessage.MessageType.UPDATE_GOLD: CurrentMoney += message.m_IntParam; break; case EventMessage.MessageType.UPDATE_POWER: CurrentPower += message.m_IntParam; break; case EventMessage.MessageType.ACTIVATE_TILE: Vector2 senderPos = sender.Tile.Position; switch (message.m_Zone) { case EventMessage.TriggerZone.SELF: sender.ActivateCharacter(); break; case EventMessage.TriggerZone.LEFT: TileManager concernedTile = m_BoardManager.Board.GetTile((int)senderPos.x - 1, (int)senderPos.y); if (concernedTile != null) { concernedTile.ActivateCharacter(); } break; } break; } }